Vue3新增時自動獲取當(dāng)前時間的操作方法
如圖,點(diǎn)擊新增的時候自動獲取當(dāng)前的時間來作為創(chuàng)建時間
時間組件:
<el-form-item label="創(chuàng)建時間" prop="createTime"> <el-date-picker v-model="createTime" type="datetime" value-format="x" placeholder="選擇創(chuàng)建時間" /> </el-form-item>
formData:
const formData = ref({ id: undefined, courseType: undefined, subject: undefined, fileType: undefined, appendixName: undefined, creator: userStore.user.id, createTime: undefined, })
const createTime = ref('')
打開彈窗時給創(chuàng)建時間賦值:
/** 打開彈窗 */ const open = async (type: string, id?: number) => { createTime.value = dateFormat() dialogVisible.value = true dialogTitle.value = t('action.' + type) formType.value = type resetForm() userList.value = await UserApi.getSimpleUserList() // 修改時,設(shè)置數(shù)據(jù) if (id) { formLoading.value = true try { formData.value = await ResearchingManageApi.getResearchingManage(id) formData.value.createTime = createTime.value } finally { formLoading.value = false } } // 獲得登錄人名稱 userList.value = await UserApi.getSimpleUserList() userList.value.forEach((item) => { if (item.id === userStore.user.id) { creator.value = item.nickname } }) }
獲取時間方法:
const dateFormat = ()=>{ let date = new Date(); let y = date.getFullYear(); let MM = date.getMonth() + 1<10? ('0' + (date.getMonth() + 1)) : date.getMonth() + 1; let d = date.getDate()< 10 ? ('0' + date.getDate()) : date.getDate() let h = date.getHours() < 10 ? ('0' +date.getHours()) : date.getHours(); const m = date.getMinutes()< 10 ? ('0' + date.getMinutes()) : date.getMinutes(); let s = date.getSeconds() < 10 ? ('0' +date.getSeconds()) : date.getSeconds(); console.log( y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' +s) return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' +s }
為了怕大家找不到代碼應(yīng)該放在那里,我就在下面放上完整代碼,大家自行查找,謝謝大家。
<template> <Dialog :title="dialogTitle" v-model="dialogVisible"> <el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading" > <div style="padding: 8px 0;background: #f8fbff"> <el-row :gutter="24"> <el-form-item label="課程類型" prop="courseType"> <el-select v-model="formData.courseType" placeholder="請選擇課程類型"> <el-option v-for="dict in getStrDictOptions(DICT_TYPE.COURSE_TYPE)" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> <el-form-item label="科目" prop="subject"> <el-select v-model="formData.subject" placeholder="請選擇科目"> <el-option v-for="dict in getStrDictOptions(DICT_TYPE.SUBJECT)" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> <el-form-item label="文件類型" prop="fileType"> <el-select v-model="formData.fileType" placeholder="請選擇文件類型"> <el-option v-for="dict in getStrDictOptions(DICT_TYPE.FILE_TYPE)" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> <el-form-item label="附件名稱" prop="appendixName"> <el-input v-model="formData.appendixName" placeholder="請輸入附件名稱" /> </el-form-item> <el-form-item label="創(chuàng)建人" prop="creator"> <el-select v-model="formData.creator" placeholder="請選擇創(chuàng)建人"> <el-option v-for="dict in userList" :key="dict.id" :label="dict.nickname" :value="dict.id" /> </el-select> </el-form-item> <el-form-item label="創(chuàng)建時間" prop="createTime"> <el-date-picker v-model="createTime" type="datetime" value-format="x" placeholder="選擇創(chuàng)建時間" /> </el-form-item> </el-row> </div> </el-form> <template #footer> <el-button @click="submitForm" type="primary" :disabled="formLoading">確 定</el-button> <el-button @click="dialogVisible = false">取 消</el-button> </template> </Dialog> </template> <script setup lang="ts"> import { getStrDictOptions, DICT_TYPE } from '@/utils/dict' import { ResearchingManageApi, ResearchingManageVO } from '@/api/teach/researchingmanage' import { useUserStore } from '@/store/modules/user' import * as UserApi from '@/api/system/user' const userStore = useUserStore() /** 教研管理 表單 */ defineOptions({ name: 'ResearchingManageForm' }) const userList = ref<UserApi.UserVO[]>([]) // 用戶列表 const { t } = useI18n() // 國際化 const message = useMessage() // 消息彈窗 const dialogVisible = ref(false) // 彈窗的是否展示 const dialogTitle = ref('') // 彈窗的標(biāo)題 const formLoading = ref(false) // 表單的加載中:1)修改時的數(shù)據(jù)加載;2)提交的按鈕禁用 const formType = ref('') // 表單的類型:create - 新增;update - 修改 const formData = ref({ id: undefined, courseType: undefined, subject: undefined, fileType: undefined, appendixName: undefined, creator: userStore.user.id, createTime: undefined, }) const formRules = reactive({ }) const createTime = ref('') const formRef = ref() // 表單 Ref const creator = ref('') /** 打開彈窗 */ const open = async (type: string, id?: number) => { createTime.value = dateFormat() dialogVisible.value = true dialogTitle.value = t('action.' + type) formType.value = type resetForm() userList.value = await UserApi.getSimpleUserList() // 修改時,設(shè)置數(shù)據(jù) if (id) { formLoading.value = true try { formData.value = await ResearchingManageApi.getResearchingManage(id) formData.value.createTime = createTime.value } finally { formLoading.value = false } } // 獲得登錄人名稱 userList.value = await UserApi.getSimpleUserList() userList.value.forEach((item) => { if (item.id === userStore.user.id) { creator.value = item.nickname } }) } defineExpose({ open }) // 提供 open 方法,用于打開彈窗 const dateFormat = ()=>{ let date = new Date(); let y = date.getFullYear(); let MM = date.getMonth() + 1<10? ('0' + (date.getMonth() + 1)) : date.getMonth() + 1; let d = date.getDate()< 10 ? ('0' + date.getDate()) : date.getDate() let h = date.getHours() < 10 ? ('0' +date.getHours()) : date.getHours(); const m = date.getMinutes()< 10 ? ('0' + date.getMinutes()) : date.getMinutes(); let s = date.getSeconds() < 10 ? ('0' +date.getSeconds()) : date.getSeconds(); console.log( y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' +s) return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' +s } /** 提交表單 */ const emit = defineEmits(['success']) // 定義 success 事件,用于操作成功后的回調(diào) const submitForm = async () => { // 校驗(yàn)表單 await formRef.value.validate() // 提交請求 formLoading.value = true try { const data = formData.value as unknown as ResearchingManageVO if (formType.value === 'create') { await ResearchingManageApi.createResearchingManage(data) message.success(t('common.createSuccess')) } else { await ResearchingManageApi.updateResearchingManage(data) message.success(t('common.updateSuccess')) } dialogVisible.value = false // 發(fā)送操作成功的事件 emit('success') } finally { formLoading.value = false } } /** 重置表單 */ const resetForm = () => { formData.value = { id: undefined, courseType: undefined, subject: undefined, fileType: undefined, appendixName: undefined, creator: userStore.user.id, createTime: undefined, } formRef.value?.resetFields() } </script> <style scoped lang="scss"> .el-form-item{ width: 47%; } :deep(.el-form-item__label){ width: 130px !important; } .bold{ width: 20px; height:20px; border-radius: 50%; background:#85afd5; text-align: center; margin-top:5px; margin-left:-10px; color:#fff } .btitle{ line-height:30px; margin-left:10px; color:#84b0d5 } .tip{ border:1px solid #84b0d5; border-radius:0 20px 20px 0; width:140px; height:30px; display:flex; margin-left:30px; margin-bottom:20px } :deep(.el-form-item__content){ display: block; } :deep(.el-date-editor.el-input, .el-date-editor.el-input__wrapper){ width: -webkit-fill-available; } .textarea{ width: 94%; } </style>
到此這篇關(guān)于Vue3新增時自動獲取當(dāng)前時間的文章就介紹到這了,更多相關(guān)Vue3自動獲取當(dāng)前時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue按住shift鍵多選方式(以element框架的table為例)
這篇文章主要介紹了vue按住shift鍵多選方式(以element框架的table為例),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03vuejs如何解決瀏覽器切換頁面后setInterval計時器停止執(zhí)行的問題
setinterval()是定時調(diào)用的函數(shù),可按照指定的周期(以毫秒計)來調(diào)用函數(shù)或計算表達(dá)式,這篇文章主要給大家介紹了關(guān)于vuejs如何解決瀏覽器切換頁面后setInterval計時器停止執(zhí)行的問題,需要的朋友可以參考下2024-01-01Vue中"This dependency was not found"問題的解決方法
這篇文章主要介紹了Vue中"This dependency was not found"的問題的解決方法,需要的朋友可以參考下2018-06-06Vue實(shí)現(xiàn)網(wǎng)頁首屏加載動畫及頁面內(nèi)請求數(shù)據(jù)加載loading效果
Loading加載動畫組件看起來很簡單不重要,實(shí)際上它是保證用戶留存的關(guān)鍵一環(huán),下面這篇文章主要給大家介紹了關(guān)于Vue實(shí)現(xiàn)網(wǎng)頁首屏加載動畫及頁面內(nèi)請求數(shù)據(jù)加載loading效果的相關(guān)資料,需要的朋友可以參考下2023-02-02解決vue v-for 遍歷循環(huán)時key值報錯的問題
今天小編就為大家分享一篇解決vue v-for 遍歷循環(huán)時key值報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09詳解用webpack2.0構(gòu)建vue2.0超詳細(xì)精簡版
本篇文章主要介紹了詳解用webpack2.0構(gòu)建vue2.0超詳細(xì)精簡版,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04