ttk-app-core
Version:
enterprise develop framework
617 lines (600 loc) • 21.5 kB
JavaScript
/**
* mock.js 提供应用截获ajax请求,为脱离后台测试使用
* 模拟查询更改内存中mockData,并返回数据
*/
import { fetch } from 'edf-utils'
import moment from 'moment'
import utils from 'edf-utils'
const mockData = fetch.mockData
function initMockData() {
if (!mockData.stockTypes) {
mockData.stockTypes = [{
id: '5000010001',
// code: '1001',
name: '衣服',
children: [{
id: '1000101',
code: '1001',
name: '裤子',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '1001 裤子',
accountTypeId: '5000010001',
isEnable: true,
isEndNode: false,
balanceDirection: 0,
balanceDirectionName: '买',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}, {
id: '1000102',
code: '1002',
name: '衬衣',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '1002 衬衣',
accountTypeId: '5000010001',
isEnable: true,
isEndNode: false,
balanceDirection: 0,
balanceDirectionName: '买',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}, {
id: '1000103',
code: '1003',
name: '外套',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '1003 外套',
accountTypeId: '5000010001',
isEnable: true,
isEndNode: false,
balanceDirection: 0,
balanceDirectionName: '买',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}]
}, {
id: '5000010002',
// code: '1002',
name: '饰品',
children: [{
id: '1000201',
code: '2001',
name: '耳钉',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '2001 耳钉',
accountTypeId: '5000010002',
isEnable: true,
isEndNode: false,
balanceDirection: 1,
balanceDirectionName: '卖',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}, {
id: '1000202',
code: '2002',
name: '项链',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '2002 项链',
accountTypeId: '5000010002',
isEnable: true,
isEndNode: false,
balanceDirection: 1,
balanceDirectionName: '买',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}]
}, {
id: '5000010004',
code: '003',
name: '食物',
grade: 1,
children: [{
id: '1000401',
code: '3001',
name: '面包',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '3001 面包',
accountTypeId: '5000010004',
isEnable: true,
isEndNode: false,
balanceDirection: 1,
balanceDirectionName: '卖',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}, {
id: '1000402',
code: '3002',
name: '肉',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '3002 肉',
accountTypeId: '5000010004',
isEnable: true,
isEndNode: false,
balanceDirection: 0,
balanceDirectionName: '买',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}, {
id: '1000403',
code: '3003',
name: '蔬菜',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '3003 蔬菜',
accountTypeId: '5000010004',
isEnable: true,
isEndNode: false,
balanceDirection: 1,
balanceDirectionName: '卖',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: [{
id: '100040301',
code: '300301',
name: '土豆',
grade: 2,
cashTypeId: 1,
parentId: '1000403',
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '300301 土豆',
accountTypeId: '5000010004',
isEnable: true,
isEndNode: false,
balanceDirection: 0,
balanceDirectionName: '买',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}, {
id: '100040302',
code: '300302',
name: '蒜苗',
grade: 2,
cashTypeId: 1,
parentId: '1000403',
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '300302 蒜苗',
accountTypeId: '5000010004',
isEnable: true,
isEndNode: false,
balanceDirection: 1,
balanceDirectionName: '卖',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}, {
id: '100040303',
code: '300303',
name: '菠菜',
grade: 2,
cashTypeId: 1,
parentId: '1000403',
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '300303 菠菜',
accountTypeId: '5000010004',
isEnable: true,
isEndNode: false,
balanceDirection: 0,
balanceDirectionName: '买',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}]
}]
}, {
id: '5000010005',
code: '002',
name: '水果',
children: [{
id: '1000501',
code: '4001',
name: '芒果',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '4001 芒果',
accountTypeId: '5000010005',
isEnable: true,
isEndNode: false,
balanceDirection: 0,
balanceDirectionName: '买',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}, {
id: '1000502',
code: '4002',
name: '菠萝',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '4002 菠萝',
accountTypeId: '5000010005',
isEnable: true,
isEndNode: false,
balanceDirection: 1,
balanceDirectionName: '卖',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}, {
id: '1000503',
code: '4003',
name: '香蕉',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '4003 香蕉',
accountTypeId: '5000010005',
isEnable: true,
isEndNode: false,
balanceDirection: 0,
balanceDirectionName: '买',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}]
}, {
id: '5000010006',
code: '003',
name: '设备',
children: [{
id: '1000601',
code: '5001',
name: '手机',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '5001 手机',
accountTypeId: '5000010006',
isEnable: true,
isEndNode: false,
balanceDirection: 0,
balanceDirectionName: '买',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}, {
id: '1000602',
code: '5002',
name: '耳机',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '5002 耳机',
accountTypeId: '5000010006',
isEnable: true,
isEndNode: false,
balanceDirection: 1,
balanceDirectionName: '卖',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}, {
id: '1000603',
code: '5003',
name: '音响',
grade: 1,
cashTypeId: 1,
isSystem: true,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: '5003 音响',
accountTypeId: '5000010006',
isEnable: true,
isEndNode: false,
balanceDirection: 0,
balanceDirectionName: '买',
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
}]
}]
mockData.stockTypes.map( (item) => {
pushChildren(item)
})
}
if(!mockData.calcDict) {
mockData.calcDict = {
"isCalcInventory": "存货",
"isCalcPerson": "人员",
"isCalcCustomer": "客户",
"isCalcDepartment": "部门",
"isCalcSupplier": "供应商",
"isCalcProject": "项目"
}
}
}
function pushChildren(data) {
if(data.children.length != 0){
data.children.map((item) => {
pushChildren(item)
})
}else {
for (let i = 1; i < 20; i++) {
let code, id
if(i < 10){
code = `${data.code}0${i}`
id = `${data.id}0${i}`
}else{
code = `${data.code}${i}`
id = `${data.id}${i}`
}
data.children.push({
id: id,
code: code,
name: data.name + i,
grade: data.grade+1,
parentId: data.id,
isCalcQuantity: false,
canDisabledQuantity: true,
isCalcMulti: false,
canDisabledMulti: true,
codeAndName: code + ' ' + data.name + i,
isSystem: true,
accountTypeId: data.accountTypeId,
isEnable: true,
isEndNode: true,
balanceDirection: data.balanceDirection,
isCalc: false,
isCalcDepartment: false,
isCalcPerson: false,
isCalcCustomer: false,
isCalcSupplier: false,
isCalcInventory: false,
isCalcProject: false,
isCalcBankAccount: false,
children: []
})
}
}
}
fetch.mock('/v1/gl/account/query2', (option) => {
initMockData()
query(option)
return { result: true, value: {calcDict: mockData.calcDict, glAccounts: mockData.glAccounts} }
})
function query(option) {
const { accountTypeId } = option
mockData.accountTypeId = accountTypeId
let data = mockData.stockTypes,
glAccounts = []
if(accountTypeId){
data.filter((item) => {
if(item.id == accountTypeId){
return glAccounts = item.children
}
})
}else {
data.map((item) => {
glAccounts = glAccounts.concat(item.children)
})
}
let value = []
function fn(arr) {
if (!Array.isArray(arr)) return;
arr.forEach((item) => {
let data = {...item}
delete data.children
value.push(data)
if (item.children.length == 0) return;
value.concat(item.children)
if (item.children && Array.isArray(item.children) && item.children.length > 0) fn(item.children);
});
}
fn(glAccounts)
mockData.glAccounts = value
}
fetch.mock('/v1/gl/account/delete', (option) => {
update(option)
return { result: true, value: '' }
})
function update(option){
function build(list, option){
let{ accountTypeId, parentId, id, grade} = option
option.children = []
list.map((item) => {
if(!item.grade || item.grade < grade){
if(item.id == parentId){
item.children.splice(item.children.findIndex(item => item.id == id), 1)
if(item.children.length == 0){
item.isEndNode = true
}
}else if(item.children.length != 0){
build(item.children, option)
}
}
})
}
build(mockData.stockTypes, option)
}