<template><div><el-dialogv-model="show"title="健康数据配置"width="900"@close="resetAdd"><el-form:model="form"ref="addFormRef":rules="rules"label-width="120px":disabled="type == 3"><el-row><el-col :span="14"><el-form-item label="心率范围" prop="heartRateLowerLimit"><el-form-item label="" prop="heartRateLowerLimit"><el-input-number:min="1":max="1000"controls-position="right"v-model="form.heartRateLowerLimit"placeholder=""type="number"style="width: 120px"/></el-form-item><span class="mlr-10"> — </span><el-form-item label="" prop="heartRateUpperLimit"><el-input-number:min="1":max="1000"controls-position="right"v-model="form.heartRateUpperLimit"placeholder=""type="number"style="width: 120px"/></el-form-item><span class="ml-10">次/分钟</span></el-form-item></el-col><el-col :span="10"><el-form-item label="血糖阈值" prop="bloodSugarThreshold"><el-input-number:min="1":max="1000"controls-position="right":precision="1":step="0.1"v-model="form.bloodSugarThreshold"placeholder=""type="number"style="width: 120px"/><span class="ml-10">mmol/L</span></el-form-item></el-col></el-row><el-row><el-col :span="14"><el-form-item label="收缩压范围" prop="systolicLowerLimit"><el-form-item label="" prop="systolicLowerLimit"><el-input-number:min="1":max="1000"controls-position="right"v-model="form.systolicLowerLimit"placeholder=""type="number"style="width: 120px"/></el-form-item><span class="mlr-10"> — </span><el-form-item label="" prop="systolicUpperLimit"><el-input-number:min="1":max="1000"controls-position="right"v-model.number="form.systolicUpperLimit"placeholder=""type="number"style="width: 120px"/></el-form-item><span class="ml-10">mmhg</span></el-form-item></el-col><el-col :span="10"><el-form-item label="血氧阈值" prop="bloodOxygenThreshold"><el-input-number:min="1":max="1000"controls-position="right"v-model="form.bloodOxygenThreshold"placeholder=""type="number"style="width: 120px"/><span class="ml-10">%</span></el-form-item></el-col></el-row><el-row><el-col :span="14"><el-form-item label="舒张压范围" prop="diastolicLowerLimit"><el-form-item label="" prop="diastolicLowerLimit"><el-input-number:min="1":max="1000"controls-position="right"v-model="form.diastolicLowerLimit"placeholder=""type="number"style="width: 120px"/></el-form-item><span class="mlr-10"> — </span><el-form-item label="" prop="diastolicUpperLimit"><el-input-number:min="1":max="1000"controls-position="right"v-model="form.diastolicUpperLimit"placeholder=""type="number"style="width: 120px"/></el-form-item><span class="ml-10">mmhg</span></el-form-item></el-col><el-col :span="10"><el-form-item label="体温阈值" prop="bodyTemperatureUpperLimit"><el-input-number:min="1":max="1000"controls-position="right":precision="1":step="0.1"v-model="form.bodyTemperatureUpperLimit"placeholder=""type="number"style="width: 120px"/><span class="ml-10">℃</span></el-form-item></el-col></el-row><el-form-item label="适用对象" prop="configType"><el-radio-group v-model="form.configType"><el-radio label="1">适用所有使用者</el-radio><el-radio label="2">仅适用此使用者</el-radio></el-radio-group></el-form-item></el-form><template #footer><span class="dialog-footer"><el-button @click="cancelAdd">取消</el-button><el-button type="primary" @click="confirmAdd"> 提交 </el-button></span></template></el-dialog></div>
</template>
<script setup>
import { getSet, saveSet } from "@/api/userCenter/userManage.js";
const { proxy } = getCurrentInstance();
let show = ref(false);
let userId = ref(null);
// 表单数据
let form = ref({systolicUpperLimit: 140, //收缩压阈值上限(mmhg)systolicLowerLimit: 90, //收缩压阈值下限(mmhg)systolicRuleSymbol: "1", //收缩压规则符号diastolicUpperLimit: 90, //舒张压阈值上限(mmhg)diastolicLowerLimit: 60, //舒张压阈值下限(mmhg)diastolicRuleSymbol: "1", //舒张压规则符号heartRateUpperLimit: 100, //心率阈值上限(次/分钟)heartRateLowerLimit: 60, //心率阈值下限(次/分钟)heartRateRuleSymbol: "1", //心率规则符号bloodSugarThreshold: 7.8, //血糖阈值(mmol/L)bloodSugarRuleSymbol: "2", //血糖规则符号bloodOxygenThreshold: 95, //血氧阈值(%)bloodOxygenRuleSymbol: 3, //血氧规则符号bodyTemperatureUpperLimit: 37.2, //体温阈值上限(℃)bodyTemperatureRuleSymbol: "5", //体温规则符号configType: "1", //配置类型 1、适用于租户所与人 2、仅限于自己
});let init = (id) => {userId.value = id;show.value = true;getSet({userId: userId.value,}).then((response) => {form.value = response.data;});
};const rules = reactive({// 收缩压阈值上限(mmhg)上限要大于下限systolicUpperLimit: [{required: true,message: "请输入收缩压阈值上限",trigger: "blur",},{validator: (rule, value, callback) => {if (value < form.value.systolicLowerLimit) {callback(new Error("上限不能小于下限"));} else {callback();}},},],systolicLowerLimit: [{ required: true, message: "请输入收缩压阈值下限", trigger: "blur" },],diastolicUpperLimit: [{ required: true, message: "请输入舒张压阈值上限", trigger: "blur" },{validator: (rule, value, callback) => {if (value < form.value.diastolicLowerLimit) {callback(new Error("上限不能小于下限"));} else {callback();}},},],diastolicLowerLimit: [{ required: true, message: "请输入舒张压阈值下限", trigger: "blur" },],heartRateUpperLimit: [{ required: true, message: "请输入心率阈值上限", trigger: "blur" },{validator: (rule, value, callback) => {if (value < form.value.heartRateLowerLimit) {callback(new Error("上限不能小于下限"));} else {callback();}},},],heartRateLowerLimit: [{ required: true, message: "请输入心率阈值下限", trigger: "blur" },],bloodSugarThreshold: [{ required: true, message: "请输入血糖阈值", trigger: "blur" },],bloodOxygenThreshold: [{ required: true, message: "请输入血氧阈值", trigger: "blur" },],bodyTemperatureUpperLimit: [{ required: true, message: "请输入体温阈值", trigger: "blur" },],configType: [{ required: true, message: "请选择适用对象", trigger: "blur" }],
});
function confirmAdd() {proxy.$refs["addFormRef"].validate((valid) => {if (valid) {saveSet({ ...form.value, userId: userId.value }).then((response) => {proxy.$modal.msgSuccess("提交成功");cancelAdd();});}});
}
/** 重置操作表单 */
function resetAdd() {proxy.resetForm("addFormRef");
}
/** 取消按钮 */
function cancelAdd() {show.value = false;
}
//关键点 把 方法暴露给父组件
defineExpose({ init });
</script>
vue3_弹窗数字表单组件
2025/3/21 20:18:45
来源:https://blog.csdn.net/weixin_43848576/article/details/146347609
浏览:
次
关键词:vue3_弹窗数字表单组件
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com
热文排行
- 《警世贤文》摘抄:处人篇、受恩篇、宽人篇、听劝篇、劝善篇(多读书、多看报、少吃零食多睡觉)
- Vmess协议是什么意思? VLESS与VMess有什么区别?
- Android显示系统(08)- OpenGL ES - 图片拉伸
- `git restore` 和 `git checkout` 用于丢弃工作区的改动, `git switch` 和 `git checkout` 用来切换分支
- nccl 03 记 回顾:从下载,编译到调试 nccl-test
- 【CVE-2024-38077】核弹级Windows RCE漏洞如何自检并修复该漏洞(附批量漏洞检测工具及分析伪代码)
- windows11 ,ubuntu20.04双系统,ubuntu没有wifi的解决方式
- 【HW必备】用友NC-Cloud存在17处漏洞合集
- AD24设计步骤
- ctfshow-web入门-php特性(web132-web136)