master
271556543@qq.com 3 years ago
parent 034382617b
commit c00cebc4e3

@ -128,6 +128,9 @@ export default {
selectAllClick(selection){
this.$emit('select-all',selection)
},
selectChange(selection){
this.$emit('selection-change',selection)
},
cellClick(row, column, cell) {
this.$emit('cellClick', row, column, cell)
},
@ -184,6 +187,7 @@ export default {
btnWidth,
selectClick,
selectAllClick,
selectChange,
height,
createIndexRow,
tableStyle,
@ -230,9 +234,8 @@ export default {
on={{
['select']: selectClick,
['cell-click']: cellClick,
['select-all']: selectAllClick}}>
['select-all']: selectAllClick,
['selection-change']:selectChange}}>
{
tableItem.map((item, index) => {
//

@ -145,3 +145,28 @@ export function getAgeByIdcard(identityCard){
}
return age;
}
export function getBirth(idCard) {
let birthday = "";
if(idCard != null && idCard != ""){
if(idCard.length == 15){
birthday = "19"+idCard.slice(6,12);
} else if(idCard.length == 18){
birthday = idCard.slice(6,14);
}
birthday = birthday.replace(/(.{4})(.{2})/,"$1-$2-");
//通过正则表达式来指定输出格式为:1990-01-01
}
return birthday;
}
export function getSex(idCard) {
let sexStr;
if (parseInt(idCard.slice(-2, -1)) % 2 == 1) {
sexStr = '男';
}
else {
sexStr = '女';
}
return sexStr;
}

@ -77,9 +77,16 @@
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>关联服务
</div>
<div class="xy-table-item-content">
<el-select v-model="form.product_sku_list" style="width: 300px;" placeholder="请选择关联服务" multiple value-key="sku_id">
<el-option v-for="(item,index) in skus" :value="{sku_id:item.id}" :label="item.name" :key="item.id"></el-option>
</el-select>
<xy-table
ref="table"
:is-page="false"
:height="260"
:list="skus"
:table-item="skuTable"
@select="rowSelect"
@select-all="rowSelect">
<template v-slot:btns></template>
</xy-table>
</div>
</div>
</template>
@ -123,6 +130,29 @@ export default {
{required: true, message: '请填写结算周期'}
]
},
skuTable:[
{
type:'selection',
width:44
},
{
prop:'name',
label:'服务名称',
width: 140
},
{
prop:'time_lenth',
label:'服务时长',
width: 120
},
{
prop:'service',
label:'服务内容',
minWidth: 160,
align:'left'
}
]
}
},
methods: {
@ -136,6 +166,24 @@ export default {
}
})
console.log(res)
//
this.$refs['table'].clearSelection()
let ids = this.form.product_sku_list.map(item => item.sku_id)
this.skus.forEach(item => {
if(ids.indexOf(item.id) !== -1){
this.$refs['table'].toggleRowSelection(item)
}
})
},
rowSelect(selection){
console.log(selection)
this.form.product_sku_list = selection.map(item => {
return {
sku_id:item.id
}
})
},
submit() {

@ -138,32 +138,6 @@
</div>
</template>
<template v-slot:sex>
<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">
<div style="width: 300px;display: flex">
<el-radio v-model="form.sex" label="男"></el-radio>
<el-radio v-model="form.sex" label="女"></el-radio>
</div>
</div>
</div>
</template>
<template v-slot:birthday>
<div class="xy-table-item">
<div class="xy-table-item-label">
生日
</div>
<div class="xy-table-item-content">
<el-date-picker v-model="form.birthday" placeholder="请选择生日" style="width: 300px;"
value-format="yyyy-MM-dd"></el-date-picker>
</div>
</div>
</template>
<template v-slot:remark>
<div class="xy-table-item">
<div class="xy-table-item-label">
@ -182,10 +156,22 @@
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>失能等级
</div>
<div class="xy-table-item-content">
<el-select v-model="form.level_id" placeholder="请选择失能等级" style="width: 300px;">
<el-option v-for="item in disabilityLevel" :key="item.id" :label="item.value"
:value="item.id"></el-option>
</el-select>
<el-cascader
:value="form.level_id"
style="width: 300px;"
placeholder="失能等级选择"
:options="disabilityLevel"
:props="{
label:'value',
value:'id',
}"
@change="e => form.level_id = e.at(-1)">
</el-cascader>
<!-- <el-select v-model="form.level_id" placeholder="请选择失能等级" style="width: 300px;">-->
<!-- <el-option v-for="item in disabilityLevel" :key="item.id" :label="item.value"-->
<!-- :value="item.id"></el-option>-->
<!-- </el-select>-->
</div>
</div>
</template>
@ -339,6 +325,7 @@ import {getparameter} from '@/api/system/dictionary'
import {save, getInfo} from '@/api/customer'
import {save as orderSave} from '@/api/order'
import {getList as productList} from "@/api/product";
import {getBirth,getSex} from '@/utils'
import moment from "moment";
export default {
@ -510,9 +497,6 @@ export default {
customer_address_list: [
{required: true, message: '请填写地址'},
],
sex: [
{required: true, message: '请选择性别'},
],
level_id: [
{required: true, message: '请选择失能等级'},
]
@ -667,6 +651,8 @@ export default {
submit() {
this.$refs['dialog'].validate().then(res => {
this.form.sex = getSex(this.form.idcard)
this.form.birthday = getBirth(this.form.idcard)
Object.defineProperty(this.form,'city_id',{
value:this.form.area[0] || '',
enumerable: true,

@ -68,53 +68,53 @@
</div>
</template>
<template v-slot:service_times>
<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-number v-model="form.service_times" :controls="false" :precision="0"
placeholder="请输入服务次数" style="width: 300px;" @blur="totalComputed"/>
</div>
</div>
</template>
<!-- <template v-slot:service_times>-->
<!-- <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-number v-model="form.service_times" :controls="false" :precision="0"-->
<!-- placeholder="请输入服务次数" style="width: 300px;" @blur="totalComputed"/>-->
<!-- </div>-->
<!-- </div>-->
<!-- </template>-->
<template v-slot:unit_price>
<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 xy-table-item-price">
<el-input-number v-model="form.unit_price" :controls="false" :precision="2"
placeholder="请输入单次单价" style="width: 300px;" @blur="totalComputed"/>
</div>
</div>
</template>
<!-- <template v-slot:unit_price>-->
<!-- <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 xy-table-item-price">-->
<!-- <el-input-number v-model="form.unit_price" :controls="false" :precision="2"-->
<!-- placeholder="请输入单次单价" style="width: 300px;" @blur="totalComputed"/>-->
<!-- </div>-->
<!-- </div>-->
<!-- </template>-->
<template v-slot:total_time>
<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 xy-table-item-min">
<el-input-number :controls="false" v-model="form.total_time"
placeholder="请输入总计时长" style="width: 300px;"/>
</div>
</div>
</template>
<!-- <template v-slot:total_time>-->
<!-- <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 xy-table-item-min">-->
<!-- <el-input-number :controls="false" v-model="form.total_time"-->
<!-- placeholder="请输入总计时长" style="width: 300px;"/>-->
<!-- </div>-->
<!-- </div>-->
<!-- </template>-->
<template v-slot:total_money>
<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 xy-table-item-price">
<el-input-number :precision="2" :controls="false" v-model="form.total_money"
placeholder="请输入总计金额" style="width: 300px;"/>
</div>
</div>
</template>
<!-- <template v-slot:total_money>-->
<!-- <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 xy-table-item-price">-->
<!-- <el-input-number :precision="2" :controls="false" v-model="form.total_money"-->
<!-- placeholder="请输入总计金额" style="width: 300px;"/>-->
<!-- </div>-->
<!-- </div>-->
<!-- </template>-->
<template v-slot:account_id>
<div class="xy-table-item">
@ -326,12 +326,25 @@ export default {
this.form.total_time = this.pickedProduct.total
}
}
console.log(this.form)
},
datePick(){
if(this.form.product_id && this.form.date){
let t1= moment(this.form.date[0])
let t2 = moment(this.form.date[1])
let times = t2.diff(t1,'month') //
let unit;
switch (this.pickedProduct.cycle){
case 1:
unit = 'year'
break;
case 2:
unit = 'month'
break;
case 3:
unit = 'week'
break;
}
let times = t2.diff(t1,unit) //
this.form.service_times = this.pickedProduct.frequency * times
this.form.total_money = Number(this.pickedProduct.purchase_price) * this.form.service_times
this.form.unit_price = Number(this.pickedProduct.purchase_price)
@ -341,6 +354,8 @@ export default {
this.form.total_time = this.pickedProduct.total * times
}
}
console.log(this.form)
},
submit() {

@ -237,9 +237,14 @@ export default {
}
},
methods: {
async getDisabilityLevel() {
const res = await getparameter({number: 'disabilityLevel'},false)
this.disabilityLevel = res.detail
const levels = await getparameter({number: 'disabilityLevel'},false)
const types = await getparameter({number: 'disabilityType'},false)
this.disabilityLevel = types.detail.map(item => {
item.children = levels.detail
return item
})
},
async getCustomers() {

@ -6,9 +6,14 @@
<div class="serve-detail__title">
服务时间
</div>
<div class="serve-detail__time-value" style="padding-left: 20px;">
{{time}}
</div>
<div class="serve-detail__btn">
<el-button size="small" type="primary" round>录入服务记录</el-button>
</div>
</div>
<xy-table :height="300" :is-page="false" :table-item="columns" :list="detail">
@ -76,7 +81,7 @@ export default {
},
{
prop:'created_at',
label:'打卡时间',
label:'时间',
width: 160
},
{
@ -120,6 +125,11 @@ export default {
padding: 10px 0;
}
&__btn{
flex: 1;
text-align: right;
}
}
</style>

@ -93,7 +93,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 xy-table-item-price">
<div class="xy-table-item-content" :class="form.service_rule ? 'xy-table-item-min_price' : 'xy-table-item-price'">
<el-input-number v-model="form.purchase_price" :controls="false" :precision="2" clearable
placeholder="请输入采购单价" style="width: 300px;"/>
</div>
@ -105,7 +105,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 xy-table-item-price">
<div class="xy-table-item-content" :class="form.service_rule ? 'xy-table-item-min_price' : 'xy-table-item-price'">
<el-input-number v-model="form.nurse_price" :controls="false" :precision="2" clearable placeholder="请输入护工单价"
style="width: 300px;"/>
</div>
@ -162,9 +162,10 @@ export default {
name: '',
cycle: '',
frequency: 0,
service_rule:false,
purchase_price: '',
nurse_price: '',
service_rule:false,
time_lenth: '',
total:'',
process_total:'',
@ -253,4 +254,20 @@ export default {
z-index: 2;
}
}
.xy-table-item-min_price{
position: relative;
&::after{
position: absolute;
right: 0;
top: 0;
content:'(元/分钟)'
}
::v-deep .el-input__clear{
position: relative;
right: 46px;
z-index: 2;
}
}
</style>

Loading…
Cancel
Save