This commit is contained in:
yyy 2025-06-09 15:52:39 +08:00
commit dec53fa62e

View File

@ -25,7 +25,16 @@
show-word-limit show-word-limit
/> />
</el-form-item> </el-form-item>
<el-form-item label="Mac地址" prop="macAddress"> <el-form-item label="摄像头编号" prop="cameraCode" v-if="formData.deviceType == 9">
<el-input
v-model="formData.cameraCode"
:disabled="false"
placeholder="请输入摄像头编号(50字以内)"
maxlength="50"
show-word-limit
/>
</el-form-item>
<el-form-item label="Mac地址" prop="macAddress" v-if="formData.deviceType !== 9">
<el-input <el-input
v-model="formData.macAddress" v-model="formData.macAddress"
:disabled="false" :disabled="false"
@ -34,10 +43,10 @@
show-word-limit show-word-limit
/> />
</el-form-item> </el-form-item>
<el-form-item label="设备IP"> <el-form-item label="设备IP" v-if="formData.deviceType !== 9">
<el-input v-model="formData.deviceIp" :disabled="false" show-word-limit placeholder="请输入设备ip" maxlength="20" @input="formData.deviceIp=formData.deviceIp.replace(/[^\d.]/g,'')" /> <el-input v-model="formData.deviceIp" :disabled="false" show-word-limit placeholder="请输入设备ip" maxlength="20" @input="formData.deviceIp=formData.deviceIp.replace(/[^\d.]/g,'')" />
</el-form-item> </el-form-item>
<el-form-item label="端口"> <el-form-item label="端口" v-if="formData.deviceType !== 9">
<el-input v-model="formData.devicePort" :disabled="false" show-word-limit placeholder="请输入端口" maxlength="10" @input="formData.devicePort=formData.devicePort.replace(/[\u4E00-\u9FA5]/g,'')"/> <el-input v-model="formData.devicePort" :disabled="false" show-word-limit placeholder="请输入端口" maxlength="10" @input="formData.devicePort=formData.devicePort.replace(/[\u4E00-\u9FA5]/g,'')"/>
</el-form-item> </el-form-item>
<el-form-item label="充电桩类型" prop="deviceAttribute" v-if="formData.deviceType == 1"> <el-form-item label="充电桩类型" prop="deviceAttribute" v-if="formData.deviceType == 1">
@ -46,6 +55,23 @@
<el-option :label="'手动充电'" :value="0" /> <el-option :label="'手动充电'" :value="0" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="摄像头类型" prop="cameraType" v-if="formData.deviceType == 9">
<el-select v-model="formData.cameraType" clearable placeholder="请选择摄像头类型">
<el-option :label="'枪机'" :value="'1'" />
<el-option :label="'半球'" :value="'2'" />
<el-option :label="'球机'" :value="'3'" />
<el-option :label="'云台枪机'" :value="'4'" />
</el-select>
</el-form-item>
<el-form-item label="设备位置" v-if="formData.deviceType == 9">
<el-input
v-model="formData.deviceLocation"
:disabled="false"
placeholder="请输入设备位置"
maxlength="25"
show-word-limit
/>
</el-form-item>
<el-form-item label="是否启用" prop="deviceEnable"> <el-form-item label="是否启用" prop="deviceEnable">
<el-select v-model="formData.deviceEnable" clearable placeholder="请选择是否启用"> <el-select v-model="formData.deviceEnable" clearable placeholder="请选择是否启用">
<el-option :label="'禁用'" :value="0" /> <el-option :label="'禁用'" :value="0" />
@ -94,7 +120,10 @@ const formData = ref({
deviceAttribute: undefined, deviceAttribute: undefined,
deviceEnable: undefined, // 01 deviceEnable: undefined, // 01
devicePort: undefined, // devicePort: undefined, //
deviceIp: undefined //IP deviceIp: undefined, //IP
cameraType:undefined, //
deviceLocation:undefined, //
cameraCode:undefined //
}) })
const formRules = reactive({ const formRules = reactive({
@ -105,7 +134,9 @@ const formRules = reactive({
pictureConfig: [{ required: true, message: '设备图配置不能为空', trigger: 'blur' }], pictureConfig: [{ required: true, message: '设备图配置不能为空', trigger: 'blur' }],
url: [{ required: true, message: '设备图片不能为空', trigger: 'blur' }], url: [{ required: true, message: '设备图片不能为空', trigger: 'blur' }],
deviceAttribute: [{ required: true, message: '充电类型不能为空', trigger: 'blur' }], deviceAttribute: [{ required: true, message: '充电类型不能为空', trigger: 'blur' }],
deviceEnable: [{ required: true, message: '是否启用不能为空', trigger: 'blur' }] deviceEnable: [{ required: true, message: '是否启用不能为空', trigger: 'blur' }],
cameraType: [{ required: true, message: '摄像头类型不能为空', trigger: 'blur' }],
cameraCode: [{ required: true, message: '摄像头编号不能为空', trigger: 'blur' }],
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
@ -126,7 +157,10 @@ const open = async (type, id) => {
formData.value.mapImageUrl = res ? res : undefined formData.value.mapImageUrl = res ? res : undefined
}) })
} }
console.log(data) // cameraType
if (formData.value.deviceType !== 9) {
formData.value.cameraType = undefined;
}
} else { } else {
title.value = '新建' title.value = '新建'
} }
@ -169,6 +203,11 @@ const deviceTypeChange = (e) => {
// console.log(res) // console.log(res)
formData.value.mapImageUrl = res ? res : undefined formData.value.mapImageUrl = res ? res : undefined
}) })
if (e === 9) {
formData.value.cameraType = '1';
} else {
formData.value.cameraType = undefined;
}
} }
// //
const { push } = useRouter() const { push } = useRouter()
@ -223,7 +262,10 @@ const resetForm = () => {
mapImageUrl: undefined, // mapImageUrl: undefined, //
pictureConfig: undefined, // 12 3 pictureConfig: undefined, // 12 3
url: undefined, // url: undefined, //
deviceAttribute: undefined deviceAttribute: undefined,//
cameraType:undefined, //
deviceLocation:undefined, //
cameraCode:undefined, //
} }
formRef.value?.resetFields() formRef.value?.resetFields()
@ -234,6 +276,7 @@ const resetForm = () => {
::v-deep .el-dialog { ::v-deep .el-dialog {
padding: 0 !important; padding: 0 !important;
} }
::v-deep .el-dialog__header { ::v-deep .el-dialog__header {
border-bottom: 1px solid #e8e8e8 !important; border-bottom: 1px solid #e8e8e8 !important;
} }
@ -254,10 +297,11 @@ const resetForm = () => {
.circular { .circular {
display: inline; display: inline;
height: 30px;
width: 30px; width: 30px;
height: 30px;
animation: loading-rotate 2s linear infinite; animation: loading-rotate 2s linear infinite;
} }
.path { .path {
animation: loading-dash 1.5s ease-in-out infinite; animation: loading-dash 1.5s ease-in-out infinite;
stroke-dasharray: 90, 150; stroke-dasharray: 90, 150;
@ -272,20 +316,24 @@ const resetForm = () => {
transform: rotate(360deg); transform: rotate(360deg);
} }
} }
@keyframes loading-dash { @keyframes loading-dash {
0% { 0% {
stroke-dasharray: 1, 200; stroke-dasharray: 1, 200;
stroke-dashoffset: 0; stroke-dashoffset: 0;
} }
50% { 50% {
stroke-dasharray: 90, 150; stroke-dasharray: 90, 150;
stroke-dashoffset: -40px; stroke-dashoffset: -40px;
} }
100% { 100% {
stroke-dasharray: 90, 150; stroke-dasharray: 90, 150;
stroke-dashoffset: -120px; stroke-dashoffset: -120px;
} }
} }
@keyframes custom-spin-move { @keyframes custom-spin-move {
to { to {
opacity: 1; opacity: 1;