(el-Time-Picker)操作(不使用 ts):Element-plus 中 TimePicker 组件的使用及输出想要时间格式需求的解决过程

Ⅰ、Element-plus 提供的 TimePicker 时间选择器组件与想要目标情况的对比:

1、Element-plus 提供 TimePicker 组件情况:

其一、Element-ui 自提供的 TimePicker 代码情况为(示例的代码):

在这里插入图片描述

// Element-plus 提供的组件代码:
<template><div class="example-basic"><el-time-picker v-model="value1" placeholder="Arbitrary time" /><el-time-pickerv-model="value2"arrow-controlplaceholder="Arbitrary time"/></div>
</template><script lang="ts" setup>
import { ref } from 'vue'
const value1 = ref()
const value2 = ref()
</script><style>
.example-basic .el-date-editor {margin: 8px;
}
</style>

代码地址:https://element-plus.org/zh-CN/component/time-picker.html

其二、页面的显示情况为:

在这里插入图片描述

其三、页面想要的显示情况为:

在这里插入图片描述

Ⅱ、在项目中使用 TimePicker 组件遇到的问题:

1、遇到的问题:

使用该 TimePicker 组件遇到的问题:
其一、主要是处理后台返回的数据值,使其能在时间属性中正常展示;
其二、摸索该 TimePicker 组件,使其输出数据类型为:19:54:28;

2、无默认值,默认输出类型为:Thu Aug 08 2024 11:15:18 GMT+0800 (中国标准时间)(输出时间对象)

其一、代码为:

// 注意:此时没有从后台获取值来展示,而只是切换 el-time-picker 值后下发的数据类型;

//第一步:
const dateConfigurationForm = ref({})//第二步:从后台拿值并处理数据;
dateConfigurationForm.value.hourValue = resp.data.sys_clock_time[0].time//第三步:
<el-form-item label="时间[HH:MM:SS]:" prop="hourValue"><el-time-picker v-model="dateConfigurationForm.hourValue" format="HH:mm:ss" placeholder="选择时间" />
</el-form-item>//第四步:提交的操作;
dateTimeObj.time = dateConfigurationForm.value.hourValue
其二、截图为:

//不给时间属性设置初始值时,输出的数据类型为:Thu Aug 08 2024 11:15:18 GMT+0800 (中国标准时间)(输出时间对象)
在这里插入图片描述

3、无默认值,默认输出类型为:20:32:16(使用格式)

其一、代码为:

// 注意:此时没有从后台获取值来展示,而只是切换 el-time-picker 值后下发的数据类型;

//第一步:
const dateConfigurationForm = ref({})//第二步:从后台拿值并处理数据;
dateConfigurationForm.value.hourValue = resp.data.sys_clock_time[0].time//第三步:
<el-form-item label="时间[HH:MM:SS]:" prop="hourValue"><el-time-picker v-model="dateConfigurationForm.hourValue" format="HH:mm:ss" value-format="HH:mm:ss" placeholder="选择时间" />
</el-form-item>//第四步:提交的操作;
dateTimeObj.time = dateConfigurationForm.value.hourValue
其二、截图为:

//不给时间属性设置初始值时,输出的数据类型为:20:32:16(使用格式)
在这里插入图片描述

4、无默认值,默认输出类型为:19/33/36(使用格式)

其一、代码为:

// 注意:此时没有从后台获取值来展示,而只是切换 el-time-picker 值后下发的数据类型;

//第一步:
const dateConfigurationForm = ref({})//第二步:从后台拿值并处理数据;
dateConfigurationForm.value.hourValue = resp.data.sys_clock_time[0].time//第三步:
<el-form-item label="时间[HH:MM:SS]:" prop="hourValue"><el-time-picker v-model="dateConfigurationForm.hourValue" format="HH:mm:ss" value-format="HH/mm/ss" placeholder="选择时间" />
</el-form-item>//第四步:提交的操作;
dateTimeObj.time = dateConfigurationForm.value.hourValue
其二、截图为:

//不给时间属性设置初始值时,输出的数据类型为:19/33/36(使用格式)
在这里插入图片描述

5、无默认值,默认输出类型为:1723131516000(时间戳)

其一、代码为:

