SSM项目实战-前端-在Index.vue中展示第一页数据

news2024/11/18 23:35:28

1、util/request.js

import axios from "axios";

let request = axios.create({
    baseURL: "http://localhost:8080",
    timeout: 50000
});

export default request

2、api/schedule.js

import request from "../util/request.js";

export let getScheduleList = (queryvo) => {
    return request.get(`/schedule/${queryvo.pageNum}`,{
        params:{
            uid:queryvo.uid
        }
    })
};
export let updateSchedule=data=>{
    return request.put("/schedule",data)
}
export let saveSchedule=data=>{
    return request.post("/schedule",data)
}
export let delSchedule=id=>{
    return request.delete(`/schedule/${id}`)
}

3、Index.vue

<template>

  <el-container>
    <el-row>
      <el-button type="primary" plain @click="toAdd">新增</el-button>
    </el-row>
    <el-table :data="schedulePageInfo.list" style="width: 100%">
      <el-table-column label="编号" width="180">
        <template #default="scope">
          <div style="display: flex; align-items: center">
            <span style="margin-left: 10px">{{ scope.row.sid }}</span>
          </div>
        </template>
      </el-table-column>
      <el-table-column label="学习计划" width="180">
        <template #default="scope">
          <div style="display: flex; align-items: center">
            <span style="margin-left: 10px">{{ scope.row.title }}</span>
          </div>
        </template>
      </el-table-column>
      <el-table-column label="是否完成" width="180">
        <template #default="scope">
          <div style="display: flex; align-items: center">
            <span style="margin-left: 10px">{{ scope.row.completed ? '完成' : '未完成' }}</span>
          </div>
        </template>
      </el-table-column>
      <el-table-column label="其他操作">
        <template #default="scope">
          <el-button size="small" @click="handleEdit(scope.row)">Edit</el-button>
          <el-button size="small" type="danger" @click="handleDelete(scope.row.id)">Delete</el-button>
        </template>
      </el-table-column>
    </el-table>

    <el-dialog v-model="dialogFormVisible" title="Shipping address">
      <el-form :model="form">
        <el-form-item label="标题">
          <el-input v-model="form.title" autocomplete="off"/>
        </el-form-item>
        <el-form-item label="Zones">
          <el-radio-group v-model="form.completed">
            <el-radio :label="true">完成</el-radio>
            <el-radio :label="false">未完成</el-radio>
          </el-radio-group>
        </el-form-item>
      </el-form>
      <template #footer>
      <span class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取消</el-button>
        <el-button type="primary" @click="saveOrUpdate">确定</el-button>
      </span>
      </template>
    </el-dialog>
  </el-container>

</template>

<script lang="ts" setup>
import {delSchedule, getScheduleList, saveSchedule, updateSchedule} from '../api/schedule.js';
import {onMounted, reactive, ref} from 'vue';
import {ElMessage, ElMessageBox} from "element-plus";
import {userStore} from '../store/sysUserStore';

let currUser = userStore();

let dialogFormVisible = ref(false);

let form = reactive({
  id: 0,
  title: '',
  completed: false
})
let form0 = reactive({
  id: 0,
  title: '',
  completed: false
})
let resetFormData = () => {
  Object.assign(form, form0);
}
let schedulePageInfo=reactive({
  total: 0,
  list:[],
  pageNum: 1,
  pageSize: 3,
  pages: 0,
  navigatepageNums: [],
  msg: '',
})
let scheduleList = reactive([])

let queryvo=reactive({
  uid:1,
  pageNum: 1,
})

let loadData = () => {

  getScheduleList(queryvo).then(response => {
    Object.assign(schedulePageInfo, response.data.data)
  })
}

let saveOrUpdate = () => {
  if (form.id === 0) {
    save();
  } else {
    update();
  }
}

let save = async () => {
  await saveSchedule(form)
  dialogFormVisible.value = false
  resetFormData();
  loadData();
}

let toAdd = () => {
  resetFormData();
  dialogFormVisible.value = true;
}

onMounted(() => {
  queryvo.uid=currUser.uid
  queryvo.pageNum=1
  loadData();
})

let update = async () => {
  await updateSchedule(form)
  dialogFormVisible.value = false
  loadData();
}

interface scheduleList {
  id: Number
  title: string
  completed: boolean
}

const handleEdit = row => {
  dialogFormVisible.value = true;
  Object.assign(form, row);
}
const handleDelete = id => {

  ElMessageBox.confirm(
      '是否确认删除?',
      '提示',
      {
        confirmButtonText: '是',
        cancelButtonText: '否',
        type: 'warning',
      }
  )
      .then(async () => {
        await delSchedule(id)
        dialogFormVisible.value = false
        loadData();
      })
      .catch(() => {
        ElMessage({
          type: 'info',
          message: '你取消了操作',
        })
      })
};
</script>

 7、模板字符串 ``

