UNPKG

ttk-app-core

Version:
617 lines (600 loc) 21.5 kB
/** * 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) }