Commit 7703840e by ‘巴博尔’

修改提交

parent 16cf890a
import request from "@/utils/request";
// 新增
export function addThirdOrderPOST(data) {
return request({
url: "/system/totalOrder/addThirdOrder",
method: "post",
data: data,
});
}
// 城市列表
export function cityVoListGET(query) {
return request({
url: "/system/common/cityVoList",
method: "get",
params: query,
});
}
// 查询医院列表
export function hospitalListGET(query) {
return request({
url: "/system/hospital/hslist",
method: "get",
params: query,
});
}
// 查询服务列表
export function servicesListGET(query) {
return request({
url: "/system/services/list",
method: "get",
params: query,
});
}
// 查询商户列表
export function companyListGET(query) {
return request({
url: "/merchant/company/list",
method: "get",
params: query,
});
}
// 查询陪诊员列表
export function employeesListGET(query) {
return request({
url: "/merchant/employees/list",
method: "get",
params: query,
});
}
// 修改总订单
export function totalOrderPUT(data) {
return request({
url: '/system/totalOrder',
method: 'put',
data: data
})
}
\ No newline at end of file
...@@ -16,24 +16,28 @@ ...@@ -16,24 +16,28 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="就诊人姓名" prop="orderSn" label-width="90px"> <el-form-item label="就诊人姓名" prop="vistorName" label-width="90px">
<el-input <el-input
v-model="queryParams.orderSn" v-model="queryParams.vistorName"
placeholder="请输入就诊人姓名" placeholder="请输入就诊人姓名"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="接单人" prop="orderSn"> <el-form-item label="接单人" prop="receiverName">
<el-input <el-input
v-model="queryParams.orderSn" v-model="queryParams.receiverName"
placeholder="请输入接单人" placeholder="请输入接单人"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="当前状态" prop="orderSn"> <el-form-item label="当前状态" prop="yStatus">
<el-select v-model="queryParams.value" placeholder="全部" clearable=""> <el-select
v-model="queryParams.yStatus"
placeholder="全部"
clearable=""
>
<el-option <el-option
v-for="item in [ v-for="item in [
{ {
...@@ -68,17 +72,21 @@ ...@@ -68,17 +72,21 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="订单类型" prop="orderSn"> <el-form-item label="订单类型" prop="orderType">
<el-select v-model="queryParams.value" placeholder="全部" clearable=""> <el-select
v-model="queryParams.orderType"
placeholder="全部"
clearable=""
>
<el-option <el-option
v-for="item in [ v-for="item in [
{ {
label: '小程序', label: '小程序',
value: '0', value: 0,
}, },
{ {
label: '美团', label: '美团',
value: '1', value: 1,
}, },
]" ]"
:key="item.value" :key="item.value"
...@@ -240,7 +248,13 @@ ...@@ -240,7 +248,13 @@
<span v-else>未接单</span> <span v-else>未接单</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center" prop="remark" key="remark"> <el-table-column
label="备注"
align="center"
prop="remark"
key="remark"
width="100"
>
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-button <el-button
type="primary" type="primary"
...@@ -305,9 +319,14 @@ ...@@ -305,9 +319,14 @@
<el-table-column <el-table-column
label="订单类型" label="订单类型"
align="center" align="center"
prop="" prop="orderType"
key="" key="orderType"
></el-table-column> >
<template slot-scope="{ row }">
<span v-if="row.orderType == 0">小程序</span>
<span v-if="row.orderType == 1">美团</span>
</template>
</el-table-column>
<el-table-column <el-table-column
label="是否好评" label="是否好评"
align="center" align="center"
...@@ -326,6 +345,7 @@ ...@@ -326,6 +345,7 @@
align="center" align="center"
prop="evaluationContent" prop="evaluationContent"
key="evaluationContent" key="evaluationContent"
width="100"
> >
<!-- v-if="row.evaluationContent" --> <!-- v-if="row.evaluationContent" -->
<template slot-scope="{ row }"> <template slot-scope="{ row }">
...@@ -393,7 +413,13 @@ ...@@ -393,7 +413,13 @@
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['system:dbghOrder:remove']" v-hasPermi="['system:dbghOrder:remove']"
>删除</el-button> --> >删除</el-button> -->
<el-button size="large" type="text">取消</el-button> <el-button
size="large"
type="text"
@click="handleClickCancell(scope.row)"
v-if="[1, '1'].includes(scope.row.tstatus)"
>取消</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -416,9 +442,9 @@ ...@@ -416,9 +442,9 @@
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="订单类型" prop="orderId"> <el-form-item label="订单类型" prop="orderType">
<el-select <el-select
v-model="form.orderId" v-model="form.orderType"
clearable clearable
placeholder="请选择订单类型" placeholder="请选择订单类型"
style="width: 270px" style="width: 270px"
...@@ -427,11 +453,11 @@ ...@@ -427,11 +453,11 @@
v-for="item in [ v-for="item in [
{ {
label: '小程序', label: '小程序',
value: '0', value: 0,
}, },
{ {
label: '美团', label: '美团',
value: '1', value: 1,
}, },
]" ]"
:key="item.value" :key="item.value"
...@@ -443,9 +469,9 @@ ...@@ -443,9 +469,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户手机号" prop="orderId"> <el-form-item label="用户手机号" prop="userPhone">
<el-input <el-input
v-model="form.orderId" v-model="form.userPhone"
placeholder="请输入用户手机号" placeholder="请输入用户手机号"
style="width: 270px" style="width: 270px"
maxlength="11" maxlength="11"
...@@ -455,28 +481,29 @@ ...@@ -455,28 +481,29 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="订单号" prop="orderId"> <el-form-item label="订单号" prop="orderSn">
<el-input <el-input
v-model="form.orderId" v-model="form.orderSn"
placeholder="请输入订单号" placeholder="请输入订单号"
style="width: 270px" style="width: 270px"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="城市" prop="orderId"> <el-form-item label="城市" prop="cityId">
<el-select <el-select
v-model="form.orderId" v-model="form.cityId"
clearable clearable
placeholder="请选择城市" placeholder="请选择城市"
filterable filterable
style="width: 270px" style="width: 270px"
@change="changeCityId"
> >
<el-option <el-option
v-for="item in []" v-for="item in cityVoList"
:key="item.value" :key="item.id"
:label="item.label" :label="item.name"
:value="item.value" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
...@@ -485,28 +512,29 @@ ...@@ -485,28 +512,29 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="医院" prop="orderId"> <el-form-item label="医院" prop="hid">
<el-select <el-select
v-model="form.orderId" v-model="form.hid"
clearable clearable
placeholder="请选择医院" placeholder="请选择医院"
filterable filterable
style="width: 270px" style="width: 270px"
:disabled="form.cityId ? false : true"
> >
<el-option <el-option
v-for="item in []" v-for="item in hospitalList"
:key="item.value" :key="item.id"
:label="item.label" :label="item.name"
:value="item.value" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="科室" prop="orderId"> <el-form-item label="科室" prop="didName">
<el-input <el-input
v-model="form.orderId" v-model="form.didName"
placeholder="请输入科室" placeholder="请输入科室"
style="width: 270px" style="width: 270px"
/> />
...@@ -515,18 +543,29 @@ ...@@ -515,18 +543,29 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="服务" prop="orderId"> <el-form-item label="服务" prop="serviceId">
<el-input <el-select
v-model="form.orderId" v-model="form.serviceId"
placeholder="请输入服务" clearable
placeholder="请选择服务"
filterable
style="width: 270px" style="width: 270px"
/> :disabled="form.cityId ? false : true"
>
<el-option
v-for="item in servicesList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="订单价" prop="orderId"> <el-form-item label="订单价" prop="payMoney">
<el-input-number <el-input-number
v-model="form.orderId" v-model="form.payMoney"
:min="0" :min="0"
label="订单价" label="订单价"
:precision="2" :precision="2"
...@@ -539,9 +578,9 @@ ...@@ -539,9 +578,9 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="就诊人姓名" prop="orderId"> <el-form-item label="就诊人姓名" prop="name">
<el-input <el-input
v-model="form.orderId" v-model="form.name"
placeholder="请输入就诊人姓名" placeholder="请输入就诊人姓名"
maxlength="5" maxlength="5"
style="width: 270px" style="width: 270px"
...@@ -549,15 +588,24 @@ ...@@ -549,15 +588,24 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="就诊人性别" prop="orderId"> <el-form-item label="就诊人性别" prop="sex">
<el-select <el-select
v-model="form.orderId" v-model="form.sex"
clearable clearable
placeholder="请选择就诊人性别" placeholder="请选择就诊人性别"
style="width: 270px" style="width: 270px"
> >
<el-option <el-option
v-for="item in []" v-for="item in [
{
label: '女',
value: 0,
},
{
label: '男',
value: 1,
},
]"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
...@@ -569,36 +617,36 @@ ...@@ -569,36 +617,36 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="身份证号" prop="orderId"> <el-form-item label="身份证号" prop="idcard">
<el-input <el-input
v-model="form.orderId" v-model="form.idcard"
placeholder="请输入身份证号" placeholder="请输入身份证号"
style="width: 270px" style="width: 270px"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12"> </el-col>
<el-form-item label="就诊人手机号" prop="orderId">
<el-input
v-model="form.orderId"
placeholder="请输入就诊人手机号"
style="width: 270px"
maxlength="11"
/>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否成年" prop="orderId"> <el-form-item label="是否成年" prop="isAdult">
<el-select <el-select
v-model="form.orderId" v-model="form.isAdult"
clearable clearable
placeholder="请选择是否成年" placeholder="请选择是否成年"
style="width: 270px" style="width: 270px"
> >
<el-option <el-option
v-for="item in []" v-for="item in [
{
label: '成年',
value: 0,
},
{
label: '未成年',
value: 1,
},
]"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
...@@ -608,10 +656,10 @@ ...@@ -608,10 +656,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="接单人" prop="orderId"> <el-form-item label="接单人" prop="emId">
<div @click="openCheckPerson = true"> <div @click="clickOpenCheckPerson">
<el-input <el-input
v-model="form.orderId" v-model="form.emId_name"
placeholder="请选择接单人" placeholder="请选择接单人"
style="width: 270px" style="width: 270px"
readonly="" readonly=""
...@@ -622,37 +670,29 @@ ...@@ -622,37 +670,29 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="就诊时间" prop="orderId"> <el-form-item label="就诊时间" prop="visitTime">
<el-date-picker <el-date-picker
v-model="form.orderId" v-model="form.visitTime"
type="datetime" type="datetime"
placeholder="请选择就诊时间" placeholder="请选择就诊时间"
style="width: 270px" style="width: 270px"
value-format="yyyy-MM-dd HH:mm:ss"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12"> </el-col>
<!-- <el-form-item label="预约电话" prop="orderId">
<el-input
v-model="form.orderId"
placeholder="请输入预约电话"
style="width: 270px"
maxlength="11"
/>
</el-form-item> -->
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="orderId"> <el-form-item label="备注" prop="remark">
<el-input <el-input
type="textarea" type="textarea"
:rows="2" :rows="2"
placeholder="请输入备注" placeholder="请输入备注"
maxlength="100" maxlength="100"
show-word-limit show-word-limit
v-model="form.textarea" v-model="form.remark"
style="width: calc(100% - 100px)" style="width: calc(100% - 100px)"
> >
</el-input> </el-input>
...@@ -680,17 +720,17 @@ ...@@ -680,17 +720,17 @@
:inline="true" :inline="true"
label-width="100px" label-width="100px"
> >
<el-form-item label="接单人姓名" prop="orderSn"> <el-form-item label="接单人姓名" prop="name">
<el-input <el-input
v-model="queryParamsMin.orderSn" v-model="queryParamsMin.name"
placeholder="请输入接单人姓名" placeholder="请输入接单人姓名"
clearable clearable
style="width: 200px" style="width: 200px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="接单人手机号" prop="orderSn"> <el-form-item label="接单人手机号" prop="phone">
<el-input <el-input
v-model="queryParamsMin.orderSn" v-model="queryParamsMin.phone"
placeholder="请输入接单人姓名" placeholder="请输入接单人姓名"
clearable clearable
maxlength="11" maxlength="11"
...@@ -698,88 +738,73 @@ ...@@ -698,88 +738,73 @@
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="large" <el-button
type="primary"
icon="el-icon-search"
size="large"
@click="handleQueryMin"
>搜索</el-button >搜索</el-button
> >
<el-button icon="el-icon-refresh" size="large">重置</el-button> <el-button
icon="el-icon-refresh"
size="large"
@click="resetQueryMin"
>重置</el-button
>
</el-form-item> </el-form-item>
<el-form-item label="所属商户" prop="orderSn"> <el-form-item label="所属商户" prop="companyId">
<el-select <el-select
v-model="queryParamsMin.value" v-model="queryParamsMin.companyId"
placeholder="请选择" placeholder="请选择"
clearable="" clearable=""
style="width: 200px" style="width: 200px"
filterable="" filterable=""
> >
<el-option <el-option
v-for="item in []" v-for="item in companyList"
:key="item.value" :key="item.id"
:label="item.label" :label="item.name"
:value="item.value" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="popmodel-person"> <div class="popmodel-person">
<div class="popmodel-person-item popmodel-person-itema"> <div
<div class="popmodel-person-item-top"> :class="
<img src="" alt="" /> item.check_is
<div> ? 'popmodel-person-item popmodel-person-itema'
<p>张丹</p> : 'popmodel-person-item'
<p>12345678912</p> "
</div> v-for="(item, index) in employeesList"
</div> :key="index"
<p class="popmodel-person-item-botm"> @click="clickCheckEMply(item, index)"
所属商户:Lorem ipsum dolor sit amet consectetur, adipisicing >
elit. Officia animi optio delectus! In earum voluptate ipsa
tempora, incidunt beatae cupiditate, adipisci voluptatibus neque
dolor fugiat, quidem corporis exercitationem quo accusantium.
</p>
</div>
<div class="popmodel-person-item">
<div class="popmodel-person-item-top">
<img src="" alt="" />
<div>
<p>张丹</p>
<p>12345678912</p>
</div>
</div>
<p class="popmodel-person-item-botm">
所属商户:Lorem ipsum dolor sit amet consectetur, adipisicing
elit. Officia animi optio delectus! In earum voluptate ipsa
tempora, incidunt beatae cupiditate, adipisci voluptatibus neque
dolor fugiat, quidem corporis exercitationem quo accusantium.
</p>
</div>
<div class="popmodel-person-item">
<div class="popmodel-person-item-top"> <div class="popmodel-person-item-top">
<img src="" alt="" /> <img :src="item.avatar_change_url" alt="" />
<div> <div>
<p>张丹</p> <p>{{ item.name }}</p>
<p>12345678912</p> <p>{{ item.phone }}</p>
</div> </div>
</div> </div>
<p class="popmodel-person-item-botm"> <p class="popmodel-person-item-botm">
所属商户:Lorem ipsum dolor sit amet consectetur, adipisicing 所属商户:{{ item.companyName }}
elit. Officia animi optio delectus! In earum voluptate ipsa
tempora, incidunt beatae cupiditate, adipisci voluptatibus neque
dolor fugiat, quidem corporis exercitationem quo accusantium.
</p> </p>
</div> </div>
</div> </div>
<pagination <pagination
v-show="total > 0" v-show="employeesList_total > 0"
:total="total" :total="employeesList_total"
:page.sync="queryParams.pageNum" :page.sync="queryParamsMin.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParamsMin.pageSize"
@pagination="getList" @pagination="employeesListAxios"
/> />
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="openCheckPerson = false" <el-button type="primary" @click="clickClosepERSON(1)"
>确 定</el-button >确 定</el-button
> >
<el-button @click="openCheckPerson = false">取 消</el-button> <el-button @click="clickClosepERSON(2)">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
...@@ -877,6 +902,42 @@ import { ...@@ -877,6 +902,42 @@ import {
addDbghOrder, addDbghOrder,
updateDbghOrder, updateDbghOrder,
} from "@/api/orderManagement/dbghOrder"; } from "@/api/orderManagement/dbghOrder";
import {
addThirdOrderPOST,
cityVoListGET,
hospitalListGET,
servicesListGET,
companyListGET,
employeesListGET,
totalOrderPUT,
} from "@/api/addForm/index";
import { listByIds } from "@/api/system/oss";
const validatePhone = (rule, value, callback) => {
if (!value) {
callback(new Error("手机号不能为空"));
}
//正则表达式进行验证手机号,从1开始,第二位是35789中的任意一位,以9数字结尾
if (!/^1[35789]\d{9}$/.test(value)) {
callback(new Error("手机号格式不正确"));
}
callback();
};
const validateIsCardId = (rule, value, callback) => {
if (!value) {
return new Error("请输入身份证号)");
} else {
const reg =
/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/;
const card = reg.test(value);
if (!card) {
callback(new Error("身份证号格式有误!"));
} else {
callback();
}
}
};
export default { export default {
name: "DbghOrder", name: "DbghOrder",
...@@ -914,6 +975,10 @@ export default { ...@@ -914,6 +975,10 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
orderSn: undefined, orderSn: undefined,
orderType: undefined,
vistorName: undefined,
receiverName: undefined,
yStatus: undefined,
// orderId: undefined, // orderId: undefined,
// hid: undefined, // hid: undefined,
// visitor: undefined, // visitor: undefined,
...@@ -926,7 +991,60 @@ export default { ...@@ -926,7 +991,60 @@ export default {
// 表单参数 // 表单参数
form: {}, form: {},
// 表单校验 // 表单校验
rules: {}, rules: {
//blur change
orderType: [
{ required: true, message: "订单类型不能为空", trigger: "change" },
],
userPhone: [
{ required: true, message: "用户手机号不能为空", trigger: "blur" },
{
required: true,
trigger: "blur",
min: 11,
max: 11,
message: "长度不符合",
},
{ required: true, trigger: "blur", validator: validatePhone },
],
orderSn: [
{ required: true, message: "订单号不能为空", trigger: "blur" },
],
cityId: [
{ required: true, message: "城市不能为空", trigger: "change" },
],
hid: [{ required: true, message: "医院不能为空", trigger: "change" }],
didName: [{ required: true, message: "科室不能为空", trigger: "blur" }],
serviceId: [
{ required: true, message: "服务不能为空", trigger: "change" },
],
payMoney: [
{ required: true, message: "订单价不能为空", trigger: "blur" },
],
name: [
{ required: true, message: "就诊人姓名不能为空", trigger: "blur" },
],
sex: [
{ required: true, message: "就诊人性别不能为空", trigger: "change" },
],
idcard: [
{ required: true, message: "身份证号不能为空", trigger: "blur" },
{ required: true, trigger: "blur", validator: validateIsCardId },
],
isAdult: [
{ required: true, message: "是否成年不能为空", trigger: "change" },
],
emId: [
{
required: true,
message: "接单人不能为空",
trigger: ["change", "blur"],
},
],
visitTime: [
{ required: true, message: "就诊时间不能为空", trigger: "change" },
],
},
VisitorData: { VisitorData: {
name: "", name: "",
sex: "", sex: "",
...@@ -934,16 +1052,145 @@ export default { ...@@ -934,16 +1052,145 @@ export default {
isAdult: "", isAdult: "",
voucher: "", voucher: "",
}, },
queryParamsMin: { queryParamsMin: {},
pageNum: 1, cityVoList: [],
pageSize: 10, hospitalList: [],
}, servicesList: [],
employeesList: [],
employeesList_total: 0,
companyList: [],
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { methods: {
handleClickCancell(row) {
let self = this;
self
.$confirm("是否确认取消此项?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { code } = await totalOrderPUT({
id: row.toOrderId,
status: 7,
});
if (code === 200) {
self.$modal.msgSuccess("取消成功");
self.getList();
}
})
.catch(() => {
self.$message({
type: "info",
message: "已取消删除",
});
});
},
clickClosepERSON(type) {
let self = this;
switch (type) {
case 1:
let row_data = self.employeesList.filter((item) => {
return item.check_is;
});
console.log("row_data", row_data);
if (row_data?.length) {
self.$set(self.form, "emId", row_data[0].id);
self.$set(self.form, "emId_name", row_data[0].name);
}
break;
case 2:
self.queryParamsMin = {
pageNum: 1,
pageSize: 10,
phone: undefined,
name: undefined,
companyId: undefined,
};
self.companyList = [];
self.employeesList = [];
break;
}
self.openCheckPerson = false;
},
clickOpenCheckPerson() {
this.queryParamsMin = {
pageNum: 1,
pageSize: 10,
phone: undefined,
name: undefined,
companyId: undefined,
};
this.companyList = [];
this.employeesList = [];
this.openCheckPerson = true;
this.employeesListAxios();
this.companyListAxios();
},
handleQueryMin() {
this.$set(this.queryParamsMin, "pageNum", 1);
this.employeesListAxios();
},
resetQueryMin() {
this.resetForm("queryFormMin");
this.handleQueryMin();
},
clickCheckEMply(row, index) {
let self = this;
self.employeesList.forEach((fk, fl) => {
self.$set(self.employeesList, fl, {
...fk,
check_is: false,
});
});
self.$set(self.employeesList, index, {
...row,
check_is: !row.check_is,
});
},
async employeesListAxios() {
let self = this;
const { code, rows, total } = await employeesListGET(this.queryParamsMin);
console.log("employeesListGET", code, rows);
if (code === 200) {
self.employeesList = rows || [];
self.employeesList_total = total;
if (rows.length) {
rows.forEach(async (item, index) => {
self.$set(self.employeesList, index, {
...item,
check_is: false,
avatar_change_url: await self.listByIdsAixos(
item.avatar ? item.avatar : 103
),
});
});
}
}
},
listByIdsAixos(ids) {
return new Promise(async (resolve, reject) => {
const res = await listByIds(ids);
if (res.code === 200 && res?.data?.length && res.data[0]) {
resolve(res.data[0].url);
} else {
resolve("");
}
});
},
async companyListAxios() {
const { code, rows } = await companyListGET({
pageNum: 1,
pageSize: 9999999,
});
if (code === 200) {
this.companyList = rows;
}
},
clickSeeEM(row) { clickSeeEM(row) {
this.openEMInfo = true; this.openEMInfo = true;
this.VisitorData = row; this.VisitorData = row;
...@@ -953,11 +1200,14 @@ export default { ...@@ -953,11 +1200,14 @@ export default {
this.VisitorData = row; this.VisitorData = row;
}, },
clickSeeROWrEM(text, title) { clickSeeROWrEM(text, title) {
this.openArticle = true;
this.rowArticle = this.replaceSpecialChar(text); this.rowArticle = this.replaceSpecialChar(text);
this.openArticleTitle = title; this.openArticleTitle = title;
this.openArticle = true;
}, },
replaceSpecialChar(detail) { replaceSpecialChar(detail) {
if (!detail) {
return "";
}
var content = detail.replaceAll( var content = detail.replaceAll(
/<img[^>]*>/gi, /<img[^>]*>/gi,
function (match, capture) { function (match, capture) {
...@@ -997,20 +1247,38 @@ export default { ...@@ -997,20 +1247,38 @@ export default {
reset() { reset() {
this.form = { this.form = {
id: undefined, id: undefined,
orderId: undefined, businessId: 2,
orderType: undefined,
userPhone: undefined,
orderSn: undefined,
cityId: undefined,
hid: undefined, hid: undefined,
visitor: undefined, didName: undefined,
serviceId: undefined,
payMoney: undefined,
sex: undefined,
name: undefined,
idcard: undefined,
isAdult: undefined,
emId: undefined,
emId_name: undefined,
visitTime: undefined, visitTime: undefined,
did: undefined, phone: undefined,
status: undefined,
overTime: undefined,
voucher: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined, remark: undefined,
// orderId: undefined,
// hid: undefined,
// visitor: undefined,
// visitTime: undefined,
// did: undefined,
// status: undefined,
// overTime: undefined,
// voucher: undefined,
// delFlag: undefined,
// createBy: undefined,
// createTime: undefined,
// updateBy: undefined,
// updateTime: undefined,
// remark: undefined,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -1035,6 +1303,42 @@ export default { ...@@ -1035,6 +1303,42 @@ export default {
this.reset(); this.reset();
this.open = true; this.open = true;
this.title = "新增订单"; this.title = "新增订单";
this.cityVoListAxios();
},
async cityVoListAxios() {
const { code, data } = await cityVoListGET();
console.log("cityVoListGET", code, data);
if (code === 200) {
this.cityVoList = data;
}
},
changeCityId(e) {
console.log("changeCityId", e);
this.$set(this.form, "hid", undefined);
this.$set(this.form, "serviceId", undefined);
this.hospitalListAxios(e);
this.servicesListAxios(e);
},
async hospitalListAxios(cityId) {
const { code, data } = await hospitalListGET({
cityId,
});
console.log("hospitalListGET", code, data);
if (code === 200) {
this.hospitalList = data;
}
},
async servicesListAxios(cityId) {
const { code, rows } = await servicesListGET({
pageSize: 999999,
pageNum: 1,
cityId,
bid: this.form.businessId,
});
console.log("servicesListGET", code, rows);
if (code === 200) {
this.servicesList = rows;
}
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
...@@ -1054,17 +1358,17 @@ export default { ...@@ -1054,17 +1358,17 @@ export default {
if (valid) { if (valid) {
this.buttonLoading = true; this.buttonLoading = true;
if (this.form.id != null) { if (this.form.id != null) {
updateDbghOrder(this.form) // updateDbghOrder(this.form)
.then((response) => { // .then((response) => {
this.$modal.msgSuccess("修改成功"); // this.$modal.msgSuccess("修改成功");
this.open = false; // this.open = false;
this.getList(); // this.getList();
}) // })
.finally(() => { // .finally(() => {
this.buttonLoading = false; // this.buttonLoading = false;
}); // });
} else { } else {
addDbghOrder(this.form) addThirdOrderPOST(this.form)
.then((response) => { .then((response) => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
......
...@@ -16,14 +16,6 @@ ...@@ -16,14 +16,6 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="收件人姓名" prop="orderSn" label-width="90px">
<el-input
v-model="queryParams.orderSn"
placeholder="请输入收件人姓名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="接单人" prop="orderSn"> <el-form-item label="接单人" prop="orderSn">
<el-input <el-input
v-model="queryParams.orderSn" v-model="queryParams.orderSn"
......
...@@ -16,49 +16,53 @@ ...@@ -16,49 +16,53 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="就诊人姓名" prop="orderSn" label-width="90px"> <el-form-item label="就诊人姓名" prop="vistorName" label-width="90px">
<el-input <el-input
v-model="queryParams.orderSn" v-model="queryParams.vistorName"
placeholder="请输入就诊人姓名" placeholder="请输入就诊人姓名"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="接单人" prop="orderSn"> <el-form-item label="接单人" prop="receiverName">
<el-input <el-input
v-model="queryParams.orderSn" v-model="queryParams.receiverName"
placeholder="请输入接单人" placeholder="请输入接单人"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="当前状态" prop="orderSn"> <el-form-item label="当前状态" prop="yStatus">
<el-select v-model="queryParams.value" placeholder="全部" clearable=""> <el-select
v-model="queryParams.yStatus"
placeholder="全部"
clearable=""
>
<el-option <el-option
v-for="item in [ v-for="item in [
{ {
label: '已发布', label: '已发布',
value: '0', value: 0,
}, },
{ {
label: '已接单', label: '已接单',
value: '1', value: 1,
}, },
{ {
label: '已完成', label: '已完成',
value: '2', value: 2,
}, },
{ {
label: '退款中', label: '退款中',
value: '3', value: 3,
}, },
{ {
label: '已退款', label: '已退款',
value: '4', value: 4,
}, },
{ {
label: '进行中', label: '进行中',
value: '6', value: 6,
}, },
]" ]"
:key="item.value" :key="item.value"
...@@ -68,17 +72,21 @@ ...@@ -68,17 +72,21 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="订单类型" prop="orderSn"> <el-form-item label="订单类型" prop="orderType">
<el-select v-model="queryParams.value" placeholder="全部" clearable=""> <el-select
v-model="queryParams.orderType"
placeholder="全部"
clearable=""
>
<el-option <el-option
v-for="item in [ v-for="item in [
{ {
label: '小程序', label: '小程序',
value: '0', value: 0,
}, },
{ {
label: '美团', label: '美团',
value: '1', value: 1,
}, },
]" ]"
:key="item.value" :key="item.value"
...@@ -409,9 +417,14 @@ ...@@ -409,9 +417,14 @@
<el-table-column <el-table-column
label="订单类型" label="订单类型"
align="center" align="center"
prop="" prop="orderType"
key="" key="orderType"
></el-table-column> >
<template slot-scope="{ row }">
<span v-if="row.orderType == 0">小程序</span>
<span v-if="row.orderType == 1">美团</span>
</template>
</el-table-column>
<el-table-column <el-table-column
label="是否好评" label="是否好评"
align="center" align="center"
...@@ -500,7 +513,13 @@ ...@@ -500,7 +513,13 @@
v-hasPermi="['system:dbwzOrder:remove']" v-hasPermi="['system:dbwzOrder:remove']"
>删除</el-button >删除</el-button
> --> > -->
<el-button size="large" type="text">取消</el-button> <el-button
size="large"
type="text"
@click="handleClickCancell(scope.row)"
v-if="[1, '1'].includes(scope.row.tstatus)"
>取消</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -520,12 +539,12 @@ ...@@ -520,12 +539,12 @@
width="1000px" width="1000px"
append-to-body append-to-body
> >
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="订单类型" prop="orderId"> <el-form-item label="订单类型" prop="orderType">
<el-select <el-select
v-model="form.orderId" v-model="form.orderType"
clearable clearable
placeholder="请选择订单类型" placeholder="请选择订单类型"
style="width: 270px" style="width: 270px"
...@@ -534,11 +553,11 @@ ...@@ -534,11 +553,11 @@
v-for="item in [ v-for="item in [
{ {
label: '小程序', label: '小程序',
value: '0', value: 0,
}, },
{ {
label: '美团', label: '美团',
value: '1', value: 1,
}, },
]" ]"
:key="item.value" :key="item.value"
...@@ -550,9 +569,9 @@ ...@@ -550,9 +569,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户手机号" prop="orderId"> <el-form-item label="用户手机号" prop="userPhone">
<el-input <el-input
v-model="form.orderId" v-model="form.userPhone"
placeholder="请输入用户手机号" placeholder="请输入用户手机号"
style="width: 270px" style="width: 270px"
maxlength="11" maxlength="11"
...@@ -562,28 +581,29 @@ ...@@ -562,28 +581,29 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="订单号" prop="orderId"> <el-form-item label="订单号" prop="orderSn">
<el-input <el-input
v-model="form.orderId" v-model="form.orderSn"
placeholder="请输入订单号" placeholder="请输入订单号"
style="width: 270px" style="width: 270px"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="城市" prop="orderId"> <el-form-item label="城市" prop="cityId">
<el-select <el-select
v-model="form.orderId" v-model="form.cityId"
clearable clearable
placeholder="请选择城市" placeholder="请选择城市"
filterable filterable
style="width: 270px" style="width: 270px"
> >
<!-- @change="changeCityId" -->
<el-option <el-option
v-for="item in []" v-for="item in cityVoList"
:key="item.value" :key="item.id"
:label="item.label" :label="item.name"
:value="item.value" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
...@@ -592,9 +612,9 @@ ...@@ -592,9 +612,9 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="订单价" prop="orderId"> <el-form-item label="订单价" prop="payMoney">
<el-input-number <el-input-number
v-model="form.orderId" v-model="form.payMoney"
:min="0" :min="0"
label="订单价" label="订单价"
:precision="2" :precision="2"
...@@ -605,9 +625,9 @@ ...@@ -605,9 +625,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="科室" prop="orderId"> <el-form-item label="科室" prop="didName">
<el-input <el-input
v-model="form.orderId" v-model="form.didName"
placeholder="请输入科室" placeholder="请输入科室"
style="width: 270px" style="width: 270px"
/> />
...@@ -616,9 +636,9 @@ ...@@ -616,9 +636,9 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="就诊人姓名" prop="orderId"> <el-form-item label="就诊人姓名" prop="name">
<el-input <el-input
v-model="form.orderId" v-model="form.name"
placeholder="请输入就诊人姓名" placeholder="请输入就诊人姓名"
maxlength="5" maxlength="5"
style="width: 270px" style="width: 270px"
...@@ -626,15 +646,24 @@ ...@@ -626,15 +646,24 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="就诊人性别" prop="orderId"> <el-form-item label="就诊人性别" prop="sex">
<el-select <el-select
v-model="form.orderId" v-model="form.sex"
clearable clearable
placeholder="请选择就诊人性别" placeholder="请选择就诊人性别"
style="width: 270px" style="width: 270px"
> >
<el-option <el-option
v-for="item in []" v-for="item in [
{
label: '女',
value: 0,
},
{
label: '男',
value: 1,
},
]"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
...@@ -646,36 +675,36 @@ ...@@ -646,36 +675,36 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="身份证号" prop="orderId"> <el-form-item label="身份证号" prop="idcard">
<el-input <el-input
v-model="form.orderId" v-model="form.idcard"
placeholder="请输入身份证号" placeholder="请输入身份证号"
style="width: 270px" style="width: 270px"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12"> </el-col>
<el-form-item label="就诊人手机号" prop="orderId">
<el-input
v-model="form.orderId"
placeholder="请输入就诊人手机号"
style="width: 270px"
maxlength="11"
/>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否成年" prop="orderId"> <el-form-item label="是否成年" prop="isAdult">
<el-select <el-select
v-model="form.orderId" v-model="form.isAdult"
clearable clearable
placeholder="请选择是否成年" placeholder="请选择是否成年"
style="width: 270px" style="width: 270px"
> >
<el-option <el-option
v-for="item in []" v-for="item in [
{
label: '成年',
value: 0,
},
{
label: '未成年',
value: 1,
},
]"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
...@@ -685,10 +714,10 @@ ...@@ -685,10 +714,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="接单人" prop="orderId"> <el-form-item label="接单人" prop="emId">
<div @click="openCheckPerson = true"> <div @click="clickOpenCheckPerson">
<el-input <el-input
v-model="form.orderId" v-model="form.emId_name"
placeholder="请选择接单人" placeholder="请选择接单人"
style="width: 270px" style="width: 270px"
readonly="" readonly=""
...@@ -699,18 +728,18 @@ ...@@ -699,18 +728,18 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="主诉" prop="orderId"> <el-form-item label="主诉" prop="chiefComplaint">
<el-input <el-input
v-model="form.orderId" v-model="form.chiefComplaint"
placeholder="请输入主诉" placeholder="请输入主诉"
style="width: 270px" style="width: 270px"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="现病史" prop="orderId"> <el-form-item label="现病史" prop="historyOfPresentIllness">
<el-input <el-input
v-model="form.orderId" v-model="form.historyOfPresentIllness"
placeholder="请输入现病史" placeholder="请输入现病史"
style="width: 270px" style="width: 270px"
/> />
...@@ -719,18 +748,21 @@ ...@@ -719,18 +748,21 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="既往史" prop="orderId"> <el-form-item label="既往史" prop="pastHistory">
<el-input <el-input
v-model="form.orderId" v-model="form.pastHistory"
placeholder="请输入既往史" placeholder="请输入既往史"
style="width: 270px" style="width: 270px"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="上次就医情况" prop="orderId"> <el-form-item
label="上次就医情况"
prop="lastMedicalTreatmentSituation"
>
<el-input <el-input
v-model="form.orderId" v-model="form.lastMedicalTreatmentSituation"
placeholder="请输入上次就医情况" placeholder="请输入上次就医情况"
style="width: 270px" style="width: 270px"
/> />
...@@ -739,18 +771,18 @@ ...@@ -739,18 +771,18 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="治疗后情况" prop="orderId"> <el-form-item label="治疗后情况" prop="postTreatmentCondition">
<el-input <el-input
v-model="form.orderId" v-model="form.postTreatmentCondition"
placeholder="请输入既往史" placeholder="请输入既往史"
style="width: 270px" style="width: 270px"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="服务要求" prop="orderId"> <el-form-item label="服务要求" prop="serviceRequirements">
<el-input <el-input
v-model="form.orderId" v-model="form.serviceRequirements"
placeholder="请输入服务要求" placeholder="请输入服务要求"
style="width: 270px" style="width: 270px"
/> />
...@@ -759,23 +791,26 @@ ...@@ -759,23 +791,26 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="相关报告" prop="orderId"> <el-form-item label="相关报告" prop="relatedReports">
<div style="width: calc(100% - 100px)"> <div style="width: calc(100% - 100px)">
<imageUpload v-model="form.cover" :limit="20"></imageUpload> <imageUpload
v-model="form.relatedReports"
:limit="20"
></imageUpload>
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="orderId"> <el-form-item label="备注" prop="remark">
<el-input <el-input
type="textarea" type="textarea"
:rows="2" :rows="2"
placeholder="请输入备注" placeholder="请输入备注"
maxlength="100" maxlength="100"
show-word-limit show-word-limit
v-model="form.textarea" v-model="form.remark"
style="width: calc(100% - 100px)" style="width: calc(100% - 100px)"
> >
</el-input> </el-input>
...@@ -803,17 +838,17 @@ ...@@ -803,17 +838,17 @@
:inline="true" :inline="true"
label-width="100px" label-width="100px"
> >
<el-form-item label="接单人姓名" prop="orderSn"> <el-form-item label="接单人姓名" prop="name">
<el-input <el-input
v-model="queryParamsMin.orderSn" v-model="queryParamsMin.name"
placeholder="请输入接单人姓名" placeholder="请输入接单人姓名"
clearable clearable
style="width: 200px" style="width: 200px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="接单人手机号" prop="orderSn"> <el-form-item label="接单人手机号" prop="phone">
<el-input <el-input
v-model="queryParamsMin.orderSn" v-model="queryParamsMin.phone"
placeholder="请输入接单人姓名" placeholder="请输入接单人姓名"
clearable clearable
maxlength="11" maxlength="11"
...@@ -821,88 +856,73 @@ ...@@ -821,88 +856,73 @@
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="large" <el-button
type="primary"
icon="el-icon-search"
size="large"
@click="handleQueryMin"
>搜索</el-button >搜索</el-button
> >
<el-button icon="el-icon-refresh" size="large">重置</el-button> <el-button
icon="el-icon-refresh"
size="large"
@click="resetQueryMin"
>重置</el-button
>
</el-form-item> </el-form-item>
<el-form-item label="所属商户" prop="orderSn"> <el-form-item label="所属商户" prop="companyId">
<el-select <el-select
v-model="queryParamsMin.value" v-model="queryParamsMin.companyId"
placeholder="请选择" placeholder="请选择"
clearable="" clearable=""
style="width: 200px" style="width: 200px"
filterable="" filterable=""
> >
<el-option <el-option
v-for="item in []" v-for="item in companyList"
:key="item.value" :key="item.id"
:label="item.label" :label="item.name"
:value="item.value" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="popmodel-person"> <div class="popmodel-person">
<div class="popmodel-person-item popmodel-person-itema"> <div
<div class="popmodel-person-item-top"> :class="
<img src="" alt="" /> item.check_is
<div> ? 'popmodel-person-item popmodel-person-itema'
<p>张丹</p> : 'popmodel-person-item'
<p>12345678912</p> "
</div> v-for="(item, index) in employeesList"
</div> :key="index"
<p class="popmodel-person-item-botm"> @click="clickCheckEMply(item, index)"
所属商户:Lorem ipsum dolor sit amet consectetur, adipisicing >
elit. Officia animi optio delectus! In earum voluptate ipsa
tempora, incidunt beatae cupiditate, adipisci voluptatibus neque
dolor fugiat, quidem corporis exercitationem quo accusantium.
</p>
</div>
<div class="popmodel-person-item">
<div class="popmodel-person-item-top">
<img src="" alt="" />
<div>
<p>张丹</p>
<p>12345678912</p>
</div>
</div>
<p class="popmodel-person-item-botm">
所属商户:Lorem ipsum dolor sit amet consectetur, adipisicing
elit. Officia animi optio delectus! In earum voluptate ipsa
tempora, incidunt beatae cupiditate, adipisci voluptatibus neque
dolor fugiat, quidem corporis exercitationem quo accusantium.
</p>
</div>
<div class="popmodel-person-item">
<div class="popmodel-person-item-top"> <div class="popmodel-person-item-top">
<img src="" alt="" /> <img :src="item.avatar_change_url" alt="" />
<div> <div>
<p>张丹</p> <p>{{ item.name }}</p>
<p>12345678912</p> <p>{{ item.phone }}</p>
</div> </div>
</div> </div>
<p class="popmodel-person-item-botm"> <p class="popmodel-person-item-botm">
所属商户:Lorem ipsum dolor sit amet consectetur, adipisicing 所属商户:{{ item.companyName }}
elit. Officia animi optio delectus! In earum voluptate ipsa
tempora, incidunt beatae cupiditate, adipisci voluptatibus neque
dolor fugiat, quidem corporis exercitationem quo accusantium.
</p> </p>
</div> </div>
</div> </div>
<pagination <pagination
v-show="total > 0" v-show="employeesList_total > 0"
:total="total" :total="employeesList_total"
:page.sync="queryParams.pageNum" :page.sync="queryParamsMin.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParamsMin.pageSize"
@pagination="getList" @pagination="employeesListAxios"
/> />
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="openCheckPerson = false" <el-button type="primary" @click="clickClosepERSON(1)"
>确 定</el-button >确 定</el-button
> >
<el-button @click="openCheckPerson = false">取 消</el-button> <el-button @click="clickClosepERSON(2)">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
...@@ -1000,6 +1020,42 @@ import { ...@@ -1000,6 +1020,42 @@ import {
addDbwzOrder, addDbwzOrder,
updateDbwzOrder, updateDbwzOrder,
} from "@/api/orderManagement/dbwzOrder"; } from "@/api/orderManagement/dbwzOrder";
import {
addThirdOrderPOST,
cityVoListGET,
hospitalListGET,
servicesListGET,
companyListGET,
employeesListGET,
totalOrderPUT,
} from "@/api/addForm/index";
import { listByIds } from "@/api/system/oss";
const validatePhone = (rule, value, callback) => {
if (!value) {
callback(new Error("手机号不能为空"));
}
//正则表达式进行验证手机号,从1开始,第二位是35789中的任意一位,以9数字结尾
if (!/^1[35789]\d{9}$/.test(value)) {
callback(new Error("手机号格式不正确"));
}
callback();
};
const validateIsCardId = (rule, value, callback) => {
if (!value) {
return new Error("请输入身份证号)");
} else {
const reg =
/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/;
const card = reg.test(value);
if (!card) {
callback(new Error("身份证号格式有误!"));
} else {
callback();
}
}
};
export default { export default {
name: "DbwzOrder", name: "DbwzOrder",
...@@ -1037,6 +1093,10 @@ export default { ...@@ -1037,6 +1093,10 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
orderSn: undefined, orderSn: undefined,
orderType: undefined,
vistorName: undefined,
receiverName: undefined,
yStatus: undefined,
// orderId: undefined, // orderId: undefined,
// visitor: undefined, // visitor: undefined,
// visitTime: undefined, // visitTime: undefined,
...@@ -1056,7 +1116,71 @@ export default { ...@@ -1056,7 +1116,71 @@ export default {
// 表单参数 // 表单参数
form: {}, form: {},
// 表单校验 // 表单校验
rules: {}, rules: {
//blur change
orderType: [
{ required: true, message: "订单类型不能为空", trigger: "change" },
],
userPhone: [
{ required: true, message: "用户手机号不能为空", trigger: "blur" },
{
required: true,
trigger: "blur",
min: 11,
max: 11,
message: "长度不符合",
},
{ required: true, trigger: "blur", validator: validatePhone },
],
orderSn: [
{ required: true, message: "订单号不能为空", trigger: "blur" },
],
cityId: [
{ required: true, message: "城市不能为空", trigger: "change" },
],
payMoney: [
{ required: true, message: "订单价不能为空", trigger: "blur" },
],
didName: [{ required: true, message: "科室不能为空", trigger: "blur" }],
name: [
{ required: true, message: "就诊人姓名不能为空", trigger: "blur" },
],
sex: [
{ required: true, message: "就诊人性别不能为空", trigger: "change" },
],
idcard: [
{ required: true, message: "身份证号不能为空", trigger: "blur" },
{ required: true, trigger: "blur", validator: validateIsCardId },
],
isAdult: [
{ required: true, message: "是否成年不能为空", trigger: "change" },
],
emId: [
{
required: true,
message: "接单人不能为空",
trigger: ["change", "blur"],
},
],
chiefComplaint: [
{ required: true, message: "主诉不能为空", trigger: "blur" },
],
historyOfPresentIllness: [
{ required: true, message: "现病史不能为空", trigger: "blur" },
],
pastHistory: [
{ required: true, message: "既往史不能为空", trigger: "blur" },
],
lastMedicalTreatmentSituation: [
{ required: true, message: "上次就医情况不能为空", trigger: "blur" },
],
postTreatmentCondition: [
{ required: true, message: "治疗后情况不能为空", trigger: "blur" },
],
relatedReports: [
{ required: true, message: "相关报告不能为空", trigger: "change" },
],
},
VisitorData: { VisitorData: {
name: "", name: "",
sex: "", sex: "",
...@@ -1064,16 +1188,145 @@ export default { ...@@ -1064,16 +1188,145 @@ export default {
isAdult: "", isAdult: "",
voucher: "", voucher: "",
}, },
queryParamsMin: { queryParamsMin: {},
pageNum: 1, cityVoList: [],
pageSize: 10, hospitalList: [],
}, servicesList: [],
employeesList: [],
employeesList_total: 0,
companyList: [],
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { methods: {
handleClickCancell(row) {
let self = this;
self
.$confirm("是否确认取消此项?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { code } = await totalOrderPUT({
id: row.toOrderId,
status: 7,
});
if (code === 200) {
self.$modal.msgSuccess("取消成功");
self.getList();
}
})
.catch(() => {
self.$message({
type: "info",
message: "已取消删除",
});
});
},
clickClosepERSON(type) {
let self = this;
switch (type) {
case 1:
let row_data = self.employeesList.filter((item) => {
return item.check_is;
});
console.log("row_data", row_data);
if (row_data?.length) {
self.$set(self.form, "emId", row_data[0].id);
self.$set(self.form, "emId_name", row_data[0].name);
}
break;
case 2:
self.queryParamsMin = {
pageNum: 1,
pageSize: 10,
phone: undefined,
name: undefined,
companyId: undefined,
};
self.companyList = [];
self.employeesList = [];
break;
}
self.openCheckPerson = false;
},
clickOpenCheckPerson() {
this.queryParamsMin = {
pageNum: 1,
pageSize: 10,
phone: undefined,
name: undefined,
companyId: undefined,
};
this.companyList = [];
this.employeesList = [];
this.openCheckPerson = true;
this.employeesListAxios();
this.companyListAxios();
},
handleQueryMin() {
this.$set(this.queryParamsMin, "pageNum", 1);
this.employeesListAxios();
},
resetQueryMin() {
this.resetForm("queryFormMin");
this.handleQueryMin();
},
clickCheckEMply(row, index) {
let self = this;
self.employeesList.forEach((fk, fl) => {
self.$set(self.employeesList, fl, {
...fk,
check_is: false,
});
});
self.$set(self.employeesList, index, {
...row,
check_is: !row.check_is,
});
},
async employeesListAxios() {
let self = this;
const { code, rows, total } = await employeesListGET(this.queryParamsMin);
console.log("employeesListGET", code, rows);
if (code === 200) {
self.employeesList = rows || [];
self.employeesList_total = total;
if (rows.length) {
rows.forEach(async (item, index) => {
self.$set(self.employeesList, index, {
...item,
check_is: false,
avatar_change_url: await self.listByIdsAixos(
item.avatar ? item.avatar : 103
),
});
});
}
}
},
listByIdsAixos(ids) {
return new Promise(async (resolve, reject) => {
const res = await listByIds(ids);
if (res.code === 200 && res?.data?.length && res.data[0]) {
resolve(res.data[0].url);
} else {
resolve("");
}
});
},
async companyListAxios() {
const { code, rows } = await companyListGET({
pageNum: 1,
pageSize: 9999999,
});
if (code === 200) {
this.companyList = rows;
}
},
clickSeeEM(row) { clickSeeEM(row) {
this.openEMInfo = true; this.openEMInfo = true;
this.VisitorData = row; this.VisitorData = row;
...@@ -1087,11 +1340,14 @@ export default { ...@@ -1087,11 +1340,14 @@ export default {
this.VisitorData = row; this.VisitorData = row;
}, },
clickSeeROWrEM(text, title) { clickSeeROWrEM(text, title) {
this.openArticle = true;
this.rowArticle = this.replaceSpecialChar(text); this.rowArticle = this.replaceSpecialChar(text);
this.openArticleTitle = title; this.openArticleTitle = title;
this.openArticle = true;
}, },
replaceSpecialChar(detail) { replaceSpecialChar(detail) {
if (!detail) {
return "";
}
var content = detail.replaceAll( var content = detail.replaceAll(
/<img[^>]*>/gi, /<img[^>]*>/gi,
function (match, capture) { function (match, capture) {
...@@ -1127,26 +1383,26 @@ export default { ...@@ -1127,26 +1383,26 @@ export default {
reset() { reset() {
this.form = { this.form = {
id: undefined, id: undefined,
orderId: undefined, businessId: 3,
visitor: undefined, orderType: undefined,
visitTime: undefined, userPhone: undefined,
did: undefined, orderSn: undefined,
cityId: undefined,
payMoney: undefined,
didName: undefined,
name: undefined,
sex: undefined,
idcard: undefined,
isAdult: undefined,
emId: undefined,
emId_name: undefined,
chiefComplaint: undefined, chiefComplaint: undefined,
historyOfPresentIllness: undefined, historyOfPresentIllness: undefined,
pastHistory: undefined, pastHistory: undefined,
lastMedicalTreatmentSituation: undefined, lastMedicalTreatmentSituation: undefined,
postTreatmentCondition: undefined, postTreatmentCondition: undefined,
relatedReports: undefined,
serviceRequirements: undefined, serviceRequirements: undefined,
status: undefined, relatedReports: undefined,
overTime: undefined,
voucher: undefined,
indications: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined, remark: undefined,
}; };
this.resetForm("form"); this.resetForm("form");
...@@ -1172,6 +1428,42 @@ export default { ...@@ -1172,6 +1428,42 @@ export default {
this.reset(); this.reset();
this.open = true; this.open = true;
this.title = "新增订单"; this.title = "新增订单";
this.cityVoListAxios();
},
async cityVoListAxios() {
const { code, data } = await cityVoListGET();
console.log("cityVoListGET", code, data);
if (code === 200) {
this.cityVoList = data;
}
},
changeCityId(e) {
console.log("changeCityId", e);
this.$set(this.form, "hid", undefined);
this.$set(this.form, "serviceId", undefined);
this.hospitalListAxios(e);
this.servicesListAxios(e);
},
async hospitalListAxios(cityId) {
const { code, data } = await hospitalListGET({
cityId,
});
console.log("hospitalListGET", code, data);
if (code === 200) {
this.hospitalList = data;
}
},
async servicesListAxios(cityId) {
const { code, rows } = await servicesListGET({
pageSize: 999999,
pageNum: 1,
cityId,
bid: this.form.businessId,
});
console.log("servicesListGET", code, rows);
if (code === 200) {
this.servicesList = rows;
}
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
...@@ -1191,17 +1483,17 @@ export default { ...@@ -1191,17 +1483,17 @@ export default {
if (valid) { if (valid) {
this.buttonLoading = true; this.buttonLoading = true;
if (this.form.id != null) { if (this.form.id != null) {
updateDbwzOrder(this.form) // updateDbwzOrder(this.form)
.then((response) => { // .then((response) => {
this.$modal.msgSuccess("修改成功"); // this.$modal.msgSuccess("修改成功");
this.open = false; // this.open = false;
this.getList(); // this.getList();
}) // })
.finally(() => { // .finally(() => {
this.buttonLoading = false; // this.buttonLoading = false;
}); // });
} else { } else {
addDbwzOrder(this.form) addThirdOrderPOST(this.form)
.then((response) => { .then((response) => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
...@@ -1270,4 +1562,43 @@ export default { ...@@ -1270,4 +1562,43 @@ export default {
} }
} }
} }
.popmodel-person {
padding: 20px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
&-item {
width: 48%;
margin-bottom: 20px;
border-radius: 10px;
padding: 10px;
box-sizing: border-box;
background: #f0eeee;
cursor: pointer;
&-top {
box-sizing: border-box;
display: flex;
align-items: center;
margin-bottom: 10px;
> img {
width: 60px;
height: 60px;
border-radius: 50%;
margin-right: 10px;
}
}
&-botm {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
&-itema {
background: #409eff;
}
}
</style> </style>
...@@ -16,49 +16,53 @@ ...@@ -16,49 +16,53 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="就诊人姓名" prop="orderSn" label-width="90px"> <el-form-item label="就诊人姓名" prop="vistorName" label-width="90px">
<el-input <el-input
v-model="queryParams.orderSn" v-model="queryParams.vistorName"
placeholder="请输入就诊人姓名" placeholder="请输入就诊人姓名"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="接单人" prop="orderSn"> <el-form-item label="接单人" prop="receiverName">
<el-input <el-input
v-model="queryParams.orderSn" v-model="queryParams.receiverName"
placeholder="请输入接单人" placeholder="请输入接单人"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="当前状态" prop="orderSn"> <el-form-item label="当前状态" prop="yStatus">
<el-select v-model="queryParams.value" placeholder="全部" clearable=""> <el-select
v-model="queryParams.yStatus"
placeholder="全部"
clearable=""
>
<el-option <el-option
v-for="item in [ v-for="item in [
{ {
label: '已发布', label: '已发布',
value: '0', value: 0,
}, },
{ {
label: '已接单', label: '已接单',
value: '1', value: 1,
}, },
{ {
label: '已完成', label: '已完成',
value: '2', value: 2,
}, },
{ {
label: '退款中', label: '退款中',
value: '3', value: 3,
}, },
{ {
label: '已退款', label: '已退款',
value: '4', value: 4,
}, },
{ {
label: '进行中', label: '进行中',
value: '6', value: 6,
}, },
]" ]"
:key="item.value" :key="item.value"
...@@ -68,17 +72,21 @@ ...@@ -68,17 +72,21 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="订单类型" prop="orderSn"> <el-form-item label="订单类型" prop="orderType">
<el-select v-model="queryParams.value" placeholder="全部" clearable=""> <el-select
v-model="queryParams.orderType"
placeholder="全部"
clearable=""
>
<el-option <el-option
v-for="item in [ v-for="item in [
{ {
label: '小程序', label: '小程序',
value: '0', value: 0,
}, },
{ {
label: '美团', label: '美团',
value: '1', value: 1,
}, },
]" ]"
:key="item.value" :key="item.value"
...@@ -320,9 +328,14 @@ ...@@ -320,9 +328,14 @@
<el-table-column <el-table-column
label="订单类型" label="订单类型"
align="center" align="center"
prop="" prop="orderType"
key="" key="orderType"
></el-table-column> >
<template slot-scope="{ row }">
<span v-if="row.orderType == 0">小程序</span>
<span v-if="row.orderType == 1">美团</span>
</template>
</el-table-column>
<el-table-column <el-table-column
label="是否好评" label="是否好评"
align="center" align="center"
...@@ -419,7 +432,13 @@ ...@@ -419,7 +432,13 @@
v-hasPermi="['system:order:remove']" v-hasPermi="['system:order:remove']"
>删除</el-button >删除</el-button
> --> > -->
<el-button size="large" type="text">取消</el-button> <el-button
size="large"
type="text"
@click="handleClickCancell(scope.row)"
v-if="[1, '1'].includes(scope.row.tstatus)"
>取消</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -442,9 +461,9 @@ ...@@ -442,9 +461,9 @@
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="订单类型" prop="orderId"> <el-form-item label="订单类型" prop="orderType">
<el-select <el-select
v-model="form.orderId" v-model="form.orderType"
clearable clearable
placeholder="请选择订单类型" placeholder="请选择订单类型"
style="width: 270px" style="width: 270px"
...@@ -453,11 +472,11 @@ ...@@ -453,11 +472,11 @@
v-for="item in [ v-for="item in [
{ {
label: '小程序', label: '小程序',
value: '0', value: 0,
}, },
{ {
label: '美团', label: '美团',
value: '1', value: 1,
}, },
]" ]"
:key="item.value" :key="item.value"
...@@ -469,9 +488,9 @@ ...@@ -469,9 +488,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户手机号" prop="orderId"> <el-form-item label="用户手机号" prop="userPhone">
<el-input <el-input
v-model="form.orderId" v-model="form.userPhone"
placeholder="请输入用户手机号" placeholder="请输入用户手机号"
style="width: 270px" style="width: 270px"
maxlength="11" maxlength="11"
...@@ -481,28 +500,29 @@ ...@@ -481,28 +500,29 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="订单号" prop="orderId"> <el-form-item label="订单号" prop="orderSn">
<el-input <el-input
v-model="form.orderId" v-model="form.orderSn"
placeholder="请输入订单号" placeholder="请输入订单号"
style="width: 270px" style="width: 270px"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="城市" prop="orderId"> <el-form-item label="城市" prop="cityId">
<el-select <el-select
v-model="form.orderId" v-model="form.cityId"
clearable clearable
placeholder="请选择城市" placeholder="请选择城市"
filterable filterable
style="width: 270px" style="width: 270px"
@change="changeCityId"
> >
<el-option <el-option
v-for="item in []" v-for="item in cityVoList"
:key="item.value" :key="item.id"
:label="item.label" :label="item.name"
:value="item.value" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
...@@ -511,28 +531,29 @@ ...@@ -511,28 +531,29 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="医院" prop="orderId"> <el-form-item label="医院" prop="hid">
<el-select <el-select
v-model="form.orderId" v-model="form.hid"
clearable clearable
placeholder="请选择医院" placeholder="请选择医院"
filterable filterable
style="width: 270px" style="width: 270px"
:disabled="form.cityId ? false : true"
> >
<el-option <el-option
v-for="item in []" v-for="item in hospitalList"
:key="item.value" :key="item.id"
:label="item.label" :label="item.name"
:value="item.value" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="科室" prop="orderId"> <el-form-item label="科室" prop="didName">
<el-input <el-input
v-model="form.orderId" v-model="form.didName"
placeholder="请输入科室" placeholder="请输入科室"
style="width: 270px" style="width: 270px"
/> />
...@@ -541,18 +562,29 @@ ...@@ -541,18 +562,29 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="服务" prop="orderId"> <el-form-item label="服务" prop="serviceId">
<el-input <el-select
v-model="form.orderId" v-model="form.serviceId"
placeholder="请输入服务" clearable
placeholder="请选择服务"
filterable
style="width: 270px" style="width: 270px"
/> :disabled="form.cityId ? false : true"
>
<el-option
v-for="item in servicesList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="订单价" prop="orderId"> <el-form-item label="订单价" prop="payMoney">
<el-input-number <el-input-number
v-model="form.orderId" v-model="form.payMoney"
:min="0" :min="0"
label="订单价" label="订单价"
:precision="2" :precision="2"
...@@ -565,9 +597,9 @@ ...@@ -565,9 +597,9 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="就诊人姓名" prop="orderId"> <el-form-item label="就诊人姓名" prop="name">
<el-input <el-input
v-model="form.orderId" v-model="form.name"
placeholder="请输入就诊人姓名" placeholder="请输入就诊人姓名"
maxlength="5" maxlength="5"
style="width: 270px" style="width: 270px"
...@@ -575,15 +607,24 @@ ...@@ -575,15 +607,24 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="就诊人性别" prop="orderId"> <el-form-item label="就诊人性别" prop="sex">
<el-select <el-select
v-model="form.orderId" v-model="form.sex"
clearable clearable
placeholder="请选择就诊人性别" placeholder="请选择就诊人性别"
style="width: 270px" style="width: 270px"
> >
<el-option <el-option
v-for="item in []" v-for="item in [
{
label: '女',
value: 0,
},
{
label: '男',
value: 1,
},
]"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
...@@ -595,36 +636,36 @@ ...@@ -595,36 +636,36 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="身份证号" prop="orderId"> <el-form-item label="身份证号" prop="idcard">
<el-input <el-input
v-model="form.orderId" v-model="form.idcard"
placeholder="请输入身份证号" placeholder="请输入身份证号"
style="width: 270px" style="width: 270px"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12"> </el-col>
<el-form-item label="就诊人手机号" prop="orderId">
<el-input
v-model="form.orderId"
placeholder="请输入就诊人手机号"
style="width: 270px"
maxlength="11"
/>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否成年" prop="orderId"> <el-form-item label="是否成年" prop="isAdult">
<el-select <el-select
v-model="form.orderId" v-model="form.isAdult"
clearable clearable
placeholder="请选择是否成年" placeholder="请选择是否成年"
style="width: 270px" style="width: 270px"
> >
<el-option <el-option
v-for="item in []" v-for="item in [
{
label: '成年',
value: 0,
},
{
label: '未成年',
value: 1,
},
]"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
...@@ -634,10 +675,10 @@ ...@@ -634,10 +675,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="接单人" prop="orderId"> <el-form-item label="接单人" prop="emId">
<div @click="openCheckPerson = true"> <div @click="clickOpenCheckPerson">
<el-input <el-input
v-model="form.orderId" v-model="form.emId_name"
placeholder="请选择接单人" placeholder="请选择接单人"
style="width: 270px" style="width: 270px"
readonly="" readonly=""
...@@ -648,20 +689,21 @@ ...@@ -648,20 +689,21 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="就诊时间" prop="orderId"> <el-form-item label="就诊时间" prop="visitTime">
<el-date-picker <el-date-picker
v-model="form.orderId" v-model="form.visitTime"
type="datetime" type="datetime"
placeholder="请选择就诊时间" placeholder="请选择就诊时间"
style="width: 270px" style="width: 270px"
value-format="yyyy-MM-dd HH:mm:ss"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="预约电话" prop="orderId"> <el-form-item label="预约电话" prop="phone">
<el-input <el-input
v-model="form.orderId" v-model="form.phone"
placeholder="请输入预约电话" placeholder="请输入预约电话"
style="width: 270px" style="width: 270px"
maxlength="11" maxlength="11"
...@@ -671,14 +713,14 @@ ...@@ -671,14 +713,14 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="orderId"> <el-form-item label="备注" prop="remark">
<el-input <el-input
type="textarea" type="textarea"
:rows="2" :rows="2"
placeholder="请输入备注" placeholder="请输入备注"
maxlength="100" maxlength="100"
show-word-limit show-word-limit
v-model="form.textarea" v-model="form.remark"
style="width: calc(100% - 100px)" style="width: calc(100% - 100px)"
> >
</el-input> </el-input>
...@@ -706,17 +748,17 @@ ...@@ -706,17 +748,17 @@
:inline="true" :inline="true"
label-width="100px" label-width="100px"
> >
<el-form-item label="接单人姓名" prop="orderSn"> <el-form-item label="接单人姓名" prop="name">
<el-input <el-input
v-model="queryParamsMin.orderSn" v-model="queryParamsMin.name"
placeholder="请输入接单人姓名" placeholder="请输入接单人姓名"
clearable clearable
style="width: 200px" style="width: 200px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="接单人手机号" prop="orderSn"> <el-form-item label="接单人手机号" prop="phone">
<el-input <el-input
v-model="queryParamsMin.orderSn" v-model="queryParamsMin.phone"
placeholder="请输入接单人姓名" placeholder="请输入接单人姓名"
clearable clearable
maxlength="11" maxlength="11"
...@@ -724,88 +766,73 @@ ...@@ -724,88 +766,73 @@
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="large" <el-button
type="primary"
icon="el-icon-search"
size="large"
@click="handleQueryMin"
>搜索</el-button >搜索</el-button
> >
<el-button icon="el-icon-refresh" size="large">重置</el-button> <el-button
icon="el-icon-refresh"
size="large"
@click="resetQueryMin"
>重置</el-button
>
</el-form-item> </el-form-item>
<el-form-item label="所属商户" prop="orderSn"> <el-form-item label="所属商户" prop="companyId">
<el-select <el-select
v-model="queryParamsMin.value" v-model="queryParamsMin.companyId"
placeholder="请选择" placeholder="请选择"
clearable="" clearable=""
style="width: 200px" style="width: 200px"
filterable="" filterable=""
> >
<el-option <el-option
v-for="item in []" v-for="item in companyList"
:key="item.value" :key="item.id"
:label="item.label" :label="item.name"
:value="item.value" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="popmodel-person"> <div class="popmodel-person">
<div class="popmodel-person-item popmodel-person-itema"> <div
<div class="popmodel-person-item-top"> :class="
<img src="" alt="" /> item.check_is
<div> ? 'popmodel-person-item popmodel-person-itema'
<p>张丹</p> : 'popmodel-person-item'
<p>12345678912</p> "
</div> v-for="(item, index) in employeesList"
</div> :key="index"
<p class="popmodel-person-item-botm"> @click="clickCheckEMply(item, index)"
所属商户:Lorem ipsum dolor sit amet consectetur, adipisicing >
elit. Officia animi optio delectus! In earum voluptate ipsa
tempora, incidunt beatae cupiditate, adipisci voluptatibus neque
dolor fugiat, quidem corporis exercitationem quo accusantium.
</p>
</div>
<div class="popmodel-person-item">
<div class="popmodel-person-item-top">
<img src="" alt="" />
<div>
<p>张丹</p>
<p>12345678912</p>
</div>
</div>
<p class="popmodel-person-item-botm">
所属商户:Lorem ipsum dolor sit amet consectetur, adipisicing
elit. Officia animi optio delectus! In earum voluptate ipsa
tempora, incidunt beatae cupiditate, adipisci voluptatibus neque
dolor fugiat, quidem corporis exercitationem quo accusantium.
</p>
</div>
<div class="popmodel-person-item">
<div class="popmodel-person-item-top"> <div class="popmodel-person-item-top">
<img src="" alt="" /> <img :src="item.avatar_change_url" alt="" />
<div> <div>
<p>张丹</p> <p>{{ item.name }}</p>
<p>12345678912</p> <p>{{ item.phone }}</p>
</div> </div>
</div> </div>
<p class="popmodel-person-item-botm"> <p class="popmodel-person-item-botm">
所属商户:Lorem ipsum dolor sit amet consectetur, adipisicing 所属商户:{{ item.companyName }}
elit. Officia animi optio delectus! In earum voluptate ipsa
tempora, incidunt beatae cupiditate, adipisci voluptatibus neque
dolor fugiat, quidem corporis exercitationem quo accusantium.
</p> </p>
</div> </div>
</div> </div>
<pagination <pagination
v-show="total > 0" v-show="employeesList_total > 0"
:total="total" :total="employeesList_total"
:page.sync="queryParams.pageNum" :page.sync="queryParamsMin.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParamsMin.pageSize"
@pagination="getList" @pagination="employeesListAxios"
/> />
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="openCheckPerson = false" <el-button type="primary" @click="clickClosepERSON(1)"
>确 定</el-button >确 定</el-button
> >
<el-button @click="openCheckPerson = false">取 消</el-button> <el-button @click="clickClosepERSON(2)">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
...@@ -903,19 +930,47 @@ import { ...@@ -903,19 +930,47 @@ import {
addOrder, addOrder,
updateOrder, updateOrder,
} from "@/api/orderManagement/order"; } from "@/api/orderManagement/order";
import {
addThirdOrderPOST,
cityVoListGET,
hospitalListGET,
servicesListGET,
companyListGET,
employeesListGET,
totalOrderPUT,
} from "@/api/addForm/index";
import { listByIds } from "@/api/system/oss";
import cityData from "@/utils/pc-code.json"; const validatePhone = (rule, value, callback) => {
if (!value) {
callback(new Error("手机号不能为空"));
}
//正则表达式进行验证手机号,从1开始,第二位是35789中的任意一位,以9数字结尾
if (!/^1[35789]\d{9}$/.test(value)) {
callback(new Error("手机号格式不正确"));
}
callback();
};
const validateIsCardId = (rule, value, callback) => {
if (!value) {
return new Error("请输入身份证号)");
} else {
const reg =
/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/;
const card = reg.test(value);
if (!card) {
callback(new Error("身份证号格式有误!"));
} else {
callback();
}
}
};
export default { export default {
name: "Order", name: "Order",
data() { data() {
return { return {
options: cityData,
cityProps: {
value: "code", // 指定选项的 值 为选项对象的某个属性值
label: "name", // 指定选项 标签 为选项对象的某个属性值
children: "children", //指定选项的 子选项 为选项对象的某个属性值
},
openEMInfo: false, openEMInfo: false,
openArticleInfoImg: false, openArticleInfoImg: false,
openArticleInfo: false, openArticleInfo: false,
...@@ -948,6 +1003,10 @@ export default { ...@@ -948,6 +1003,10 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
orderSn: undefined, orderSn: undefined,
orderType: undefined,
vistorName: undefined,
receiverName: undefined,
yStatus: undefined,
// orderId: undefined, // orderId: undefined,
// hid: undefined, // hid: undefined,
// visitor: undefined, // visitor: undefined,
...@@ -962,7 +1021,62 @@ export default { ...@@ -962,7 +1021,62 @@ export default {
form: {}, form: {},
// 表单校验 // 表单校验
rules: { rules: {
remark: [{ required: true, message: "备注不能为空", trigger: "blur" }], //blur change
orderType: [
{ required: true, message: "订单类型不能为空", trigger: "change" },
],
userPhone: [
{ required: true, message: "用户手机号不能为空", trigger: "blur" },
{
required: true,
trigger: "blur",
min: 11,
max: 11,
message: "长度不符合",
},
{ required: true, trigger: "blur", validator: validatePhone },
],
orderSn: [
{ required: true, message: "订单号不能为空", trigger: "blur" },
],
cityId: [
{ required: true, message: "城市不能为空", trigger: "change" },
],
hid: [{ required: true, message: "医院不能为空", trigger: "change" }],
didName: [{ required: true, message: "科室不能为空", trigger: "blur" }],
serviceId: [
{ required: true, message: "服务不能为空", trigger: "change" },
],
payMoney: [
{ required: true, message: "订单价不能为空", trigger: "blur" },
],
name: [
{ required: true, message: "就诊人姓名不能为空", trigger: "blur" },
],
sex: [
{ required: true, message: "就诊人性别不能为空", trigger: "change" },
],
idcard: [
{ required: true, message: "身份证号不能为空", trigger: "blur" },
{ required: true, trigger: "blur", validator: validateIsCardId },
],
isAdult: [
{ required: true, message: "是否成年不能为空", trigger: "change" },
],
emId: [
{
required: true,
message: "接单人不能为空",
trigger: ["change", "blur"],
},
],
visitTime: [
{ required: true, message: "就诊时间不能为空", trigger: "change" },
],
phone: [
{ required: true, message: "预约电话不能为空", trigger: "blur" },
{ required: true, trigger: "blur", validator: validatePhone },
],
}, },
VisitorData: { VisitorData: {
name: "", name: "",
...@@ -971,16 +1085,145 @@ export default { ...@@ -971,16 +1085,145 @@ export default {
isAdult: "", isAdult: "",
voucher: "", voucher: "",
}, },
queryParamsMin: { queryParamsMin: {},
pageNum: 1, cityVoList: [],
pageSize: 10, hospitalList: [],
}, servicesList: [],
employeesList: [],
employeesList_total: 0,
companyList: [],
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { methods: {
handleClickCancell(row) {
let self = this;
self
.$confirm("是否确认取消此项?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { code } = await totalOrderPUT({
id: row.toOrderId,
status: 7,
});
if (code === 200) {
self.$modal.msgSuccess("取消成功");
self.getList();
}
})
.catch(() => {
self.$message({
type: "info",
message: "已取消删除",
});
});
},
clickClosepERSON(type) {
let self = this;
switch (type) {
case 1:
let row_data = self.employeesList.filter((item) => {
return item.check_is;
});
console.log("row_data", row_data);
if (row_data?.length) {
self.$set(self.form, "emId", row_data[0].id);
self.$set(self.form, "emId_name", row_data[0].name);
}
break;
case 2:
self.queryParamsMin = {
pageNum: 1,
pageSize: 10,
phone: undefined,
name: undefined,
companyId: undefined,
};
self.companyList = [];
self.employeesList = [];
break;
}
self.openCheckPerson = false;
},
clickOpenCheckPerson() {
this.queryParamsMin = {
pageNum: 1,
pageSize: 10,
phone: undefined,
name: undefined,
companyId: undefined,
};
this.companyList = [];
this.employeesList = [];
this.openCheckPerson = true;
this.employeesListAxios();
this.companyListAxios();
},
handleQueryMin() {
this.$set(this.queryParamsMin, "pageNum", 1);
this.employeesListAxios();
},
resetQueryMin() {
this.resetForm("queryFormMin");
this.handleQueryMin();
},
clickCheckEMply(row, index) {
let self = this;
self.employeesList.forEach((fk, fl) => {
self.$set(self.employeesList, fl, {
...fk,
check_is: false,
});
});
self.$set(self.employeesList, index, {
...row,
check_is: !row.check_is,
});
},
async employeesListAxios() {
let self = this;
const { code, rows, total } = await employeesListGET(this.queryParamsMin);
console.log("employeesListGET", code, rows);
if (code === 200) {
self.employeesList = rows || [];
self.employeesList_total = total;
if (rows.length) {
rows.forEach(async (item, index) => {
self.$set(self.employeesList, index, {
...item,
check_is: false,
avatar_change_url: await self.listByIdsAixos(
item.avatar ? item.avatar : 103
),
});
});
}
}
},
listByIdsAixos(ids) {
return new Promise(async (resolve, reject) => {
const res = await listByIds(ids);
if (res.code === 200 && res?.data?.length && res.data[0]) {
resolve(res.data[0].url);
} else {
resolve("");
}
});
},
async companyListAxios() {
const { code, rows } = await companyListGET({
pageNum: 1,
pageSize: 9999999,
});
if (code === 200) {
this.companyList = rows;
}
},
clickSeeEM(row) { clickSeeEM(row) {
this.openEMInfo = true; this.openEMInfo = true;
this.VisitorData = row; this.VisitorData = row;
...@@ -990,11 +1233,14 @@ export default { ...@@ -990,11 +1233,14 @@ export default {
this.VisitorData = row; this.VisitorData = row;
}, },
clickSeeROWrEM(text, title) { clickSeeROWrEM(text, title) {
this.openArticle = true;
this.rowArticle = this.replaceSpecialChar(text); this.rowArticle = this.replaceSpecialChar(text);
this.openArticleTitle = title; this.openArticleTitle = title;
this.openArticle = true;
}, },
replaceSpecialChar(detail) { replaceSpecialChar(detail) {
if (!detail) {
return "";
}
var content = detail.replaceAll( var content = detail.replaceAll(
/<img[^>]*>/gi, /<img[^>]*>/gi,
function (match, capture) { function (match, capture) {
...@@ -1034,21 +1280,39 @@ export default { ...@@ -1034,21 +1280,39 @@ export default {
reset() { reset() {
this.form = { this.form = {
id: undefined, id: undefined,
orderId: undefined, businessId: 1,
orderType: undefined,
userPhone: undefined,
orderSn: undefined,
cityId: undefined,
hid: undefined, hid: undefined,
visitor: undefined, didName: undefined,
did: undefined, serviceId: undefined,
payMoney: undefined,
sex: undefined,
name: undefined,
idcard: undefined,
isAdult: undefined,
emId: undefined,
emId_name: undefined,
visitTime: undefined, visitTime: undefined,
phone: undefined, phone: undefined,
status: undefined,
overTime: undefined,
voucher: undefined,
delFlag: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
remark: undefined, remark: undefined,
// orderId: undefined,
// hid: undefined,
// visitor: undefined,
// did: undefined,
// visitTime: undefined,
// phone: undefined,
// status: undefined,
// overTime: undefined,
// voucher: undefined,
// delFlag: undefined,
// createBy: undefined,
// createTime: undefined,
// updateBy: undefined,
// updateTime: undefined,
// remark: undefined,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -1073,6 +1337,42 @@ export default { ...@@ -1073,6 +1337,42 @@ export default {
this.reset(); this.reset();
this.open = true; this.open = true;
this.title = "新增订单"; this.title = "新增订单";
this.cityVoListAxios();
},
async cityVoListAxios() {
const { code, data } = await cityVoListGET();
console.log("cityVoListGET", code, data);
if (code === 200) {
this.cityVoList = data;
}
},
changeCityId(e) {
console.log("changeCityId", e);
this.$set(this.form, "hid", undefined);
this.$set(this.form, "serviceId", undefined);
this.hospitalListAxios(e);
this.servicesListAxios(e);
},
async hospitalListAxios(cityId) {
const { code, data } = await hospitalListGET({
cityId,
});
console.log("hospitalListGET", code, data);
if (code === 200) {
this.hospitalList = data;
}
},
async servicesListAxios(cityId) {
const { code, rows } = await servicesListGET({
pageSize: 999999,
pageNum: 1,
cityId,
bid: this.form.businessId,
});
console.log("servicesListGET", code, rows);
if (code === 200) {
this.servicesList = rows;
}
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
...@@ -1103,15 +1403,15 @@ export default { ...@@ -1103,15 +1403,15 @@ export default {
// this.buttonLoading = false; // this.buttonLoading = false;
// }); // });
} else { } else {
// addOrder(this.form) addThirdOrderPOST(this.form)
// .then((response) => { .then((response) => {
// this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
// this.open = false; this.open = false;
// this.getList(); this.getList();
// }) })
// .finally(() => { .finally(() => {
// this.buttonLoading = false; this.buttonLoading = false;
// }); });
} }
} }
}); });
......
...@@ -16,22 +16,6 @@ ...@@ -16,22 +16,6 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="用户姓名" prop="orderSn" label-width="90px">
<el-input
v-model="queryParams.orderSn"
placeholder="请输入用户姓名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="接单人" prop="orderSn">
<el-input
v-model="queryParams.orderSn"
placeholder="请输入接单人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="订单状态" prop="orderSn"> <el-form-item label="订单状态" prop="orderSn">
<el-select v-model="queryParams.value" placeholder="全部" clearable=""> <el-select v-model="queryParams.value" placeholder="全部" clearable="">
<el-option <el-option
......
...@@ -36,8 +36,8 @@ module.exports = { ...@@ -36,8 +36,8 @@ module.exports = {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
// target: `http://localhost:8089`, // target: `http://localhost:8089`,
target: `https://peizheng.shanpeikj.com/api`, // target: `https://peizheng.shanpeikj.com/api`,
// target: `http://192.168.0.129:8089`, target: `http://192.168.0.181:8089`,
// target: `http://192.168.0.137:8089`, // target: `http://192.168.0.137:8089`,
// target: `http://192.168.0.199:8089`, // target: `http://192.168.0.199:8089`,
// target: `http://192.168.0.125:8089`, // target: `http://192.168.0.125:8089`,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment