若依框架vue3模板

news/2024/10/24 18:11:17/

 若依框架vue3模板,包含新增、修改、删除、搜索、导出等功能

<template><div class="app-container"><el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px"><el-form-item label="区域名称" prop="regionName"><el-inputv-model="queryParams.regionName"placeholder="请输入区域名称"clearable@keyup.enter="handleQuery"/></el-form-item><el-form-item><el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button><el-button icon="Refresh" @click="resetQuery">重置</el-button></el-form-item></el-form><el-row :gutter="10" class="mb8"><el-col :span="1.5"><el-buttontype="primary"plainicon="Plus"@click="handleAdd"v-hasPermi="['manage:region:add']">新增</el-button></el-col><el-col :span="1.5"><el-buttontype="success"plainicon="Edit":disabled="single"@click="handleUpdate"v-hasPermi="['manage:region:edit']">修改</el-button></el-col><el-col :span="1.5"><el-buttontype="danger"plainicon="Delete":disabled="multiple"@click="handleDelete"v-hasPermi="['manage:region:remove']">删除</el-button></el-col><el-col :span="1.5"><el-buttontype="warning"plainicon="Download"@click="handleExport"v-hasPermi="['manage:region:export']">导出</el-button></el-col><right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar></el-row><el-table v-loading="loading" :data="regionList" @selection-change="handleSelectionChange"><el-table-column type="selection" width="55" align="center" /><el-table-column label="序号" type="index" align="center" prop="id" width="55" /><el-table-column label="区域名称" align="center" prop="regionName" /><el-table-column label="点位数" align="center" prop="nodeCount" /><el-table-column label="备注说明" align="center" prop="remark" /><el-table-column label="操作" align="center" class-name="small-padding fixed-width"><template #default="scope"><el-button link type="primary"  @click="getRegionInfo(scope.row)" v-hasPermi="['manage:region:list']">查看详情</el-button><el-button link type="primary"  @click="handleUpdate(scope.row)" v-hasPermi="['manage:region:edit']">修改</el-button><el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['manage:region:remove']">删除</el-button></template></el-table-column></el-table><paginationv-show="total>0":total="total"v-model:page="queryParams.pageNum"v-model:limit="queryParams.pageSize"@pagination="getList"/><!-- 添加或修改区域管理对话框 --><el-dialog :title="title" v-model="open" width="500px" append-to-body><el-form ref="regionRef" :model="form" :rules="rules" label-width="80px"><el-form-item label="区域名称" prop="regionName"><el-input v-model="form.regionName" placeholder="请输入区域名称" /></el-form-item><el-form-item label="备注说明" prop="remark"><el-input v-model="form.remark" type="textarea" placeholder="请输入内容" /></el-form-item></el-form><template #footer><div class="dialog-footer"><el-button type="primary" @click="submitForm">确 定</el-button><el-button @click="cancel">取 消</el-button></div></template></el-dialog><!-- 查看详情对话框 -->
<el-dialog title="区域详情" v-model="regionInfoOpen" width="500px" append-to-body><el-form-item label="区域名称" prop="regionName"><el-input v-model="form.regionName" placeholder="请输入区域名称" disabled /></el-form-item><label>包含点位:</label><el-table  :data="nodeList" ><el-table-column label="序号" type="index" align="center" prop="id" width="50px"/><el-table-column label="点位名称" align="center" prop="nodeName" /><el-table-column label="设备数量" align="center" prop="vmCount" /></el-table></el-dialog></div>
</template><script setup name="Region">
import { listRegion, getRegion, delRegion, addRegion, updateRegion } from "@/api/manage/region";
import{listNode}from "@/api/manage/node";
import{loadAllParams}from "@/api/page";
const { proxy } = getCurrentInstance();const regionList = ref([]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");const data = reactive({form: {},queryParams: {pageNum: 1,pageSize: 10,regionName: null,},rules: {regionName: [{ required: true, message: "区域名称不能为空", trigger: "blur" }],remark: [{ required: true, message: "备注说明不能为空", trigger: "blur" }]}
});const { queryParams, form, rules } = toRefs(data);/** 查询区域管理列表 */
function getList() {loading.value = true;listRegion(queryParams.value).then(response => {regionList.value = response.rows;total.value = response.total;loading.value = false;});
}// 取消按钮
function cancel() {open.value = false;reset();
}// 表单重置
function reset() {form.value = {id: null,regionName: null,createTime: null,updateTime: null,createBy: null,updateBy: null,remark: null};proxy.resetForm("regionRef");
}/** 搜索按钮操作 */
function handleQuery() {queryParams.value.pageNum = 1;getList();
}/** 重置按钮操作 */
function resetQuery() {proxy.resetForm("queryRef");handleQuery();
}// 多选框选中数据
function handleSelectionChange(selection) {ids.value = selection.map(item => item.id);single.value = selection.length != 1;multiple.value = !selection.length;
}/** 新增按钮操作 */
function handleAdd() {reset();open.value = true;title.value = "添加区域管理";
}/** 修改按钮操作 */
function handleUpdate(row) {reset();const _id = row.id || ids.valuegetRegion(_id).then(response => {form.value = response.data;open.value = true;title.value = "修改区域管理";});
}
/**查看详情操作按钮 */
const nodeList=ref([]);
const regionInfoOpen=ref(false);
function getRegionInfo(row){//查看区域信息reset();
const _id = row.id 
getRegion(_id).then(response => {form.value = response.data;
});
//查看点位列表
loadAllParams.regionId=row.id
listNode(loadAllParams).then(response =>{nodeList.value=response.rows;});
regionInfoOpen.value=true;
}
/** 提交按钮 */
function submitForm() {proxy.$refs["regionRef"].validate(valid => {if (valid) {if (form.value.id != null) {updateRegion(form.value).then(response => {proxy.$modal.msgSuccess("修改成功");open.value = false;getList();});} else {addRegion(form.value).then(response => {proxy.$modal.msgSuccess("新增成功");open.value = false;getList();});}}});
}/** 删除按钮操作 */
function handleDelete(row) {const _ids = row.id || ids.value;proxy.$modal.confirm('是否确认删除区域管理编号为"' + _ids + '"的数据项?').then(function() {return delRegion(_ids);}).then(() => {getList();proxy.$modal.msgSuccess("删除成功");}).catch(() => {});
}/** 导出按钮操作 */
function handleExport() {proxy.download('manage/region/export', {...queryParams.value}, `region_${new Date().getTime()}.xlsx`)
}getList();
</script>


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

