|
|
|
|
@ -9,13 +9,15 @@
|
|
|
|
|
:form="form"
|
|
|
|
|
:rules="rules"
|
|
|
|
|
@submit="submit">
|
|
|
|
|
<template v-slot:pay_name>
|
|
|
|
|
<template v-slot:account_id >
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label">
|
|
|
|
|
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>付款方:
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<el-input v-model="form.pay_name" clearable placeholder="请输入付款方" style="width: 300px;"></el-input>
|
|
|
|
|
<el-select v-model="form.account_id" placeholder="请选择付款对象" style="width: 300px;">
|
|
|
|
|
<el-option v-for="item in accounts" :value="item.id" :label="item.name" :key="item.id"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
@ -25,7 +27,7 @@
|
|
|
|
|
<div class="xy-table-item-label">
|
|
|
|
|
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>金额:
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<div class="xy-table-item-content xy-table-item-price">
|
|
|
|
|
<el-input-number :controls="false" :precision="2" v-model="form.money" clearable placeholder="请输入金额" style="width: 300px;"></el-input-number>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
@ -75,23 +77,35 @@
|
|
|
|
|
<template v-slot:schedule_links >
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label">
|
|
|
|
|
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>排班信息:
|
|
|
|
|
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>结算排班:
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<div class="xy-table-item-content-schedule" @click="$refs['scheduleList'].isShow = true">
|
|
|
|
|
<template v-if="form.schedule_links.length > 0">
|
|
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
请选择排班
|
|
|
|
|
</template>
|
|
|
|
|
</div>
|
|
|
|
|
<template v-if="form.schedule_links.length > 0">
|
|
|
|
|
<Button type="primary" style="margin-bottom: 10px;" @click="$refs['scheduleList'].form = form.schedule_links,$refs['scheduleList'].isShow = true">
|
|
|
|
|
排班选择
|
|
|
|
|
</Button>
|
|
|
|
|
<div style="width: 500px">
|
|
|
|
|
<xy-table :height="300" :is-page="false" :list="form.schedule_links" :table-item="scheduleTable">
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<el-table-column width="68" align="center" fixed="right">
|
|
|
|
|
<template v-slot:default="scope">
|
|
|
|
|
<Button size="small" type="primary" ghost @click="removeSchedule(scope)">移除</Button>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-table>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
<el-input readonly placeholder="请选择结算排班" style="width: 300px;" @focus="$refs['scheduleList'].form = form.schedule_links,$refs['scheduleList'].isShow = true"></el-input>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-dialog>
|
|
|
|
|
|
|
|
|
|
<scheduleList ref="scheduleList"></scheduleList>
|
|
|
|
|
<scheduleList :accounts="accounts" ref="scheduleList" @submit="setSchedule"></scheduleList>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
@ -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 (
|
|
|
|
|
<div>{parseTime(row.start_time,'{h}:{i}')}~{parseTime(row.end_time,'{h}:{i}')}</div>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|
|