UNPKG

isun

Version:

快速创建vue项目

130 lines (115 loc) 5.78 kB
import { PageBuilder, builder, getBody, addData, updateData } from '../util' import { contract } from '../entity' import Mock from 'mockjs' import { sortBy } from 'lodash' const releaseIdList = ['005', '006', '007'] const contractTypeList = ['DataSpecification', 'InfoRecord'] const userAuthList = ['0,1', '1,3,4', '0,1,2,3,4'] const nodeAuthList = ['0', '1', '0,1'] const ruleTypeList = ['字符串', '整数', '#jpg', '#png', 'zip'] // const ruleIdList = [0,1, '规 '规 '规则-2', '规则-3', '规则-4', '规则-5', '规则-6', '规则-7', '规则-8', '规则-9'] const ruleIdList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] export const contractList = Mock.mock({ 'data|100': [ { ...contract, 'id|+1': 0, // 合约Id contractName: '合约' + '@ctitle(3,12)', // 合约名称 releaseName: '发布方' + '@ctitle(2,5)', // 发布方 'releaseId|1': releaseIdList, // 发布方Id 'releaseAvatar|1': '@image("200x100")', // 发布方头像 version: '1.2', // 版本号 'contractType|1': contractTypeList, // 合约类型 DataSpecification(数据规范) InfoRecord (资料备案) contractDesc: '合约描述' + '@ctitle(20,50)', // 合约描述 label: '标签', // 标签 'userAuth|1': userAuthList, // 合约用户授权 参照字典表 allianceUsers,用英文逗号隔开 'isSecretData|1': true, // 节点加密共享 true | false 'nodeAuth|1': nodeAuthList, // 节点授权 参照字典表 allianceNode,用英文逗号隔开 'ruleList|1-10': // 合约规则 string型,前端自动编写规则 [ { 'id|+1': ruleIdList, // 规则Id title: '标题' + '@ctitle(0,5)', // 名称 'type|+1': ruleTypeList, // 类型 length: '@integer(0,100)', // 字段长度/ 允许资料数量 checkRule: '', // 校验规则 (正则) 'isNot|1': true, // 是否可以为空 desc: '描述' + '@ctitle(0,30)', // 字段描述 'isCheck|1': true // 是否需要节点审核 } ], 'isConnect|1': true, // 是否链接 blockHeight: '@integer(1000,1000000)', // 区块高度 involvesUser: '@integer(1,400)', // 涉及用户 transactions: '@integer(1000,1000000)', // 交易次数 'status|1': '@integer(0,2)', // 0代表暂存 1代表已发布 2代表已经生效 'signList|1-6': [ { 'id|+1': 0, // 签署用户ID contractId: 0, // 关联的合约ID avatar: '@image("200x100", "#00405d", "#FFF", "pic")', // 签署用户头像 name: '节点' + '@ctitle(3,10)', // 签署用户名称 signDate: '@datetime("yyyy/mm/dd HH:mm:ss")' // 签署时间 } ], publishTime: '@datetime("yyyy/mm/dd HH:mm:ss")' } ] }) const contractSearch = (options) => { const body = getBody(options) const { current, size, releaseId, signedId, notSignedId, status, storage, keyWord } = body let _data = contractList.data if (releaseId !== '' && releaseId !== null && releaseId !== undefined) { _data = sortBy(_data.filter((d) => d.releaseId === releaseId && d.status !== 0), (d) => d.sortNo) } if (storage !== '' && storage !== null && storage !== undefined) { _data = sortBy(_data.filter((d) => d.releaseId === storage && d.status === 0), (d) => d.sortNo) } if (signedId !== '' && signedId !== null && signedId !== undefined) { _data = sortBy(_data.filter((d) => JSON.stringify(d.signList).includes(signedId) && d.status !== 0), (d) => d.sortNo) } if (notSignedId !== '' && notSignedId !== null && notSignedId !== undefined) { _data = sortBy(_data.filter((d) => JSON.stringify(d.signList).indexOf(notSignedId) !== -1 && d.status !== 2), (d) => d.sortNo) } if (status !== '' && status !== null && status !== undefined) { _data = sortBy(_data.filter((d) => d.status === status), (d) => d.sortNo) } if (keyWord !== '' && keyWord !== null && keyWord !== undefined) { _data = sortBy(_data.filter((d) => d.contractName.indexOf(keyWord) !== -1), (d) => d.sortNo) } return PageBuilder(_data, current, size) } const contractfindById = (options) => { const body = getBody(options) const { id } = body let _data = contractList.data if (id !== '' && id !== null && id !== undefined) { _data = sortBy(_data.filter((d) => d.id === id), (d) => d.sortNo) } if (_data.length === 0) { return builder(null, '此ID无数据', 400) } else { return builder(_data[0]) } } const contractHandle = (options) => { const body = getBody(options) let _data const { id } = body if (id !== '' && id !== null && id !== undefined) { _data = { ...body } contractList.data = updateData(contractList.data, body.id, _data) return builder(_data, '更新成功.') } else { _data = Mock.mock({ 'id|+1': 100 // }) _data = { ..._data, ...body } contractList.data = addData(contractList.data, _data) return builder(_data, '添加成功.') } } Mock.mock(/\/api\/contract\/list/, 'post', contractSearch) Mock.mock(/\/api\/contract\/findById/, 'post', contractfindById) Mock.mock(/\/api\/contract\/handle/, 'post', contractHandle)