// 注意:此时没有从后台获取值来展示,而只是切换 el-time-picker 值后下发的数据类型;

//第一步:
const dateConfigurationForm = ref({})//第二步:从后台拿值并处理数据;
dateConfigurationForm.value.hourValue = resp.data.sys_clock_time[0].time//第三步:
<el-form-item label="时间[HH:MM:SS]:" prop="hourValue"><el-time-picker v-model="dateConfigurationForm.hourValue" format="HH:mm:ss" value-format="x" placeholder="选择时间" />
</el-form-item>//第四步:提交的操作;
dateTimeObj.time = dateConfigurationForm.value.hourValue
其二、截图为:

//不给时间属性设置初始值时,输出的数据类型为:1723131516000(使用格式)

在这里插入图片描述

6、有初始值类型为:19:54:28,可设置输出类型为:19:54:28(使用格式)

其一、代码为:
//第一步:
const dateConfigurationForm = ref({})//第二步:从后台拿值并处理数据;
dateConfigurationForm.value.hourValue = resp.data.sys_clock_time[0].time//第三步:
<el-form-item label="时间[HH:MM:SS]:" prop="hourValue"><el-time-picker v-model="dateConfigurationForm.hourValue" format="HH:mm:ss" value-format="HH:mm:ss"  placeholder="选择时间" />
</el-form-item>//第四步:提交的操作;
dateTimeObj.time = dateConfigurationForm.value.hourValue
其二、截图为:

// 给时间属性设置初始值时,初始值为:19:54:28(后台返回数据格式)

在这里插入图片描述

其三、页面展示与数据下发类型的说明:

A、不设置 format 属性的情况下:

value-format 属性不设置,没有弹出时间配置的框,不能被识别,页面抛错且控制台抛错;

在这里插入图片描述

value-format 属性设置为 value-format="HH:mm:ss",下发的数据结果为:19:54:28;
注意:此时无论手动切换时间的值还是不切换,下发的数据都是 19:54:28(即:以返回值的数据格式为主);

在这里插入图片描述

value-format 属性设置为 value-format="HH/mm/ss",下发的数据结果为:19/54/28;
注意:此时是手动切换过时间的值,否则下发的数据都是 19:54:28 (即:以返回值的数据格式为主);

在这里插入图片描述

value-format 属性设置为 value-format="x",没有弹出时间配置的框,不能选择,有问题且控制台抛错;
在这里插入图片描述
B、 format 属性设置为 format="HH:mm:ss" 的情况下:

value-format 属性不设置,没有弹出时间配置的框,不能选择,有问题且控制台抛错;

在这里插入图片描述

value-format 属性设置为 value-format="HH:mm:ss",下发的数据结果为:19:54:28;
注意:此时无论手动切换时间的值还是不切换,下发的数据都是 19:54:28(即:以返回值的数据格式为主);

在这里插入图片描述

value-format 属性设置为 value-format="HH/mm/ss",下发的数据结果为:19/54/28;
注意:此时是手动切换过时间的值,否则下发的数据都是 19:54:28 (即:以返回值的数据格式为主);

在这里插入图片描述

value-format 属性设置为 value-format="x",没有弹出时间配置的框,不能选择,有问题且控制台抛错;

在这里插入图片描述

C、format 属性设置为 format="HH/mm/ss" 的情况下:

value-format 属性不设置,没有弹出时间配置的框,不能选择,有问题且控制台抛错;

在这里插入图片描述

value-format 属性设置为 value-format="HH:mm:ss",下发的数据结果为:19:54:28;
注意:此时无论手动切换时间的值还是不切换,下发的数据都是 19:54:28(即:以返回值的数据格式为主);

在这里插入图片描述

value-format 属性设置为 value-format="HH/mm/ss",下发的数据结果为:19/54/28;
注意:此时是手动切换过时间的值,否则下发的数据都是 19:54:28 (即:以返回值的数据格式为主);

在这里插入图片描述

value-format 属性设置为 value-format="x",没有弹出时间配置的框,不能选择,有问题且控制台抛错;

在这里插入图片描述

D、format 属性设置为 format="x" 的情况下:

value-format 属性不设置,没有弹出时间配置的框,不能选择,有问题且控制台抛错;

在这里插入图片描述

value-format 属性设置为 value-format="HH:mm:ss",页面能展示数值信息,但没有弹出时间配置的框,不能选择,有问题且控制台抛错;

在这里插入图片描述

value-format 属性设置为 value-format="HH/mm/ss",下发的数据结果为:19/54/28;
注意:此时是手动切换过时间的值,否则下发的数据都是 19:54:28 (即:以返回值的数据格式为主),但弹出来时间配置的框,貌似有问题,少了秒;

在这里插入图片描述

value-format 属性设置为 value-format="x",没有弹出时间配置的框,不能选择,有问题且控制台抛错;

在这里插入图片描述

7、有初始值类型为:19/54/28,可设置输出类型为:19/54/28(使用格式)

其一、代码为:
//第一步:
const dateConfigurationForm = ref({})//第二步:从后台拿值并处理数据;
dateConfigurationForm.value.hourValue = resp.data.sys_clock_time[0].time//第三步:
<el-form-item label="时间[HH:MM:SS]:" prop="hourValue"><el-time-picker v-model="dateConfigurationForm.hourValue" format="HH/mm/ss" value-format="HH/mm/ss"  placeholder="选择时间" />
</el-form-item>//第四步:提交的操作;
dateTimeObj.time = dateConfigurationForm.value.hourValue
其二、截图为:

// 给时间属性设置初始值时,初始值为:19/54/28(后台返回数据格式)

在这里插入图片描述

其三、页面展示与数据下发类型的说明:

// formatvalue-format 的配合总共有 16 种;
// 此时只展示拿什么类型的数据就配置什么类型的数据:

format 属性设置为 format="HH/mm/ss"value-format 属性设置为 value-format="HH/mm/ss" 的情况下,下发的数据结果为:19/54/28;
注意:此时无论手动切换时间的值还是不切换,下发的数据都是 19/54/28(即:以返回值的数据格式为主);

在这里插入图片描述

8、有初始值类型为:43200000,可设置输出类型为:74156036400000(使用格式)

其一、代码为:
//第一步:
const dateConfigurationForm = ref({})//第二步:从后台拿值并处理数据;
dateConfigurationForm.value.hourValue = resp.data.sys_clock_time[0].time//第三步:
<el-form-item label="时间[HH:MM:SS]:" prop="hourValue"><el-time-picker v-model="dateConfigurationForm.hourValue" format="x" value-format="x"  placeholder="选择时间" />
</el-form-item>//第四步:提交的操作;
dateTimeObj.time = dateConfigurationForm.value.hourValue
其二、截图为:

// 给时间属性设置初始值时,初始值为:43200000(后台返回数据格式)

在这里插入图片描述

9、对 Time Picker 组件可能有用的参数值:

在这里插入图片描述

其三、页面展示与数据下发类型的说明:

// formatvalue-format 的配合总共有 16 种;
// 此时只展示拿什么类型的数据就配置什么类型的数据:
// 关于下发的 74156036400000 数据值,再切换时间的时候,前面四五个数据值 7415 不动,具体待深究;

format 属性设置为 format="x"value-format 属性设置为 value-format="x" 的情况下,下发的数据结果为:74156036400000;
注意:此时无论手动切换时间的值还是不切换,下发的数据都是 74156036400000(即:以返回值的数据格式为主);

在这里插入图片描述

Ⅲ、整体代码的面貌:

其一、整体代码为:

