diff --git a/src/api/erp/farmer/index.ts b/src/api/erp/farmer/index.ts new file mode 100644 index 0000000..53f615a --- /dev/null +++ b/src/api/erp/farmer/index.ts @@ -0,0 +1,73 @@ +import type { PageParam, PageResult } from '@/http/types' +import { http } from '@/http/http' + +/** 农户信息 */ +export interface Farmer { + id?: number + name?: string + idCardNumber?: string + mobile?: string + address?: string + plantingBase?: string + contractNumber?: string + contractedArea?: number + orderQuantity?: number + actualArea?: number + transplantTime?: string + transplantQuantity?: number + maturityTime?: string + expectedHarvestTime?: string + usedVariety?: string + plantingMethod?: string + adminName?: string + contact?: string + telephone?: string + email?: string + fax?: string + remark?: string + status?: number + sort?: number + taxNo?: string + taxPercent?: number + bankName?: string + bankAccount?: string + bankAddress?: string +} + +/** 品种选项 */ +export const VARIETY_OPTIONS = [ + { value: '红宝石', label: '红宝石' }, + { value: '1401', label: '1401' }, + { value: '1501', label: '1501' }, + { value: '3366', label: '3366' }, +] + +/** 获取农户分页列表 */ +export function getFarmerPage(params: PageParam) { + return http.get>('/erp/farmer/page', { ...params, type: 2 }) +} + +/** 获取农户详情 */ +export function getFarmer(id: number) { + return http.get(`/erp/farmer/get?id=${id}`) +} + +/** 创建农户 */ +export function createFarmer(data: Farmer) { + return http.post('/erp/farmer/create', data) +} + +/** 更新农户 */ +export function updateFarmer(data: Farmer) { + return http.put('/erp/farmer/update', data) +} + +/** 删除农户 */ +export function deleteFarmer(id: number) { + return http.delete(`/erp/farmer/delete?id=${id}`) +} + +/** 获取农户精简列表 */ +export function getFarmerSimpleList() { + return http.get('/erp/farmer/simple-list') +} diff --git a/src/api/erp/purchase-in/index.ts b/src/api/erp/purchase-in/index.ts new file mode 100644 index 0000000..33e1b9c --- /dev/null +++ b/src/api/erp/purchase-in/index.ts @@ -0,0 +1,109 @@ +import type { PageParam, PageResult } from '@/http/types' +import { http } from '@/http/http' + +/** 采购入库项 */ +export interface PurchaseInItem { + id?: number + productId: number + productUnitId: number + productPrice?: number + count: number + taxPercent?: number + taxPrice?: number + remark?: string + warehouseId?: number + warehouseName?: string + productName?: string + productBarCode?: string + productUnitName?: string + productSpec?: string + productCategoryName?: string + stockCount?: number + totalCount?: number + totalPrice?: number + totalProductPrice?: number + orderItemId?: number +} + +/** 采购入库信息 */ +export interface PurchaseIn { + id?: number + no?: string + status?: number + supplierId?: number + supplierName?: string + accountId?: number + accountName?: string + inTime?: string + totalCount?: number + totalPrice?: number + totalProductPrice?: number + totalTaxPrice?: number + discountPercent?: number + discountPrice?: number + otherPrice?: number + paymentPrice?: number + fileUrl?: string + remark?: string + creator?: string + creatorName?: string + createTime?: string + items?: PurchaseInItem[] + productNames?: string + orderId?: number + orderNo?: string + isQualified?: boolean + returnType?: string | null + returnRemark?: string +} + +/** 审核表单数据 */ +export interface AuditFormData { + id: number + isQualified: boolean + returnType?: string + returnRemark?: string + status: number +} + +/** 返回方式枚举 */ +export const RETURN_TYPE_ENUM = { + RETURN_BACK: 'return_back', + DESTROY: 'destroy', +} + +/** 返回方式选项 */ +export const RETURN_TYPE_OPTIONS = [ + { label: '原路返回', value: RETURN_TYPE_ENUM.RETURN_BACK }, + { label: '就地销毁', value: RETURN_TYPE_ENUM.DESTROY }, +] + +/** 获取采购入库分页列表 */ +export function getPurchaseInPage(params: PageParam) { + return http.get>('/erp/purchase-in/page', params) +} + +/** 获取采购入库详情 */ +export function getPurchaseIn(id: number) { + return http.get(`/erp/purchase-in/get?id=${id}`) +} + +/** 创建采购入库 */ +export function createPurchaseIn(data: PurchaseIn) { + return http.post('/erp/purchase-in/create', data) +} + +/** 更新采购入库 */ +export function updatePurchaseIn(data: PurchaseIn) { + return http.put('/erp/purchase-in/update', data) +} + +/** 更新采购入库状态 */ +export function updatePurchaseInStatus(data: AuditFormData) { + return http.put('/erp/purchase-in/update-status', data) +} + +/** 删除采购入库 */ +export function deletePurchaseIn(ids: number[]) { + return http.delete(`/erp/purchase-in/delete?ids=${ids.join(',')}`) +} diff --git a/src/api/erp/purchase-return/index.ts b/src/api/erp/purchase-return/index.ts new file mode 100644 index 0000000..509745b --- /dev/null +++ b/src/api/erp/purchase-return/index.ts @@ -0,0 +1,87 @@ +import type { PageParam, PageResult } from '@/http/types' +import { http } from '@/http/http' + +/** 采购退货项 */ +export interface PurchaseReturnItem { + id?: number + productId: number + productUnitId: number + productPrice?: number + count: number + taxPercent?: number + taxPrice?: number + remark?: string + warehouseId?: number + warehouseName?: string + productName?: string + productBarCode?: string + productUnitName?: string + productSpec?: string + productCategoryName?: string + stockCount?: number + totalCount?: number + totalPrice?: number + totalProductPrice?: number + orderItemId?: number + inCount?: number + returnCount?: number +} + +/** 采购退货信息 */ +export interface PurchaseReturn { + id?: number + no?: string + status?: number + supplierId?: number + supplierName?: string + accountId?: number + accountName?: string + returnTime?: string + totalCount?: number + totalPrice?: number + totalProductPrice?: number + totalTaxPrice?: number + discountPercent?: number + discountPrice?: number + otherPrice?: number + refundPrice?: number + fileUrl?: string + remark?: string + creator?: string + creatorName?: string + createTime?: string + items?: PurchaseReturnItem[] + productNames?: string + orderId?: number + orderNo?: string +} + +/** 获取采购退货分页列表 */ +export function getPurchaseReturnPage(params: PageParam) { + return http.get>('/erp/purchase-return/page', params) +} + +/** 获取采购退货详情 */ +export function getPurchaseReturn(id: number) { + return http.get(`/erp/purchase-return/get?id=${id}`) +} + +/** 创建采购退货 */ +export function createPurchaseReturn(data: PurchaseReturn) { + return http.post('/erp/purchase-return/create', data) +} + +/** 更新采购退货 */ +export function updatePurchaseReturn(data: PurchaseReturn) { + return http.put('/erp/purchase-return/update', data) +} + +/** 更新采购退货状态 */ +export function updatePurchaseReturnStatus(id: number, status: number) { + return http.put(`/erp/purchase-return/update-status?id=${id}&status=${status}`) +} + +/** 删除采购退货 */ +export function deletePurchaseReturn(ids: number[]) { + return http.delete(`/erp/purchase-return/delete?ids=${ids.join(',')}`) +} diff --git a/src/api/erp/supplier/index.ts b/src/api/erp/supplier/index.ts index 6fd173d..b56c16f 100644 --- a/src/api/erp/supplier/index.ts +++ b/src/api/erp/supplier/index.ts @@ -1,11 +1,56 @@ +import type { PageParam, PageResult } from '@/http/types' import { http } from '@/http/http' +/** 供应商信息 */ +export interface Supplier { + id?: number + name?: string + contact?: string + mobile?: string + telephone?: string + email?: string + fax?: string + remark?: string + status?: number + sort?: number + taxNo?: string + taxPercent?: number + bankName?: string + bankAccount?: string + bankAddress?: string +} + /** 供应商精简信息 */ export interface SupplierSimple { id: number name: string } +/** 获取供应商分页列表 */ +export function getSupplierPage(params: PageParam) { + return http.get>('/erp/supplier/page', { ...params, type: 1 }) +} + +/** 获取供应商详情 */ +export function getSupplier(id: number) { + return http.get(`/erp/supplier/get?id=${id}`) +} + +/** 创建供应商 */ +export function createSupplier(data: Supplier) { + return http.post('/erp/supplier/create', data) +} + +/** 更新供应商 */ +export function updateSupplier(data: Supplier) { + return http.put('/erp/supplier/update', data) +} + +/** 删除供应商 */ +export function deleteSupplier(id: number) { + return http.delete(`/erp/supplier/delete?id=${id}`) +} + /** 获取供应商精简列表 */ export function getSupplierSimpleList() { return http.get('/erp/supplier/simple-list') diff --git a/src/pages-erp/farmer/form/index.vue b/src/pages-erp/farmer/form/index.vue new file mode 100644 index 0000000..e708bb9 --- /dev/null +++ b/src/pages-erp/farmer/form/index.vue @@ -0,0 +1,298 @@ + + + + + diff --git a/src/pages-erp/farmer/index.vue b/src/pages-erp/farmer/index.vue new file mode 100644 index 0000000..6213bf1 --- /dev/null +++ b/src/pages-erp/farmer/index.vue @@ -0,0 +1,289 @@ + + + + + diff --git a/src/pages-erp/purchase-in/components/search-form.vue b/src/pages-erp/purchase-in/components/search-form.vue new file mode 100644 index 0000000..a2b3b6f --- /dev/null +++ b/src/pages-erp/purchase-in/components/search-form.vue @@ -0,0 +1,104 @@ + + + diff --git a/src/pages-erp/purchase-in/detail/index.vue b/src/pages-erp/purchase-in/detail/index.vue new file mode 100644 index 0000000..9ed6126 --- /dev/null +++ b/src/pages-erp/purchase-in/detail/index.vue @@ -0,0 +1,395 @@ + + + + + diff --git a/src/pages-erp/purchase-in/form/index.vue b/src/pages-erp/purchase-in/form/index.vue new file mode 100644 index 0000000..5d98139 --- /dev/null +++ b/src/pages-erp/purchase-in/form/index.vue @@ -0,0 +1,612 @@ + + + + + diff --git a/src/pages-erp/purchase-in/index.vue b/src/pages-erp/purchase-in/index.vue new file mode 100644 index 0000000..810b459 --- /dev/null +++ b/src/pages-erp/purchase-in/index.vue @@ -0,0 +1,447 @@ + + + + + diff --git a/src/pages-erp/purchase-return/components/search-form.vue b/src/pages-erp/purchase-return/components/search-form.vue new file mode 100644 index 0000000..12d5454 --- /dev/null +++ b/src/pages-erp/purchase-return/components/search-form.vue @@ -0,0 +1,100 @@ + + + diff --git a/src/pages-erp/purchase-return/detail/index.vue b/src/pages-erp/purchase-return/detail/index.vue new file mode 100644 index 0000000..45ed52f --- /dev/null +++ b/src/pages-erp/purchase-return/detail/index.vue @@ -0,0 +1,309 @@ + + + + + diff --git a/src/pages-erp/purchase-return/form/index.vue b/src/pages-erp/purchase-return/form/index.vue new file mode 100644 index 0000000..b4b41b2 --- /dev/null +++ b/src/pages-erp/purchase-return/form/index.vue @@ -0,0 +1,609 @@ + + + + + diff --git a/src/pages-erp/purchase-return/index.vue b/src/pages-erp/purchase-return/index.vue new file mode 100644 index 0000000..3dec9d3 --- /dev/null +++ b/src/pages-erp/purchase-return/index.vue @@ -0,0 +1,366 @@ + + + + + diff --git a/src/pages-erp/supplier/form/index.vue b/src/pages-erp/supplier/form/index.vue new file mode 100644 index 0000000..f08e976 --- /dev/null +++ b/src/pages-erp/supplier/form/index.vue @@ -0,0 +1,307 @@ + + + + + diff --git a/src/pages-erp/supplier/index.vue b/src/pages-erp/supplier/index.vue new file mode 100644 index 0000000..c0fb203 --- /dev/null +++ b/src/pages-erp/supplier/index.vue @@ -0,0 +1,260 @@ + + + + + diff --git a/src/pages/index/index.ts b/src/pages/index/index.ts index 797e94d..af7a607 100644 --- a/src/pages/index/index.ts +++ b/src/pages/index/index.ts @@ -38,12 +38,44 @@ const menuGroupsData: MenuGroup[] = [ iconColor: '#1890ff', permission: 'erp:purchase-order:query', }, + { + key: 'purchaseIn', + name: '采购入库', + icon: 'goods', + url: '/pages-erp/purchase-in/index', + iconColor: '#52c41a', + permission: 'erp:purchase-in:query', + }, + { + key: 'purchaseReturn', + name: '采购退货', + icon: 'refund', + url: '/pages-erp/purchase-return/index', + iconColor: '#fa8c16', + permission: 'erp:purchase-return:query', + }, + { + key: 'supplier', + name: '供应商', + icon: 'shop', + url: '/pages-erp/supplier/index', + iconColor: '#722ed1', + permission: 'erp:supplier:query', + }, + { + key: 'farmer', + name: '农户管理', + icon: 'user', + url: '/pages-erp/farmer/index', + iconColor: '#13c2c2', + permission: 'erp:farmer:query', + }, { key: 'pickBroccoli', name: '采摘管理', - icon: 'goods', + icon: 'flower', url: '/pages-erp/pick-broccoli/index', - iconColor: '#52c41a', + iconColor: '#eb2f96', permission: 'erp:pick-broccoli:query', }, ],