feat: 福安德智慧报价平台 - 完整业务模块

基于RuoYi-Vue2构建的智慧采购报价平台,包含:

后端(Spring Boot + MyBatis):
- 物料管理 (BizMaterial)
- 供应商管理 (BizSupplier)
- 报价请求RFQ (BizRfq)
- 供应商报价单 (BizQuotation)
- 智慧比价分析 (BizComparison)
- 采购单 (BizPurchaseOrder)
- 供应商评价 (BizSupplierEvaluation)
- 订单异议 (BizOrderObjection)
- 交易记录 (BizTransaction)
- 租户管理-SaaS数据隔离 (BizTenant)

前端(Vue2 + Element UI):
- 10个业务模块完整页面
- ERPNext风格主题(蓝色系)
- 福安德品牌logo

部署:
- Docker Compose一键部署
- MySQL 8.0 + Redis 7 + Nginx
- 前端端口 10031
This commit is contained in:
2026-05-22 09:36:01 +08:00
parent 7da12b0c07
commit 2941cd23c4
106 changed files with 5511 additions and 92 deletions

View File

@@ -0,0 +1,2 @@
import request from '@/utils/request'
export const compareRfq = (rfqId) => request({ url: '/bid/comparison/rfq/' + rfqId, method: 'get' })

View File

@@ -0,0 +1,7 @@
import request from '@/utils/request'
const baseUrl = '/bid/evaluation'
export const listEvaluation = (params) => request({ url: baseUrl + '/list', method: 'get', params })
export const getEvaluation = (id) => request({ url: baseUrl + '/' + id, method: 'get' })
export const addEvaluation = (data) => request({ url: baseUrl, method: 'post', data })
export const updateEvaluation = (data) => request({ url: baseUrl, method: 'put', data })
export const delEvaluation = (ids) => request({ url: baseUrl + '/' + ids, method: 'delete' })

View File

@@ -0,0 +1,7 @@
import request from '@/utils/request'
const baseUrl = '/bid/material'
export const listMaterial = (params) => request({ url: baseUrl + '/list', method: 'get', params })
export const getMaterial = (id) => request({ url: baseUrl + '/' + id, method: 'get' })
export const addMaterial = (data) => request({ url: baseUrl, method: 'post', data })
export const updateMaterial = (data) => request({ url: baseUrl, method: 'put', data })
export const delMaterial = (ids) => request({ url: baseUrl + '/' + ids, method: 'delete' })

View File

@@ -0,0 +1,7 @@
import request from '@/utils/request'
const baseUrl = '/bid/objection'
export const listObjection = (params) => request({ url: baseUrl + '/list', method: 'get', params })
export const getObjection = (id) => request({ url: baseUrl + '/' + id, method: 'get' })
export const addObjection = (data) => request({ url: baseUrl, method: 'post', data })
export const updateObjection = (data) => request({ url: baseUrl, method: 'put', data })
export const delObjection = (ids) => request({ url: baseUrl + '/' + ids, method: 'delete' })

View File

@@ -0,0 +1,8 @@
import request from '@/utils/request'
const baseUrl = '/bid/purchaseorder'
export const listPurchaseorder = (params) => request({ url: baseUrl + '/list', method: 'get', params })
export const getPurchaseorder = (id) => request({ url: baseUrl + '/' + id, method: 'get' })
export const addPurchaseorder = (data) => request({ url: baseUrl, method: 'post', data })
export const updatePurchaseorder = (data) => request({ url: baseUrl, method: 'put', data })
export const confirmPurchaseorder = (id) => request({ url: baseUrl + '/confirm/' + id, method: 'put' })
export const delPurchaseorder = (ids) => request({ url: baseUrl + '/' + ids, method: 'delete' })

View File

@@ -0,0 +1,10 @@
import request from '@/utils/request'
const baseUrl = '/bid/quotation'
export const listQuotation = (params) => request({ url: baseUrl + '/list', method: 'get', params })
export const getQuotation = (id) => request({ url: baseUrl + '/' + id, method: 'get' })
export const addQuotation = (data) => request({ url: baseUrl, method: 'post', data })
export const updateQuotation = (data) => request({ url: baseUrl, method: 'put', data })
export const submitQuotation = (id) => request({ url: baseUrl + '/submit/' + id, method: 'put' })
export const acceptQuotation = (id) => request({ url: baseUrl + '/accept/' + id, method: 'put' })
export const rejectQuotation = (id) => request({ url: baseUrl + '/reject/' + id, method: 'put' })
export const delQuotation = (ids) => request({ url: baseUrl + '/' + ids, method: 'delete' })

View File

@@ -0,0 +1,9 @@
import request from '@/utils/request'
const baseUrl = '/bid/rfq'
export const listRfq = (params) => request({ url: baseUrl + '/list', method: 'get', params })
export const getRfq = (id) => request({ url: baseUrl + '/' + id, method: 'get' })
export const getRfqItems = (id) => request({ url: baseUrl + '/' + id + '/items', method: 'get' })
export const addRfq = (data) => request({ url: baseUrl, method: 'post', data })
export const updateRfq = (data) => request({ url: baseUrl, method: 'put', data })
export const publishRfq = (rfqId, supplierIds) => request({ url: baseUrl + '/publish/' + rfqId, method: 'put', data: supplierIds })
export const delRfq = (ids) => request({ url: baseUrl + '/' + ids, method: 'delete' })

View File

@@ -0,0 +1,7 @@
import request from '@/utils/request'
const baseUrl = '/bid/supplier'
export const listSupplier = (params) => request({ url: baseUrl + '/list', method: 'get', params })
export const getSupplier = (id) => request({ url: baseUrl + '/' + id, method: 'get' })
export const addSupplier = (data) => request({ url: baseUrl, method: 'post', data })
export const updateSupplier = (data) => request({ url: baseUrl, method: 'put', data })
export const delSupplier = (ids) => request({ url: baseUrl + '/' + ids, method: 'delete' })

View File

@@ -0,0 +1,7 @@
import request from '@/utils/request'
const baseUrl = '/bid/tenant'
export const listTenant = (params) => request({ url: baseUrl + '/list', method: 'get', params })
export const getTenant = (id) => request({ url: baseUrl + '/' + id, method: 'get' })
export const addTenant = (data) => request({ url: baseUrl, method: 'post', data })
export const updateTenant = (data) => request({ url: baseUrl, method: 'put', data })
export const delTenant = (ids) => request({ url: baseUrl + '/' + ids, method: 'delete' })

View File

@@ -0,0 +1,7 @@
import request from '@/utils/request'
const baseUrl = '/bid/transaction'
export const listTransaction = (params) => request({ url: baseUrl + '/list', method: 'get', params })
export const getTransaction = (id) => request({ url: baseUrl + '/' + id, method: 'get' })
export const addTransaction = (data) => request({ url: baseUrl, method: 'post', data })
export const updateTransaction = (data) => request({ url: baseUrl, method: 'put', data })
export const delTransaction = (ids) => request({ url: baseUrl + '/' + ids, method: 'delete' })