Compare commits
6 Commits
Author | SHA1 | Date |
---|---|---|
|
46cb866ad1 | 7 months ago |
|
47b8de55bb | 7 months ago |
|
aeebaa58d2 | 7 months ago |
|
97b6db67ba | 7 months ago |
|
3718e3247d | 7 months ago |
|
1cd1baa86f | 7 months ago |
@ -0,0 +1,55 @@
|
|||||||
|
from flask import Flask, jsonify, request
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
# 模拟数据库,存储用户信息
|
||||||
|
users = []
|
||||||
|
|
||||||
|
|
||||||
|
# 查看所有用户信息
|
||||||
|
@app.route('/users', methods=['GET'])
|
||||||
|
def get_users():
|
||||||
|
return jsonify(users)
|
||||||
|
|
||||||
|
|
||||||
|
# 查看单个用户信息
|
||||||
|
@app.route('/users/<int:user_id>', methods=['GET'])
|
||||||
|
def get_user(user_id):
|
||||||
|
for user in users:
|
||||||
|
if user['id'] == user_id:
|
||||||
|
return jsonify(user)
|
||||||
|
return jsonify({'message': 'User not found'}), 404
|
||||||
|
|
||||||
|
|
||||||
|
# 添加用户
|
||||||
|
@app.route('/users', methods=['POST'])
|
||||||
|
def add_user():
|
||||||
|
new_user = request.get_json()
|
||||||
|
new_user['id'] = len(users) + 1
|
||||||
|
users.append(new_user)
|
||||||
|
return jsonify(new_user), 201
|
||||||
|
|
||||||
|
|
||||||
|
# 修改用户信息
|
||||||
|
@app.route('/users/<int:user_id>', methods=['PUT'])
|
||||||
|
def update_user(user_id):
|
||||||
|
updated_user = request.get_json()
|
||||||
|
for i, user in enumerate(users):
|
||||||
|
if user['id'] == user_id:
|
||||||
|
users[i].update(updated_user)
|
||||||
|
return jsonify(users[i])
|
||||||
|
return jsonify({'message': 'User not found'}), 404
|
||||||
|
|
||||||
|
|
||||||
|
# 删除用户信息
|
||||||
|
@app.route('/users/<int:user_id>', methods=['DELETE'])
|
||||||
|
def delete_user(user_id):
|
||||||
|
for i, user in enumerate(users):
|
||||||
|
if user['id'] == user_id:
|
||||||
|
del users[i]
|
||||||
|
return jsonify({'message': 'User deleted'})
|
||||||
|
return jsonify({'message': 'User not found'}), 404
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app.run(debug=True)
|
@ -0,0 +1,8 @@
|
|||||||
|
[database]
|
||||||
|
host = localhost
|
||||||
|
database = demo
|
||||||
|
user = root
|
||||||
|
password = password
|
||||||
|
|
||||||
|
[application]
|
||||||
|
log_level = DEBUG
|
@ -0,0 +1,78 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>仓库管理系统 - 前端界面</title>
|
||||||
|
<link rel="stylesheet" href="styles.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<h1>仓库管理系统</h1>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<!-- 货物管理部分 -->
|
||||||
|
<section id="goods-management">
|
||||||
|
<h2>货物管理</h2>
|
||||||
|
<table id="goods-table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>货物编号</th>
|
||||||
|
<th>货物名称</th>
|
||||||
|
<th>货物类型</th>
|
||||||
|
<th>库存数量</th>
|
||||||
|
<th>操作</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody></tbody>
|
||||||
|
</table>
|
||||||
|
<button id="add-goods-btn">添加货物</button>
|
||||||
|
<button id="update-goods-btn">更新货物</button>
|
||||||
|
<button id="delete-goods-btn">删除货物</button>
|
||||||
|
</section>
|
||||||
|
<!-- 仓库管理部分 -->
|
||||||
|
<section id="warehouse-management">
|
||||||
|
<h2>仓库管理</h2>
|
||||||
|
<table id="warehouse-table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>仓库编号</th>
|
||||||
|
<th>仓库名称</th>
|
||||||
|
<th>仓库地址</th>
|
||||||
|
<th>仓库面积</th>
|
||||||
|
<th>操作</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody></tbody>
|
||||||
|
</table>
|
||||||
|
<button id="add-warehouse-btn">添加仓库</button>
|
||||||
|
<button id="update-warehouse-btn">更新仓库</button>
|
||||||
|
<button id="delete-warehouse-btn">删除仓库</button>
|
||||||
|
</section>
|
||||||
|
<!-- 订单管理部分 -->
|
||||||
|
<section id="order-management">
|
||||||
|
<h2>订单管理</h2>
|
||||||
|
<table id="order-table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>订单编号</th>
|
||||||
|
<th>订单日期</th>
|
||||||
|
<th>客户名称</th>
|
||||||
|
<th>订单状态</th>
|
||||||
|
<th>操作</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody></tbody>
|
||||||
|
</table>
|
||||||
|
<button id="add-order-btn">添加订单</button>
|
||||||
|
<button id="update-order-btn">更新订单</button>
|
||||||
|
<button id="delete-order-btn">删除订单</button>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="script.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -0,0 +1,24 @@
|
|||||||
|
import mysql.connector
|
||||||
|
from mysql.connector import Error
|
||||||
|
import configparser
|
||||||
|
|
||||||
|
def load_config():
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read('config.ini')
|
||||||
|
return config
|
||||||
|
|
||||||
|
def connect_to_database():
|
||||||
|
try:
|
||||||
|
config = load_config()
|
||||||
|
connection = mysql.connector.connect(
|
||||||
|
host=config['database']['host'],
|
||||||
|
database=config['database']['database'],
|
||||||
|
user=config['database']['user'],
|
||||||
|
password=config['database']['password']
|
||||||
|
)
|
||||||
|
if connection.is_connected():
|
||||||
|
print("Connected to the database successfully!")
|
||||||
|
return connection
|
||||||
|
except Error as e:
|
||||||
|
print(f"Error while connecting to database: {e}")
|
||||||
|
return None
|
@ -0,0 +1,347 @@
|
|||||||
|
// 模拟获取货物数据的函数
|
||||||
|
function getGoodsData() {
|
||||||
|
// 这里可以使用Ajax或其他方式从后端获取货物数据
|
||||||
|
return [
|
||||||
|
{ id: 1, name: "电脑显示器", type: "电子产品", quantity: 100 },
|
||||||
|
{ id: 2, name: "运动鞋", type: "服装", quantity: 200 },
|
||||||
|
{ id: 3, name: "苹果手机", type: "电子产品", quantity: 150 }
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 模拟获取仓库数据的函数
|
||||||
|
function getWarehouseData() {
|
||||||
|
// 这里可以使用Ajax或其他方式从后端获取仓库数据
|
||||||
|
return [
|
||||||
|
{ id: 1, name: "北京仓库", address: "北京市朝阳区", area: 1000 },
|
||||||
|
{ id: 2, name: "上海仓库", address: "上海市浦东新区", area: 1200 },
|
||||||
|
{ id: 3, name: "广州仓库", address: "广州市天河区", area: 800 }
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 模拟获取订单数据的函数
|
||||||
|
function getOrderData() {
|
||||||
|
// 这里可以使用Ajax或其他方式从后端获取订单数据
|
||||||
|
return [
|
||||||
|
{ id: 1, date: "2024-01-01", customer: "客户A", status: "已创建" },
|
||||||
|
{ id: 2, date: "2024-01-02", customer: "客户B", status: "已审核" },
|
||||||
|
{ id: 3, date: "2024-01-03", customer: "客户C", status: "已发货" }
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染货物数据到表格
|
||||||
|
function renderGoodsData() {
|
||||||
|
var goodsTable = document.getElementById('goods-table');
|
||||||
|
goodsTable.innerHTML = '';
|
||||||
|
var goodsData = getGoodsData();
|
||||||
|
goodsData.forEach(function (goods) {
|
||||||
|
var row = goodsTable.insertRow();
|
||||||
|
var cell1 = row.insertCell(0);
|
||||||
|
cell1.innerHTML = goods.id;
|
||||||
|
var cell2 = row.insertCell(1);
|
||||||
|
cell2.innerHTML = goods.name;
|
||||||
|
var cell3 = row.insertCell(2);
|
||||||
|
cell3.innerHTML = goods.type;
|
||||||
|
var cell4 = row.insertCell(3);
|
||||||
|
cell4.innerHTML = goods.quantity;
|
||||||
|
var cell5 = row.insertCell(4);
|
||||||
|
var editBtn = document.createElement('button');
|
||||||
|
editBtn.innerHTML = '编辑';
|
||||||
|
editBtn.onclick = function () {
|
||||||
|
// 这里可以添加编辑货物的逻辑
|
||||||
|
alert('编辑货物:' + goods.name);
|
||||||
|
};
|
||||||
|
var deleteBtn = document.createElement('button');
|
||||||
|
deleteBtn.innerHTML = '删除';
|
||||||
|
deleteBtn.onclick = function () {
|
||||||
|
// 这里可以添加删除货物的逻辑
|
||||||
|
var confirmDelete = confirm('确定要删除该货物吗?');
|
||||||
|
if (confirmDelete) {
|
||||||
|
// 模拟删除操作
|
||||||
|
goodsData = goodsData.filter(function (item) {
|
||||||
|
return item.id!== goods.id;
|
||||||
|
});
|
||||||
|
renderGoodsData();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
cell5.appendChild(editBtn);
|
||||||
|
cell5.appendChild(deleteBtn);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染仓库数据到表格
|
||||||
|
function renderWarehouseData() {
|
||||||
|
var warehouseTable = document.getElementById('warehouse-table');
|
||||||
|
warehouseTable.innerHTML = '';
|
||||||
|
var warehouseData = getWarehouseData();
|
||||||
|
warehouseData.forEach(function (warehouse) {
|
||||||
|
var row = warehouseTable.insertRow();
|
||||||
|
var cell1 = row.insertCell(0);
|
||||||
|
cell1.innerHTML = warehouse.id;
|
||||||
|
var cell2 = row.insertCell(1);
|
||||||
|
cell2.innerHTML = warehouse.name;
|
||||||
|
var cell3 = row.insertCell(2);
|
||||||
|
cell3.innerHTML = warehouse.address;
|
||||||
|
var cell4 = row.insertCell(3);
|
||||||
|
cell4.innerHTML = warehouse.area;
|
||||||
|
var cell5 = row.insertCell(4);
|
||||||
|
var editBtn = document.createElement('button');
|
||||||
|
editBtn.innerHTML = '编辑';
|
||||||
|
editBtn.onclick = function () {
|
||||||
|
// 这里可以添加编辑仓库的逻辑
|
||||||
|
alert('编辑仓库:' + warehouse.name);
|
||||||
|
};
|
||||||
|
var deleteBtn = document.createElement('button');
|
||||||
|
deleteBtn.innerHTML = '删除';
|
||||||
|
deleteBtn.onclick = function () {
|
||||||
|
// 这里可以添加删除仓库的逻辑
|
||||||
|
var confirmDelete = confirm('确定要删除该仓库吗?');
|
||||||
|
if (confirmDelete) {
|
||||||
|
// 模拟删除操作
|
||||||
|
warehouseData = warehouseData.filter(function (item) {
|
||||||
|
return item.id!== warehouse.id;
|
||||||
|
});
|
||||||
|
renderWarehouseData();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
cell5.appendChild(editBtn);
|
||||||
|
cell5.appendChild(deleteBtn);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染订单数据到表格
|
||||||
|
function renderOrderData() {
|
||||||
|
var orderTable = document.getElementById('order-table');
|
||||||
|
orderTable.innerHTML = '';
|
||||||
|
var orderData = getOrderData();
|
||||||
|
orderData.forEach(function (order) {
|
||||||
|
var row = orderTable.insertRow();
|
||||||
|
var cell1 = row.insertCell(0);
|
||||||
|
cell1.innerHTML = order.id;
|
||||||
|
var cell2 = row.insertCell(1);
|
||||||
|
cell2.innerHTML = order.date;
|
||||||
|
var cell3 = row.insertCell(2);
|
||||||
|
cell3.innerHTML = order.customer;
|
||||||
|
var cell4 = row.insertCell(3);
|
||||||
|
cell4.innerHTML = order.status;
|
||||||
|
var cell5 = row.insertCell(4);
|
||||||
|
var editBtn = document.createElement('button');
|
||||||
|
editBtn.innerHTML = '编辑';
|
||||||
|
editBtn.onclick = function () {
|
||||||
|
// 这里可以添加编辑订单的逻辑
|
||||||
|
alert('编辑订单:' + order.customer);
|
||||||
|
};
|
||||||
|
var deleteBtn = document.createElement('button');
|
||||||
|
deleteBtn.innerHTML = '删除';
|
||||||
|
deleteBtn.onclick = function () {
|
||||||
|
// 这里可以添加删除订单的逻辑
|
||||||
|
var confirmDelete = confirm('确定要删除该订单吗?');
|
||||||
|
if (confirmDelete) {
|
||||||
|
// 模拟删除操作
|
||||||
|
orderData = orderData.filter(function (item) {
|
||||||
|
return item.id!== order.id;
|
||||||
|
});
|
||||||
|
renderOrderData();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
cell5.appendChild(editBtn);
|
||||||
|
cell5.appendChild(deleteBtn);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加货物事件处理
|
||||||
|
document.getElementById('add-goods-btn').addEventListener('click', function () {
|
||||||
|
// 这里可以添加添加货物的逻辑,例如打开添加货物的模态框或跳转到添加货物的页面
|
||||||
|
alert('添加货物');
|
||||||
|
});
|
||||||
|
|
||||||
|
// 添加仓库事件处理
|
||||||
|
document.getElementById('add-warehouse-btn').addEventListener('click', function () {
|
||||||
|
// 这里可以添加添加仓库的逻辑,例如打开添加仓库的模态框或跳转到添加仓库的页面
|
||||||
|
alert('添加仓库');
|
||||||
|
});
|
||||||
|
|
||||||
|
// 添加订单事件处理
|
||||||
|
document.getElementById('add-order-btn').addEventListener('click', function () {
|
||||||
|
// 这里可以添加添加订单的逻辑,例如打开添加订单的模态框或跳转到添加订单的页面
|
||||||
|
alert('添加订单');
|
||||||
|
});
|
||||||
|
|
||||||
|
// 页面加载时渲染货物、仓库和订单数据
|
||||||
|
window.onload = function () {
|
||||||
|
renderGoodsData();
|
||||||
|
renderWarehouseData();
|
||||||
|
renderOrderData();
|
||||||
|
};// 模拟获取货物数据的函数
|
||||||
|
function getGoodsData() {
|
||||||
|
// 这里可以使用Ajax或其他方式从后端获取货物数据
|
||||||
|
return [
|
||||||
|
{ id: 1, name: "电脑显示器", type: "电子产品", quantity: 100 },
|
||||||
|
{ id: 2, name: "运动鞋", type: "服装", quantity: 200 },
|
||||||
|
{ id: 3, name: "苹果手机", type: "电子产品", quantity: 150 }
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 模拟获取仓库数据的函数
|
||||||
|
function getWarehouseData() {
|
||||||
|
// 这里可以使用Ajax或其他方式从后端获取仓库数据
|
||||||
|
return [
|
||||||
|
{ id: 1, name: "北京仓库", address: "北京市朝阳区", area: 1000 },
|
||||||
|
{ id: 2, name: "上海仓库", address: "上海市浦东新区", area: 1200 },
|
||||||
|
{ id: 3, name: "广州仓库", address: "广州市天河区", area: 800 }
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 模拟获取订单数据的函数
|
||||||
|
function getOrderData() {
|
||||||
|
// 这里可以使用Ajax或其他方式从后端获取订单数据
|
||||||
|
return [
|
||||||
|
{ id: 1, date: "2024-01-01", customer: "客户A", status: "已创建" },
|
||||||
|
{ id: 2, date: "2024-01-02", customer: "客户B", status: "已审核" },
|
||||||
|
{ id: 3, date: "2024-01-03", customer: "客户C", status: "已发货" }
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染货物数据到表格
|
||||||
|
function renderGoodsData() {
|
||||||
|
var goodsTable = document.getElementById('goods-table');
|
||||||
|
goodsTable.innerHTML = '';
|
||||||
|
var goodsData = getGoodsData();
|
||||||
|
goodsData.forEach(function (goods) {
|
||||||
|
var row = goodsTable.insertRow();
|
||||||
|
var cell1 = row.insertCell(0);
|
||||||
|
cell1.innerHTML = goods.id;
|
||||||
|
var cell2 = row.insertCell(1);
|
||||||
|
cell2.innerHTML = goods.name;
|
||||||
|
var cell3 = row.insertCell(2);
|
||||||
|
cell3.innerHTML = goods.type;
|
||||||
|
var cell4 = row.insertCell(3);
|
||||||
|
cell4.innerHTML = goods.quantity;
|
||||||
|
var cell5 = row.insertCell(4);
|
||||||
|
var editBtn = document.createElement('button');
|
||||||
|
editBtn.innerHTML = '编辑';
|
||||||
|
editBtn.onclick = function () {
|
||||||
|
// 这里可以添加编辑货物的逻辑
|
||||||
|
alert('编辑货物:' + goods.name);
|
||||||
|
};
|
||||||
|
var deleteBtn = document.createElement('button');
|
||||||
|
deleteBtn.innerHTML = '删除';
|
||||||
|
deleteBtn.onclick = function () {
|
||||||
|
// 这里可以添加删除货物的逻辑
|
||||||
|
var confirmDelete = confirm('确定要删除该货物吗?');
|
||||||
|
if (confirmDelete) {
|
||||||
|
// 模拟删除操作
|
||||||
|
goodsData = goodsData.filter(function (item) {
|
||||||
|
return item.id!== goods.id;
|
||||||
|
});
|
||||||
|
renderGoodsData();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
cell5.appendChild(editBtn);
|
||||||
|
cell5.appendChild(deleteBtn);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染仓库数据到表格
|
||||||
|
function renderWarehouseData() {
|
||||||
|
var warehouseTable = document.getElementById('warehouse-table');
|
||||||
|
warehouseTable.innerHTML = '';
|
||||||
|
var warehouseData = getWarehouseData();
|
||||||
|
warehouseData.forEach(function (warehouse) {
|
||||||
|
var row = warehouseTable.insertRow();
|
||||||
|
var cell1 = row.insertCell(0);
|
||||||
|
cell1.innerHTML = warehouse.id;
|
||||||
|
var cell2 = row.insertCell(1);
|
||||||
|
cell2.innerHTML = warehouse.name;
|
||||||
|
var cell3 = row.insertCell(2);
|
||||||
|
cell3.innerHTML = warehouse.address;
|
||||||
|
var cell4 = row.insertCell(3);
|
||||||
|
cell4.innerHTML = warehouse.area;
|
||||||
|
var cell5 = row.insertCell(4);
|
||||||
|
var editBtn = document.createElement('button');
|
||||||
|
editBtn.innerHTML = '编辑';
|
||||||
|
editBtn.onclick = function () {
|
||||||
|
// 这里可以添加编辑仓库的逻辑
|
||||||
|
alert('编辑仓库:' + warehouse.name);
|
||||||
|
};
|
||||||
|
var deleteBtn = document.createElement('button');
|
||||||
|
deleteBtn.innerHTML = '删除';
|
||||||
|
deleteBtn.onclick = function () {
|
||||||
|
// 这里可以添加删除仓库的逻辑
|
||||||
|
var confirmDelete = confirm('确定要删除该仓库吗?');
|
||||||
|
if (confirmDelete) {
|
||||||
|
// 模拟删除操作
|
||||||
|
warehouseData = warehouseData.filter(function (item) {
|
||||||
|
return item.id!== warehouse.id;
|
||||||
|
});
|
||||||
|
renderWarehouseData();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
cell5.appendChild(editBtn);
|
||||||
|
cell5.appendChild(deleteBtn);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 渲染订单数据到表格
|
||||||
|
function renderOrderData() {
|
||||||
|
var orderTable = document.getElementById('order-table');
|
||||||
|
orderTable.innerHTML = '';
|
||||||
|
var orderData = getOrderData();
|
||||||
|
orderData.forEach(function (order) {
|
||||||
|
var row = orderTable.insertRow();
|
||||||
|
var cell1 = row.insertCell(0);
|
||||||
|
cell1.innerHTML = order.id;
|
||||||
|
var cell2 = row.insertCell(1);
|
||||||
|
cell2.innerHTML = order.date;
|
||||||
|
var cell3 = row.insertCell(2);
|
||||||
|
cell3.innerHTML = order.customer;
|
||||||
|
var cell4 = row.insertCell(3);
|
||||||
|
cell4.innerHTML = order.status;
|
||||||
|
var cell5 = row.insertCell(4);
|
||||||
|
var editBtn = document.createElement('button');
|
||||||
|
editBtn.innerHTML = '编辑';
|
||||||
|
editBtn.onclick = function () {
|
||||||
|
// 这里可以添加编辑订单的逻辑
|
||||||
|
alert('编辑订单:' + order.customer);
|
||||||
|
};
|
||||||
|
var deleteBtn = document.createElement('button');
|
||||||
|
deleteBtn.innerHTML = '删除';
|
||||||
|
deleteBtn.onclick = function () {
|
||||||
|
// 这里可以添加删除订单的逻辑
|
||||||
|
var confirmDelete = confirm('确定要删除该订单吗?');
|
||||||
|
if (confirmDelete) {
|
||||||
|
// 模拟删除操作
|
||||||
|
orderData = orderData.filter(function (item) {
|
||||||
|
return item.id!== order.id;
|
||||||
|
});
|
||||||
|
renderOrderData();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
cell5.appendChild(editBtn);
|
||||||
|
cell5.appendChild(deleteBtn);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加货物事件处理
|
||||||
|
document.getElementById('add-goods-btn').addEventListener('click', function () {
|
||||||
|
// 这里可以添加添加货物的逻辑,例如打开添加货物的模态框或跳转到添加货物的页面
|
||||||
|
alert('添加货物');
|
||||||
|
});
|
||||||
|
|
||||||
|
// 添加仓库事件处理
|
||||||
|
document.getElementById('add-warehouse-btn').addEventListener('click', function () {
|
||||||
|
// 这里可以添加添加仓库的逻辑,例如打开添加仓库的模态框或跳转到添加仓库的页面
|
||||||
|
alert('添加仓库');
|
||||||
|
});
|
||||||
|
|
||||||
|
// 添加订单事件处理
|
||||||
|
document.getElementById('add-order-btn').addEventListener('click', function () {
|
||||||
|
// 这里可以添加添加订单的逻辑,例如打开添加订单的模态框或跳转到添加订单的页面
|
||||||
|
alert('添加订单');
|
||||||
|
});
|
||||||
|
|
||||||
|
// 页面加载时渲染货物、仓库和订单数据
|
||||||
|
window.onload = function () {
|
||||||
|
renderGoodsData();
|
||||||
|
renderWarehouseData();
|
||||||
|
renderOrderData();
|
||||||
|
};
|
@ -0,0 +1,34 @@
|
|||||||
|
body {
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
margin: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
background-color: #f0f0f0;
|
||||||
|
padding: 10px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
th, td {
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
padding: 8px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
background-color: #4CAF50;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error {
|
||||||
|
color: red;
|
||||||
|
}
|
Loading…
Reference in new issue