<script setup>import axios from 'axios';
import { ref,inject,onMounted } from 'vue'
import { ElMessage } from 'element-plus'const dateConfigurationFormRef = ref(null)
const dateConfigurationForm = ref({})
const value1 = ref('')
const rootapi = inject("rootapi");const checkZone = (rule, value,callback) => {if(/^[\da-zA-Z!@#$%&?_-]{3,31}$/.test(value)) {callback()} else {callback(new Error('请填写3至31个字母、数字或 -,_,!,@,#,$,%,&,?'))}
}const rules = ref({dateValue: [{ required: true, message: '日期不能为空', trigger: 'blur' },],hourValue: [{ required: true, message: '时间不能为空', trigger: 'blur' },],zone: [{ required: true, message: '时区名称不能为空', trigger: 'blur' },{ validator: checkZone, trigger: 'blur' }],flags: [{ required: true, message: '时区偏移类型不能为空', trigger: 'change' },],offsetHourValue: [{ required: true, message: '时区偏移量不能为空', trigger: 'blur' },]
})const options = [{value: 1,label: 'add',},{value: 2,label: 'minus',}
]const date_configuration_submit = async() => {if (!dateConfigurationFormRef) return;dateConfigurationFormRef.value.validate( async(valid) => {if (valid) {let dateTimeUrl, dateTimeObj={}, zoneTimeUrl, zoneTimeObj={}dateTimeUrl = "/api/system/clock_time/set"dateTimeObj.date = dateConfigurationForm.value.dateValue// dateTimeObj.date = value1.valuedateTimeObj.time = dateConfigurationForm.value.hourValuezoneTimeUrl = "/api/system/clock_time_zone/set"zoneTimeObj.zone = dateConfigurationForm.value.zonezoneTimeObj.flags = dateConfigurationForm.value.flagszoneTimeObj.time = dateConfigurationForm.value.offsetHourValuetry {// (后面需要放开的二次认证)// let result = await rootapi.post_crit_auth(url, {dummy: "dummy"}, count);// if (!result) return;// await axios.post(url,new URLSearchParams(ruleForm.value)).then(response => {//   console.log(response,111);// }).catch(error => {//   console.log(error,222);// })const dateTimeRequest = await axios.post(dateTimeUrl, new URLSearchParams(dateTimeObj))const zoneTimeRequest = await axios.post(zoneTimeUrl, new URLSearchParams(zoneTimeObj))axios.all([dateTimeRequest, zoneTimeRequest]).then(axios.spread(function(dateTimeRes, zoneTimeRes) { if(dateTimeRes.status === 200 && zoneTimeRes.status === 200) {ElMessage({ message: '提交成功!',type: 'success',})// 更新时间配置表;date_configuration_refresh()} else {ElMessage.error('提交失败!'+ res.message)}}))} catch(err) {if (err.response) {let resp = err.response;rootapi.show_dialog("unexpected error for " + "POST" + " " + dateTimeUrl + ":", resp.data, true);}else {rootapi.show_dialog("unexpected frontend error:", err.message, true);}}} else {return false;}});
}onMounted(() => {date_configuration_refresh()let obj1 = 123let obj2 = '456'console.log(obj1.toString());console.log(typeof(obj1.toString()),123456789)console.log(obj2.toString());console.log(typeof(obj2.toString()),987654321)
})// 刷新及获取数据操作
const date_configuration_refresh = () => {get_date_time()get_zone_time()
}// 获取页面日期和时间的信息展示:
const get_date_time = async() => {// console.log("TODO: GET /api/system/clock_time/get");// const resp = await axios.get("/api/system/clock_time/get");const resp = {"data": {"sys_clock_time": [{"date": "2024-08-07","time": "19:54:28"}]},"status": 200,"statusText": "OK","headers": {"content-type": "application/json","transfer-encoding": "chunked"},"config": {"transitional": {"silentJSONParsing": true,"forcedJSONParsing": true,"clarifyTimeoutError": false},"adapter": ["xhr","http"],"transformRequest": [null],"transformResponse": [null],"timeout": 0,"xsrfCookieName": "XSRF-TOKEN","xsrfHeaderName": "X-XSRF-TOKEN","maxContentLength": -1,"maxBodyLength": -1,"env": {},"headers": {"Accept": "application/json, text/plain, */*"},"method": "get","url": "/api/system/clock_time/get"},"request": {}}console.log(resp,1111111);console.log(resp.data,222222);console.log(resp.data.sys_clock_time,33333333);if(resp?.status === 200 && resp?.data?.sys_clock_time) {dateConfigurationForm.value.dateValue = resp.data.sys_clock_time[0].datedateConfigurationForm.value.hourValue = resp.data.sys_clock_time[0].time}
}// 获取页面时区的信息展示:
const get_zone_time = async() => {// console.log("TODO: GET /api/system/clock_time_zone/get");// const resp = await axios.get("/api/system/clock_time_zone/get");const resp ={"data": {"sys_clock_time_zone": [{"zone": "Beijing","flags": 1,"time": "08:00:00"}]},"status": 200,"statusText": "OK","headers": {"content-type": "application/json","transfer-encoding": "chunked"},"config": {"transitional": {"silentJSONParsing": true,"forcedJSONParsing": true,"clarifyTimeoutError": false},"adapter": ["xhr","http"],"transformRequest": [null],"transformResponse": [null],"timeout": 0,"xsrfCookieName": "XSRF-TOKEN","xsrfHeaderName": "X-XSRF-TOKEN","maxContentLength": -1,"maxBodyLength": -1,"env": {},"headers": {"Accept": "application/json, text/plain, */*"},"method": "get","url": "/api/system/clock_time_zone/get"},"request": {}}console.log(resp,1111111);console.log(resp.data,222222);console.log(resp.data.sys_clock_time_zone,33333333);if(resp?.status === 200 && resp?.data?.sys_clock_time_zone) {dateConfigurationForm.value.zone = resp.data.sys_clock_time_zone[0].zonedateConfigurationForm.value.flags = resp.data.sys_clock_time_zone[0].flagsdateConfigurationForm.value.offsetHourValue = resp.data.sys_clock_time_zone[0].time     }
}</script><template><div class="date_configuration_project"><div class="date_project"><div class="project_title">时间配置</div><el-form ref="dateConfigurationFormRef" :model="dateConfigurationForm" :rules="rules"label-width="180px" class="demo-ruleForm"><el-form-item label="日期[YYYY-MM-DD]:" prop="dateValue"><el-date-picker v-model="dateConfigurationForm.dateValue" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="选择日期"/></el-form-item><el-form-item label="时间[HH:MM:SS]:" prop="hourValue"><el-time-picker v-model="dateConfigurationForm.hourValue" format="HH:mm:ss" value-format="HH:mm:ss" placeholder="选择时间" /><!-- format="HH:mm:ss" --></el-form-item><el-form-item label="时区名称:" prop="zone"><el-input v-model="dateConfigurationForm.zone" autocomplete="off" /></el-form-item><el-form-item label="时区偏移类型:" prop="flags"><el-select v-model="dateConfigurationForm.flags" class="m-2" placeholder="选择" ><el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"/></el-select></el-form-item><el-form-item label="时区偏移量[HH:MM:SS]:" prop="offsetHourValue" ><el-time-picker v-model="dateConfigurationForm.offsetHourValue" value-format="HH:mm:ss"  placeholder="选择偏移量" /></el-form-item><!-- 报错原因:format="HH:mm:ss"--><!-- <el-form-item label="时间[HH:MM:SS]:" prop="hourValue"><el-time-picker v-model="dateConfigurationForm.hourValue" value-format="HH:mm:ss" placeholder="Arbitrary time"/></el-form-item> --></el-form><div class="project_footer"><el-button type="primary" @click="date_configuration_submit"><el-icon :size="20" style="margin-right: 5px;"><CircleCheckFilled /></el-icon>提交</el-button><el-button @click="date_configuration_refresh"><el-icon :size="20" style="margin-right: 5px;"><Refresh /></el-icon>刷新</el-button></div></div></div>
</template><style lang="scss" scoped>
.date_configuration_project {margin: 30px auto;width: 470px;background-color: #e6f1f9;box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 40px 0px;.date_project {margin: 20px;.project_title {text-align: center;font-weight: 700;margin-bottom: 20px;}.project_footer {text-align: center;margin: 10px 0 20px;}}// 日期.demo-date-picker {display: flex;width: 100%;padding: 0;flex-wrap: wrap;}.demo-date-picker .block {padding: 30px 0;text-align: center;border-right: solid 1px var(--el-border-color);flex: 1;}.demo-date-picker .block:last-child {border-right: none;}.demo-date-picker .demonstration {display: block;color: var(--el-text-color-secondary);font-size: 14px;margin-bottom: 20px;}// 时间.example-basic .el-date-editor {margin: 8px;}
}
</style>

其二、整体页面的展示为:

在这里插入图片描述

Ⅳ、小结:

其一、哪里有不对或不合适的地方,还请大佬们多多指点和交流!
其二、若有转发或引用本文章内容,请注明本博客地址(直接点击下面 url 跳转) https://blog.csdn.net/weixin_43405300,创作不易,且行且珍惜!
其三、有兴趣的话,可以多多关注这个专栏(Vue(Vue2+Vue3)面试必备专栏)(直接点击下面 url 跳转):https://blog.csdn.net/weixin_43405300/category_11525646.html?spm=1001.2014.3001.5482
其四、再有兴趣的话,也可以多多关注这个专栏(Java)(直接点击下面 url 跳转):https://blog.csdn.net/weixin_43405300/category_12654744.html?spm=1001.2014.3001.5482

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/394603.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go - 10. * 值类型和指针类型的差异

目录 一.引言 二.接收者类型 三.代码示例 1.指针接收者 2.值接收者 3.运行结果对比 4.代码修改 5.刨根问底 四.总结 一.引言 go 语言中 func (c *Title) 和 func (c Title) 两个方法的传参差一个 * 号&#xff0c;二者的区别是一个是指针类型&#xff0c;一个是值类型…

MATLAB中的imshow函数的使用方法及实例应用

一、imshow函数 imshow是MATLAB工具软件中用于显示图像的函数&#xff0c;它支持多种图像类型&#xff0c;包括灰度图像、真彩色图像、索引图像等。以下是对imshow常用用法: imshow(I) 在图窗中显示灰度图像 I。imshow 使用图像数据类型的默认显示范围&#xff0c;并优化图窗、…

React(三):PDF文件在线预览(简易版)

效果 依赖下载 https://mozilla.github.io/pdf.js/getting_started/ 引入依赖 源码 注意&#xff1a;pdf文件的预览地址需要配置代理后才能显示出来 import ./index.scss;function PreviewPDF() {const PDF_VIEWER_URL new URL(./libs/pdfjs-4.5.136-dist/web/viewer.html, im…

软硬链接和动静态库

为什么一定要提供路径呢&#xff1f; 因为要根据路径找到文件 一切与路径相关的问题都是方便用户去访问文件 软硬链接 给我康康 软链接是这样的&#xff1a; ln -s file_target1.txt file_soft.link 软链接有独特的innode 这是硬链接&#xff1a; ln file_target2.txt …

【Redis】缓存三大问题与缓存一致性问题

缓存三大问题 缓存穿透 缓存穿透是指用户查询的数据在缓存和数据库中都不存在&#xff0c;导致每次请求都会直接落到数据库上&#xff0c;增加数据库负载。 解决方案 1&#xff09;参数校验 一些不合法的参数请求直接抛出异常信息返回给客户端。比如查询的数据库 id 不能小于…

python3.10安装geopandans实战笔记

1.geopandans安装所需软件库版本 python3.10 GDAL-3.4.3-cp310-cp310-win_amd64.whl【手动下载】 Fiona-1.8.21-cp310-cp310-win_amd64.whl【手动下载】 shapely-2.0.2-cp310-cp310-win_amd64.whl【手动下载】 pyproj 手动下载地址&#xff1a;https://download.csdn.net/down…

Unity入门5——材质

创建材质 点击Assets → Create → Material&#xff0c;得到一个默认材质球的副本。 使用材质 直接把材质球拖拽到物体上&#xff0c;或设置mesh renderer组件下的Materials 数组中第一个元素

html+css网页设计公司网站模版3个页面 无js 静态页面

htmlcss网页设计公司网站模版3个页面 无js 静态页面 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源…

iOS弱引用

背景&#xff1a;在面试过程中被问到如果两个对象已经发生循环引用了&#xff0c;该如何将他们剪断&#xff0c;在运行态的时候。 由于这个场景比较抽象&#xff0c;我理解面试官是希望我通过运行时的方法和方式来解决循环引用。 解决方案一: 重写setter用关联对象来实现wea…

数据库规范化设计 5大基本原则

规范化设计原则是数据库设计的基本原则&#xff0c;有助于减少数据冗余&#xff0c;提高数据一致性和完整性&#xff0c;简化数据管理&#xff0c;增强数据安全性&#xff0c;对整个开发项目至关重要。而缺乏规范化设计会导致数据冗余&#xff0c;增加存储成本&#xff0c;引发…

java 如何查看jar版本冲突,如何查看哪个模块依赖冲突,idea查看jar包冲突

1. idea 下载插件&#xff1a; 2. 如上图所示&#xff0c;下载Maven Helper, 注意是maven helper 不是别的 3.重启idea 4.点击pom文件&#xff0c;然后点击如图所示&#xff1a; 5. 如此即可查到&#xff0c;某个jar包 都有哪个模块依赖&#xff0c;使用的什么版本&#xff0…

【JavaEE】定时器

目录 前言 什么是定时器 如何使用java中的定时器 实现计时器 实现MyTimeTask类 Time类中存储任务的数据结构 实现Timer中的schedule方法 实现MyTimer中的构造方法 处理构造方法中出现的线程安全问题 完整代码 考虑在限时等待wait中能否用sleep替换 能否用PriorityBlo…

RISC-V竞赛|第二届 RISC-V 软件移植及优化锦标赛报名正式开始!

目录 赛事背景 赛道方向 适配夺旗赛 优化竞速赛 比赛赛题&#xff08;总奖金池8万元&#xff01;&#xff09; &#x1f525;竞速赛 - OceanBase 移植与优化 比赛赛程&#xff08;暂定&#xff09; 赛事说明 「赛事背景」 为了推动 RISC-V 软件生态更快地发展&#xff0…

收银系统源码-连锁店版本

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 私有化独立部署/全开源源码&#xff0c;系统开发语言&#xff1a; 核心开发语言: PHP、HTML…

【vue3】【elementPlus】【黑暗模式】

从创建vue3项目到引入elementPlus组件并设置黑暗模式 1.创建vue3项目&#xff1a; npm init vuelatest1.1 根据需求定制项目插件&#xff1a; 2.引入elementPlus组件&#xff1a; npm install element-plus --save2.1 如图注册全局elementPlus组件&#xff1a; ------------…

SPSS、Python员工满意度问卷调查激励保健理论研究:决策树、随机森林和AdaBoost|附代码数据

全文链接&#xff1a;https://tecdat.cn/?p37293 原文出处&#xff1a;拓端数据部落公众号 在深入了解公司当前的实际情况和员工内心真实想法的基础上&#xff0c;我们旨在从专业视角出发&#xff0c;为企业在组织管理方面的不足进行诊断&#xff0c;并进行全面审视。 为了…

vue实现PC端图片放大缩小可鼠标拖动,鼠标滚轮控制放大缩小完整代码付效果图

vue实现图片放大缩小可鼠标拖动&#xff0c;鼠标滚轮控制放大缩小完整代码付效果图 效果图&#xff1a; 创建一个ImageViewer 组件&#xff0c;并且在当前页面引用完整代码如下&#xff1a; 代码引用&#xff1a; <template><view><image-viewer :imageUrl&q…

2024年必备技能:智联招聘岗位信息采集技巧全解析

随着大数据时代的发展&#xff0c;精准定位职业机会成为程序员求职的关键。本文将深入解析如何利用Python高效采集智联招聘上的岗位信息&#xff0c;助你在2024年的职场竞争中脱颖而出。通过实战代码示例&#xff0c;揭示网络爬虫背后的秘密&#xff0c;让你轻松掌握这一必备技…

苹果应用程序清理卸载工具:App Cleaner Uninstaller Pro for Mac

App Cleaner & Uninstaller Pro 是一款专为 Mac OS X 操作系统设计的应用程序清理和卸载工具。这款软件的主要功能是帮助用户彻底删除不需要的应用程序、插件和残留文件&#xff0c;从而释放磁盘空间并提高系统性能。 特点和优势&#xff1a; 彻底卸载应用程序&#xff1a;…

历代文学-技术生态-总体介绍

1. 历代文学简介 历代文学&#xff08;https://literature.sinhy.com/#/literature?__c1000&#xff0c;微信小程序可直接搜索“历代文学”&#xff09;是一个由两个人&#xff08;一个后端和一个前端&#xff09;开发的文学网站&#xff0c;是一个收录从古到今、以及古今中外…