
如何使用PHP和Vue实现仓库管理系统
一、介绍
仓库是企业中非常重要的一个环节,对于企业的物品管理来说,仓库的管理是至关重要的。采用现代化的仓库管理系统可以提高仓库操作效率、减少人工错误,更好地满足企业物流需求。
本文将介绍如何使用PHP和Vue框架来开发一个简单的仓库管理系统。我们将通过具体的代码示例来说明实现过程。
二、搭建开发环境
在开始之前,我们需要搭建一个开发环境。需要安装以下软件:
立即学习“PHP免费学习笔记(深入)”;
三、设置数据库
在MySQL中创建一个名为"warehouse"的数据库,并创建以下两个表格:
item:用于存储仓库中的物品信息,包括物品ID、名称、数量等字段;
CREATE TABLE `item` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `quantity` INT(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
stock:用于记录每个物品的入库和出库历史,包括物品ID、数量、类型(入库或出库)、日期等字段。
Modoer 是一款以本地分享,多功能的点评网站管理系统。采用 PHP+MYSQL 开发设计,开放全部源代码。因具有非凡的访问速度和卓越的负载能力而深受国内外朋友的喜爱,不局限于商铺类点评,真正实现了多类型的点评,可以让您的网站点评任何事与物,同时增加产品模块,也更好的网站产品在网站上展示。Modoer点评系统 2.5 Build 20110710更新列表1.同步 旗舰版系统框架2.增加 限制图片
0
CREATE TABLE `stock` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`item_id` INT(11) NOT NULL,
`quantity` INT(11) NOT NULL,
`type` ENUM('in','out') NOT NULL,
`date` DATE NOT NULL,
PRIMARY KEY (`id`),
KEY `item_id` (`item_id`),
CONSTRAINT `stock_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `item` (`id`) ON DELETE CASCADE
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;四、后端实现
创建一个名为"config.php"的文件,用于存储数据库连接参数。
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'warehouse';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if (!$conn) {
die('Could not connect: ' . mysqli_error());
}
?>创建一个名为"index.php"的文件,用于处理后端请求。
<?php
include('config.php');
$action = $_GET['action'];
if ($action == 'list') {
$result = mysqli_query($conn, "SELECT * FROM item");
$rows = array();
while ($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
echo json_encode($rows);
} elseif ($action == 'add') {
$name = $_POST['name'];
$quantity = $_POST['quantity'];
mysqli_query($conn, "INSERT INTO item (name, quantity) VALUES ('$name', $quantity)");
echo mysqli_insert_id($conn);
} elseif ($action == 'update') {
$id = $_POST['id'];
$name = $_POST['name'];
$quantity = $_POST['quantity'];
mysqli_query($conn, "UPDATE item SET name='$name', quantity=$quantity WHERE id=$id");
} elseif ($action == 'delete') {
$id = $_POST['id'];
mysqli_query($conn, "DELETE FROM item WHERE id=$id");
}
mysqli_close($conn);
?>五、前端实现
创建一个名为"index.html"的文件,用于编写前端页面。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>仓库管理系统</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.15.1/lib/theme-chalk/index.css">
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
</head>
<body>
<div id="app">
<el-table :data="items" style="width: 500px;">
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="name" label="名称"></el-table-column>
<el-table-column prop="quantity" label="数量"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="danger" @click="handleDelete(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog :visible.sync="dialogVisible" :before-close="handleCloseDialog" title="编辑物品">
<el-form :model="currentItem" label-width="80px">
<el-form-item label="名称">
<el-input v-model="currentItem.name"></el-input>
</el-form-item>
<el-form-item label="数量">
<el-input v-model.number="currentItem.quantity"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="handleSubmit">确 定</el-button>
</div>
</el-dialog>
<el-button type="primary" @click="handleAdd">新增</el-button>
</div>
<script>
var app = new Vue({
el: '#app',
data: {
items: [],
dialogVisible: false,
currentItem: {}
},
methods: {
fetchData() {
axios.get('index.php?action=list').then(response => {
this.items = response.data;
});
},
handleAdd() {
this.currentItem.name = '';
this.currentItem.quantity = 0;
this.dialogVisible = true;
},
handleSubmit() {
if (this.currentItem.id) {
axios.post('index.php?action=update', this.currentItem).then(() => {
this.fetchData();
this.dialogVisible = false;
});
} else {
axios.post('index.php?action=add', this.currentItem).then(response => {
this.currentItem.id = response.data;
this.items.push(this.currentItem);
this.dialogVisible = false;
});
}
},
handleCloseDialog(done) {
this.$confirm('确认关闭?')
.then(() => {
done();
this.dialogVisible = false;
})
.catch(() => {});
},
handleDelete(id) {
axios.post('index.php?action=delete', { id }).then(() => {
this.fetchData();
});
}
},
mounted() {
this.fetchData();
}
});
</script>
</body>
</html>六、测试
七、总结
本文通过使用PHP和Vue框架演示了一个简单的仓库管理系统的实现过程。通过这个例子,你可以了解到如何利用PHP与Vue的优势和特点来开发一个实用的仓库管理系统,并在实践中不断丰富和完善。希望本文能对你的学习和开发工作有所帮助。
以上就是如何使用PHP和Vue实现仓库管理系统的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号