From 96f94e85c140c25cb7a071c6291a66761c20607f Mon Sep 17 00:00:00 2001 From: "271556543@qq.com" <271556543@qq.com> Date: Thu, 29 Sep 2022 17:38:42 +0800 Subject: [PATCH] 2022.9.29 --- src/components/XyTable/index.vue | 20 ++- src/views/finance/collectMoney.vue | 9 +- .../finance/component/addcollectMoney.vue | 165 ++++++++++++++---- src/views/finance/component/scheduleList.vue | 144 +++++++++++++-- src/views/schedule/component/addSchedule.vue | 1 + src/views/schedule/component/timeSelect.vue | 19 +- 6 files changed, 303 insertions(+), 55 deletions(-) diff --git a/src/components/XyTable/index.vue b/src/components/XyTable/index.vue index f2a78d8..acd19db 100644 --- a/src/components/XyTable/index.vue +++ b/src/components/XyTable/index.vue @@ -87,6 +87,14 @@ export default { }, pageSize: { type: Number + }, + pageSizeOpts:{ + type:Array, + default:()=>[10, 20, 30, 40] + }, + showSizer:{ + type:Boolean, + default:true } }, data() { @@ -114,6 +122,9 @@ export default { selectClick(selection, row) { this.$emit('select', selection, row) }, + selectAllClick(selection){ + this.$emit('select-all',selection) + }, cellClick(row, column, cell) { this.$emit('cellClick', row, column, cell) }, @@ -133,13 +144,14 @@ export default { enter-active-class="slide-in-bottom" leave-to-class="slide-out-down"> this.$emit('pageSizeChange', e), @@ -174,6 +186,7 @@ export default { cellClick, btnWidth, selectClick, + selectAllClick, height, createIndexRow, tableStyle, @@ -217,7 +230,10 @@ export default { default-expand-all={defaultExpandAll} tree-props={treeProps} fit={true} - on={{['select']: selectClick, ['cell-click']: cellClick}}> + on={{ + ['select']: selectClick, + ['cell-click']: cellClick, + ['select-all']: selectAllClick}}> { diff --git a/src/views/finance/collectMoney.vue b/src/views/finance/collectMoney.vue index 28927ae..abcf219 100644 --- a/src/views/finance/collectMoney.vue +++ b/src/views/finance/collectMoney.vue @@ -20,12 +20,13 @@ @editor="editor" @delete="destroy"> - + diff --git a/src/views/finance/component/addcollectMoney.vue b/src/views/finance/component/addcollectMoney.vue index 6693d57..131e06e 100644 --- a/src/views/finance/component/addcollectMoney.vue +++ b/src/views/finance/component/addcollectMoney.vue @@ -9,13 +9,15 @@ :form="form" :rules="rules" @submit="submit"> - @@ -99,18 +113,32 @@ import {save,getForm} from '@/api/collectMoney' import scheduleList from "@/views/finance/component/scheduleList"; +import {parseTime} from "@/utils"; export default { + props:{ + accounts:{ + type:Array, + default:()=>[] + } + }, components:{ scheduleList }, data() { + let validatorSchedule = (rule, value, callback) => { + if(value.length > 0){ + callback() + }else{ + callback(new Error('请选择结算排班')) + } + } return { isShow:false, id:'', type:'', form:{ - pay_name:'', + account_id :'', money:'', invoice_type:'', date:'', @@ -118,10 +146,89 @@ export default { schedule_links:[], }, rules:{ - pay_name:[ - {required:true,message:'请填写付款方'} + account_id:[ + {required:true,message:'请选择付款方'} + ], + money:[ + {required:true,message:'请填写金额'} + ], + invoice_type:[ + {required:true,message:'请选择发票类型'} + ], + date:[ + {required:true,message:'请选择收款单日期'} + ], + status:[ + {required:true,message:'请选择状态'} + ], + schedule_links:[ + {validator:validatorSchedule} ] - } + }, + + scheduleTable:[ + { + label:'第三方结算对象', + prop:'orders.account.name', + minWidth: 160, + sortable:false + }, + { + label:'护工', + prop:'nurse.name', + width: 160, + sortable:false + }, + { + label:'服务日期', + prop:'date', + width: 200, + sortable:false + }, + { + label:'时间段', + width: 150, + sortable:false, + customFn:(row)=>{ + return ( +
{parseTime(row.start_time,'{h}:{i}')}~{parseTime(row.end_time,'{h}:{i}')}
+ ) + } + }, + { + label:'订单编号', + prop:'orders.no', + width: 220, + sortable:false + }, + { + label:'服务对象', + prop:'customer.name', + width: 200, + sortable:false + }, + { + label:'服务状态', + prop:'status', + width: 140, + sortable:false, + formatter:(cell,data,value) => { + switch (value){ + case 0: + return '已排班未服务' + break; + case 1: + return '已排班未服务' + break; + case 2: + return '已服务' + break; + default: + return value + } + } + } + ] } }, methods: { @@ -131,6 +238,14 @@ export default { this.$integrateData(this.form,res) }, + setSchedule(array){ + this.form.schedule_links = array + }, + removeSchedule(scope){ + console.log(scope) + this.form.schedule_links.splice(scope.$index,1) + }, + submit(){ if(this.type === 'editor'){ Object.defineProperty(this.form,'id',{ @@ -168,19 +283,5 @@ export default { ::v-deep .el-input__inner{ text-align: left; } -.xy-table-item-content-schedule{ - color: #C0C4CC;; - width: 300px; - height: 40px; - line-height: 40px; - background-color: #FFFFFF; - border-radius: 4px; - border: 1px solid #DCDFE6; - transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); - padding: 0 15px; - &:hover{ - border: 1px solid #C0C4CC; - transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); - } -} + diff --git a/src/views/finance/component/scheduleList.vue b/src/views/finance/component/scheduleList.vue index df5baa6..6e950ff 100644 --- a/src/views/finance/component/scheduleList.vue +++ b/src/views/finance/component/scheduleList.vue @@ -1,11 +1,52 @@