UNPKG

ttk-app-core

Version:
442 lines (438 loc) 20.3 kB
import { consts, common } from 'edf-constant' import moment from 'moment' import { fromJS } from 'immutable' export function getMeta() { return { name: 'root', component: 'Layout', className: 'ttk-scm-app-expense-card', onMouseDown: '{{$mousedown}}', children: [{ name: 'header', component: 'Layout', className: 'ttk-scm-app-expense-card-header', children: [{ name: 'left', component: 'Layout', className: 'ttk-scm-app-expense-card-header-left', children: [{ name: 'page', component: 'Button.Group', className: 'page-prev-next', children: [{ name: 'prev', component: 'Button', icon: 'left', title: '上一张', disabled: '{{data.other.prevDisalbed}}', onClick: '{{$prev}}' }, { name: 'next', component: 'Button', icon: 'right', title: '下一张', disabled: '{{data.other.nextDisalbed}}', onClick: '{{$next}}' }] }, { name: 'setting', component: 'Icon', className: 'btn setting', fontFamily: 'edficon', type: 'shezhi', title: '设置', onClick: '{{$setting}}' }, { name: 'shortcut', component: 'Popover', placement: "bottom", overlayClassName: 'app-pu-arrival-card-header-left-jianpan', arrowPointAtCenter: true, content: { name: 'keys', component: 'ShortKey' }, title: null, children: { component: 'Icon', className: 'app-pu-arrival-card-header-left-iconbutton', fontFamily: 'edficon', type: 'jianpan', title: '快捷键', } }] }, { name: 'right', component: 'Layout', className: 'ttk-scm-app-expense-card-header-right', children: [{ name: 'add', component: 'Button', onClick: '{{function(){$save(true)}}}', children: '保存并新增' }, { name: 'audit', component: 'Button', disabled: '{{data.other.pageStatus === data.consts.pageStatus.ADD}}', onClick: '{{$audit}}', _visible:'{{data.other.auditVisible}}', children: '{{$getAuditBtnText()}}' // children:'审核' }, { name: 'history', component: 'Button', // type: 'bluesky', onClick: '{{$history}}', className: 'ttk-scm-app-expense-card-header-right-but', children: '历史单据' }, { name: 'more', component: 'Dropdown', overlay: { name: 'menu', component: 'Menu', onClick: '{{$moreMenuClick}}', children: [{ name: 'del', component: 'Menu.Item', key: 'del', disabled: '{{data.other.pageStatus === data.consts.pageStatus.READ_ONLY || data.other.pageStatus === data.consts.pageStatus.ADD}}', children: '删除' }, { name: 'pay', component: 'Menu.Item', key: 'pay', disabled: `{{data.other.pageStatus === data.consts.pageStatus.EDIT || data.other.pageStatus === data.consts.pageStatus.ADD || data.form.receiveAmount == data.form.taxInclusiveAmount || data.form.taxInclusiveAmount < 0 }}`, children: '付款' }] }, children: { name: 'internal', component: 'Button', className: 'app-sa-delivery-card-header-right-but', // type: 'bluesky', children: ['更多', { name: 'down', component: 'Icon', type: 'down' }] } }] }] }, { name: 'title', component: 'Layout', className: 'ttk-scm-app-expense-card-title', children: [{ name: 'left', component: 'Layout', className: 'ttk-scm-app-expense-card-title-left', children: [{ name: 'audited', component: '::img', className: 'ttk-scm-app-expense-card-title-left-tag', src: require('./img/audited.png'), _visible: '{{data.form.status == data.consts.VOUCHERSTATUS_Approved}}' }, { name: 'settled', component: '::img', className: 'ttk-scm-app-expense-card-title-left-tag', src: require('./img/settled.png'), _visible: '{{data.form.settleStatus == data.consts.SETTLESTATUS_settled}}' }] }, { name: 'center', component: '::div', className: 'ttk-scm-app-expense-card-title-center', children: { name: 'title', component: '::h1', style: { fontWeight: 'bold' }, children: '费用单' } }, { name: 'right', component: 'Layout', className: 'ttk-scm-app-expense-card-title-right', children: ['单据编号:', { name: 'code', component: '::div', className: 'code', style: { marginRight: 10 }, children: "{{data.form.code || ''}}" }, { name: 'attachment', component: 'Attachment', // data: '{{data.form.attachments}}', status: '{{data.form.attachmentStatus}}', data: '{{data.form.attachmentFiles}}', onDownload: '{{$download}}', loading: '{{data.form.attachmentLoading}}', visible: '{{data.form.attachmentVisible}}', onDel: '{{$delFile}}', uploadProps: { action: '/v1/edf/file/upload', //上传地址, headers: '{{$getAccessToken()}}', accept: '', //接受的上传类型 //attachementVisible: '{{$attachementVisible}}' data: { "fileClassification": "ATTACHMENT" }, onChange: '{{$attachmentChange}}', beforeUpload: '{{$beforeUpload}}' } }] }] }, { name: 'formHeader', component: 'Layout', className: 'ttk-scm-app-expense-card-form-header', children: [{ name: 'top', component: 'Form', className: 'ttk-scm-app-expense-card-form-header-top', children: [{ name: 'bookkeepingDate', component: 'Form.Item', required: true, label: '记账日期', children: [{ name: 'bookkeepingDate', disabled:'{{$getDisable()}}', component: 'DatePicker', value: '{{$stringToMoment(data.form.businessDate)}}', onChange: "{{function(d){$sf('data.form.businessDate',$momentToString(d,'YYYY-MM-DD'))}}}" }] }, { name: 'getDepartment', component: 'Form.Item', label: '费用承担部门', _visible: '{{data.other.columnSetting && data.other.columnSetting.header.cards.find(o=> o.fieldName === "department").isVisible}}', children: [{ name: 'getDepartment', component: 'Select', showSearch: false, disabled:'{{$getDisable()}}', value: '{{data.form.departmentName}}', onChange: `{{$onFieldDataChange({ id: "data.form.departmentId", name: "data.form.departmentName"}, "data.other.getDepartment")}}`, onFocus: '{{$getDepartment}}', dropdownFooter: "{{$handleAddRecord('Department', 'getDepartment')}}", children: { name: 'option', component: 'Select.Option', value: '{{data.other.getDepartment[_rowIndex] && data.other.getDepartment[_rowIndex].id}}', children: '{{data.other.getDepartment[_rowIndex] && data.other.getDepartment[_rowIndex].name}}', _power: 'for in data.other.getDepartment' } }] }, { name: 'intercourse', component: 'Form.Item', _visible: '{{data.other.columnSetting && data.other.columnSetting.header.cards.find(o=> o.fieldName === "calcObject").isVisible}}', label: '往来单位或个人', children: [{ name: 'intercourse', placeholder: '按名称/拼音搜索', disabled:'{{$getDisable()}}', component: 'TreeSelect', value: '{{data.form.supplierName || data.form.customerName || data.form.personName}}', treeData: '{{data.other.getCalcObject}}', onChange: `{{$onFieldDataChanges({ value: "data.form.supplierId", label: "data.form.supplierName"}, "data.other.getCalcObjects")}}`, }] }, { name: 'getProject', component: 'Form.Item', _visible: '{{data.other.columnSetting && data.other.columnSetting.header.cards.find(o=> o.fieldName === "project").isVisible}}', label: '项目', children: [{ name: 'getProject', component: 'Select', disabled:'{{$getDisable()}}', showSearch: true, placeholder: '按名称/拼音搜索', value: '{{data.form.projectName}}', onChange: `{{$onFieldDataChange({ id: "data.form.projectId", name: "data.form.projectName"}, "data.other.getProject")}}`, onFocus: '{{function(){$getProject()}}}', dropdownFooter: "{{$handleAddRecord('Project', 'getProject')}}", children: { name: 'option', component: 'Select.Option', value: '{{data.other.getProject[_rowIndex] && data.other.getProject[_rowIndex].id}}', children: '{{data.other.getProject[_rowIndex] && data.other.getProject[_rowIndex].name}}', _power: 'for in data.other.getProject' } }] }] }, { name: 'remark', component: 'Layout', className: 'ttk-scm-app-expense-card-remark', children: [{ name: 'ttk-scm-app-expense-card-remark-top', component: 'Form', className: 'ttk-scm-app-expense-card-remark-top', _visible: '{{data.other.columnSetting && data.other.columnSetting.header.cards.find(o=> o.fieldName === "remark").isVisible}}', children: [{ name: 'remark', component: 'Form.Item', label: '备注', children: [{ name: 'remark', component: 'Input', disabled:'{{$getDisable()}}', value: '{{data.form.remark}}', onBlur: "{{function(e){$getRemarks('data.form.remark',e.target.value)}}}", onChange: "{{function(e){$fieldChange('data.form.remark',e.target.value)}}}" }] }] }] }, { name: 'detail', component: '::div', className: 'ttk-scm-app-expense-card-repeter', children: '{{$renderRepeter()}}', }, { name: 'center', component: 'Layout', className: 'ttk-scm-app-expense-card-center', children: [{ name: 'saveAndNew', component: 'Button', disabled:'{{$getDisable()}}', className: 'ttk-scm-app-expense-card-center-center-settlement-jia', onClick: '{{$addCallBack}}', children: '+增加费用' }, { name: 'accumulativeMoney', component: 'Form.Item', className: 'ttk-scm-app-expense-card-center-center-settlement-accumulativeMoney', label: '费用累计金额', children: [{ name: 'accumulativeMoney', component: 'Input', disabled: 'true', value: '{{data.form.accumulativeMoney}}', // onBlur: "{{function(e){$getRemarks('data.form.remark',e.target.value)}}}", // onChange: "{{function(e){$fieldChange('data.form.remark',e.target.value)}}}" }] }] }, { name: 'payDiv', component: '::div', className: 'ttk-scm-app-expense-card-payDiv', children: '{{$renderPayDiv()}}' }, { name: 'footer', component: 'Layout', className: 'ttk-scm-app-expense-card-footer', children: [{ name: 'left', component: 'Layout', className: 'ttk-scm-app-expense-card-footer-left', children: [{ name: 'creator', component: 'Layout', children: ['制单人:', '{{data.form.creatorName}}'], style: { marginRight: 30 } }, { name: 'auditor', component: 'Layout', children: ['审核人:', '{{data.form.auditorName}}'], }] }, { name: 'right', component: 'Layout', className: 'ttk-scm-app-expense-card-footer-right', children: [{ name: 'saveAndNew', component: 'Button', // type: 'bluesky', onClick: '{{function(){$save(true)}}}', children: '保存并新增' },{ name: 'save', component: 'Button', // type: 'showy', onClick: '{{function(){$save(false)}}}', children: '保存' },{ name: 'cancel', component: 'Button', onClick: '{{$giveUp}}', disabled: '{{data.other.pageStatus === data.consts.pageStatus.READ_ONLY}}', children: '放弃' }] }] }] }] } } export function getInitState(option) { return { data: { form: { details: [ { invoiceTypes: 4000010010 } // blankDetail, // blankDetail, // blankDetail, // blankDetail ], accumulativeMoney: 0, authMonth: new Date().getMonth() + 1 + '月',//认证月份 attachmentFiles: fromJS([]), attachmentStatus: 0, //附件status 0: 上传 1: 只读 attachmentLoading: false, //附件上传状态 attachmentVisible: false //附件popover显示状态 }, other: { details: [{ invoiceTypeId: '' }], pageStatus: common.commonConst.PAGE_STATUS.ADD, treeData : [{ label: 'Node1', value: '0-0', key: '0-0', children: [{ label: 'Child Node1', value: '0-0-1', key: '0-0-1', }, { label: 'Child Node2', value: '0-0-2', key: '0-0-2', }], }, { label: 'Node2', value: '0-1', key: '0-1', }] }, consts: { VOUCHERSTATUS_Approved: consts.consts.VOUCHERSTATUS_Approved, //已审核 SETTLESTATUS_settled: consts.consts.SETTLESTATUS_settled, //已结清 pageStatus: common.commonConst.PAGE_STATUS, VATTAXPAYER_smallScaleTaxPayer: consts.consts.VATTAXPAYER_smallScaleTaxPayer,//小规模纳税人 VATTAXPAYER_generalTaxPayer: consts.consts.VATTAXPAYER_generalTaxPayer //一般纳税人 }, isSignAndRetreat: false } } } export const blankDetail = { warehouseId: null, inventoryId: null, unitId: null, quantity: null, price: null, taxInclusivePrice: null, taxRateId: null, tax: null, amount: null, taxInclusiveAmount: null }