首页 > 其他分享 >2024年5月27日第五十六篇

2024年5月27日第五十六篇

时间:2024-05-27 22:35:12浏览次数:17  
标签:el 27 const color value 2024 student 第五十六 ref

今天做了一个网页开发,联系了自己的增删改查,和弹出式表单的设计。

<template>
  <el-container class="layout-container-demo">
    <el-aside width="200px">
      <el-scrollbar>
        <el-menu :default-openeds="['1', '3']">
          <el-sub-menu index="1">
            <template #title>
             
            </template>
            <el-menu-item-group>
              <template #title>Group 1</template>
              <el-menu-item  index="1-1">学生信息管理</el-menu-item>
             
            </el-menu-item-group>
          </el-sub-menu>
        </el-menu>
      </el-scrollbar>
    </el-aside>

    <el-container>
      <el-header style="text-align: center; font-size: 12px;"> 
        <h1 class="text-black-blue font-bold font-large" style="display: inline-block; vertical-align: middle;">学生信息管理系统</h1>

    

      </el-header>
      <br>
      <div>
    <el-button type="primary" size="small" @click="openDialog">
      打开表单
    </el-button>
    <el-dialog
      title="填写表单"
      :visible="dialogVisible"
      @close="closeDialog"
    >
      <el-form :model="form">
        <el-form-item label="名字" :label-width="formLabelWidth">
          <el-input v-model="form.name"></el-input>
        </el-form-item>
        <el-form-item label="邮箱" :label-width="formLabelWidth">
          <el-input v-model="form.email"></el-input>
        </el-form-item>
      </el-form>
      <template v-slot:footer>
        <span class="dialog-footer">
          <el-button @click="closeDialog">取消</el-button>
          <el-button type="primary" @click="submitForm">提交</el-button>
        </span>
      </template>
    </el-dialog>
  </div>
      <!-- <div class="toolbar" style="display: flex; gap: 10px;">
    <div>
      政策名称<el-input style="width: 200px" placeholder="请输入政策名称" v-model="name" />
    </div>
    <div>
      发文字号<el-input style="width: 200px" placeholder="请输入发文字号" v-model="document" />
    </div>
    <div>
      发文机构<el-input style="width: 200px" placeholder="请输入发文机构" v-model="organ" />
    </div>
    <div>
      全文检索<el-input style="width: 200px" placeholder="" v-model="content" />
    </div>
    <div>
      <el-button type="primary" @click="search">搜索</el-button>
    </div>
  </div> -->
  <div>
    <el-table :data="currentPageData" style="width: 100%">
    <el-table-column label="学号" prop="snum" />
    <el-table-column label="姓名" prop="name" />
    <el-table-column label="性别" prop="gender" />
    <el-table-column label="出生日期" prop="birthday" />
    <el-table-column label="操作">
      <template v-slot="scope">
        <el-button 
          size="small" 
          type="primary" 
          @click="handleEdit(scope.row)">编辑</el-button>
        <el-button 
          size="small" 
          type="danger" 
          @click="handleDelete(scope.row)">删除</el-button>
      </template>
    </el-table-column>
  </el-table>
<div style="display: flex; justify-content: center;">
  <el-pagination
    background
    layout="prev, pager, next"
    :total="total"
    :current-page="currentPage"
    @current-change="handleCurrentChange"
    :page-size="pageSize"
  />
</div>

</div>
    </el-container>
  </el-container>
</template>
<script setup>
import {  onMounted,computed, ref} from 'vue'
import { api } from '@/api/apis'
import { ElMessage } from 'element-plus';
import { ElMessageBox } from 'element-plus'

const dialogVisible = ref(false)

const handleClose = (done) => {
  ElMessageBox.confirm('Are you sure to close this dialog?')
    .then(() => {
      done()
    })
    .catch(() => {
      // catch error
    })
}
const currentPageData = ref([]);
const currentPage = ref(1); 
const pageSize = ref(10); 
const total = ref(0); 
let drawerData =ref('')
let studentdata =ref('')
const handleCurrentChange = (newPage) => {
  // 根据新的页码更新当前页的数据
  currentPage.value = newPage;
  const startIndex = (newPage - 1) * pageSize.value;
  currentPageData.value = student.value.slice(startIndex, startIndex + pageSize.value);
}

