ajax与axios
这段代码实现了一个基于Vue.js和Element UI框架的前端应用,主要用于品牌信息的管理。它包含了品牌信息的查询、添加、修改、删除及批量删除功能,并且支持分页显示数据。
搜索表单:用户可以通过选择当前状态(启用或禁用)、输入企业名称和品牌名称来过滤查询结果。
按钮组:提供了批量删除和新增品牌的快捷入口。
对话框表单:包括一个用于新增品牌的对话框和一个用于编辑品牌的对话框。这两个对话框允许用户输入或修改品牌名称、企业名称、排序、备注以及状态等信息。
表格展示:使用了Element UI的el-table组件来展示品牌数据列表,每一行都包含品牌名称、企业名称、排序、当前状态等信息,并提供了操作列用于执行移除和修改动作。
分页工具条:实现了分页功能,允许用户调整每页显示的数据量并跳转到指定页面。
后端交互:通过Axios库与后端进行通信,实现了品牌信息的增删改查功能。包括获取所有品牌数据、根据条件查询、添加新品牌、删除品牌、批量删除品牌以及修改品牌信息等操作。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<div id="app">
<!--搜索表单-->
<el-form :inline="true" :model="brand" class="demo-form-inline">
<el-form-item label="当前状态">
<el-select v-model="brand.status" placeholder="当前状态">
<el-option label="启用" value="1"></el-option>
<el-option label="禁用" value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="brand.companyName" placeholder="企业名称"></el-input>
</el-form-item>
<el-form-item label="品牌名称">
<el-input v-model="brand.brandName" placeholder="品牌名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
</el-form>
<!--按钮-->
<el-row>
<el-button type="danger" @click="multiDelete()" plain>批量删除</el-button>
<el-button type="primary" plain @click="dialogVisible = true">新增</el-button>
</el-row>
<!--添加数据对话框表单-->
<el-dialog
title="编辑品牌"
:visible.sync="dialogVisible"
width="30%"
>
<el-form ref="form" :model="brand" label-width="80px">
<el-form-item label="品牌名称">
<el-input v-model="brand.brandName"></el-input>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="brand.companyName"></el-input>
</el-form-item>
<el-form-item label="排序">
<el-input v-model="brand.ordered"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="brand.description"></el-input>
</el-form-item>
<el-form-item label="状态">
<el-switch v-model="brand.status"
active-value="1"
inactive-value="0"
></el-switch>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="addBrand">提交</el-button>
<el-button @click="dialogVisible = false">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
<!--修改数据对话框表单-->
<el-dialog
title="修改品牌"
:visible.sync="dialogVisible1"
width="30%"
>
<el-form ref="form" :model="brand" label-width="80px">
<el-form-item label="品牌名称">
<el-input v-model="brand.brandName"></el-input>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="brand.companyName"></el-input>
</el-form-item>
<el-form-item label="排序">
<el-input v-model="brand.ordered"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="brand.description"></el-input>
</el-form-item>
<el-form-item label="状态">
<el-switch v-model="brand.status"
active-value=1
inactive-value=0
></el-switch>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="changeBrand()">提交</el-button>
<el-button @click="dialogVisible1 = false">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
<!--表格-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
type="index"
width="50">
</el-table-column>
<el-table-column
prop="brandName"
label="品牌名称"
align="center"
>
</el-table-column>
<el-table-column
prop="companyName"
label="企业名称"
align="center"
>
</el-table-column>
<el-table-column
prop="ordered"
align="center"
label="排序">
</el-table-column>
<el-table-column
prop="status"
align="center"
label="当前状态">
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="120">
<template slot-scope="scope">
<el-button
@click.native.prevent="deleteBrand(scope.$index, tableData)"
type="text"
size="small">
移除
</el-button>
<el-button
type="text"
size="small"
@click="initBrand(scope.$index)">
修改
</el-button>
</template>
</el-table-column>
</el-table>
</template>
<!--分页工具条-->
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[5, 10, 15, 20]"
:page-size="5"
layout="total, sizes, prev, pager, next, jumper"
:total="400">
</el-pagination>
</div>
<script src="js/axios-0.18.0.js"></script>
<script src="js/vue.js"></script>
<script src="element-ui/lib/index.js"></script>
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<script>
new Vue({
el: "#app",
mounted(){
axios.post("http://localhost:7469/brand-case/brand/selectAll").then((res) => {
this.tableData =res .data;
})
},
methods: {
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
},
// 复选框选中后执行的方法
handleSelectionChange(val) {
this.multipleSelection = val;
console.log(this.multipleSelection)
},
// 查询方法
onSubmit() {
console.log(this.brand);
},
// 添加数据
addBrand() {
console.log(this.brand);
axios.post("http://localhost:7469/brand-case/brand/addBrand", this.brand).then((res) => {
if (res.data == "success") {
alert("添加成功");
} else {
alert("添加失败")
}
this.dialogVisible = false;
})
},
deleteBrand(index, row) {
alert(index);
axios.post("http://localhost:7469/brand-case/brand/deleteBrand", this.tableData[index]).then((res) => {
if (res.data == "success") {
alert("删除成功");
} else {
alert("删除失败");
}
})
}
,
changeBrand() {
axios.post("http://localhost:7469/brand-case/brand/changeBrand", this.brand).then((res) => {
alert("worinma")
if (res.data == "success") {
alert("修改成功");
} else {
alert("修改失败");
}
})
this.dialogVisible1 = false;
},
//分页
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
},
initBrand(index) {
var initB = this.tableData[index];
// alert(initB.status);
this.brand = initB;
this.dialogVisible1 = true;
},
multiDelete(){
axios.get("http://localhost:7469/brand-case/brand/multiDeleteBrand",this.multipleSelection).then((res) => {
if (res.data == "success") {
alert("删除成功");
}
else alert("删除失败");
})
}
}
,
data() {
return {
// 当前页码
currentPage: 4,
// 添加数据对话框是否展示的标记
dialogVisible: false,
// 修改数据对话框是否展示的标记
dialogVisible1:false,
// 品牌模型数据
brand: {
status: '',
brandName: '',
companyName: '',
id:"",
ordered:"",
description:""
},
// 复选框选中数据集合
multipleSelection: [],
// 表格数据
tableData: [],
}
}
})
</script>
</body>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!