NurseStationOperateUI/src/views/system/order/indexjs.js

520 lines
18 KiB
JavaScript
Raw Normal View History

2022-11-17 16:48:25 +08:00
import {
appointmentOrderDetailsList,
Detailed,
deldetailed,
getPerson,
dispatchsubmit,
xylWeChatRefundNotify,
appointmentOrderDetails,
2023-05-25 18:08:02 +08:00
getPersonInfo,
edit
2022-11-17 16:48:25 +08:00
} from "@/api/system/order";
import { getListByUser } from "@/api/system/userlist.js";
export default {
name: "order",
data() {
return {
2023-05-25 18:08:02 +08:00
timevalue: [],
2022-12-01 09:59:28 +08:00
map: null,
2023-05-04 14:14:44 +08:00
baseurl: process.env.VUE_APP_BASE_API,
2022-11-17 16:48:25 +08:00
orderStatuslist: [{
2023-05-23 09:17:26 +08:00
value: "WAIT_PAY",
label: "待付款",
},
{
value: "PAY",
label: "已付款",
},
{
value: "WAIT_DISPATCH",
label: "待派单",
},
{
value: "NOT_FINISH",
label: "未完成",
},
{
value: "COMPLETE",
label: "待评价",
},
{
value: "EVALUATED",
label: "服务完成",
},
{
value: "WAIT_REFUND",
label: "退款中",
},
{
value: 'REFUNDED',
label: '退款成功'
},
{
value: "CANCEL",
label: "已取消",
}
2022-11-17 16:48:25 +08:00
],
// 遮罩层
loading: true,
innerVisible4: false,
2023-05-23 09:17:26 +08:00
editinnerVisible: false,
2022-11-17 16:48:25 +08:00
innerrefund: false,
2023-04-10 16:06:50 +08:00
// 护理员姓名弹框
2022-11-17 16:48:25 +08:00
nursePersonNameinfo: false,
2023-04-10 16:06:50 +08:00
nursePersonlist: {},
2023-04-13 15:08:37 +08:00
//查看证书
certificateshow: false,
2023-04-10 16:06:50 +08:00
PersonChecksrcList: [],
2022-11-17 16:48:25 +08:00
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
input: "",
// 总条数
total: 0,
// 护理类型信息表格数据
OrderDetailsList: [],
dispatchlist: [],
total2: 0,
//护理站
stationtotal: 0,
nurseStationlist: [],
nurseStationshow: false,
// 弹出层标题
title: "",
// 查询参数
getListByUserquery: {
pageNum: 1,
pageSize: 10,
},
queryParams: {
patientName: null,
orderNo: null,
nurseStationId: null,
// orderStatus: null,
orderStatus: "",
pageNum: 1,
pageSize: 10,
2023-05-23 09:30:12 +08:00
orderType: null,
2022-11-17 16:48:25 +08:00
},
querynursePersonname: {
orderNo: "",
nursePersonName: null,
nursePersonType: null,
departmentName: null,
pageNum: 1,
pageSize: 10,
},
2022-11-21 09:39:43 +08:00
query: {},
2022-11-17 16:48:25 +08:00
// 表单参数
form: {},
// 表单校验
rules: {},
2023-05-23 09:30:12 +08:00
ordertypelist: [{
value: "COMPANION_IN_HOSPITAL",
label: "陪诊陪护",
},
{
value: "OTHER",
label: "其它",
},
],
2022-11-17 16:48:25 +08:00
};
},
created() {
this.getList();
},
2023-05-23 09:17:26 +08:00
mounted() { },
2022-11-17 16:48:25 +08:00
methods: {
2023-05-25 18:08:02 +08:00
//时间确定
timechange(e) {
this.query.companionStartDate = this.formatDate(new Date(e[0]).getTime());
this.query.companionEndDate = this.formatDate(new Date(e[1]).getTime());
},
//修改提交
editsubmitForm() {
edit(this.query).then(res => {
if (res.code == 200) {
this.$message.success("修改成功");
this.editinnerVisible = false;
}
});
},
2022-12-01 09:59:28 +08:00
init(query) {
this.map = new AMap.Map("container", {
resizeEnable: true, //设置地图可缩放
zoom: 18, //设置地图的层级
center: [query.serveLocationLongitude, query.serveLocationLatitude], //设置地图中心点 更多配置项参照高德官网的配置
});
var layer = new AMap.LabelsLayer({
zooms: [3, 20],
zIndex: 1000,
// 开启标注避让默认为开启v1.4.15 新增属性
collision: true,
// 开启标注淡入动画默认为开启v1.4.15 新增属性
animation: true,
});
this.map.add(layer);
var labelMarker = new AMap.LabelMarker({
2022-12-06 09:53:31 +08:00
name: query.serviceLocationName,
2022-12-01 09:59:28 +08:00
position: [query.serveLocationLongitude, query.serveLocationLatitude],
icon: {
type: "image",
image: "https://a.amap.com/jsapi_demos/static/images/poi-marker.png",
clipOrigin: [280, 8],
clipSize: [50, 68],
size: [25, 34],
anchor: "bottom-center",
angel: 0,
retina: true,
},
text: {
2022-12-06 09:53:31 +08:00
content: query.serviceLocationName,
2022-12-01 09:59:28 +08:00
direction: "top",
offset: [0, 0],
style: {
fontSize: 13,
fontWeight: "normal",
2022-12-06 09:53:31 +08:00
fillColor: "black",
2022-12-01 09:59:28 +08:00
padding: "2, 5",
2022-12-06 09:53:31 +08:00
backgroundColor: "",
2022-12-01 09:59:28 +08:00
},
},
});
layer.add(labelMarker);
},
2022-11-17 16:48:25 +08:00
//取消预约确定按钮
ordercacenl() {
var obj = {
orderNo: this.query.orderNo,
refundPrice: this.query.totalPrice,
refundReason: this.query.cancelAppointmentReason,
};
xylWeChatRefundNotify(obj).then((res) => {
if (res.code == 200) {
this.$modal.msgSuccess("退款有延迟,请耐心等待");
}
this.getList();
this.innerrefund = false;
});
},
// 取消按钮
cencelbtn() {
this.innerrefund = false;
},
switchOrderStatus(orderStatus) {
switch (orderStatus) {
case "WAIT_PAY":
return "待付款";
2022-11-21 10:01:43 +08:00
case "PAY":
return "已付款";
2022-11-17 16:48:25 +08:00
case "WAIT_DISPATCH":
return "待派单";
case "NOT_FINISH":
return "未完成";
2023-04-12 09:27:14 +08:00
case "WAIT_RECEIVE":
return "待接单"
2022-11-17 16:48:25 +08:00
case "COMPLETE":
2022-11-21 10:01:43 +08:00
return "待评价";
case "EVALUATED":
return "服务完成";
2022-11-17 16:48:25 +08:00
case "WAIT_REFUND":
return "退款中";
2022-11-21 10:01:43 +08:00
case "REFUNDED":
return "退款成功";
2022-11-17 16:48:25 +08:00
case "CANCEL":
return "已取消";
default:
2023-05-25 18:16:47 +08:00
break;
}
},
switchOrderStatus2(orderStatus) {
switch (orderStatus) {
case "WAIT_PAY":
return "待付款";
case "PAY":
return "已付款";
case "WAIT_DISPATCH":
return "已支付";
case "NOT_FINISH":
return "未完成";
case "WAIT_RECEIVE":
return "待接单"
case "COMPLETE":
return "待评价";
case "EVALUATED":
return "服务完成";
case "WAIT_REFUND":
return "退款中";
case "REFUNDED":
return "退款成功";
case "CANCEL":
return "已取消";
default:
2022-11-17 16:48:25 +08:00
break;
}
},
2023-05-25 18:08:02 +08:00
formatDate(time, timetype) {
let date = new Date(time); //13位时间戳
//let date = new Date(parseInt(time) * 1000); //10位时间戳
let y = date.getFullYear();
let MM = date.getMonth() + 1;
MM = MM < 10 ? "0" + MM : MM;
let d = date.getDate();
d = d < 10 ? "0" + d : d;
return y + "-" + MM + "-" + d;
},
2023-05-23 09:17:26 +08:00
//编辑
seeedit(row) {
this.loading = true;
const id = row.orderNo;
this.map = null;
appointmentOrderDetails(id).then(res => {
this.timevalue = [
res.data.companionStartDate ? res.data.companionStartDate : "",
res.data.companionEndDate ? res.data.companionEndDate : ""
];
this.query = res.data;
res.data.disablingCondition == "DISABLED"
? (res.data.disablingCondition = "是")
: "";
res.data.disablingCondition == "NOT_DISABLED"
? (res.data.disablingCondition = "否")
: "";
if (row.orderStatus == "EVALUATED") {
if (res.data) {
if (res.data.evaluateSatisfaction == "COMMONLY") {
this.query.evaluateSatisfaction = "一般";
} else if (res.data.evaluateSatisfaction == "SATISFIED") {
this.query.evaluateSatisfaction = "满意";
} else if (res.data.evaluateSatisfaction == "DISSATISFIED") {
this.query.evaluateSatisfaction = "不满意";
} else if (res.data.evaluateSatisfaction == "VERYSATISFIED") {
this.query.evaluateSatisfaction = "非常满意";
} else if (res.data.evaluateSatisfaction == "VERYDISSATISFIED") {
this.query.evaluateSatisfaction = "非常不满意";
}
this.loading = false;
this.editinnerVisible = true;
setTimeout(() => {
this.init(this.query);
}, 500);
} else {
this.loading = false;
this.editinnerVisible = true;
setTimeout(() => {
this.init(this.query);
}, 500);
}
} else if (row.orderStatus == "COMPLETE") {
this.loading = false;
this.editinnerVisible = true;
setTimeout(() => {
this.init(this.query);
}, 500);
} else {
this.loading = false;
this.editinnerVisible = true;
}
});
},
2022-11-17 16:48:25 +08:00
// 查看
seeLook(row) {
2022-11-21 09:39:43 +08:00
this.loading = true
2022-11-17 16:48:25 +08:00
const id = row.orderNo;
2022-12-01 09:59:28 +08:00
this.map = null
2022-11-17 16:48:25 +08:00
appointmentOrderDetails(id).then((res) => {
2023-03-31 10:23:27 +08:00
res.data.time = res.data.serviceDate + "-" + res.data.serviceStartTime;
this.query = res.data;
2023-04-11 17:12:34 +08:00
res.data.disablingCondition == 'DISABLED' ? res.data.disablingCondition = '是' : ''
res.data.disablingCondition == 'NOT_DISABLED' ? res.data.disablingCondition = '否' : ''
2022-11-21 09:39:43 +08:00
if (row.orderStatus == 'EVALUATED') {
2022-12-01 09:59:28 +08:00
if (res.data) {
2023-04-03 16:12:34 +08:00
if (res.data.evaluateSatisfaction == 'COMMONLY') {
2022-12-01 09:59:28 +08:00
this.query.evaluateSatisfaction = '一般'
2023-04-03 16:12:34 +08:00
} else if (res.data.evaluateSatisfaction == 'SATISFIED') {
2022-12-01 09:59:28 +08:00
this.query.evaluateSatisfaction = '满意'
2023-04-03 16:12:34 +08:00
} else if (res.data.evaluateSatisfaction == 'DISSATISFIED') {
2022-12-01 09:59:28 +08:00
this.query.evaluateSatisfaction = '不满意'
2023-04-11 14:59:51 +08:00
} else if (res.data.evaluateSatisfaction == 'VERYSATISFIED') {
this.query.evaluateSatisfaction = '非常满意'
} else if (res.data.evaluateSatisfaction == 'VERYDISSATISFIED') {
this.query.evaluateSatisfaction = '非常不满意'
2022-11-21 09:39:43 +08:00
}
2022-12-01 09:59:28 +08:00
this.loading = false
this.innerVisible4 = true;
setTimeout(() => {
this.init(this.query)
}, 500);
} else {
this.loading = false
this.innerVisible4 = true;
setTimeout(() => {
this.init(this.query)
}, 500);
}
} else if (row.orderStatus == 'COMPLETE') {
this.loading = false
this.innerVisible4 = true;
setTimeout(() => {
this.init(this.query)
}, 500);
2022-11-21 09:39:43 +08:00
} else {
this.loading = false
this.innerVisible4 = true;
}
2022-11-17 16:48:25 +08:00
});
},
// 派单
dispatch(row) {
2023-04-13 15:08:37 +08:00
this.querynursePersonname.orderNo = row.orderNo
2022-11-17 16:48:25 +08:00
getPerson(this.querynursePersonname).then((res) => {
this.dispatchlist = res.rows;
this.total2 = res.total;
this.nursePersonNameinfo = true;
});
},
2023-04-13 15:08:37 +08:00
//派单护理员
nursePersonNameinfocancel() {
this.nursePersonNameinfo = false
this.nursePersonlist = {}
},
2023-04-12 13:57:21 +08:00
// 护理员姓名弹框确定按钮
2023-04-13 15:08:37 +08:00
submitFormclick() {
2022-11-17 16:48:25 +08:00
let params = {
2023-04-13 15:08:37 +08:00
nurseStationPersonId: this.nursePersonlist.nurseStationPersonId,
2022-11-17 16:48:25 +08:00
orderNo: this.querynursePersonname.orderNo,
};
dispatchsubmit(params).then((res) => {
if (res.code == 200) {
this.$modal.msgSuccess("派单成功");
}
2023-04-13 15:08:37 +08:00
this.nursePersonNameinfo = false;
2022-11-17 16:48:25 +08:00
this.getList();
});
},
2023-04-13 15:08:37 +08:00
submitForm(row) {
this.nursePersonlist = row
},
// 查看护理员证书按钮
2022-11-17 16:48:25 +08:00
nursePersonclick(row) {
2023-04-12 13:57:21 +08:00
getPersonInfo(row.nurseStationPersonId).then(res => {
2023-04-13 15:08:37 +08:00
this.PersonChecksrcList = res.data;
this.certificateshow = true
2023-04-12 13:57:21 +08:00
})
2022-11-17 16:48:25 +08:00
},
// 确认取消预约
cencel(row) {
Detailed(row.orderNo).then((res) => {
this.query = res.data;
this.innerrefund = true;
});
},
clicknurseStationshow() {
this.nurseStationshow = false;
},
//护理站重置
stationcancel() {
this.getListByUserquery = {
pageNum: 1,
pageSize: 10,
};
this.info();
},
//护理站页面选择护理站
choicestationid(item) {
this.queryParams.nurseStationName = item.nurseStationName;
this.queryParams.nurseStationId = item.id;
this.nurseStationshow = false;
},
//护理站list
info() {
getListByUser(this.getListByUserquery).then((res) => {
this.nurseStationlist = res.rows;
this.stationtotal = res.total;
});
},
//页面所属护理站
ParamsStation(item) {
this.info();
this.nurseStationshow = true
},
2022-11-21 09:39:43 +08:00
/** 订单信息列表 */
2022-11-17 16:48:25 +08:00
getList() {
this.loading = true;
appointmentOrderDetailsList(this.queryParams).then((response) => {
this.OrderDetailsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 表单重置
reset() {
this.form = {
patientName: "",
orderNo: "",
orderStatus: "",
createTime: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
handleQuery2() {
getPerson(this.querynursePersonname).then((res) => {
this.dispatchlist = res.rows;
});
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryParams = {
pageNum: 1,
pageSize: 10,
};
this.handleQuery();
},
resetQuery2() {
this.resetForm("queryForm");
this.handleQuery2();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 删除按钮操作 */
handleDelete(row) {
this.$confirm("是否确认删除订单信息的数据项?", "提示", {
2023-05-23 09:17:26 +08:00
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
2022-11-17 16:48:25 +08:00
.then(() => {
deldetailed(row.appointmentOrderId).then((res) => {
this.$message.success("删除成功");
this.getList();
});
})
2023-05-23 09:17:26 +08:00
.catch(() => { });
2022-11-17 16:48:25 +08:00
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/nurseType/export", {
2023-05-23 09:17:26 +08:00
...this.queryParams,
},
2022-11-17 16:48:25 +08:00
`nurseType_${new Date().getTime()}.xlsx`
);
},
},
2023-03-13 13:39:21 +08:00
};