function openDialog() {
      dialogVisible = true;
    }
function closeDialog() {
      this.dialogVisible = false;
    },
    submitForm() {
      // 提交表单的逻辑
      console.log('Form submitted:', this.form);
      this.dialogVisible = false;
    }
  }
function showDrawer(row) {
       drawerData = row; // 更新当前行的数据
      this.drawer = true; // 打开 el-drawer
    }
function handleEdit(row) {
      console.log('Edit:', row);
      // Add your edit logic here
    }
function handleDelete(row){
  console.log('Delete:', row);
  studentdata=row;
  console.log('Delete:', studentdata);
  api.studentApi.delete(studentdata).then((res) => {
    ElMessage.success('删除成功');
    fetchSystemList();
  })
}
onMounted(() => { 
  fetchSystemList();
 
});

function fetchSystemList() {
    api.studentApi.get().then((res) => {
      student.value = res.data
      currentPageData.value = student.value.slice(0, pageSize.value);
      total.value = student.value.length;
    })
  }
const drawer = ref(false)
  const student=ref([])

const name=ref('')
const document=ref('')
const organ=ref('')
const content=ref('')
function search(){
  api.studentApi.search(name.value,document.value,organ.value,content.value).then((res) => {
    student.value = res.data;
    currentPageData.value = student.value.slice(0, pageSize.value);
      total.value = student.value.length;
  })
}

</script>

<style scoped>
.button-container {
  display: flex;
  justify-content: center; /* 水平居中 */
}

.layout-container-demo {
  width: 100%;
}
.layout-container-demo .el-header {
  position: relative;
  background-color: var(--el-color-primary-light-7);
  color: var(--el-text-color-primary);
}
.layout-container-demo .el-aside {
  color: var(--el-text-color-primary);
  background: var(--el-color-primary-light-8);
}
.layout-container-demo .el-menu {
  border-right: none;
}
.layout-container-demo .el-main {
  padding: 0;
}
.layout-container-demo .toolbar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  right: 20px;
}
.text-center {
  text-align: center;
}

.text-black-blue {
  color: #0000FF; /* 黑蓝色 */
}

.font-bold {
  font-weight: bold; /* 加粗 */
}

.font-large {
  font-size: 36px;
}
.el-drawer__wrapper.custom-modal {
  background-color: rgba(0, 0, 0, 0.5) !important;
}


</style>

 

<template>   <el-container class="layout-container-demo">     <el-aside width="200px">       <el-scrollbar>         <el-menu :default-openeds="['1', '3']">           <el-sub-menu index="1">             <template #title>                           </template>             <el-menu-item-group>               <template #title>Group 1</template>               <el-menu-item  index="1-1">学生信息管理</el-menu-item>                           </el-menu-item-group>           </el-sub-menu>         </el-menu>       </el-scrollbar>     </el-aside>
    <el-container>       <el-header style="text-align: center; font-size: 12px;">         <h1 class="text-black-blue font-bold font-large" style="display: inline-block; vertical-align: middle;">学生信息管理系统</h1>
   
      </el-header>       <br>       <div>     <el-button type="primary" size="small" @click="openDialog">       打开表单     </el-button>     <el-dialog       title="填写表单"       :visible="dialogVisible"       @close="closeDialog"     >       <el-form :model="form">         <el-form-item label="名字" :label-width="formLabelWidth">           <el-input v-model="form.name"></el-input>         </el-form-item>         <el-form-item label="邮箱" :label-width="formLabelWidth">           <el-input v-model="form.email"></el-input>         </el-form-item>       </el-form>       <template v-slot:footer>         <span class="dialog-footer">           <el-button @click="closeDialog">取消</el-button>           <el-button type="primary" @click="submitForm">提交</el-button>         </span>       </template>     </el-dialog>   </div>       <!-- <div class="toolbar" style="display: flex; gap: 10px;">     <div>       政策名称<el-input style="width: 200px" placeholder="请输入政策名称" v-model="name" />     </div>     <div>       发文字号<el-input style="width: 200px" placeholder="请输入发文字号" v-model="document" />     </div>     <div>       发文机构<el-input style="width: 200px" placeholder="请输入发文机构" v-model="organ" />     </div>     <div>       全文检索<el-input style="width: 200px" placeholder="" v-model="content" />     </div>     <div>       <el-button type="primary" @click="search">搜索</el-button>     </div>   </div> -->   <div>     <el-table :data="currentPageData" style="width: 100%">     <el-table-column label="学号" prop="snum" />     <el-table-column label="姓名" prop="name" />     <el-table-column label="性别" prop="gender" />     <el-table-column label="出生日期" prop="birthday" />     <el-table-column label="操作">       <template v-slot="scope">         <el-button           size="small"           type="primary"           @click="handleEdit(scope.row)">编辑</el-button>         <el-button           size="small"           type="danger"           @click="handleDelete(scope.row)">删除</el-button>       </template>     </el-table-column>   </el-table> <div style="display: flex; justify-content: center;">   <el-pagination     background     layout="prev, pager, next"     :total="total"     :current-page="currentPage"     @current-change="handleCurrentChange"     :page-size="pageSize"   /> </div>
