$@vI^Lkzv~CzG+?$o%{s|wc{=lmQv!-xri?!
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
+
+
+
+
+
+
+ 圆桌物流管理系统
+
+
+
+
+
diff --git a/Vue/src/App.vue b/Vue/src/App.vue
new file mode 100644
index 00000000..5906ca3a
--- /dev/null
+++ b/Vue/src/App.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/Vue/src/api/admin.js b/Vue/src/api/admin.js
new file mode 100644
index 00000000..b50807c6
--- /dev/null
+++ b/Vue/src/api/admin.js
@@ -0,0 +1,54 @@
+import service from "../utils/request";
+
+export function IsInit() {
+ return service({
+ url: '/admin/hasInit',
+ method: 'get',
+ })
+}
+
+export function Init(data) {
+ return service({
+ url: '/admin/init',
+ method: 'post',
+ data: data
+ })
+}
+
+export function DeleteAdmin(id) {
+ return service({
+ url: '/admin?id=' + id,
+ method: 'delete',
+ })
+}
+
+export function FindAllAdmin() {
+ return service({
+ url: '/admin',
+ method: 'get',
+ })
+}
+
+export function SaveAdmin(data) {
+ return service({
+ url: '/admin',
+ method: 'post',
+ data: data
+ })
+}
+
+export function AdminSendEmail(email) {
+ return service({
+ url: '/admin/sendEmail?email=' + email,
+ method: 'get'
+ })
+}
+
+//管理员登录
+export function AdminLogin(type, data) {
+ return service({
+ url: '/admin/login?type=' + type,
+ method: 'post',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/Vue/src/api/commodity.js b/Vue/src/api/commodity.js
new file mode 100644
index 00000000..d9b71575
--- /dev/null
+++ b/Vue/src/api/commodity.js
@@ -0,0 +1,47 @@
+import service from "../utils/request";
+
+export function FindAllCommodity() {
+ console.log("执行FindAllCommodity");
+ // request 拦截器
+ // 可以自请求发送前对请求做一些处理
+ // 比如统一加token,对请求参数统一加密
+ service.interceptors.request.use(config => {
+ console.log("执行config")
+ let token = localStorage.getItem("token");
+ if (token != null){
+ config.headers['Authorization'] = token; // 设置请求头
+ }
+ return config
+ }, error => {
+ return Promise.reject(error)
+ });
+
+ return service({
+ url: '/commodity',
+ method: 'get'
+ // headers: {'Authorization': localStorage.getItem("token")}
+ })
+}
+
+export function SearchCommodity(name) {
+ return service({
+ url: '/commodity/search/' + name,
+ method: 'get'
+ })
+}
+
+export function SaveCommodity(data) {
+
+ return service({
+ url: '/commodity',
+ method: 'post',
+ data: data
+ })
+}
+
+export function DeleteCommodityById(id) {
+ return service({
+ url: '/commodity?id=' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/Vue/src/api/distribution.js b/Vue/src/api/distribution.js
new file mode 100644
index 00000000..cef30f49
--- /dev/null
+++ b/Vue/src/api/distribution.js
@@ -0,0 +1,23 @@
+import service from "../utils/request";
+
+export function FindAllDistribution() {
+ return service({
+ url: '/distribution',
+ method: 'get'
+ })
+}
+
+export function FindAllCanUse() {
+ return service({
+ url: '/distribution/can',
+ method: 'get'
+ })
+}
+
+export function SaveDistribution(data) {
+ return service({
+ url: '/distribution',
+ method: 'post',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/Vue/src/api/driver.js b/Vue/src/api/driver.js
new file mode 100644
index 00000000..dfdac73f
--- /dev/null
+++ b/Vue/src/api/driver.js
@@ -0,0 +1,23 @@
+import service from "../utils/request";
+
+export function FindAllDriver(){
+ return service({
+ url: '/driver',
+ method: 'get'
+ })
+}
+
+export function SaveDriver(data) {
+ return service({
+ url: '/driver',
+ method: 'post',
+ data: data
+ })
+}
+
+export function DeleteDriverById(id){
+ return service({
+ url: '/driver?id=' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/Vue/src/api/employee.js b/Vue/src/api/employee.js
new file mode 100644
index 00000000..115d2f84
--- /dev/null
+++ b/Vue/src/api/employee.js
@@ -0,0 +1,23 @@
+import service from "../utils/request";
+
+export function FindAllEmployee(){
+ return service({
+ url: '/employee',
+ method: 'get'
+ })
+}
+
+export function SaveEmployee(data) {
+ return service({
+ url: '/employee',
+ method: 'post',
+ data: data
+ })
+}
+
+export function DeleteEmployeeById(id){
+ return service({
+ url: '/employee?id=' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/Vue/src/api/inventory.js b/Vue/src/api/inventory.js
new file mode 100644
index 00000000..12778fd1
--- /dev/null
+++ b/Vue/src/api/inventory.js
@@ -0,0 +1,37 @@
+import service from "../utils/request";
+
+export function AnalyzeCommodity(type) {
+ return service({
+ url: '/inventory/analyze?type=' + type,
+ method: 'get'
+ })
+}
+
+export function FindAllInventory(id) {
+ return service({
+ url: '/inventory/warehouse/' + id,
+ method: 'get'
+ })
+}
+
+export function InAndOut(type, data) {
+ return service({
+ url: '/inventory/' + type,
+ method: 'post',
+ data: data
+ })
+}
+
+export function FindRecordByWarehouse(id) {
+ return service({
+ url: '/inventory/record/warehouse/' + id,
+ method: 'get'
+ })
+}
+
+export function DeleteInventoryById(id) {
+ return service({
+ url: '/inventory?id=' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/Vue/src/api/log.js b/Vue/src/api/log.js
new file mode 100644
index 00000000..baec22e0
--- /dev/null
+++ b/Vue/src/api/log.js
@@ -0,0 +1,46 @@
+/*
+ 日志管理请求模块
+*/
+import service from "../utils/request";
+
+//查询全部登录日志
+export function FindAllLoginLog() {
+ return service({
+ url: '/loginlog',
+ method: 'get'
+ })
+}
+
+//查询全部操作日志
+export function FindAllSystemLog() {
+ return service({
+ url: '/systemlog',
+ method: 'get'
+ })
+}
+
+//根据条件查询操作日志
+export function querySystemLog(account,moudle) {
+ return service({
+ url: 'querySystemlog?account='+account+'&moudle='+moudle,
+ method: 'get'
+ })
+}
+
+//删除操作日志
+export function DeleteSystemLogById(id) {
+ return service({
+ url: '/systemlog?id='+id,
+ method: 'delete'
+ })
+}
+
+//删除登录日志
+export function DeleteLoginLogById(id) {
+ return service({
+ url: '/loginlog?id='+id,
+ method: 'delete'
+ })
+}
+
+
diff --git a/Vue/src/api/role.js b/Vue/src/api/role.js
new file mode 100644
index 00000000..076f2cf7
--- /dev/null
+++ b/Vue/src/api/role.js
@@ -0,0 +1,8 @@
+import service from "../utils/request";
+
+export function FindAllRole(){
+ return service({
+ url: '/role',
+ method: 'get'
+ })
+}
diff --git a/Vue/src/api/sale.js b/Vue/src/api/sale.js
new file mode 100644
index 00000000..0bad2069
--- /dev/null
+++ b/Vue/src/api/sale.js
@@ -0,0 +1,24 @@
+import service from "../utils/request";
+
+export function FindAllSale() {
+ console.log("FindAllSale")
+ return service({
+ url: '/sale',
+ method: 'get'
+ })
+}
+
+export function SearchCompany(name) {
+ return service({
+ url: '/sale/search/' + name,
+ method: 'get'
+ })
+}
+
+export function SaveSale(data) {
+ return service({
+ url: '/sale',
+ method: 'post',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/Vue/src/api/vehicle.js b/Vue/src/api/vehicle.js
new file mode 100644
index 00000000..2146531e
--- /dev/null
+++ b/Vue/src/api/vehicle.js
@@ -0,0 +1,23 @@
+import service from "../utils/request";
+
+export function FindAllVehicle(){
+ return service({
+ url: '/vehicle',
+ method: 'get'
+ })
+}
+
+export function SaveVehicle(data) {
+ return service({
+ url: '/vehicle',
+ method: 'post',
+ data: data
+ })
+}
+
+export function DeleteVehicleById(id){
+ return service({
+ url: '/vehicle?id=' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/Vue/src/api/warehouse.js b/Vue/src/api/warehouse.js
new file mode 100644
index 00000000..5d4e1ba9
--- /dev/null
+++ b/Vue/src/api/warehouse.js
@@ -0,0 +1,23 @@
+import service from "../utils/request";
+
+export function FindAllWarehouse() {
+ return service({
+ url: '/warehouse',
+ method: 'get'
+ })
+}
+
+export function SaveWarehouse(data) {
+ return service({
+ url: '/warehouse',
+ method: 'post',
+ data: data
+ })
+}
+
+export function DeleteWarehouseById(id) {
+ return service({
+ url: '/warehouse?id=' + id,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/Vue/src/assets/avatar.png b/Vue/src/assets/avatar.png
new file mode 100644
index 0000000000000000000000000000000000000000..0db576c1419ab497a1fbb7534fa6fd1460789f28
GIT binary patch
literal 469232
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