<template>
|
<el-drawer v-model="drawerVisible" :destroy-on-close="true" size="550px" :title="t('TagDrawer.setDevice')">
|
<el-form
|
ref="ruleFormRef"
|
label-width="160px"
|
label-suffix=" :"
|
:rules="rules"
|
:disabled="drawerProps.isView"
|
:model="drawerProps.row"
|
:hide-required-asterisk="drawerProps.isView"
|
>
|
<el-form-item :label="t('TagDrawer.selectedDevice')" prop="tagId">
|
<el-input v-model="drawerProps.row!.tagId" style="width: 260px" readonly clearable></el-input>
|
</el-form-item>
|
<el-form-item :label="t('TagDrawer.modifySendAddress')" prop="username">
|
<el-input style="width: 200px" v-model="tagInfo.info1" :placeholder="t('TagDrawer.inputIpPort')" clearable></el-input>
|
<el-button type="primary" plain @click="UpSettingTagSendingAddress">{{ t("Config.sure") }} </el-button>
|
</el-form-item>
|
<el-form-item :label="t('TagDrawer.enableDisableSleep')" prop="gender">
|
<el-select style="width: 200px" v-model="tagInfo.info2" :placeholder="t('TagDrawer.selectOnOff')" clearable>
|
<el-option v-for="item in JingZhi" :key="item.value" :label="item.label" :value="item.value" />
|
</el-select>
|
<el-button type="primary" plain @click="UpSettingTaghibernate">{{ t("Config.sure") }} </el-button>
|
</el-form-item>
|
<el-form-item :label="t('TagDrawer.enableDisableUWB')" prop="gender">
|
<el-select style="width: 200px" v-model="tagInfo.info3" :placeholder="t('TagDrawer.selectOnOff')" clearable>
|
<el-option v-for="item in UWB" :key="item.value" :label="item.label" :value="item.value" />
|
</el-select>
|
<el-button type="primary" plain @click="UpSettingTagUWB">{{ t("Config.sure") }} </el-button>
|
</el-form-item>
|
<el-form-item :label="t('TagDrawer.enableDisableCharge')" prop="gender">
|
<el-select style="width: 200px" v-model="tagInfo.info4" :placeholder="t('TagDrawer.selectOnOff')" clearable>
|
<el-option v-for="item in charge" :key="item.value" :label="item.label" :value="item.value" />
|
</el-select>
|
<el-button type="primary" plain @click="UpSettingTagcharge">{{ t("Config.sure") }} </el-button>
|
</el-form-item>
|
<el-form-item :label="t('TagDrawer.tcpDiffAddress')" prop="username">
|
<el-input style="width: 200px" v-model="tagInfo.info5" :placeholder="t('TagDrawer.inputIpPort')" clearable></el-input>
|
<el-button type="primary" plain @click="UpSettingTagDifferential">{{ t("Config.sure") }} </el-button>
|
</el-form-item>
|
<br />
|
<el-form-item :label="t('TagDrawer.modifyNtirpAddress')" prop="username" style=""> </el-form-item>
|
<el-form-item :label="t('TagDrawer.ipAddress')" prop="username" style="">
|
<el-input style="width: 200px" v-model="Ntirp.baoliu1" clearable :placeholder="t('TagDrawer.inputIpAddress')"></el-input>
|
</el-form-item>
|
<el-form-item :label="t('TagDrawer.port')" prop="username">
|
<el-input style="width: 200px" v-model="Ntirp.baoliu2" clearable :placeholder="t('TagDrawer.inputPort')"></el-input>
|
</el-form-item>
|
<el-form-item :label="t('TagDrawer.username')" prop="username">
|
<el-input style="width: 200px" v-model="Ntirp.baoliu3" clearable :placeholder="t('TagDrawer.inputUsername')"></el-input>
|
</el-form-item>
|
<el-form-item :label="t('TagDrawer.password')" prop="username">
|
<el-input style="width: 200px" v-model="Ntirp.baoliu4" clearable :placeholder="t('TagDrawer.inputPassword')"></el-input>
|
</el-form-item>
|
<el-form-item :label="t('TagDrawer.mountPoint')" prop="username">
|
<el-input style="width: 200px" v-model="Ntirp.baoliu5" clearable :placeholder="t('TagDrawer.inputMountPoint')"></el-input>
|
<el-button type="primary" plain @click="UpSettingTagNTIRP">{{ t("Config.sure") }} </el-button>
|
</el-form-item>
|
</el-form>
|
<div class="flex flex-wrap gap-4" style="margin-top: 10px">
|
<el-card
|
style="width: 480px; height: 230px; overflow-y: scroll; font-size: 14px; background-color: #cccccc"
|
shadow="always"
|
>
|
{{ t("TagDrawer.messageSend") }}:<br />
|
{{ t("TagDrawer.time") }}:{{ resultTime }}<br />
|
{{ resultMsg }}
|
</el-card>
|
</div>
|
</el-drawer>
|
</template>
|
|
<script setup lang="ts" name="UserDrawer">
|
import { ref, reactive } from "vue";
|
import { useDict } from "@/utils/dict";
|
const { JingZhi, UWB, charge } = useDict();
|
import { FormInstance } from "element-plus";
|
import { User } from "@/api/interface";
|
import { ElMessage } from "element-plus";
|
import {
|
SettingTagSendingAddress,
|
SettingTaghibernate,
|
SettingTagUWB,
|
SettingTagcharge,
|
SettingTagDifferential,
|
SettingTagNTIRP
|
} from "@/api/modules/hxzk/device/tag";
|
import { useI18n } from "vue-i18n";
|
|
// 使用 useI18n 获取 i18n 实例
|
const { t } = useI18n({
|
useScope: "global"
|
});
|
|
const rules = reactive({});
|
const resultMsg = ref();
|
const resultTime = ref();
|
interface DrawerProps {
|
title: string;
|
isView: boolean;
|
row: Partial<User.ResUserList>;
|
api?: (params: any) => Promise<any>;
|
getTableList?: () => void;
|
}
|
|
const drawerVisible = ref(false);
|
const drawerProps = ref<DrawerProps>({
|
isView: false,
|
title: "",
|
row: {}
|
});
|
|
// 接收父组件传过来的参数
|
const acceptParams = (params: DrawerProps) => {
|
drawerProps.value = params;
|
drawerVisible.value = true;
|
};
|
const tagInfo = ref({
|
info1: "",
|
info2: "",
|
info3: "",
|
info4: "",
|
info5: ""
|
});
|
|
const Ntirp = ref({
|
baoliu1: "",
|
baoliu2: "",
|
baoliu3: "",
|
baoliu4: "",
|
baoliu5: ""
|
});
|
|
//数据发送地址
|
const UpSettingTagSendingAddress = () => {
|
const regex = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?):([0-9]{1,5})$/;
|
if (!regex.test(tagInfo.value.info1) && tagInfo.value.info1 !== "") {
|
ElMessage.error(t("TagDrawer.validation.ipPortFormat"));
|
return;
|
}
|
if (tagInfo.value.info1 == "") {
|
ElMessage.error(t("TagDrawer.validation.sendAddressRequired"));
|
return;
|
}
|
const params = {
|
tagId: drawerProps.value.row.tagId,
|
baoliu1: tagInfo.value.info1
|
};
|
SettingTagSendingAddress(params).then(data => {
|
ElMessage.success(t("TagDrawer.successModifySendAddress", { number: data.number }));
|
resultMsg.value = data.msg;
|
resultTime.value = data.time;
|
});
|
};
|
|
//静止功能
|
const UpSettingTaghibernate = () => {
|
console.log(tagInfo.value.info2);
|
if (tagInfo.value.info2 === "") {
|
ElMessage.error(t("TagDrawer.validation.selectSleep"));
|
return;
|
}
|
const params = {
|
tagId: drawerProps.value.row.tagId,
|
baoliu1: tagInfo.value.info2
|
};
|
SettingTaghibernate(params).then(data => {
|
if (tagInfo.value.info2 == "1") {
|
ElMessage.success(t("TagDrawer.successEnableSleep", { number: data.number }));
|
} else {
|
ElMessage.info(t("TagDrawer.successDisableSleep", { number: data.number }));
|
}
|
resultMsg.value = data.msg;
|
resultTime.value = data.time;
|
});
|
};
|
//UWB功能
|
const UpSettingTagUWB = () => {
|
if (tagInfo.value.info3 === "") {
|
ElMessage.error(t("TagDrawer.validation.selectUWB"));
|
return;
|
}
|
const params = {
|
tagId: drawerProps.value.row.tagId,
|
baoliu1: tagInfo.value.info3
|
};
|
SettingTagUWB(params).then(data => {
|
if (tagInfo.value.info3 == "1") {
|
ElMessage.success(t("TagDrawer.successEnableUWB", { number: data.number }));
|
} else {
|
ElMessage.info(t("TagDrawer.successDisableUWB", { number: data.number }));
|
}
|
resultMsg.value = data.msg;
|
resultTime.value = data.time;
|
});
|
};
|
//充电功能
|
const UpSettingTagcharge = () => {
|
if (tagInfo.value.info4 === "") {
|
ElMessage.error(t("TagDrawer.validation.selectCharge"));
|
return;
|
}
|
const params = {
|
tagId: drawerProps.value.row.tagId,
|
baoliu1: tagInfo.value.info4
|
};
|
SettingTagcharge(params).then(data => {
|
if (tagInfo.value.info4 == "1") {
|
ElMessage.success(t("TagDrawer.successEnableCharge", { number: data.number }));
|
} else {
|
ElMessage.info(t("TagDrawer.successDisableCharge", { number: data.number }));
|
}
|
resultMsg.value = data.msg;
|
resultTime.value = data.time;
|
});
|
};
|
const UpSettingTagDifferential = () => {
|
if (tagInfo.value.info5 === "") {
|
ElMessage.error(t("TagDrawer.validation.diffAddressRequired"));
|
return;
|
}
|
const params = {
|
tagId: drawerProps.value.row.tagId,
|
baoliu1: tagInfo.value.info5
|
};
|
SettingTagDifferential(params).then(data => {
|
ElMessage.success(t("TagDrawer.successModifyDiffAddress", { number: data.number }));
|
resultMsg.value = data.msg;
|
resultTime.value = data.time;
|
});
|
};
|
const UpSettingTagNTIRP = () => {
|
const params = {
|
tagId: drawerProps.value.row.tagId,
|
baoliu1: Ntirp.value.baoliu1,
|
baoliu2: Ntirp.value.baoliu2,
|
baoliu3: Ntirp.value.baoliu3,
|
baoliu4: Ntirp.value.baoliu4,
|
baoliu5: Ntirp.value.baoliu5
|
};
|
SettingTagNTIRP(params).then(data => {
|
ElMessage.success(t("TagDrawer.successModifyNtirpAddress", { number: data.number }));
|
resultMsg.value = data.msg;
|
resultTime.value = data.time;
|
});
|
};
|
|
// 提交数据(新增/编辑)
|
const ruleFormRef = ref<FormInstance>();
|
|
defineExpose({
|
acceptParams
|
});
|
</script>
|