</div>     </el-container>   </el-container> </template> <script setup> import {  onMounted,computed, ref} from 'vue' import { api } from '@/api/apis' import { ElMessage } from 'element-plus'; import { ElMessageBox } from 'element-plus'
const dialogVisible = ref(false)
const handleClose = (done) => {   ElMessageBox.confirm('Are you sure to close this dialog?')     .then(() => {       done()     })     .catch(() => {       // catch error     }) } const currentPageData = ref([]); const currentPage = ref(1); const pageSize = ref(10); const total = ref(0); let drawerData =ref('') let studentdata =ref('') const handleCurrentChange = (newPage) => {   // 根据新的页码更新当前页的数据   currentPage.value = newPage;   const startIndex = (newPage - 1) * pageSize.value;   currentPageData.value = student.value.slice(startIndex, startIndex + pageSize.value); }
function openDialog() {       dialogVisible = true;     } function closeDialog() {       this.dialogVisible = false;     },     submitForm() {       // 提交表单的逻辑       console.log('Form submitted:', this.form);       this.dialogVisible = false;     }   } function showDrawer(row) {        drawerData = row; // 更新当前行的数据       this.drawer = true; // 打开 el-drawer     } function handleEdit(row) {       console.log('Edit:', row);       // Add your edit logic here     } function handleDelete(row){   console.log('Delete:', row);   studentdata=row;   console.log('Delete:', studentdata);   api.studentApi.delete(studentdata).then((res) => {     ElMessage.success('删除成功');     fetchSystemList();   }) } onMounted(() => {   fetchSystemList();   });
function fetchSystemList() {     api.studentApi.get().then((res) => {       student.value = res.data       currentPageData.value = student.value.slice(0, pageSize.value);       total.value = student.value.length;     })   } const drawer = ref(false)   const student=ref([])
const name=ref('') const document=ref('') const organ=ref('') const content=ref('') function search(){   api.studentApi.search(name.value,document.value,organ.value,content.value).then((res) => {     student.value = res.data;     currentPageData.value = student.value.slice(0, pageSize.value);       total.value = student.value.length;   }) }
</script>
<style scoped> .button-container {   display: flex;   justify-content: center; /* 水平居中 */ }
.layout-container-demo {   width: 100%; } .layout-container-demo .el-header {   position: relative;   background-color: var(--el-color-primary-light-7);   color: var(--el-text-color-primary); } .layout-container-demo .el-aside {   color: var(--el-text-color-primary);   background: var(--el-color-primary-light-8); } .layout-container-demo .el-menu {   border-right: none; } .layout-container-demo .el-main {   padding: 0; } .layout-container-demo .toolbar {   display: inline-flex;   align-items: center;   justify-content: center;   height: 100%;   right: 20px; } .text-center {   text-align: center; }
.text-black-blue {   color: #0000FF; /* 黑蓝色 */ }
.font-bold {   font-weight: bold; /* 加粗 */ }
.font-large {   font-size: 36px; } .el-drawer__wrapper.custom-modal {   background-color: rgba(0, 0, 0, 0.5) !important; }

</style>

标签:el,27,const,color,value,2024,student,第五十六,ref
From: https://www.cnblogs.com/xuechenhao173/p/18216705

相关文章

  • 2024/05/27
    今日学习有关知识时长:78分钟代码行数:80行发表博客数量:1篇今日学习的内容主要是有关数据库操作中的触发器和储存过程。触发器(trigger)就相当于事件绑定,当你进行某类sql语句操作时将会自动调用你你所设置的触发器来进行操作。储存过程(procedure)就相当于我们Java中的方法,可以带有......
  • MindSponge分子动力学模拟——多路径分子模拟(2024.05)
    技术背景在前面的MindSponge教程系列博客中,我们已经介绍过MindSponge分子动力学模拟框架的基础功能使用方法,例如MindSponge的安装与使用、定义分子系统、计算单点能和迭代器等等。这些模块和功能,更多的是凭借MindSpore深度学习框架的自动微分、GPU加速和Python语言的灵活性,而本文......
  • 2024 蓝桥杯省赛游记
    Day-inf看了眼去年的题,一个插头dp一个杜教筛,恐怖如斯群里问了句发现hkhmtr也参加Day1完全没压力所以随便玩了。开场扫了一眼只有8道题,有个树上莫队?T1赛后看知乎好像能直接拿excel生成字符串形式的日期T2一开始没注意白棋一定有13个子,跑完了再看题才想到,提答的......
  • 2024年中国金融行业网络安全案例集
    随着科技的飞速发展,金融行业与信息技术的融合日益加深,网络安全已成为金融行业发展的生命线。金融行业作为国家经济的核心支柱,正在面临着日益复杂严峻的网络安全挑战。因此,深入研究和探讨金融行业的网络安全问题,不仅关乎金融行业的稳健运行,更关系到国家经济的安全和社会的稳......
  • 5_27总结
    增强for循环一般for循环:int[]num={1,2,3,4,5,6};for(inti=0;i<num.length;i++){System.out.println("元素:"+num[i]);}增强for循环:int[]num={1,2,3,4,5,6};for(inti:num){//集合或数组a:数组名称numSystem.out.println......
  • 2024-05-23_结构体概念等作业
    1.如有以下代码:structstudent{intnum;charname[32];floatscore;}stu;则下面的叙述不正确的是:()A.struct是结构体类型的关键字B.structstudent是用户定义的结构体类型C.num,score都是结构体成员名D.stu是用户定义的结构体类型名解析:A:正确,在C......
  • 2024最全java面试题整理(持续更新)
    1.springboot项目和maven项目的区别?(1)打包方式:传统项目如果需要打成war包,需要在WEB-INF目录结构配置web.xml文件;springboot则不需要(2)项目启动方式:传统web项目启动方式:在eclipse和tomcat插件中导入项目,然后启动tomcat,项目也启动了。或者将项目打成war包,放入tomcat中,启动tomca......
  • android studio2024最新详解(完全小白)安装-运行第一个程序
    前面我用2023最新版本的,死活就卡在引入依赖那里卡了两天,俺的崩溃谁知啊!! 后面我就换了个思维,看着网上大多的教程都是基于2022或者2020的,我就找了个看起来非常详细的视频,里面的是2020的,所以我就下载了2020。  有点小伙伴可能会找不到androidstudio的过往版本,这里我就直......
  • 郑州2024-ccpc-赛后总结-wh
    今年真的很可惜,就差1个罚时拿全国邀请银,省赛金。比较惋惜刚开始第一发,找到签到题太快了,忘写输入了直接wa1发,随后Fac,其次开始写J,J是我的问题,刚开始想5位全排列结果T了,然后发现性质结果一直卡endl,WA了4发(导致没拿邀请银,真的很可惜),随后Jac,然后wmh4分钟切出来了M,然后一起写B,我刚开始......
  • 【会议征稿,SPIE独立出版】第五届计算机视觉和数据挖掘国际学术会议(ICCVDM 2024)
    第五届计算机视觉与数据挖掘国际学术会议(ICCVDM2024)将于2024年7月19-21日在中国长春举行。此前,ICCVDM系列会议于2020年在中国西安、2021年在中国长沙(线上)、2022年在中国呼伦贝尔(线上+线下)、2023年在中国长春(线上+线下)皆已成功举办。ICCVDM为世界各地该领域的专家、学者、......