152 lines
3.9 KiB
JavaScript
152 lines
3.9 KiB
JavaScript
|
|
// 模拟合同数据
|
||
|
|
const mockContracts = [
|
||
|
|
{
|
||
|
|
id: 1,
|
||
|
|
contract_no: 'HT-2025-001',
|
||
|
|
contract_name: '蜜雪冰城加盟合同',
|
||
|
|
type: '加盟合同',
|
||
|
|
party_a: '蜜雪冰城股份有限公司',
|
||
|
|
party_b: '张三',
|
||
|
|
sign_date: '2025-01-15',
|
||
|
|
start_date: '2025-02-01',
|
||
|
|
end_date: '2028-01-31',
|
||
|
|
amount: 300000,
|
||
|
|
status: '生效中',
|
||
|
|
remark: '三年期加盟合同',
|
||
|
|
create_time: '2025-01-15 10:30:00'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 2,
|
||
|
|
contract_no: 'HT-2025-002',
|
||
|
|
contract_name: '原材料供货合同',
|
||
|
|
type: '供货合同',
|
||
|
|
party_a: '蜜雪冰城股份有限公司',
|
||
|
|
party_b: '李四',
|
||
|
|
sign_date: '2025-03-10',
|
||
|
|
start_date: '2025-04-01',
|
||
|
|
end_date: '2026-03-31',
|
||
|
|
amount: 50000,
|
||
|
|
status: '生效中',
|
||
|
|
remark: '年度供货协议',
|
||
|
|
create_time: '2025-03-10 09:15:00'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 3,
|
||
|
|
contract_no: 'HT-2024-010',
|
||
|
|
contract_name: '门店租赁合同',
|
||
|
|
type: '租赁合同',
|
||
|
|
party_a: '蜜雪冰城股份有限公司',
|
||
|
|
party_b: '王五',
|
||
|
|
sign_date: '2024-06-20',
|
||
|
|
start_date: '2024-07-01',
|
||
|
|
end_date: '2025-06-30',
|
||
|
|
amount: 120000,
|
||
|
|
status: '已到期',
|
||
|
|
remark: '已续签',
|
||
|
|
create_time: '2024-06-20 14:20:00'
|
||
|
|
},
|
||
|
|
{
|
||
|
|
id: 4,
|
||
|
|
contract_no: 'HT-2025-003',
|
||
|
|
contract_name: '设备维护服务合同',
|
||
|
|
type: '服务合同',
|
||
|
|
party_a: '蜜雪冰城股份有限公司',
|
||
|
|
party_b: '赵六',
|
||
|
|
sign_date: '2025-05-01',
|
||
|
|
start_date: '2025-05-15',
|
||
|
|
end_date: '2026-05-14',
|
||
|
|
amount: 15000,
|
||
|
|
status: '待审批',
|
||
|
|
remark: '',
|
||
|
|
create_time: '2025-05-01 11:00:00'
|
||
|
|
}
|
||
|
|
]
|
||
|
|
|
||
|
|
// 模拟网络延迟
|
||
|
|
const delay = (ms = 300) => new Promise(r => setTimeout(r, ms))
|
||
|
|
|
||
|
|
// Mock API
|
||
|
|
export const mockContractAPI = {
|
||
|
|
// 获取列表
|
||
|
|
async getList(params = {}) {
|
||
|
|
await delay()
|
||
|
|
let result = [...mockContracts]
|
||
|
|
|
||
|
|
// 关键词搜索
|
||
|
|
if (params.keyword) {
|
||
|
|
const keyword = params.keyword.toLowerCase()
|
||
|
|
result = result.filter(item =>
|
||
|
|
item.contract_no.toLowerCase().includes(keyword) ||
|
||
|
|
item.contract_name.toLowerCase().includes(keyword) ||
|
||
|
|
item.party_b.toLowerCase().includes(keyword)
|
||
|
|
)
|
||
|
|
}
|
||
|
|
|
||
|
|
// 合同类型筛选
|
||
|
|
if (params.type) {
|
||
|
|
result = result.filter(item => item.type === params.type)
|
||
|
|
}
|
||
|
|
|
||
|
|
// 日期范围筛选(按签订日期)
|
||
|
|
if (params.startDate && params.endDate) {
|
||
|
|
const start = new Date(params.startDate)
|
||
|
|
const end = new Date(params.endDate)
|
||
|
|
result = result.filter(item => {
|
||
|
|
const signDate = new Date(item.sign_date)
|
||
|
|
return signDate >= start && signDate <= end
|
||
|
|
})
|
||
|
|
}
|
||
|
|
|
||
|
|
// 状态筛选
|
||
|
|
if (params.status) {
|
||
|
|
result = result.filter(item => item.status === params.status)
|
||
|
|
}
|
||
|
|
|
||
|
|
return { code: 200, data: result, total: result.length }
|
||
|
|
},
|
||
|
|
|
||
|
|
// 获取详情
|
||
|
|
async getDetail(id) {
|
||
|
|
await delay()
|
||
|
|
const contract = mockContracts.find(item => item.id === id)
|
||
|
|
if (contract) {
|
||
|
|
return { code: 200, data: contract }
|
||
|
|
}
|
||
|
|
return { code: 404, message: '合同不存在' }
|
||
|
|
},
|
||
|
|
|
||
|
|
// 新增
|
||
|
|
async create(data) {
|
||
|
|
await delay()
|
||
|
|
const newContract = {
|
||
|
|
id: Date.now(),
|
||
|
|
...data,
|
||
|
|
create_time: new Date().toISOString().replace('T', ' ').slice(0, 19)
|
||
|
|
}
|
||
|
|
mockContracts.push(newContract)
|
||
|
|
return { code: 200, data: newContract, message: '新增成功' }
|
||
|
|
},
|
||
|
|
|
||
|
|
// 更新
|
||
|
|
async update(id, data) {
|
||
|
|
await delay()
|
||
|
|
const index = mockContracts.findIndex(item => item.id === id)
|
||
|
|
if (index !== -1) {
|
||
|
|
mockContracts[index] = { ...mockContracts[index], ...data }
|
||
|
|
return { code: 200, data: mockContracts[index], message: '更新成功' }
|
||
|
|
}
|
||
|
|
return { code: 404, message: '合同不存在' }
|
||
|
|
},
|
||
|
|
|
||
|
|
// 删除
|
||
|
|
async delete(id) {
|
||
|
|
await delay()
|
||
|
|
const index = mockContracts.findIndex(item => item.id === id)
|
||
|
|
if (index !== -1) {
|
||
|
|
mockContracts.splice(index, 1)
|
||
|
|
return { code: 200, message: '删除成功' }
|
||
|
|
}
|
||
|
|
return { code: 404, message: '合同不存在' }
|
||
|
|
}
|
||
|
|
}
|