在ES6(ECMAScript 2015)中,模板字符串是一种新的字符串类型,它使用 反引号(`) 来定义,可以包含嵌入式表达式(即${expression})。模板字符串的出现为JavaScript提供了更灵活和强大的字符串处理能力。

模板字符串的主要作用包括:

  1. 格式化字符串:通过使用嵌入式表达式,可以将变量或表达式的值直接嵌入到字符串中。这使得字符串的格式化更为方便和直观。例如:

let name = "John";  
let greeting = `Hello, ${name}!`; // 输出 "Hello, John!"
  1. 多行字符串:模板字符串可以包含多行内容,这对于处理多行文本或代码非常有用。例如:

let multiLineString = `This is a   
multi-line   
string.`; // 输出一个跨越多行的字符串
  1. 字符串插值:通过使用嵌入式表达式 ${expression},可以在字符串中插入变量或表达式的值。这使得字符串的动态生成更为简单。例如:

let name = "John";  
let message = `My name is ${name}.`; // 输出 "My name is John."
  1. 转义字符:模板字符串中,反斜杠(\)用于转义字符,可以用来表示特殊字符(如换行符、制表符等)。例如:

let escapedString = `\n represents a new line.`; // 输出 "\ represents a new line."

在实际开发项目中,模板字符串可以帮助你更方便地处理字符串,提高代码的可读性和可维护性。特别是在处理复杂的字符串逻辑时,模板字符串可以使得代码更加清晰和易于理解。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开关电源调试时,常见的10个问题:

1、变压器饱和 变压器饱和现象 在高压或低压输入下开机(包含轻载&#xff0c;重载&#xff0c;容性负载)&#xff0c;输出短路&#xff0c;动态负载&#xff0c;高温等情况下&#xff0c;通过变压器(和开关管)的电流呈非线性增长&#xff0c;当出现此现象时&#xff0c;电流的…

SpringBoot2.x整合WebService实现远程接口调用

一、添加依赖 <!-- SpringBoot 2.4 以下版本--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web-services</artifactId> </dependency><dependency><groupId>org.apach…

java日历功能

java 日历功能 功能概述java代码打印结果 功能概述 输入年份和月份&#xff0c;打印该月份所有日期&#xff0c;头部信息为星期一至星期日 java代码 package com.java.core.demoTest; import java.util.Calendar; import java.util.Scanner;// 打印日历 public class Calend…

接口测试很难?1分钟带你入门接口自动化测试

1、什么是接口&#xff1f; 接口是连接前台和后台的桥梁&#xff0c;前台通过接口调用后端已完成的功能&#xff0c;而无需关注内部的实现细节。借助于接口&#xff0c;可以实现前后台分离&#xff0c;各自完成开发工作后&#xff0c;进行联调&#xff0c;提高工作效率 2、接…

navicate16 2059 plugin http could not be loaded

plugin http could not be loaded 乱码 library path http.dll 今天新装一台机子的navicate遇到这个问题。 查了半天都是说 caching_sha2_password’的解决办法。 然后是咋解决的呢&#xff0c;真是丢脸 由于我是直接从浏览器复制下来的ip&#xff0c;所以虽然我只复制了ip地…

MacOS M芯片 安装MySQL5.7教程

目录 1. 安装Homebrew1.1 快速安装1.2 检查是否安装成功 2. 通过Homebrew安装MySQL2.1 搜索 MySQL 版本2.2 安装MySQL 5.72.3 位置说明2.4 启动MySQL服务2.5 检查服务状态2.6 设置环境变量2.7 重置密码 3. 测试安装 1. 安装Homebrew 1.1 快速安装 /bin/bash -c "$(curl …

YOLOv8改进有效涨点 | 2023 | SPD-Conv空间深度转换卷积(高效空间编码技术)

一、本文介绍 本文给大家带来的改进内容是SPD-Conv&#xff08;空间深度转换卷积&#xff09;技术。SPD-Conv是一种创新的空间编码技术&#xff0c;它通过更有效地处理图像数据来改善深度学习模型的表现。SPD-Conv的基本概念&#xff1a;它是一种将图像空间信息转换为深度信息…

qiankun: 关于ElementUI字体图标加载不出来的问题

问题描述&#xff1a; 子应用使用的是vueelementUI&#xff0c;在项目main.js中需要引入elementUI的样式文件。elementUI的样式文件中有字体文件的引用&#xff0c;是以相对路径的形式写在css文件中的&#xff0c; 本来独立部署项目访问是没问题的&#xff0c;问题出现在以qi…

d3dx9_43.dll如何修复?d3dx9_43.dll文件缺失的多种解决方法指南

d3dx9_43.dll如何修复&#xff1f;d3dx9_43.dll文件丢失是一种常见的计算机问题&#xff0c;它会导致运行某些软件时出现错误。本文将详尽地介绍如何修复这一问题&#xff0c;并对比各种方法的优缺点&#xff0c;以及深入解析该DLL文件的由来及其重要性。 一.多种d3dx9_43.dll修…

MAVLink 协议概述

MAVLink 是一种二进制遥测协议&#xff0c;专为资源受限的系统和带宽受限的链路而设计。MAVLink部署有两个主要版本&#xff1a;v1.0和v2.0&#xff0c;v2.0向后兼容&#xff08;v2.0实现可以解析和发送v1.0数据包&#xff09;。遥测数据流以多播设计发送&#xff0c;而改变系统…

Java中线程池相关的七个参数

在Java中&#xff0c;线程池的七个参数是指线程池的相关配置参数&#xff0c;用来控制线程池的行为和性能。这些参数包括&#xff1a; 1. 核心线程数&#xff08;corePoolSize&#xff09;&#xff1a;线程池中保持的最小线程数&#xff0c;即使线程处于空闲状态&#xff0c;也…

vue3 + TS 项目中使用pinia-plugin-persistedstate持久化缓存

Vue 3和Pinia是一对非常好的组合&#xff0c;可以帮助你构建现代化的Vue应用程序。而pinia-plugin-persistedstate是一个用于在Pinia存储中实现状态持久化的插件。下面我将详细介绍如何在Vue 3应用程序中使用Pinia和pinia-plugin-persistedstate模块。 首先&#xff0c;确保你…

JavaWeb-XML

1.常见的配置文件 1.1 properties 数据库的连接就使用properties文件作为配置文件&#xff0c;properties文件中的配置信息是以键值对的形式存储的。 beiluo.jdbc.urljdbc:mysql://localhost:3306/beiluo beiluo.jdbc.drivercom.mysql.cj.jdbc.Driver beiluo.jdbc.usernamer…

AutoHotKey-study

目录 使用编辑器脚本注意函数解释信息调试方法键盘获取方法脚本练习 最近发现常用键盘的上下左右箭头去操作输入输出问题感觉很不是滋味&#xff0c;不像Linux那样&#xff0c;有vim的使用&#xff0c;就想着有没有什么方法更快捷&#xff0c;更方便的去使用电脑键盘&#xff0…

【开源】基于Vue和SpringBoot的社区买菜系统

项目编号&#xff1a; S 011 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S011&#xff0c;文末获取源码。} 项目编号&#xff1a;S011&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 数据中心模块2.1…

浅谈抄表环境对抄表质量的影响

众所周知&#xff0c;抄表环境对抄表质量影响是不言而喻的。不仅影响着营销“三率”&#xff0c;还影响着企业的社会形象。尽管&#xff0c;随着水表出户、物联网技术的发展&#xff0c;抄表环境得到很大改善&#xff0c;但受资金、政策、技术的制约&#xff0c;抄表环境问题仍…

深入了解Java Period类,对时间段的精确控制

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概2900多字&#xff0c;预计阅读时间长需要3分钟。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&#x…

二阶变系数线性微分方程

1、变量替换法 欧拉方程 是常数&#xff0c;是已知的函数。 二阶欧拉方程 (1) 当时&#xff0c;令,则 代入&#xff08;1&#xff09;中&#xff0c; .这样就把欧拉方程&#xff0c;化成了二阶常系数非齐次微分方程 当x<0时&#xff0c;令, 例题 解:令,则 代入上面的推…

VPS服务器”性价比之王”系列:RackNerd

2023 黑五&#xff01;&#xff01;&#xff01;新 Ryzen 系列 洛杉矶dc02机房重新补货&#xff01; 支付方式&#xff1a;支付宝、PayPal、信用卡、数字货币 2023 黑五促销活动&#xff08;限量&#xff09; CPU内存硬盘(SSD)流量带宽价格(续费同价)购买链接1核768 MB15GB…

GSLB是什么?谈谈对该技术的一点理解

GSLB是什么&#xff1f;它又称为全局负载均衡&#xff0c;是主流的负载均衡类型之一。众所周知&#xff0c;负载均衡位于服务器的前面&#xff0c;负责将客户端请求路由到所有能够满足这些请求的服务器&#xff0c;同时最大限度地提高速度和资源利用率&#xff0c;并确保无任何…