Vue3通用页面(表格,页头,分页,编辑,删除)

news/2024/9/23 6:25:01/

 

 

<script lang="ts" setup name="Canset-JDfund">
import { AddJDsetAPI, EditJDsetAPI, DelJDsetAPI, GetWLFsetListtAPI } from '@/api/canset/tfset'
// #region *****************XXXX模块****************
// #endregion
const params = {pageNo: 1, //当前页数pageSize: 5 //一页几条
}
// #region *****************请求表格数据模块****************
const tablelist = ref([])
const tableCount = ref()
const gettabledata = async (obj: any) => {const res = await GetWLFsetListtAPI(obj)console.log(res)tablelist.value = res.liststableCount.value = res.count
}
gettabledata(params)
// #endregion
// #region *****************分页模块****************
const onSizeChange = async (size: number) => {params.pageSize = sizegettabledata(params)
}
// 页码变化事件
const onCurrentChange = (page: number) => {params.pageNo = pagegettabledata(params)
}
// #endregion
// #region *****************新增模块****************
const deposit = ref(0)
const addJDffund = async () => {if (!deposit.value) {ElMessage.error('请先输入接单押金')return}const res = await AddJDsetAPI(deposit.value).then(() => {gettabledata(params)ElMessage.success('新增成功!')deposit.value = 0})console.log(res)
}
// #endregion
// #region *****************点击编辑控制输入框显示与关闭模块****************
const showEdit = ref<boolean[]>([])
// 编辑处理
const Edit = (row: any, index: any) => {//vue3使用数组添加数据showEdit.value[index] = true
}
// #endregion
// #region *****************确认编辑模块****************
const sure = async (row: any, index: any) => {console.log(row)showEdit.value[index] = false// 表单预校验// await form.value.validate()// 发起修改请求await EditJDsetAPI(row).then(() => {ElMessage.success('修改成功!')showEdit.value = []})// 重新获取分类数据,渲染页面gettabledata(params)
}
// #endregion
// #region *****************删除模块****************
const Delhandle = async (row: any) => {console.log(row)await ElMessageBox.confirm('你是否需要删除吗?', '警告', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'})// 确认按钮事件处理.then(() => {DelJDsetAPI(row.id).then(() => {ElMessage({message: '删除成功!',type: 'success'})gettabledata(params)})})
}
// #endregion
</script>
<template><el-card class="box-card mt-2"><template #header><h4>基础物流费用</h4></template><!-- 新增模块 --><div class="ml-5 flex"><el-input-numberplaceholder="请输入内容"style="width: 150px"v-model="deposit":step="1":min="0":max="500"/><el-button type="primary" @click="addJDffund" class="ml-2">新增押金</el-button></div><!-- 表格模块 --><div><el-table :data="tablelist" style="width: 100%"><el-table-column align="center" prop="logisticsPrice" label="基础物流运费"><template #default="{ row, $index }"><span v-if="!showEdit[$index]">{{ row.logisticsPrice }}</span><div v-else style="margin-left: 100px; width: 100px"><el-inputv-model="row.logisticsPrice"placeholder="请输入基础物流运费"></el-input></div> </template></el-table-column><el-table-column align="center" prop="address" label="基础物流运费"><template #default="{ row, $index }"><span v-if="!showEdit[$index]">{{ row.address }}</span><div v-else style="margin-left: 100px; width: 100px"><el-input v-model="row.address" placeholder="请输入物流地址"></el-input></div> </template></el-table-column><el-table-column align="center" label="操作"><template #default="{ row, $index }"><!-- 编辑 --><el-buttonv-if="!showEdit[$index]"type="primary"@click="Edit(row, $index)"plain>编辑</el-button><!-- 编辑确认 --><el-button v-else type="primary" @click="sure(row, $index)" plain>确认</el-button><!-- 删除 --><el-button type="primary" @click="Delhandle(row, $index)">删除</el-button></template></el-table-column></el-table></div><!-- 分页模块 --><div><el-paginationv-model:current-page="params.pageNo"v-model:page-size="params.pageSize":page-sizes="[5, 15, 30, 45, 60]"layout="jumper, total, sizes, prev, pager, next":total="tableCount"background@size-change="onSizeChange"@current-change="onCurrentChange"style="margin-top: 20px; justify-content: flex-end"/></div></el-card>
</template>


http://www.ppmy.cn/news/1501322.html

相关文章

Symfony 入门指南:快速安装与基础配置

Symfony 入门指南&#xff1a;快速安装与基础配置 Symfony 是一个强大而灵活的 PHP 框架&#xff0c;广泛应用于构建现代 Web 应用程序。本指南将带您一步一步地了解如何快速安装 Symfony&#xff0c;并完成基本配置&#xff0c;以便您能够开始使用这个强大的框架。 目录 引…

【java基础】spring springMVC springboot 的区别

Spring, Spring MVC, 和 Spring Boot 是三个紧密相关的技术&#xff0c;它们都是由 Pivotal 团队&#xff08;原SpringSource&#xff09;开发的&#xff0c;主要用于构建企业级的Java应用程序。尽管它们在功能上有所交集&#xff0c;但各自也有独特的定位和用途。 Spring Fra…

vue + xterm 前端终端terminal

引入 import {Terminal} from "xterm"; import {FitAddon} from "xterm-addon-fit"; import "xterm/css/xterm.css";html <div id"terminal"></div>vue onMounted(() > {nextTick(() > {initTerm();}) })const i…

c++中的哈希查找(Hash Search)和B树查找(B-Tree Search)

前言 hello大家好啊&#xff0c;我是文宇&#xff0c;不是文字&#xff0c;是文宇哦&#xff0c;这期也是关于查找算法的。 哈希查找&#xff08;Hash Search&#xff09; 哈希查找&#xff08;Hash Search&#xff09;是一种基于哈希表的查找算法&#xff0c;它可以在常数时…

微信小程序之调查问卷

一、设计思路 1、界面 调查问卷又称调查表&#xff0c;是以问题的形式系统地记载调查内容的一种形式。微信小程序制作的调查问卷&#xff0c;可以在短时间内快速收集反馈信息。具体效果如下所示&#xff1a; 2、思路 此调查问卷采用服务器客户端的方式进行设计&#xff0c;服…

vue3 快速入门 (五) : Flex布局

1. 如何变成Flex布局 变成Flex容器&#xff0c;只需在容器布局的节点的CSS中&#xff0c;增加display : flex .mylayout {/* 省略了其他代码 */display: flex; }2. flex direction : 方向 row : 以行排列 row-reverse &#xff1a; 以行反向排列 column &#xff1a;以列排列…

设计模式实战:电子邮件客户端的设计与实现

问题描述 设计一个电子邮件客户端,用户可以发送、接收和查看电子邮件。系统需要支持邮件通知、邮件内容的增强(如加密、签名等),并能够处理各种邮件请求(如垃圾邮件过滤、病毒扫描等)。 设计分析 观察者模式 观察者模式定义了对象间的一对多依赖关系,当一个对象的状…

HTML开发笔记:3.图形化开发软件与模版网站

一、Google Web Designer 下载网址&#xff1a;webdesigner.withgoogle.com&#xff08;得挂梯子&#xff09; 可以编辑文字 可以插入图片&#xff0c;快捷键是ctrlshiftI 右侧“大纲”属性中可以调节大小 可以点击右上角在浏览器中预览效果&#xff1a; 二、模版网站 https://…