diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/CollectionInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/CollectionInput.cs
new file mode 100644
index 00000000..fb81c3b8
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/CollectionInput.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Yi.Framework.DtoModel.ERP.Purchase
+{
+ ///
+ /// 回款
+ ///
+ public class CollectionInput
+ {
+ ///
+ /// 采购订单id
+ ///
+ public long PurchaseId { get; set; }
+
+ ///
+ ///回款钱
+ ///
+ public float CollectionMoney { get; set; }
+ }
+
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseCreateInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseCreateInput.cs
new file mode 100644
index 00000000..8e80a6ce
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseCreateInput.cs
@@ -0,0 +1,25 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.DtoModel.ERP.PurchaseDetails;
+using Yi.Framework.Model.Base;
+using Yi.Framework.Model.ERP.Entitys;
+
+namespace Yi.Framework.DtoModel.ERP.Purchase
+{
+ public class PurchaseCreateInput
+ {
+ public string Code { get; set; } = string.Empty;
+ public DateTime? NeedTime { get; set; }
+ public string Buyer { get; set; } = string.Empty;
+
+ public string? Remarks { get; set; }
+
+ public long SupplierId { get; set; }
+
+ public List? PurchaseDetails { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseGetListInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseGetListInput.cs
new file mode 100644
index 00000000..f67afb2e
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseGetListInput.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.Base;
+using Yi.Framework.Model.ERP.Entitys;
+
+namespace Yi.Framework.DtoModel.ERP.Purchase
+{
+ public class PurchaseGetListInput
+ {
+ public string? Code { get; set; }
+ public DateTime? NeedTime { get; set; }
+ public string? Buyer { get; set; }
+ public PurchaseStateEnum? PurchaseState { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseUpdateInput.cs
new file mode 100644
index 00000000..d63ed7dc
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseUpdateInput.cs
@@ -0,0 +1,23 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.Base;
+using Yi.Framework.Model.ERP.Entitys;
+
+namespace Yi.Framework.DtoModel.ERP.Purchase
+{
+ public class PurchaseUpdateInput : EntityDto
+ {
+ public string? Code { get; set; }
+ public DateTime NeedTime { get; set; }
+ public string? Buyer { get; set; }
+ public long TotalMoney { get; set; }
+ public long PaidMoney { get; set; }
+
+ public string? Remarks { get; set; }
+ public PurchaseStateEnum PurchaseState { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/ReceiptInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/ReceiptInput.cs
new file mode 100644
index 00000000..c3927de0
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/ReceiptInput.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Yi.Framework.DtoModel.ERP.Purchase
+{
+ ///
+ /// 收货
+ ///
+ public class ReceiptInput
+ {
+ ///
+ /// 采购订单id
+ ///
+ public long PurchaseId { get; set; }
+
+ }
+
+ public class ReceiptDetails
+ {
+ ///
+ /// 订单子表id
+ ///
+ public long PurchaseDatilesId { get; set; }
+
+ ///
+ /// 收货数量
+ ///
+ public long Number { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/ConstConfig/StockConst.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/ConstConfig/StockConst.cs
new file mode 100644
index 00000000..6b9402eb
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/ConstConfig/StockConst.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Yi.Framework.DtoModel.ERP.Stock.ConstConfig
+{
+ public class StockConst
+ {
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/MapperConfig/StockProfile.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/MapperConfig/StockProfile.cs
new file mode 100644
index 00000000..5ba0bf58
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/MapperConfig/StockProfile.cs
@@ -0,0 +1,20 @@
+using AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.ERP.Entitys;
+
+namespace Yi.Framework.DtoModel.ERP.Stock.MapperConfig
+{
+ public class SuppliERProfile:Profile
+ {
+ public SuppliERProfile()
+ {
+ CreateMap();
+ CreateMap();
+
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/StockCreateUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/StockCreateUpdateInput.cs
new file mode 100644
index 00000000..d4010b5a
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/StockCreateUpdateInput.cs
@@ -0,0 +1,18 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.Base;
+
+namespace Yi.Framework.DtoModel.ERP.Stock
+{
+ public class StockCreateUpdateInput : EntityDto
+ {
+ public long WarehouseId { get; set; }
+ public long MaterialId { get; set; }
+ public long Number { get; set; }
+ public string? Quality { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/StockGetListInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/StockGetListInput.cs
new file mode 100644
index 00000000..725cfcad
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/StockGetListInput.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.Base;
+
+namespace Yi.Framework.DtoModel.ERP.Stock
+{
+ public class StockGetListInput
+ {
+
+ public long Number { get; set; }
+ public string? Quality { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/StockGetListOutput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/StockGetListOutput.cs
new file mode 100644
index 00000000..9b62c5bc
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Stock/StockGetListOutput.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.Base;
+
+namespace Yi.Framework.DtoModel.ERP.Stock
+{
+ public class StockGetListOutput: EntityDto
+ {
+ public string MaterialName { get; set; } = string.Empty;
+ public string UnitName { get; set; } = string.Empty;
+ public string WarehouseName { get; set; } = string.Empty;
+ public long Number { get; set; }
+ public string? Quality { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/ConstConfig/StockDetailsConst.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/ConstConfig/StockDetailsConst.cs
new file mode 100644
index 00000000..cbcb436e
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/ConstConfig/StockDetailsConst.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Yi.Framework.DtoModel.ERP.StockDetails.ConstConfig
+{
+ public class StockDetailsConst
+ {
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/MapperConfig/StockDetailsProfile.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/MapperConfig/StockDetailsProfile.cs
new file mode 100644
index 00000000..7c5c6466
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/MapperConfig/StockDetailsProfile.cs
@@ -0,0 +1,20 @@
+using AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.ERP.Entitys;
+
+namespace Yi.Framework.DtoModel.ERP.StockDetails.MapperConfig
+{
+ public class SuppliERProfile:Profile
+ {
+ public SuppliERProfile()
+ {
+ CreateMap();
+ CreateMap();
+
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/StockDetailsCreateUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/StockDetailsCreateUpdateInput.cs
new file mode 100644
index 00000000..1afd5ce1
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/StockDetailsCreateUpdateInput.cs
@@ -0,0 +1,20 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.Base;
+using Yi.Framework.Model.ERP.Entitys;
+
+namespace Yi.Framework.DtoModel.ERP.StockDetails
+{
+ public class StockDetailsCreateUpdateInput : EntityDto
+ {
+ public long WarehouseId { get; set; }
+ public long MaterialId { get; set; }
+ public long Number { get; set; }
+ public string? Quality { get; set; }
+ public StockDetailsTypeEnum StockDetailsType { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/StockDetailsGetListInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/StockDetailsGetListInput.cs
new file mode 100644
index 00000000..67e9ba53
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/StockDetailsGetListInput.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.Base;
+using Yi.Framework.Model.ERP.Entitys;
+
+namespace Yi.Framework.DtoModel.ERP.StockDetails
+{
+ public class StockDetailsGetListInput
+ {
+ public long WarehouseName { get; set; }
+ public long MaterialName { get; set; }
+ public string? Quality { get; set; }
+ public StockDetailsTypeEnum StockDetailsType { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/StockDetailsGetListOutput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/StockDetailsGetListOutput.cs
new file mode 100644
index 00000000..1597a5cf
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/StockDetails/StockDetailsGetListOutput.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.Base;
+using Yi.Framework.Model.ERP.Entitys;
+
+namespace Yi.Framework.DtoModel.ERP.StockDetails
+{
+ public class StockDetailsGetListOutput: EntityDto
+ {
+ public long WarehouseName { get; set; }
+ public long MaterialName { get; set; }
+ public long Number { get; set; }
+ public string? Quality { get; set; }
+ public DateTime StockDetailsTime { get; set; }
+ public StockDetailsTypeEnum StockDetailsType { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/ConstConfig/SupplierConst.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/ConstConfig/SupplierConst.cs
new file mode 100644
index 00000000..a923042a
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/ConstConfig/SupplierConst.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Yi.Framework.DtoModel.ERP.Supplier.ConstConfig
+{
+ public class SupplierConst
+ {
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/MapperConfig/SupplierProfile.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/MapperConfig/SupplierProfile.cs
new file mode 100644
index 00000000..decb6804
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/MapperConfig/SupplierProfile.cs
@@ -0,0 +1,20 @@
+using AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.ERP.Entitys;
+
+namespace Yi.Framework.DtoModel.ERP.Supplier.MapperConfig
+{
+ public class SupplierProfile:Profile
+ {
+ public SupplierProfile()
+ {
+ CreateMap();
+ CreateMap();
+
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/SupplierCreateUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/SupplierCreateUpdateInput.cs
new file mode 100644
index 00000000..440bfa7f
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/SupplierCreateUpdateInput.cs
@@ -0,0 +1,20 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.Base;
+
+namespace Yi.Framework.DtoModel.ERP.Supplier
+{
+ public class SupplierCreateUpdateInput : EntityDto
+ {
+ public string Code { get; set; } = string.Empty;
+ public string Name { get; set; }= string.Empty;
+ public string? Address { get; set; }
+ public long? Phone { get; set; }
+ public string? Fax { get; set; }
+ public string? Email { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/SupplierGetListOutput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/SupplierGetListOutput.cs
new file mode 100644
index 00000000..188373e7
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/SupplierGetListOutput.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Yi.Framework.Model.Base;
+
+namespace Yi.Framework.DtoModel.ERP.Supplier
+{
+ public class SupplierGetListOutput: EntityDto
+ {
+ public string Code { get; set; } = string.Empty;
+ public string Name { get; set; }= string.Empty;
+ public string? Address { get; set; }
+ public long? Phone { get; set; }
+ public string? Fax { get; set; }
+ public string? Email { get; set; }
+ }
+}
diff --git a/Yi.Vue3.X.RuoYi/src/api/bbs/articleApi.js b/Yi.Vue3.X.RuoYi/src/api/bbs/articleApi.js
new file mode 100644
index 00000000..403e94c0
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/api/bbs/articleApi.js
@@ -0,0 +1,45 @@
+import request from '@/utils/request'
+
+// 分页查询
+export function listData(query) {
+ return request({
+ url: '/article/pageList',
+ method: 'get',
+ params: query
+ })
+}
+
+// id查询
+export function getData(code) {
+ return request({
+ url: '/article/getById/' + code,
+ method: 'get'
+ })
+}
+
+// 新增
+export function addData(data) {
+ return request({
+ url: '/article/add',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改
+export function updateData(data) {
+ return request({
+ url: '/article/update',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除
+export function delData(code) {
+ return request({
+ url: '/article/delList',
+ method: 'delete',
+ data:"string"==typeof(code)?[code]:code
+ })
+}
diff --git a/Yi.Vue3.x.RuoYi/src/api/erp/stockApi.js b/Yi.Vue3.X.RuoYi/src/api/erp/materialApi.js
similarity index 78%
rename from Yi.Vue3.x.RuoYi/src/api/erp/stockApi.js
rename to Yi.Vue3.X.RuoYi/src/api/erp/materialApi.js
index b18394a0..80f472e1 100644
--- a/Yi.Vue3.x.RuoYi/src/api/erp/stockApi.js
+++ b/Yi.Vue3.X.RuoYi/src/api/erp/materialApi.js
@@ -3,7 +3,7 @@ import request from '@/utils/request'
// 分页查询
export function listData(query) {
return request({
- url: '/stock/pageList',
+ url: '/material/pageList',
method: 'get',
params: query
})
@@ -12,7 +12,7 @@ export function listData(query) {
// id查询
export function getData(code) {
return request({
- url: '/stock/getById/' + code,
+ url: '/material/getById/' + code,
method: 'get'
})
}
@@ -20,7 +20,7 @@ export function getData(code) {
// 新增
export function addData(data) {
return request({
- url: '/stock/create',
+ url: '/material/create',
method: 'post',
data: data
})
@@ -29,7 +29,7 @@ export function addData(data) {
// 修改
export function updateData(id,data) {
return request({
- url: `/stock/update/${id}`,
+ url: `/material/update/${id}`,
method: 'put',
data: data
})
@@ -38,7 +38,7 @@ export function updateData(id,data) {
// 删除
export function delData(code) {
return request({
- url: '/stock/del',
+ url: '/material/del',
method: 'delete',
data:"string"==typeof(code)?[code]:code
})
diff --git a/Yi.Vue3.X.RuoYi/src/api/erp/purchaseApi.js b/Yi.Vue3.X.RuoYi/src/api/erp/purchaseApi.js
new file mode 100644
index 00000000..98ff7b78
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/api/erp/purchaseApi.js
@@ -0,0 +1,45 @@
+import request from '@/utils/request'
+
+// 分页查询
+export function listData(query) {
+ return request({
+ url: '/purchase/pageList',
+ method: 'get',
+ params: query
+ })
+}
+
+// id查询
+export function getData(code) {
+ return request({
+ url: '/purchase/getById/' + code,
+ method: 'get'
+ })
+}
+
+// 新增
+export function addData(data) {
+ return request({
+ url: '/purchase/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改
+export function updateData(id,data) {
+ return request({
+ url: `/purchase/update/${id}`,
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除
+export function delData(code) {
+ return request({
+ url: '/purchase/del',
+ method: 'delete',
+ data:"string"==typeof(code)?[code]:code
+ })
+}
diff --git a/Yi.Vue3.X.RuoYi/src/api/erp/purchaseDetailsApi.js b/Yi.Vue3.X.RuoYi/src/api/erp/purchaseDetailsApi.js
new file mode 100644
index 00000000..e4e89b9c
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/api/erp/purchaseDetailsApi.js
@@ -0,0 +1,51 @@
+import request from '@/utils/request'
+export function getListByPurchaseId(id){
+ return request({
+ url: `/purchaseDetails/getListByPurchaseId/${id}`,
+ method: 'get'
+ })
+}
+
+// 分页查询
+export function listData(query) {
+ return request({
+ url: '/purchaseDetails/pageList',
+ method: 'get',
+ params: query
+ })
+}
+
+// id查询
+export function getData(code) {
+ return request({
+ url: '/purchaseDetails/getById/' + code,
+ method: 'get'
+ })
+}
+
+// 新增
+export function addData(data) {
+ return request({
+ url: '/purchaseDetails/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改
+export function updateData(id,data) {
+ return request({
+ url: `/purchaseDetails/update/${id}`,
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除
+export function delData(code) {
+ return request({
+ url: '/purchaseDetails/del',
+ method: 'delete',
+ data:"string"==typeof(code)?[code]:code
+ })
+}
diff --git a/Yi.Vue3.X.RuoYi/src/api/erp/stockDetailsApi.js b/Yi.Vue3.X.RuoYi/src/api/erp/stockDetailsApi.js
new file mode 100644
index 00000000..cfda0c22
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/api/erp/stockDetailsApi.js
@@ -0,0 +1,45 @@
+import request from '@/utils/request'
+
+// 分页查询
+export function listData(query) {
+ return request({
+ url: '/stockDetails/pageList',
+ method: 'get',
+ params: query
+ })
+}
+
+// id查询
+export function getData(code) {
+ return request({
+ url: '/stockDetails/getById/' + code,
+ method: 'get'
+ })
+}
+
+// 新增
+export function addData(data) {
+ return request({
+ url: '/stockDetails/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改
+export function updateData(id,data) {
+ return request({
+ url: `/stockDetails/update/${id}`,
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除
+export function delData(code) {
+ return request({
+ url: '/stockDetails/del',
+ method: 'delete',
+ data:"string"==typeof(code)?[code]:code
+ })
+}
diff --git a/Yi.Vue3.X.RuoYi/src/api/erp/supplierApi.js b/Yi.Vue3.X.RuoYi/src/api/erp/supplierApi.js
new file mode 100644
index 00000000..72dec607
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/api/erp/supplierApi.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 全查询
+export function allData() {
+ return request({
+ url: '/supplier/getList',
+ method: 'get'
+ })
+}
+
+// 分页查询
+export function listData(query) {
+ return request({
+ url: '/supplier/pageList',
+ method: 'get',
+ params: query
+ })
+}
+
+// id查询
+export function getData(code) {
+ return request({
+ url: '/supplier/getById/' + code,
+ method: 'get'
+ })
+}
+
+// 新增
+export function addData(data) {
+ return request({
+ url: '/supplier/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改
+export function updateData(id,data) {
+ return request({
+ url: `/supplier/update/${id}`,
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除
+export function delData(code) {
+ return request({
+ url: '/supplier/del',
+ method: 'delete',
+ data:"string"==typeof(code)?[code]:code
+ })
+}
diff --git a/Yi.Vue3.X.RuoYi/src/api/erp/unitApi.js b/Yi.Vue3.X.RuoYi/src/api/erp/unitApi.js
new file mode 100644
index 00000000..ca925c04
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/api/erp/unitApi.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 全查询
+export function allData() {
+ return request({
+ url: '/unit/getList',
+ method: 'get'
+ })
+}
+
+// 分页查询
+export function listData(query) {
+ return request({
+ url: '/unit/pageList',
+ method: 'get',
+ params: query
+ })
+}
+
+// id查询
+export function getData(code) {
+ return request({
+ url: '/unit/getById/' + code,
+ method: 'get'
+ })
+}
+
+// 新增
+export function addData(data) {
+ return request({
+ url: '/unit/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改
+export function updateData(id,data) {
+ return request({
+ url: `/unit/update/${id}`,
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除
+export function delData(code) {
+ return request({
+ url: '/unit/del',
+ method: 'delete',
+ data:"string"==typeof(code)?[code]:code
+ })
+}
diff --git a/Yi.Vue3.X.RuoYi/src/api/erp/warehouseApi.js b/Yi.Vue3.X.RuoYi/src/api/erp/warehouseApi.js
new file mode 100644
index 00000000..e9f91df4
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/api/erp/warehouseApi.js
@@ -0,0 +1,45 @@
+import request from '@/utils/request'
+
+// 分页查询
+export function listData(query) {
+ return request({
+ url: '/warehouse/pageList',
+ method: 'get',
+ params: query
+ })
+}
+
+// id查询
+export function getData(code) {
+ return request({
+ url: '/warehouse/getById/' + code,
+ method: 'get'
+ })
+}
+
+// 新增
+export function addData(data) {
+ return request({
+ url: '/warehouse/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改
+export function updateData(id,data) {
+ return request({
+ url: `/warehouse/update/${id}`,
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除
+export function delData(code) {
+ return request({
+ url: '/warehouse/del',
+ method: 'delete',
+ data:"string"==typeof(code)?[code]:code
+ })
+}
diff --git a/Yi.Vue3.X.RuoYi/src/api/file.js b/Yi.Vue3.X.RuoYi/src/api/file.js
new file mode 100644
index 00000000..2dc681e9
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/api/file.js
@@ -0,0 +1,11 @@
+import request from '@/utils/request'
+
+export function
+ upload(type,data){
+ return request({
+ url: `/file/upload/${type}`,
+ headers:{"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"},
+ method: 'POST',
+ data:data
+ });
+}
diff --git a/Yi.Vue3.X.RuoYi/src/views/ERP/material/index.vue b/Yi.Vue3.X.RuoYi/src/views/ERP/material/index.vue
new file mode 100644
index 00000000..78b54705
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/views/ERP/material/index.vue
@@ -0,0 +1,402 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.unitName }}
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Yi.Vue3.X.RuoYi/src/views/ERP/purchase/index.vue b/Yi.Vue3.X.RuoYi/src/views/ERP/purchase/index.vue
new file mode 100644
index 00000000..bedefe85
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/views/ERP/purchase/index.vue
@@ -0,0 +1,775 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{purchaseStateComputed(scope.row.purchaseState)}}
+
+
+
+
+
+
+
+
+
+ 查看
+
+ 修改
+
+ 结束
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ showTotalMoney }}
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加物料
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ form.remarks }}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Yi.Vue3.X.RuoYi/src/views/ERP/stock/index.vue b/Yi.Vue3.X.RuoYi/src/views/ERP/stock/index.vue
new file mode 100644
index 00000000..70ae29ae
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/views/ERP/stock/index.vue
@@ -0,0 +1,363 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Yi.Vue3.X.RuoYi/src/views/ERP/supplier/index.vue b/Yi.Vue3.X.RuoYi/src/views/ERP/supplier/index.vue
new file mode 100644
index 00000000..3d9564f8
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/views/ERP/supplier/index.vue
@@ -0,0 +1,390 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Yi.Vue3.X.RuoYi/src/views/ERP/unit/index.vue b/Yi.Vue3.X.RuoYi/src/views/ERP/unit/index.vue
new file mode 100644
index 00000000..f5180285
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/views/ERP/unit/index.vue
@@ -0,0 +1,363 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Yi.Vue3.X.RuoYi/src/views/ERP/warehouse/index.vue b/Yi.Vue3.X.RuoYi/src/views/ERP/warehouse/index.vue
new file mode 100644
index 00000000..90d2d062
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/views/ERP/warehouse/index.vue
@@ -0,0 +1,368 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Yi.Vue3.X.RuoYi/src/views/bbs/article/index.vue b/Yi.Vue3.X.RuoYi/src/views/bbs/article/index.vue
new file mode 100644
index 00000000..79065cb0
--- /dev/null
+++ b/Yi.Vue3.X.RuoYi/src/views/bbs/article/index.vue
@@ -0,0 +1,381 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.content.slice(0,30)}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+ 文章详情
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dict.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file