相关文章

前端遮罩层的应用

最近微信小程序需要开发新手引导功能&#xff0c;发现需要在遮罩层中间抠一个洞出来&#xff0c;但是一直不知道该怎么去做&#xff0c;其实很简单&#xff0c;先展示源码&#xff1a; <template><div class"num01">hello<div class"mask"&…

vue父子传参的方式——Prop

Prop 每一个组件都有一个props的属性&#xff0c;用来接收外部传递的数据 这里我拿一个分页组件为例&#xff1a; 一、基础语法 1、父组件传递数据 父组件在向子组件传递数据时&#xff0c;基础语法如下&#xff1a; <template><div><common-page :pagina…

VS Code用SSH连不上Linux,并且使用其他SSH登录主机时命令行代码无法补全

输入df -h查看磁盘空间 Filesystem Size Used Avail Use% Mounted on devtmpfs 6.8G 0 6.8G 0% /dev tmpfs 6.8G 0 6.8G 0% /dev/shm tmpfs 6.8G 97M 6.7G …

解锁PDF权限密码

目录 背景: 定义与功能&#xff1a; 过程&#xff1a; 主要功能&#xff1a; 使用方式&#xff1a; 使用限制&#xff1a; 注意事项&#xff1a; 总结&#xff1a; 背景: 前段时间自己设置了PDF文件的许可口令&#xff0c;忘了口令导致自己无法编辑内容等&#xff0c;这…

十四、行为型(观察者模式)

观察者模式&#xff08;Observer Pattern&#xff09; 概念 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了对象间的一对多依赖关系&#xff0c;当被观察的对象&#xff08;主题&#xff09;状态发生改变时&#xff0c;所有依赖…

Java IO 介绍

IO 介绍 Java IO 主要是对文件进行读取和写入。 IO 的分类 按数据流的方向可以分成两类&#xff1a; 输入流&#xff1a;只能从中读取数据。 输出流&#xff1a;只能向其写入数据。 按处理数据的单位不同可以分成两类&#xff1a; 字节流&#xff1a;二进制&#xff0c;可以…

ElasticSearch基本概念

本文内容参考了田雪松老师编著的《Elastic Stack应用宝典》 对比关系型数据库 索引&#xff08;Index&#xff09;相当于库映射类型&#xff08;Mapping Type&#xff09;相当于表文档&#xff08;Document&#xff09;相当于行文档字段&#xff08;Field&#xff09;相当于列…

教育信息化的挑战与机遇:Spring Boot平台

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…