ttk-app-core
Version:
enterprise develop framework
442 lines (438 loc) • 20.3 kB
JavaScript
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
}