图生图
This commit is contained in:
128
mock/dealership.js
Normal file
128
mock/dealership.js
Normal file
@@ -0,0 +1,128 @@
|
||||
import Mock from 'mockjs'
|
||||
|
||||
// 模拟经销商数据
|
||||
const dealershipData = Mock.mock({
|
||||
'list|20': [{
|
||||
'id|+1': 1,
|
||||
'dealershipName|1': ['销售演示-上汽', '售后演示', 'DCC演示', '销售演示-奔驰', '销售演示-比亚迪', '销售演示-宝马', '销售演示-奥迪', '销售演示-丰田', '销售演示-本田', '销售演示-日产'],
|
||||
'dealershipCode': function() {
|
||||
const codes = ['XS001', 'SH001', 'DCC001', 'BC001', 'BYD001', 'BMW001', 'AUDI001', 'TOYOTA001', 'HONDA001', 'NISSAN001']
|
||||
return codes[this.id - 1] || 'DS' + Mock.Random.string('number', 3)
|
||||
},
|
||||
'remainingHours|1': [-36.31, -55.44, -4.58, 9809.16, 9959.56, 5000, -100, 2000, -50, 8000],
|
||||
'salesCount|5-20': 1,
|
||||
'avgRecordings|1-10': 1,
|
||||
'avgRecordingDuration|10-80.2-2': 1,
|
||||
'region|1': ['', '华东', '华南', '华北', '华中', '西南', '西北', '东北'],
|
||||
'groupName|1': ['', '默认', '销售组', '售后组', 'DCC组'],
|
||||
'language|1': ['普通话', '上海话', '粤语', '英语'],
|
||||
'dealershipType|1': ['售前', '售后', '销售'],
|
||||
'status|1': [true, false]
|
||||
}]
|
||||
})
|
||||
|
||||
// 模拟经销商列表查询
|
||||
Mock.mock(/\/dealership\/list/, 'get', (options) => {
|
||||
const params = new URLSearchParams(options.url.split('?')[1])
|
||||
const current = parseInt(params.get('current')) || 1
|
||||
const size = parseInt(params.get('size')) || 20
|
||||
const dealershipName = params.get('dealershipName')
|
||||
const dealershipCode = params.get('dealershipCode')
|
||||
const region = params.get('region')
|
||||
const status = params.get('status')
|
||||
|
||||
let filteredData = dealershipData.list
|
||||
|
||||
// 根据条件过滤
|
||||
if (dealershipName) {
|
||||
filteredData = filteredData.filter(item => item.dealershipName.includes(dealershipName))
|
||||
}
|
||||
|
||||
if (dealershipCode) {
|
||||
filteredData = filteredData.filter(item => item.dealershipCode.includes(dealershipCode))
|
||||
}
|
||||
|
||||
if (region) {
|
||||
filteredData = filteredData.filter(item => item.region === region)
|
||||
}
|
||||
|
||||
if (status !== null && status !== undefined && status !== '') {
|
||||
filteredData = filteredData.filter(item => item.status === (status === 'true'))
|
||||
}
|
||||
|
||||
const start = (current - 1) * size
|
||||
const end = start + size
|
||||
const pageData = filteredData.slice(start, end)
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: '查询成功',
|
||||
total: filteredData.length,
|
||||
current: current,
|
||||
pages: Math.ceil(filteredData.length / size),
|
||||
data: pageData,
|
||||
size: size
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟添加经销商
|
||||
Mock.mock('/dealership/add', 'post', () => {
|
||||
return {
|
||||
success: true,
|
||||
message: '经销商添加成功'
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟更新经销商
|
||||
Mock.mock('/dealership/update', 'put', () => {
|
||||
return {
|
||||
success: true,
|
||||
message: '经销商信息更新成功'
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟删除经销商
|
||||
Mock.mock(/\/dealership\/delete\/\d+/, 'delete', () => {
|
||||
return {
|
||||
success: true,
|
||||
message: '经销商删除成功'
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟根据ID查询经销商
|
||||
Mock.mock(/\/dealership\/get\/\d+/, 'get', () => {
|
||||
return {
|
||||
success: true,
|
||||
message: '查询成功',
|
||||
data: dealershipData.list[0]
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟根据经销商代码查询
|
||||
Mock.mock(/\/dealership\/getByCode/, 'get', () => {
|
||||
return {
|
||||
success: true,
|
||||
message: '查询成功',
|
||||
data: dealershipData.list.slice(0, 3),
|
||||
count: 3
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟批量删除经销商
|
||||
Mock.mock('/dealership/batchDelete', 'delete', () => {
|
||||
return {
|
||||
success: true,
|
||||
message: '批量删除成功,共删除 3 条记录'
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟获取经销商统计信息
|
||||
Mock.mock('/dealership/statistics', 'get', () => {
|
||||
return {
|
||||
success: true,
|
||||
message: '统计信息获取成功',
|
||||
data: {
|
||||
totalDealerships: 20
|
||||
}
|
||||
}
|
||||
})
|
||||
171
mock/stock.js
Normal file
171
mock/stock.js
Normal file
@@ -0,0 +1,171 @@
|
||||
import Mock from 'mockjs'
|
||||
|
||||
// 模拟股票数据
|
||||
const stockData = Mock.mock({
|
||||
'list|100': [{
|
||||
'code': /^[0-9]{6}$/,
|
||||
'name': '@ctitle(2,4)',
|
||||
'industry|1': ['银行', '房地产', '白酒', '电子', '医药', '新能源', '化工', '钢铁', '汽车', '家电'],
|
||||
'pattern|1': ['V型反转', '强势上涨', '底部反转', '突破上涨', '双底形态', '头肩底'],
|
||||
'risePercent|20-60.1-1': 1,
|
||||
'volumeIncrease|1': ['1.5倍', '2倍', '2.5倍', '3倍', '3.5倍', '4倍'],
|
||||
'similarity|60-95.1-0': 1,
|
||||
'occurDate': '@date("yyyy-MM-dd")',
|
||||
'currentPrice|10-100.2-2': 1,
|
||||
'marketCap|100-1000.1-1': 1,
|
||||
'pe|5-50.1-1': 1,
|
||||
'pb|0.5-10.2-2': 1
|
||||
}]
|
||||
})
|
||||
|
||||
// 模拟相似股票查询
|
||||
Mock.mock(/\/api\/stock\/similar/, 'get', (options) => {
|
||||
const params = new URLSearchParams(options.url.split('?')[1])
|
||||
const page = parseInt(params.get('page')) || 1
|
||||
const pageSize = parseInt(params.get('pageSize')) || 20
|
||||
const patternType = params.get('patternType')
|
||||
const minRise = parseInt(params.get('minRise')) || 0
|
||||
|
||||
let filteredData = stockData.list
|
||||
|
||||
// 根据条件过滤
|
||||
if (patternType) {
|
||||
const patternMap = {
|
||||
'v_reversal': 'V型反转',
|
||||
'strong_rise': '强势上涨',
|
||||
'bottom_reversal': '底部反转',
|
||||
'breakout_rise': '突破上涨'
|
||||
}
|
||||
filteredData = filteredData.filter(item => item.pattern === patternMap[patternType])
|
||||
}
|
||||
|
||||
if (minRise > 0) {
|
||||
filteredData = filteredData.filter(item => item.risePercent >= minRise)
|
||||
}
|
||||
|
||||
const start = (page - 1) * pageSize
|
||||
const end = start + pageSize
|
||||
const pageData = filteredData.slice(start, end)
|
||||
|
||||
return {
|
||||
code: 20000,
|
||||
data: {
|
||||
list: pageData,
|
||||
total: filteredData.length,
|
||||
page,
|
||||
pageSize
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟股票历史数据
|
||||
Mock.mock(/\/api\/stock\/history\/\d+/, 'get', () => {
|
||||
const days = 100
|
||||
const data = []
|
||||
let basePrice = Mock.Random.float(10, 100, 2, 2)
|
||||
|
||||
for (let i = 0; i < days; i++) {
|
||||
const change = Mock.Random.float(-0.05, 0.08, 4, 4)
|
||||
basePrice = basePrice * (1 + change)
|
||||
|
||||
data.push({
|
||||
date: Mock.Random.date('yyyy-MM-dd'),
|
||||
open: Mock.Random.float(basePrice * 0.98, basePrice * 1.02, 2, 2),
|
||||
high: Mock.Random.float(basePrice * 1.01, basePrice * 1.05, 2, 2),
|
||||
low: Mock.Random.float(basePrice * 0.95, basePrice * 0.99, 2, 2),
|
||||
close: basePrice,
|
||||
volume: Mock.Random.integer(1000000, 10000000),
|
||||
amount: Mock.Random.integer(10000000, 100000000)
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
code: 20000,
|
||||
data: data.reverse()
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟股票基本信息
|
||||
Mock.mock(/\/api\/stock\/info\/\d+/, 'get', () => {
|
||||
return {
|
||||
code: 20000,
|
||||
data: {
|
||||
code: Mock.Random.string('number', 6),
|
||||
name: Mock.Random.ctitle(2, 4),
|
||||
industry: Mock.Random.pick(['银行', '房地产', '白酒', '电子', '医药', '新能源']),
|
||||
currentPrice: Mock.Random.float(10, 100, 2, 2),
|
||||
change: Mock.Random.float(-5, 10, 2, 2),
|
||||
changePercent: Mock.Random.float(-10, 20, 2, 2),
|
||||
marketCap: Mock.Random.float(100, 1000, 1, 1),
|
||||
pe: Mock.Random.float(5, 50, 1, 1),
|
||||
pb: Mock.Random.float(0.5, 10, 2, 2),
|
||||
turnover: Mock.Random.float(1, 10, 2, 2),
|
||||
volume: Mock.Random.integer(1000000, 10000000),
|
||||
amount: Mock.Random.integer(10000000, 100000000)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟行业列表
|
||||
Mock.mock('/api/stock/industries', 'get', () => {
|
||||
return {
|
||||
code: 20000,
|
||||
data: [
|
||||
'银行', '房地产', '白酒', '电子', '医药', '新能源', '化工', '钢铁', '汽车', '家电',
|
||||
'通信', '计算机', '传媒', '农林牧渔', '有色金属', '建筑材料', '机械设备', '电气设备',
|
||||
'纺织服装', '轻工制造', '商业贸易', '交通运输', '公用事业', '国防军工'
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟热门股票
|
||||
Mock.mock('/api/stock/hot', 'get', () => {
|
||||
return {
|
||||
code: 20000,
|
||||
data: Mock.mock({
|
||||
'list|20': [{
|
||||
'code': /^[0-9]{6}$/,
|
||||
'name': '@ctitle(2,4)',
|
||||
'currentPrice|10-100.2-2': 1,
|
||||
'changePercent|1-20.1-1': 1,
|
||||
'volume|1000000-10000000': 1
|
||||
}]
|
||||
}).list
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟自选股操作
|
||||
Mock.mock('/api/stock/watchlist', 'post', () => {
|
||||
return {
|
||||
code: 20000,
|
||||
message: '添加成功'
|
||||
}
|
||||
})
|
||||
|
||||
Mock.mock('/api/stock/watchlist', 'get', () => {
|
||||
return {
|
||||
code: 20000,
|
||||
data: Mock.mock({
|
||||
'list|10': [{
|
||||
'code': /^[0-9]{6}$/,
|
||||
'name': '@ctitle(2,4)',
|
||||
'currentPrice|10-100.2-2': 1,
|
||||
'changePercent|1-20.1-1': 1
|
||||
}]
|
||||
}).list
|
||||
}
|
||||
})
|
||||
|
||||
// 模拟导出功能
|
||||
Mock.mock('/api/stock/export', 'post', () => {
|
||||
return {
|
||||
code: 20000,
|
||||
message: '导出成功',
|
||||
data: {
|
||||
downloadUrl: '/api/download/stock-analysis.xlsx'
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user