diff --git a/src/api/spares/inbound.js b/src/api/spares/inbound.js
new file mode 100644
index 0000000..4f03845
--- /dev/null
+++ b/src/api/spares/inbound.js
@@ -0,0 +1,50 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+ return request({
+ url: '/api/spares/inbound/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ }
+ })
+}
+
+export const getDetail = (id) => {
+ return request({
+ url: '/api/spares/inbound/detail',
+ method: 'get',
+ params: {
+ id
+ }
+ })
+}
+
+export const remove = (ids) => {
+ return request({
+ url: '/api/spares/inbound/remove',
+ method: 'post',
+ params: {
+ ids,
+ }
+ })
+}
+
+export const add = (row) => {
+ return request({
+ url: '/api/spares/inbound/submit',
+ method: 'post',
+ data: row
+ })
+}
+
+export const update = (row) => {
+ return request({
+ url: '/api/spares/inbound/submit',
+ method: 'post',
+ data: row
+ })
+}
+
diff --git a/src/api/spares/material.js b/src/api/spares/material.js
new file mode 100644
index 0000000..0ee0c57
--- /dev/null
+++ b/src/api/spares/material.js
@@ -0,0 +1,50 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+ return request({
+ url: '/api/spares/material/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ }
+ })
+}
+
+export const getDetail = (id) => {
+ return request({
+ url: '/api/spares/material/detail',
+ method: 'get',
+ params: {
+ id
+ }
+ })
+}
+
+export const remove = (ids) => {
+ return request({
+ url: '/api/spares/material/remove',
+ method: 'post',
+ params: {
+ ids,
+ }
+ })
+}
+
+export const add = (row) => {
+ return request({
+ url: '/api/spares/material/submit',
+ method: 'post',
+ data: row
+ })
+}
+
+export const update = (row) => {
+ return request({
+ url: '/api/spares/material/submit',
+ method: 'post',
+ data: row
+ })
+}
+
diff --git a/src/api/spares/materialclasscode.js b/src/api/spares/materialclasscode.js
new file mode 100644
index 0000000..d68adc8
--- /dev/null
+++ b/src/api/spares/materialclasscode.js
@@ -0,0 +1,50 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+ return request({
+ url: '/api/spares/materialclasscode/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ }
+ })
+}
+
+export const getDetail = (id) => {
+ return request({
+ url: '/api/spares/materialclasscode/detail',
+ method: 'get',
+ params: {
+ id
+ }
+ })
+}
+
+export const remove = (ids) => {
+ return request({
+ url: '/api/spares/materialclasscode/remove',
+ method: 'post',
+ params: {
+ ids,
+ }
+ })
+}
+
+export const add = (row) => {
+ return request({
+ url: '/api/spares/materialclasscode/submit',
+ method: 'post',
+ data: row
+ })
+}
+
+export const update = (row) => {
+ return request({
+ url: '/api/spares/materialclasscode/submit',
+ method: 'post',
+ data: row
+ })
+}
+
diff --git a/src/api/spares/outbound.js b/src/api/spares/outbound.js
new file mode 100644
index 0000000..a51a7be
--- /dev/null
+++ b/src/api/spares/outbound.js
@@ -0,0 +1,50 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+ return request({
+ url: '/api/spares/outbound/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ }
+ })
+}
+
+export const getDetail = (id) => {
+ return request({
+ url: '/api/spares/outbound/detail',
+ method: 'get',
+ params: {
+ id
+ }
+ })
+}
+
+export const remove = (ids) => {
+ return request({
+ url: '/api/spares/outbound/remove',
+ method: 'post',
+ params: {
+ ids,
+ }
+ })
+}
+
+export const add = (row) => {
+ return request({
+ url: '/api/spares/outbound/submit',
+ method: 'post',
+ data: row
+ })
+}
+
+export const update = (row) => {
+ return request({
+ url: '/api/spares/outbound/submit',
+ method: 'post',
+ data: row
+ })
+}
+
diff --git a/src/views/views/spares/inbound.vue b/src/views/views/spares/inbound.vue
new file mode 100644
index 0000000..bd2e359
--- /dev/null
+++ b/src/views/views/spares/inbound.vue
@@ -0,0 +1,270 @@
+
+
+
+
+ 删 除
+
+
+
+
+
+
+
+
+
diff --git a/src/views/views/spares/material.vue b/src/views/views/spares/material.vue
new file mode 100644
index 0000000..cf5cd9e
--- /dev/null
+++ b/src/views/views/spares/material.vue
@@ -0,0 +1,297 @@
+
+
+
+
+ 删 除
+
+
+
+
+
+
+
+
+
diff --git a/src/views/views/spares/materialclasscode.vue b/src/views/views/spares/materialclasscode.vue
new file mode 100644
index 0000000..fcc6311
--- /dev/null
+++ b/src/views/views/spares/materialclasscode.vue
@@ -0,0 +1,225 @@
+
+
+
+
+ 删 除
+
+
+
+
+
+
+
+
+
diff --git a/src/views/views/spares/outbound.vue b/src/views/views/spares/outbound.vue
new file mode 100644
index 0000000..9a4a205
--- /dev/null
+++ b/src/views/views/spares/outbound.vue
@@ -0,0 +1,270 @@
+
+
+
+
+ 删 除
+
+
+
+
+
+
+
+
+