475 lines
19 KiB
Vue
475 lines
19 KiB
Vue
<template>
|
|
<div class="app-container">
|
|
<el-form
|
|
:model="queryParams"
|
|
ref="queryForm"
|
|
size="small"
|
|
:inline="true"
|
|
v-show="showSearch"
|
|
label-width="90px"
|
|
>
|
|
<el-form-item label="所属护理站" prop="nurseStationName">
|
|
<el-button type class="stationbtn" @click="ParamsStation(true)">
|
|
{{
|
|
queryParams.nurseStationName
|
|
}}
|
|
</el-button>
|
|
</el-form-item>
|
|
<el-form-item label="订单编号" prop="orderNo">
|
|
<el-input
|
|
v-model="queryParams.orderNo"
|
|
placeholder="请输入订单编号"
|
|
clearable
|
|
@keyup.enter.native="handleQuery"
|
|
/>
|
|
</el-form-item>
|
|
<el-form-item label="订单状态" prop="orderStatus">
|
|
<el-select v-model="queryParams.orderStatus" placeholder="请选择订单状态">
|
|
<el-option
|
|
v-for="item in orderStatuslist"
|
|
:key="item.value"
|
|
:label="item.label"
|
|
:value="item.value"
|
|
></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="会员名称" prop="patientName">
|
|
<el-input
|
|
v-model="queryParams.patientName"
|
|
placeholder="请输入会员名称"
|
|
clearable
|
|
@keyup.enter.native="handleQuery"
|
|
/>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-table
|
|
v-loading="loading"
|
|
:data="OrderDetailsList"
|
|
@selection-change="handleSelectionChange"
|
|
>
|
|
<el-table-column label="所属护理站" align="center" prop="nurseStationName" />
|
|
<el-table-column label="订单编号" align="center" prop="orderNo" />
|
|
<el-table-column label="护理项目名称" align="center" prop="nurseItemName" />
|
|
<el-table-column label="订单总金额" align="center" prop="totalPrice" />
|
|
<el-table-column label="下单时间" align="center" prop="createTime" />
|
|
<el-table-column label="订单状态" align="center" prop="orderStatus">
|
|
<template slot-scope="scope">
|
|
<el-button v-if="scope.row.orderStatus == 'WAIT_PAY'">待付款</el-button>
|
|
<el-button type="primary" v-if="scope.row.orderStatus == 'PAY'">已付款</el-button>
|
|
<el-button type="primary" v-if="scope.row.orderStatus == 'WAIT_DISPATCH'">待派单</el-button>
|
|
<el-button type="primary" v-if="scope.row.orderStatus == 'NOT_FINISH'">未完成</el-button>
|
|
<el-button type="primary" v-if="scope.row.orderStatus == 'COMPLETE'">待评价</el-button>
|
|
<el-button type="success" v-if="scope.row.orderStatus == 'EVALUATED'">服务完成</el-button>
|
|
<el-button type="warning" v-if="scope.row.orderStatus == 'WAIT_REFUND'">退款中</el-button>
|
|
<el-button type="warning" v-if="scope.row.orderStatus == 'REFUNDED'">退款成功</el-button>
|
|
<el-button type="danger" v-if="scope.row.orderStatus == 'CANCEL'">已取消</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="会员名称" align="center" prop="patientName" />
|
|
<el-table-column label="护理员名称" align="center" prop="nursePersonName" />
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
size="mini"
|
|
type="text"
|
|
icon="el-icon-zoom-in"
|
|
@click="seeLook(scope.row)"
|
|
v-hasPermi="['system:appointmentOrder:query']"
|
|
>查看</el-button>
|
|
<el-button
|
|
size="mini"
|
|
type="text"
|
|
icon="el-icon-s-promotion"
|
|
@click="dispatch(scope.row)"
|
|
v-hasPermi="['system:appointmentOrder:dispatch']"
|
|
v-if="scope.row.orderStatus == 'WAIT_DISPATCH'"
|
|
>派单</el-button>
|
|
<el-button
|
|
size="mini"
|
|
type="text"
|
|
icon="el-icon-error"
|
|
v-if="scope.row.orderStatus == 'WAIT_REFUND'"
|
|
@click="cencel(scope.row)"
|
|
v-hasPermi="['system:appointmentOrder:confirmCancel']"
|
|
>取消预约</el-button>
|
|
<!-- <el-button
|
|
size="mini"
|
|
type="text"
|
|
icon="el-icon-delete"
|
|
@click="handleDelete(scope.row)"
|
|
v-hasPermi="['system:nurseType:remove']"
|
|
>删除</el-button
|
|
>-->
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<pagination
|
|
v-show="total > 0"
|
|
:total="total"
|
|
:page.sync="queryParams.pageNum"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="getList"
|
|
/>
|
|
<!-- 查看弹框 -->
|
|
<el-dialog title="查看预约订单信息" :visible.sync="innerVisible4" append-to-body width="1280px">
|
|
<el-form :inline="true" ref="form" :model="query" :rules="rules" label-width="130px">
|
|
<el-form-item label="订单编号" prop="orderNo">
|
|
<div class="text">{{query.orderNo}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="订单状态" prop="orderStatus">
|
|
<div class="text">{{switchOrderStatus(query.orderStatus)}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="订单总金额" prop="totalPrice">
|
|
<div class="text">{{query.totalPrice}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="订单数量" prop="orderCount">
|
|
<div class="text">{{query.orderCount}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="佣金金额" prop="orderCount">
|
|
<div class="text">{{query.orderCommissionAmount}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="护理站名称" prop="nurseStationName">
|
|
<div class="text">{{query.nurseStationName}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="护理项目名称" prop="nurseItemName">
|
|
<div class="text">{{query.nurseItemName}}</div>
|
|
</el-form-item>
|
|
<!-- <el-form-item label="护理员名称" prop="nursePersonName">
|
|
<div class="text">{{query.nursePersonName}}</div>
|
|
</el-form-item>-->
|
|
<el-form-item label="服务时间" prop="time">
|
|
<div class="text">{{query.time}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="护理项目时长" prop="itemServeDurationUnit">
|
|
<div class="text">{{query.itemServeDurationUnit}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="评价星级" prop="compositeScore" v-if="query.orderStatus =='EVALUATED'">
|
|
<div class="text">{{query.compositeScore}}</div>
|
|
</el-form-item>
|
|
<el-form-item
|
|
label="评价满意度"
|
|
prop="evaluateSatisfaction"
|
|
v-if="query.orderStatus == 'EVALUATED'"
|
|
>
|
|
<div class="text">{{query.evaluateSatisfaction}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="是否失能" prop="disablingCondition">
|
|
<div class="text">{{query.disablingCondition}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="失能情况" prop="disablingReason">
|
|
<div class="text">{{query.disablingReason}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="健康状况" prop="diseaseName">
|
|
<div
|
|
class="text"
|
|
style="height:100px;line-height:26px;overflow: scroll"
|
|
>{{query.diseaseName}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="服务地址" prop="serviceAddress">
|
|
<div
|
|
class="text"
|
|
style="height:100px;line-height:26px;overflow: scroll"
|
|
>{{query.serviceAddress}}</div>
|
|
</el-form-item>
|
|
<el-form-item
|
|
label="服务到岗照片"
|
|
prop="onDutyPictureUrl"
|
|
v-if="
|
|
query.orderStatus == 'COMPLETE' || query.orderStatus == 'EVALUATED'
|
|
"
|
|
>
|
|
<img class="img" :src="baseurl + query.onDutyPictureUrl" alt />
|
|
</el-form-item>
|
|
<el-form-item
|
|
label="服务结束照片"
|
|
prop="serviceEndPictureUrl"
|
|
v-if="
|
|
query.orderStatus == 'COMPLETE' || query.orderStatus == 'EVALUATED'
|
|
"
|
|
>
|
|
<img class="img" :src="baseurl + query.serviceEndPictureUrl" alt />
|
|
</el-form-item>
|
|
<el-form-item
|
|
label="用户确认签名"
|
|
prop="userSignaturePictureUrl"
|
|
v-if="
|
|
query.orderStatus == 'COMPLETE' || query.orderStatus == 'EVALUATED'
|
|
"
|
|
>
|
|
<img class="img" :src="baseurl + query.userSignaturePictureUrl" alt />
|
|
</el-form-item>
|
|
<el-table
|
|
:data="query.appointmentOrderConsumableList"
|
|
align="center"
|
|
style="margin: 10px 0 20px 0; padding-bottom: 20px"
|
|
>
|
|
<el-table-column prop="orderConsumableName" label="耗材包名称" align="center"></el-table-column>
|
|
<el-table-column prop="orderConsumableCount" label="耗材包数量" align="center"></el-table-column>
|
|
<el-table-column prop="orderConsumablePrice" label="耗材包价格" align="center"></el-table-column>
|
|
</el-table>
|
|
<el-form-item
|
|
label="预约服务位置"
|
|
v-if="
|
|
query.orderStatus == 'COMPLETE' || query.orderStatus == 'EVALUATED'
|
|
"
|
|
>
|
|
<el-input v-model="query.serviceLocationName" disabled style="width: 250px" />
|
|
</el-form-item>
|
|
</el-form>
|
|
<div
|
|
id="container"
|
|
v-if="
|
|
this.query.orderStatus == 'COMPLETE' ||
|
|
this.query.orderStatus == 'EVALUATED'
|
|
"
|
|
></div>
|
|
</el-dialog>
|
|
<!-- 派单弹框 -->
|
|
<el-dialog title="派单" :visible.sync="innerdispatch" append-to-body width="900px" height="100px">
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="130px" :inline="true">
|
|
<el-form-item label="护理员姓名">
|
|
<el-button
|
|
type
|
|
v-if="nurseName == '请选择护理员'"
|
|
style="width: 250px; text-align: left; height: 36px; color: #c0c4cc"
|
|
@click="clicknursePersonName()"
|
|
>{{ nurseName }}</el-button>
|
|
<el-button
|
|
type
|
|
@click="clicknursePersonName()"
|
|
v-else
|
|
style="
|
|
width: 250px;
|
|
text-align: left;
|
|
height: 36px;
|
|
"
|
|
>{{ nurseName }}</el-button>
|
|
</el-form-item>
|
|
<el-form-item label="工作状态" v-if="nursePersonlist.workStatus">
|
|
<div class="text" style="display: inline-block;">
|
|
{{ nursePersonlist.workStatus=='ONLINE'?"在线":'' }}
|
|
{{ nursePersonlist.workStatus=='BE_BUSY'?"忙碌":'' }}
|
|
{{ nursePersonlist.workStatus=='OFFLINE'?"离线":'' }}
|
|
</div>
|
|
</el-form-item>
|
|
<el-form-item label="护理人职称" v-if="nursePersonlist.nursePersonType">
|
|
<div class="text" style="display: inline-block;">
|
|
{{ nursePersonlist.nursePersonType=='NURSE'?"护士":'' }}
|
|
{{ nursePersonlist.nursePersonType=='NURSE_TEACHER'?"护理师":'' }}
|
|
</div>
|
|
</el-form-item>
|
|
<el-form-item label="职称级别" v-if="nursePersonlist.positionalTitleLevel">
|
|
<div class="text" style="display: inline-block;">
|
|
{{ nursePersonlist.positionalTitleLevel=='PRIMARY_LEVEL'?'初级':'' }}
|
|
{{ nursePersonlist.positionalTitleLevel=='MIDDLE_LEVEL'?'中级':'' }}
|
|
{{ nursePersonlist.positionalTitleLevel=='HIGH_LEVEL'?'高级':'' }}
|
|
</div>
|
|
</el-form-item>
|
|
<el-form-item label="擅长项目" v-if="nursePersonlist.geniusItem">
|
|
<div
|
|
class="text"
|
|
style="width:600px;display: inline-block;height:100px;line-height:25px; overflow: hidden; display: -webkit-box;-webkit-line-clamp:4;-webkit-box-orient: vertical;"
|
|
>{{ nursePersonlist.geniusItem }}</div>
|
|
</el-form-item>
|
|
<el-form-item label="资质证书图片" v-if="nursePersonlist.nurseStationPersonCheckList">
|
|
<div v-for="(item,index) in nursePersonlist.nurseStationPersonCheckList" :key="index">
|
|
<el-image
|
|
style="width: 120px; height: 120px;margin-right:10px"
|
|
:src="baseurl+item.certificateUrl"
|
|
:preview-src-list="PersonChecksrcList"
|
|
></el-image>
|
|
</div>
|
|
</el-form-item>
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
<!-- <el-button @click="cancel">取 消</el-button> -->
|
|
</div>
|
|
</el-dialog>
|
|
<!-- 取消预约弹框 -->
|
|
<el-dialog title="取消预约" :visible.sync="innerrefund" append-to-body width="500px">
|
|
<el-form :inline="true" :rules="rules" label-width="120px">
|
|
<el-form-item label="订单编号" prop="orderNo">
|
|
<el-input style="width: 260px" v-model="query.orderNo" clearable :disabled="true" />
|
|
</el-form-item>
|
|
<el-form-item label="服务项目" prop="nurseItemName">
|
|
<el-input v-model="query.nurseItemName" style="width: 260px" clearable :disabled="true" />
|
|
</el-form-item>
|
|
<el-form-item label="会员姓名" prop="patientName">
|
|
<el-input v-model="query.patientName" style="width: 260px" clearable :disabled="true" />
|
|
</el-form-item>
|
|
<el-form-item label="退款原因" prop="cancelAppointmentReason">
|
|
<el-input
|
|
style="width: 260px"
|
|
v-model="query.cancelAppointmentReason"
|
|
placeholder
|
|
clearable
|
|
type="textarea"
|
|
:rows="5"
|
|
disabled
|
|
/>
|
|
</el-form-item>
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button @click="cencelbtn">取 消</el-button>
|
|
<el-button type="primary" @click="ordercacenl">确 定</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
<!-- 派单护理员弹框 -->
|
|
<el-dialog :visible.sync="nursePersonNameinfo" width="1000px" append-to-body>
|
|
<el-form
|
|
ref="queryForm"
|
|
:model="querynursePersonname"
|
|
:rules="rules"
|
|
label-width="80px"
|
|
:inline="true"
|
|
>
|
|
<el-form-item label="姓名" prop="nursePersonName" label-width="120">
|
|
<el-input v-model="querynursePersonname.nursePersonName" placeholder="请输入姓名" clearable />
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery2">搜索</el-button>
|
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery2">重置</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-table :data="dispatchlist" @cell-dblclick="nursePersonclick">
|
|
<el-table-column label="请选择" align="center">
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
type="primary"
|
|
style="width: 15px; height: 15px; overflow: hidden"
|
|
v-if="nursePersonid == scope.row.nurseStationPersonId"
|
|
circle
|
|
@click="nursePersonclick(scope.row)"
|
|
></el-button>
|
|
<el-button
|
|
v-else
|
|
style="width: 15px; height: 15px; overflow: hidden"
|
|
circle
|
|
@click="nursePersonclick(scope.row)"
|
|
></el-button>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column property="departmentName" label="所属科室" align="center"></el-table-column>
|
|
<!-- <el-table-column property="nursePersonCode" label="护理员编号" align="center"></el-table-column> -->
|
|
<el-table-column property="nursePersonName" label="护理站人员姓名" align="center"></el-table-column>
|
|
<el-table-column property="nursePersonType" label="护理站人员类型" align="center">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.nursePersonType == "NURSE" ? "护士" : "" }}
|
|
{{ scope.row.nursePersonType == "NURSE_TEACHER" ? "护理师" : "" }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column property="phone" label="手机号" align="center"></el-table-column>
|
|
<el-table-column label="性别" align="center" prop="sex">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.sex == "MALE" ? "男" : "" }}
|
|
{{ scope.row.sex == "FEMALE" ? "女" : "" }}
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<pagination
|
|
v-show="total2 > 0"
|
|
:total="total2"
|
|
:page.sync="querynursePersonname.pageNum"
|
|
:limit.sync="querynursePersonname.pageSize"
|
|
@pagination="handleQuery2"
|
|
/>
|
|
</el-dialog>
|
|
<!-- 护理站 -->
|
|
<el-dialog
|
|
title="选择护理站"
|
|
:visible.sync="nurseStationshow"
|
|
width="1100px"
|
|
append-to-body
|
|
:before-close="clicknurseStationshow"
|
|
>
|
|
<el-form ref="form" :model="getListByUserquery" label-width="110px" :inline="true">
|
|
<el-form-item label="护理站编码" prop="nurseStationCode">
|
|
<el-input v-model="getListByUserquery.nurseStationCode" placeholder="请输入护理站编码" />
|
|
</el-form-item>
|
|
<el-form-item label="护理站名称" prop="nurseStationName">
|
|
<el-input v-model="getListByUserquery.nurseStationName" placeholder="请输入护理站名称" />
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="info">搜索</el-button>
|
|
<el-button icon="el-icon-refresh" size="mini" @click="stationcancel">重置</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-table v-loading="loading" :data="nurseStationlist" @cell-dblclick="choicestationid">
|
|
<el-table-column label="请选择" width="70" align="center">
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
type="primary"
|
|
style="width: 15px; height: 15px"
|
|
circle
|
|
@click="choicestationid(scope.row)"
|
|
v-if="queryParams.nurseStationId == scope.row.id"
|
|
></el-button>
|
|
|
|
<el-button
|
|
style="width: 15px; height: 15px"
|
|
circle
|
|
v-else
|
|
@click="choicestationid(scope.row)"
|
|
></el-button>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column property="nurseStationCode" label="护理站编码" align="center"></el-table-column>
|
|
<el-table-column property="nurseStationName" label="护理站名称" align="center"></el-table-column>
|
|
<el-table-column property="phone" label="联系电话" align="center"></el-table-column>
|
|
<el-table-column
|
|
property="address"
|
|
label="护理站地址"
|
|
align="center"
|
|
:show-overflow-tooltip="true"
|
|
></el-table-column>
|
|
</el-table>
|
|
|
|
<pagination
|
|
v-show="stationtotal > 0"
|
|
:total="stationtotal"
|
|
:page.sync="getListByUserquery.pageNum"
|
|
:limit.sync="getListByUserquery.pageSize"
|
|
@pagination="info"
|
|
/>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import indexjs from "./indexjs.js";
|
|
export default indexjs;
|
|
</script>
|
|
|
|
<style lang='scss' scoped>
|
|
.stationbtn {
|
|
width: 208px;
|
|
text-align: left;
|
|
height: 32px;
|
|
overflow: hidden;
|
|
font-size: 14px;
|
|
}
|
|
.img {
|
|
width: 250px;
|
|
height: 250px;
|
|
}
|
|
#container {
|
|
width: 100%;
|
|
height: 600px;
|
|
}
|
|
.text {
|
|
width: 250px;
|
|
height: 36px;
|
|
line-height: 36px;
|
|
padding-left: 15px;
|
|
font-size: 14px;
|
|
border-radius: 4px;
|
|
padding: 0 15px;
|
|
border: 1px solid #e6ebf5;
|
|
}
|
|
</style>
|
|
|