|
|
|
|
@ -2,17 +2,17 @@
|
|
|
|
|
<html lang="zh">
|
|
|
|
|
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8" />
|
|
|
|
|
<meta charset="UTF-8"/>
|
|
|
|
|
<meta name="viewport"
|
|
|
|
|
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
|
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
|
|
|
|
<link type="image/x-icon" rel="shortcut icon" href="./favicon.png" />
|
|
|
|
|
<link rel="stylesheet" href="./assets/import/element-plus.css" />
|
|
|
|
|
<link rel="stylesheet" href="./assets/import/element.css" />
|
|
|
|
|
<link href="./assets/import/tailwind.min.css" rel="stylesheet" />
|
|
|
|
|
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
|
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
|
|
|
|
|
<link type="image/x-icon" rel="shortcut icon" href="./favicon.png"/>
|
|
|
|
|
<link rel="stylesheet" href="./assets/import/element-plus.css"/>
|
|
|
|
|
<link rel="stylesheet" href="./assets/import/element.css"/>
|
|
|
|
|
<link href="./assets/import/tailwind.min.css" rel="stylesheet"/>
|
|
|
|
|
<script src="./assets/import/vue.js"></script>
|
|
|
|
|
<script src="./assets/import/element-plus.js"></script>
|
|
|
|
|
<link rel="stylesheet" href="./assets/import/icon/style.css" />
|
|
|
|
|
<link rel="stylesheet" href="./assets/import/icon/style.css"/>
|
|
|
|
|
<script src="./assets/import/axios.js"></script>
|
|
|
|
|
<title>体检登记</title>
|
|
|
|
|
<style>
|
|
|
|
|
@ -122,7 +122,8 @@
|
|
|
|
|
color: #909399;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
}
|
|
|
|
|
.disnone{
|
|
|
|
|
|
|
|
|
|
.disnone {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
@ -130,197 +131,250 @@
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
<div id="app">
|
|
|
|
|
<el-config-provider :button="button_config" :locale="elZh">
|
|
|
|
|
<el-dialog v-model="combo_dialog_show" title="选择套餐" width="800">
|
|
|
|
|
<div id="app">
|
|
|
|
|
<el-config-provider :button="button_config" :locale="elZh">
|
|
|
|
|
<el-dialog v-model="order_dialog_show" title="订单查询" width="1200">
|
|
|
|
|
<div>
|
|
|
|
|
<div class="select_flex_wrapper">
|
|
|
|
|
<el-form label-width="80px" inline @submit.prevent="handleSubmit">
|
|
|
|
|
<el-form-item label="开始时间">
|
|
|
|
|
<el-date-picker v-model="order_start" type="datetime" placeholder="请选择" format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
value-format="YYYY-MM-DD HH:mm:ss"></el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="结束时间">
|
|
|
|
|
<el-date-picker v-model="order_end" type="datetime" placeholder="请选择" format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
value-format="YYYY-MM-DD HH:mm:ss"></el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
<el-button type="primary" @click="orderSearchClick()">搜索</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<div>
|
|
|
|
|
<div class="select_flex_wrapper">
|
|
|
|
|
<el-form label-width="40px" inline @submit.prevent="handleSubmit">
|
|
|
|
|
<el-form-item label="名称">
|
|
|
|
|
<el-input v-model="combo_search_input" placeholder="" @keyup.enter="comboSearchClick"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
<el-button type="primary" @click="comboSearchClick()">搜索</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<el-table border :data="combo_list_show" style="width: 100%" height="calc(50vh - 45px)" show-overflow-tooltip
|
|
|
|
|
ref="combo_table_ref" @row-click="comboRowClick" :row-class-name="comboRowClassName" :default-sort="{ prop: 'price' }">
|
|
|
|
|
<el-table-column property="combo_id" label="套餐ID" width="120"></el-table-column>
|
|
|
|
|
<el-table-column property="name" label="套餐名称"></el-table-column>
|
|
|
|
|
<el-table-column label="性别" width="60">
|
|
|
|
|
<el-table border :data="order_list" style="width: 100%" height="calc(50vh - 45px)" show-overflow-tooltip>
|
|
|
|
|
<el-table-column prop="name" :label="`姓名【${order_list.length}人】`" width="130"></el-table-column>
|
|
|
|
|
<el-table-column prop="id_number" label="身份证" width="160"></el-table-column>
|
|
|
|
|
<el-table-column prop="phone" label="电话"></el-table-column>
|
|
|
|
|
<el-table-column prop="order_number" label="订单号"></el-table-column>
|
|
|
|
|
<el-table-column prop="title" label="订单名称"></el-table-column>
|
|
|
|
|
<el-table-column prop="type" label="类型">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
{{ ['全部', '男', '女'][scope.row.sex] }}
|
|
|
|
|
<span v-if="scope.row.type==1" style="color: #409EFF;">个检</span>
|
|
|
|
|
<span v-if="scope.row.type==2" style="color: #E6A23C;">团检</span>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column property="pinyin" label="套餐简拼" width="120"></el-table-column>
|
|
|
|
|
|
|
|
|
|
<el-table-column property="price" sortable label="价格" width="150">
|
|
|
|
|
<el-table-column prop="price" label="金额"></el-table-column>
|
|
|
|
|
<el-table-column prop="" label="状态">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<span v-if="scope.row.status==1" style="color: #409EFF;">待支付</span>
|
|
|
|
|
<span v-if="scope.row.status==2" style="color: #E6A23C;">已支付</span>
|
|
|
|
|
<span v-if="scope.row.status==3" style="color: #909399;">交易关闭</span>
|
|
|
|
|
<span v-if="scope.row.status==4" style="color: #67C23A;">已完成</span>
|
|
|
|
|
<span v-if="scope.row.status==5" style="color: #F56C6C;">已退款</span>
|
|
|
|
|
<span v-if="scope.row.status==6" style="color: #3a8c7e;">已转赠</span>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="check_status" label="到检状态">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
{{ parseFloat(scope.row.price).toFixed(2) }}
|
|
|
|
|
<span v-if="scope.row.check_status==1" style="color: #ffb682;">待检</span>
|
|
|
|
|
<span v-if="scope.row.check_status==2" style="color: #9dd978;">已到检</span>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="created_at" label="创建时间" width="180"></el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</div>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
<el-dialog v-model="plan_dialog_show" title="号源" width="800">
|
|
|
|
|
</div>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
<el-dialog v-model="combo_dialog_show" title="选择套餐" width="800">
|
|
|
|
|
<div>
|
|
|
|
|
<div>
|
|
|
|
|
<div class="select_flex_wrapper">
|
|
|
|
|
<el-form label-width="40px" inline>
|
|
|
|
|
<el-form-item label="日期">
|
|
|
|
|
<el-date-picker v-model="plan_data.date" type="date" placeholder="请选择号源日期" format="YYYY-MM-DD"
|
|
|
|
|
value-format="YYYY-MM-DD" @change="PlanDateChange()" ></el-date-picker>
|
|
|
|
|
<el-form label-width="40px" inline @submit.prevent="handleSubmit">
|
|
|
|
|
<el-form-item label="名称">
|
|
|
|
|
<el-input v-model="combo_search_input" placeholder="" @keyup.enter="comboSearchClick"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
<el-button @click="getPlanList()" type="primary">查看号源</el-button>
|
|
|
|
|
<el-button type="primary" @click="comboSearchClick()">搜索</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="plan_show_wrapper">
|
|
|
|
|
<div @click="selectPlanClick(i)" class="plan_item_wrapper" v-for="(i,k) in plan_list" :key="k" :class="[
|
|
|
|
|
</div>
|
|
|
|
|
<el-table border :data="combo_list_show" style="width: 100%" height="calc(50vh - 45px)" show-overflow-tooltip
|
|
|
|
|
ref="combo_table_ref" @row-click="comboRowClick" :row-class-name="comboRowClassName"
|
|
|
|
|
:default-sort="{ prop: 'price' }">
|
|
|
|
|
<el-table-column property="combo_id" label="套餐ID" width="120"></el-table-column>
|
|
|
|
|
<el-table-column property="name" label="套餐名称"></el-table-column>
|
|
|
|
|
<el-table-column label="性别" width="60">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
{{ ['全部', '男', '女'][scope.row.sex] }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column property="pinyin" label="套餐简拼" width="120"></el-table-column>
|
|
|
|
|
|
|
|
|
|
<el-table-column property="price" sortable label="价格" width="150">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
{{ parseFloat(scope.row.price).toFixed(2) }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</div>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
<el-dialog v-model="plan_dialog_show" title="号源" width="800">
|
|
|
|
|
<div>
|
|
|
|
|
<div class="select_flex_wrapper">
|
|
|
|
|
<el-form label-width="40px" inline>
|
|
|
|
|
<el-form-item label="日期">
|
|
|
|
|
<el-date-picker v-model="plan_data.date" type="date" placeholder="请选择号源日期" format="YYYY-MM-DD"
|
|
|
|
|
value-format="YYYY-MM-DD" @change="PlanDateChange()"></el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
<el-button @click="getPlanList()" type="primary">查看号源</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="plan_show_wrapper">
|
|
|
|
|
<div @click="selectPlanClick(i)" class="plan_item_wrapper" v-for="(i,k) in plan_list" :key="k" :class="[
|
|
|
|
|
i.is_vip === 1 ? 'plan_item_vip_wrapper' : '',
|
|
|
|
|
(i.sex !== Number(input_data.gender) && i.sex !== 0) ? 'plan_item_error_wrapper' : '',
|
|
|
|
|
i.status === 2 ? 'plan_item_error_wrapper' : '',
|
|
|
|
|
(i.is_vip === 1 && input_data.vip !== '1') ? 'plan_item_error_wrapper' : '',
|
|
|
|
|
(i.id === plan_data.active) ? 'plan_item_active_wrapper' : '',
|
|
|
|
|
]">
|
|
|
|
|
{{ i.plan_number }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="plan_item_blank_wrapper" v-for="(i,k) in 6" :key="k"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="select_flex_center_wrapper">
|
|
|
|
|
<el-button @click="plan_dialog_show = false">取消</el-button>
|
|
|
|
|
<el-button @click="createOrderClick()" type="primary">预约</el-button>
|
|
|
|
|
{{ i.plan_number }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="plan_item_blank_wrapper" v-for="(i,k) in 6" :key="k"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
<div class="page_wrapper">
|
|
|
|
|
<div class="input_box_wrapper">
|
|
|
|
|
<el-form label-width="80px">
|
|
|
|
|
<el-form-item label="院区">
|
|
|
|
|
<el-select v-model="input_data.hospital" placeholder="请选择院区">
|
|
|
|
|
<el-option label="秀英院区" value="1"></el-option>
|
|
|
|
|
<el-option label="府城院区" value="4"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="姓名">
|
|
|
|
|
<el-input v-model="input_data.name" placeholder="请输入姓名" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="证件号">
|
|
|
|
|
<el-input @change="idNumberUpdate" v-model="input_data.id_number" placeholder="请输入证件号" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="手机号">
|
|
|
|
|
<el-input v-model="input_data.phone" placeholder="请输入手机号" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="性别">
|
|
|
|
|
<el-select v-model="input_data.gender" placeholder="请选择性别">
|
|
|
|
|
<el-option label="男" value="1"></el-option>
|
|
|
|
|
<el-option label="女" value="2"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="婚否">
|
|
|
|
|
<el-select v-model="input_data.married" placeholder="请选择婚否">
|
|
|
|
|
<el-option v-for="(i,k) in married_array" :label="i.label" :value="i.value"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="VIP">
|
|
|
|
|
<el-select v-model="input_data.vip" placeholder="请选择VIP类型">
|
|
|
|
|
<el-option label="是" value="1"></el-option>
|
|
|
|
|
<el-option label="否" value="2"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="出生日期">
|
|
|
|
|
<el-date-picker v-model="input_data.birthday" type="date" placeholder="请选择出生日期" format="YYYY-MM-DD"
|
|
|
|
|
value-format="YYYY-MM-DD"></el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="登记医生">
|
|
|
|
|
<el-input v-model="input_data.doctor" placeholder="请输入登记人" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="登记科室">
|
|
|
|
|
<el-input v-model="input_data.appdoctor_department" placeholder="请输入登记科室" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
<div class="select_flex_center_wrapper">
|
|
|
|
|
<el-button @click="plan_dialog_show = false">取消</el-button>
|
|
|
|
|
<el-button @click="createOrderClick()" type="primary">预约</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="select_box_wrapper">
|
|
|
|
|
<div class="select_input_wrapper">
|
|
|
|
|
<div class="select_flex_wrapper">
|
|
|
|
|
<el-form label-width="80px" inline @submit.prevent="handleSubmit">
|
|
|
|
|
<el-form-item label="项目搜索">
|
|
|
|
|
<el-input v-model="search_input" placeholder="" @keyup.enter="searchClick"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="科室" style="margin-left: -50px">
|
|
|
|
|
<el-select v-model="search_appointment" placeholder="请选择科室" style="width: 150px" @change="searchClick()" >
|
|
|
|
|
<el-option label="全部" value="0" ></el-option>
|
|
|
|
|
<el-option v-for="(item,index) in ResKeShilist" :label="item.keshi_name" :value="item.keshi_id" :key="item.keshi_id" ></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
<el-button type="primary" @click="searchClick()">搜索</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="select_flex_wrapper" style="margin-left: 20px;">
|
|
|
|
|
<el-button @click="selectComboFunc()" style="margin-right: 10px" type="primary">选择套餐</el-button>
|
|
|
|
|
<el-form v-if="combo_list.length > 0" label-width="40px" inline>
|
|
|
|
|
<el-form-item label="套餐">
|
|
|
|
|
<div class="combo_show_wrapper">
|
|
|
|
|
{{ !!combo_show ? combo_show.name : '无' }}
|
|
|
|
|
</div>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
</div>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div class="page_wrapper">
|
|
|
|
|
<div class="input_box_wrapper">
|
|
|
|
|
<el-form label-width="80px">
|
|
|
|
|
<el-form-item label="院区">
|
|
|
|
|
<el-select v-model="input_data.hospital" placeholder="请选择院区">
|
|
|
|
|
<el-option label="秀英院区" value="1"></el-option>
|
|
|
|
|
<el-option label="府城院区" value="4"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="姓名">
|
|
|
|
|
<el-input v-model="input_data.name" placeholder="请输入姓名"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="证件号">
|
|
|
|
|
<el-input @change="idNumberUpdate" v-model="input_data.id_number" placeholder="请输入证件号"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="手机号">
|
|
|
|
|
<el-input v-model="input_data.phone" placeholder="请输入手机号"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="性别">
|
|
|
|
|
<el-select v-model="input_data.gender" placeholder="请选择性别">
|
|
|
|
|
<el-option label="男" value="1"></el-option>
|
|
|
|
|
<el-option label="女" value="2"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="婚否">
|
|
|
|
|
<el-select v-model="input_data.married" placeholder="请选择婚否">
|
|
|
|
|
<el-option v-for="(i,k) in married_array" :label="i.label" :value="i.value"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="VIP">
|
|
|
|
|
<el-select v-model="input_data.vip" placeholder="请选择VIP类型">
|
|
|
|
|
<el-option label="是" value="1"></el-option>
|
|
|
|
|
<el-option label="否" value="2"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="出生日期">
|
|
|
|
|
<el-date-picker v-model="input_data.birthday" type="date" placeholder="请选择出生日期" format="YYYY-MM-DD"
|
|
|
|
|
value-format="YYYY-MM-DD"></el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="登记医生">
|
|
|
|
|
<el-input v-model="input_data.doctor" placeholder="请输入登记人"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="登记科室">
|
|
|
|
|
<el-input v-model="input_data.appdoctor_department" placeholder="请输入登记科室"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="select_box_wrapper">
|
|
|
|
|
<div class="select_input_wrapper">
|
|
|
|
|
<div class="select_flex_wrapper">
|
|
|
|
|
<el-form label-width="80px" inline @submit.prevent="handleSubmit">
|
|
|
|
|
<el-form-item label="项目搜索">
|
|
|
|
|
<el-input v-model="search_input" placeholder="" @keyup.enter="searchClick"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="科室" style="margin-left: -50px">
|
|
|
|
|
<el-select v-model="search_appointment" placeholder="请选择科室" style="width: 150px"
|
|
|
|
|
@change="searchClick()">
|
|
|
|
|
<el-option label="全部" value="0"></el-option>
|
|
|
|
|
<el-option v-for="(item,index) in ResKeShilist" :label="item.keshi_name" :value="item.keshi_id"
|
|
|
|
|
:key="item.keshi_id"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
<el-button type="primary" @click="searchClick()">搜索</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<div class="table_title_wrapper">待选项目</div>
|
|
|
|
|
<el-table border @selection-change="itemSelectionChange" highlight-current-row @row-click="tableRowClick"
|
|
|
|
|
ref="item_table_ref" show-overflow-tooltip :data="item_list_show" style="width: 100%"
|
|
|
|
|
height="calc(50vh - 100px)" :row-class-name="itemTableRowClassName">
|
|
|
|
|
<el-table-column type="selection" width="38"></el-table-column>
|
|
|
|
|
<el-table-column property="title" label="项目名称" width="120"></el-table-column>
|
|
|
|
|
<el-table-column property="price" label="价格" width="80"></el-table-column>
|
|
|
|
|
<el-table-column property="group" label="科室" width="80"></el-table-column>
|
|
|
|
|
<el-table-column label="性别" width="60">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
{{ ['全部', '男', '女'][scope.row.sex] }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column property="desc" label="备注"></el-table-column>
|
|
|
|
|
<el-table-column property="id" label="项目ID" width="120"></el-table-column>
|
|
|
|
|
<el-table-column property="can_qian_hou" label="餐前/餐后" width="90"></el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
<div class="select_flex_wrapper" style="margin-left: 20px;">
|
|
|
|
|
<el-button @click="selectComboFunc()" style="margin-right: 10px" type="primary">选择套餐</el-button>
|
|
|
|
|
<el-form v-if="combo_list.length > 0" label-width="40px" inline>
|
|
|
|
|
<el-form-item label="套餐">
|
|
|
|
|
<div class="combo_show_wrapper">
|
|
|
|
|
{{ !!combo_show ? combo_show.name : '无' }}
|
|
|
|
|
</div>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mt-3">
|
|
|
|
|
<div class="table_title_wrapper">已选项目</div>
|
|
|
|
|
<el-table border :data="select_table_computed" style="width: 100%" height="calc(50vh - 45px - 79px)"
|
|
|
|
|
show-overflow-tooltip ref="select_table_ref" :row-class-name="yixuanClassName" highlight-current-row
|
|
|
|
|
@row-click="itemRowClick">
|
|
|
|
|
<el-table-column type="selection" width="38"></el-table-column>
|
|
|
|
|
<el-table-column property="name" label="项目名称" width="120"></el-table-column>
|
|
|
|
|
<el-table-column property="price" label="价格" width="80"></el-table-column>
|
|
|
|
|
<el-table-column property="group" label="科室" width="100"></el-table-column>
|
|
|
|
|
<el-table-column property="desc" label="备注"></el-table-column>
|
|
|
|
|
<el-table-column property="type" label="类型" width="80"></el-table-column>
|
|
|
|
|
<el-table-column property="id" label="项目ID" width="120"></el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<div class="table_title_wrapper">待选项目</div>
|
|
|
|
|
<el-table border @selection-change="itemSelectionChange" highlight-current-row @row-click="tableRowClick"
|
|
|
|
|
ref="item_table_ref" show-overflow-tooltip :data="item_list_show" style="width: 100%"
|
|
|
|
|
height="calc(50vh - 100px)" :row-class-name="itemTableRowClassName">
|
|
|
|
|
<el-table-column type="selection" width="38"></el-table-column>
|
|
|
|
|
<el-table-column property="title" label="项目名称" width="120"></el-table-column>
|
|
|
|
|
<el-table-column property="price" label="价格" width="80"></el-table-column>
|
|
|
|
|
<el-table-column property="group" label="科室" width="80"></el-table-column>
|
|
|
|
|
<el-table-column label="性别" width="60">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
{{ ['全部', '男', '女'][scope.row.sex] }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column property="desc" label="备注"></el-table-column>
|
|
|
|
|
<el-table-column property="id" label="项目ID" width="120"></el-table-column>
|
|
|
|
|
<el-table-column property="can_qian_hou" label="餐前/餐后" width="90"></el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mt-3">
|
|
|
|
|
<div class="table_title_wrapper">已选项目</div>
|
|
|
|
|
<el-table border :data="select_table_computed" style="width: 100%" height="calc(50vh - 45px - 79px)"
|
|
|
|
|
show-overflow-tooltip ref="select_table_ref" :row-class-name="yixuanClassName" highlight-current-row
|
|
|
|
|
@row-click="itemRowClick">
|
|
|
|
|
<el-table-column type="selection" width="38"></el-table-column>
|
|
|
|
|
<el-table-column property="name" label="项目名称" width="120"></el-table-column>
|
|
|
|
|
<el-table-column property="price" label="价格" width="80"></el-table-column>
|
|
|
|
|
<el-table-column property="group" label="科室" width="100"></el-table-column>
|
|
|
|
|
<el-table-column property="desc" label="备注"></el-table-column>
|
|
|
|
|
<el-table-column property="type" label="类型" width="80"></el-table-column>
|
|
|
|
|
<el-table-column property="id" label="项目ID" width="120"></el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="price_wrapper">
|
|
|
|
|
<div class="price_value_wrapper">
|
|
|
|
|
<span v-if="!!pay_info">合计价格:¥ {{ pay_info.true_price }}</span>
|
|
|
|
|
<span v-if="!!pay_info" style="font-size: 14px;color: #bbb;"> 原价:¥{{ pay_info.original_price }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="price_wrapper">
|
|
|
|
|
<div class="price_value_wrapper">
|
|
|
|
|
<span v-if="!!pay_info">合计价格:¥ {{ pay_info.true_price }}</span>
|
|
|
|
|
<span v-if="!!pay_info" style="font-size: 14px;color: #bbb;"> 原价:¥{{ pay_info.original_price }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<el-button @click="removeAllClick()" type="danger">清空</el-button>
|
|
|
|
|
<el-button @click="removeItemClick()" type="danger">移除项目</el-button>
|
|
|
|
|
<el-button @click="planDialogShowClick()" type="primary">预约登记</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<el-button @click="openOrderDialog()" type="primary">订单查询</el-button>
|
|
|
|
|
<el-button @click="removeAllClick()" type="danger">清空</el-button>
|
|
|
|
|
<el-button @click="removeItemClick()" type="danger">移除项目</el-button>
|
|
|
|
|
<el-button @click="planDialogShowClick()" type="primary">预约登记</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-config-provider>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-config-provider>
|
|
|
|
|
</div>
|
|
|
|
|
</body>
|
|
|
|
|
<script>
|
|
|
|
|
const { createApp, onMounted, ref, nextTick, computed } = Vue;
|
|
|
|
|
const { ElLoading, ElMessage, ElMessageBox } = ElementPlus;
|
|
|
|
|
const {createApp, onMounted, ref, nextTick, computed} = Vue;
|
|
|
|
|
const {ElLoading, ElMessage, ElMessageBox} = ElementPlus;
|
|
|
|
|
</script>
|
|
|
|
|
<script src="./assets/mounting.js"></script>
|
|
|
|
|
<script>
|
|
|
|
|
@ -472,7 +526,7 @@
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const search_input = ref("");
|
|
|
|
|
const search_appointment=ref("");
|
|
|
|
|
const search_appointment = ref("");
|
|
|
|
|
const select_items_deep = ref("");
|
|
|
|
|
const select_data_default = {
|
|
|
|
|
combo: "",
|
|
|
|
|
@ -543,7 +597,8 @@
|
|
|
|
|
BuyInfo: "/api/Web/BuyInfo",
|
|
|
|
|
Create: "/api/Web/Create",
|
|
|
|
|
GetDayPlanList: "/api/H5/GetDayPlanList",
|
|
|
|
|
CreateYuYueOrder: "/api/Web/CreateYuYueOrder"
|
|
|
|
|
CreateYuYueOrder: "/api/Web/CreateYuYueOrder",
|
|
|
|
|
OrderSearch: "/api/Web/SearchOrder"
|
|
|
|
|
};
|
|
|
|
|
const $api = (key) => {
|
|
|
|
|
return api_map[key];
|
|
|
|
|
@ -591,14 +646,14 @@
|
|
|
|
|
saveSelectDeep();
|
|
|
|
|
if (!!search_input.value) {
|
|
|
|
|
let il = []
|
|
|
|
|
if(isEnglishOnly(search_input.value)){//如果是纯英文
|
|
|
|
|
if (isEnglishOnly(search_input.value)) {//如果是纯英文
|
|
|
|
|
let search_str = search_input.value.toUpperCase();
|
|
|
|
|
for (let i in item_list.value) {
|
|
|
|
|
if (!!item_list.value[i].pinyin.includes(search_str)) {
|
|
|
|
|
il.push(item_list.value[i])
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
for (let i in item_list.value) {
|
|
|
|
|
if (!!item_list.value[i].title.includes(search_input.value)) {
|
|
|
|
|
il.push(item_list.value[i])
|
|
|
|
|
@ -610,10 +665,10 @@
|
|
|
|
|
} else {
|
|
|
|
|
item_list_show.value = item_list.value
|
|
|
|
|
}
|
|
|
|
|
if(!!search_appointment.value){
|
|
|
|
|
if(search_appointment.value === "0"){
|
|
|
|
|
if (!!search_appointment.value) {
|
|
|
|
|
if (search_appointment.value === "0") {
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
item_list_show.value = item_list_show.value.filter(item => item.group_id === search_appointment.value)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -676,10 +731,10 @@
|
|
|
|
|
item_ids: item_ids,
|
|
|
|
|
});
|
|
|
|
|
window.$response(response, () => {
|
|
|
|
|
if(response.data.status===true){
|
|
|
|
|
if (response.data.status === true) {
|
|
|
|
|
pay_info.value = response.data.data;
|
|
|
|
|
}else{
|
|
|
|
|
if(response.data.data !== undefined && response.data.data.item_id !== undefined){
|
|
|
|
|
} else {
|
|
|
|
|
if (response.data.data !== undefined && response.data.data.item_id !== undefined) {
|
|
|
|
|
item_table_ref.value.toggleRowSelection(
|
|
|
|
|
// 此处必须在 tableData 中查找对应的数据,否则 toggleRowSelection 会失效
|
|
|
|
|
item_list_show.value.find((row) => {
|
|
|
|
|
@ -691,14 +746,29 @@
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return window.$message().error(response.data.msg)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
let ResKeShilist=ref([]);
|
|
|
|
|
const order_start = ref(formatDatetime(new Date(), "YYYY-MM-DD") + ' 00:00:00')
|
|
|
|
|
const order_end = ref(formatDatetime(new Date(), "YYYY-MM-DD") + ' 23:59:59')
|
|
|
|
|
const order_dialog_show = ref(false)
|
|
|
|
|
const order_list = ref([])
|
|
|
|
|
const orderSearchClick = async () => {
|
|
|
|
|
const response = await axios.post($api("OrderSearch"), {
|
|
|
|
|
order_start: order_start.value,
|
|
|
|
|
order_end: order_end.value,
|
|
|
|
|
});
|
|
|
|
|
window.$response(response.data, () => {
|
|
|
|
|
order_list.value = response.data.data.list;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
const openOrderDialog = () => {
|
|
|
|
|
order_dialog_show.value = true
|
|
|
|
|
}
|
|
|
|
|
let ResKeShilist = ref([]);
|
|
|
|
|
const getItemGetList = async () => {
|
|
|
|
|
const response = await axios.post($api("ItemGetList"),{
|
|
|
|
|
const response = await axios.post($api("ItemGetList"), {
|
|
|
|
|
appointment: search_appointment.value,
|
|
|
|
|
});
|
|
|
|
|
window.$response(response.data, () => {
|
|
|
|
|
@ -723,14 +793,14 @@
|
|
|
|
|
const combo_list_show = computed(() => {
|
|
|
|
|
if (!!combo_search_input_deep.value) {
|
|
|
|
|
let il = []
|
|
|
|
|
if(isEnglishOnly(combo_search_input_deep.value)) {//如果是纯英文
|
|
|
|
|
if (isEnglishOnly(combo_search_input_deep.value)) {//如果是纯英文
|
|
|
|
|
let search_str = combo_search_input_deep.value.toUpperCase();
|
|
|
|
|
for (let i in combo_list.value) {
|
|
|
|
|
if (!!combo_list.value[i].pinyin.includes(search_str)) {
|
|
|
|
|
il.push(combo_list.value[i])
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
for (let i in combo_list.value) {
|
|
|
|
|
if (!!combo_list.value[i].name.includes(combo_search_input_deep.value)) {
|
|
|
|
|
il.push(combo_list.value[i])
|
|
|
|
|
@ -750,7 +820,7 @@
|
|
|
|
|
});
|
|
|
|
|
window.$response(response.data, () => {
|
|
|
|
|
combo_list.value = response.data.data.list;
|
|
|
|
|
combo_list.value.forEach((v,i) => {
|
|
|
|
|
combo_list.value.forEach((v, i) => {
|
|
|
|
|
combo_list.value[i].price = parseFloat(parseFloat(v.price).toFixed(2));
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
@ -899,7 +969,7 @@
|
|
|
|
|
getBuyInfo('1');
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
const removeAllClick=()=>{
|
|
|
|
|
const removeAllClick = () => {
|
|
|
|
|
window.location.reload();
|
|
|
|
|
}
|
|
|
|
|
const select_table_ref = ref(null)
|
|
|
|
|
@ -937,13 +1007,13 @@
|
|
|
|
|
}
|
|
|
|
|
getBuyInfo('3');
|
|
|
|
|
}
|
|
|
|
|
const selectComboFunc = ()=>{
|
|
|
|
|
const selectComboFunc = () => {
|
|
|
|
|
combo_dialog_show.value = true
|
|
|
|
|
ComboisClickDisabled.value = false;
|
|
|
|
|
}
|
|
|
|
|
const combo_table_ref = ref(null)
|
|
|
|
|
const combo_dialog_show = ref(false)
|
|
|
|
|
let ComboisClickDisabled =ref(false) ;
|
|
|
|
|
let ComboisClickDisabled = ref(false);
|
|
|
|
|
const comboRowClick = (e, index) => {
|
|
|
|
|
if (ComboisClickDisabled.value) return;
|
|
|
|
|
ComboisClickDisabled.value = true;
|
|
|
|
|
@ -956,7 +1026,7 @@
|
|
|
|
|
combo_dialog_show.value = false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const comboRowClassName = ({ row }) => {
|
|
|
|
|
const comboRowClassName = ({row}) => {
|
|
|
|
|
if (select_data.value.combo === row.combo_id) {
|
|
|
|
|
return 'combo_active cursor-pointer'
|
|
|
|
|
} else {
|
|
|
|
|
@ -1015,14 +1085,14 @@
|
|
|
|
|
}
|
|
|
|
|
const plan_list = ref([])
|
|
|
|
|
const getPlanList = async () => {
|
|
|
|
|
if(input_data.value.gender==='男') input_data.value.gender="1"
|
|
|
|
|
if(input_data.value.gender==='女') input_data.value.gender="2"
|
|
|
|
|
if (input_data.value.gender === '男') input_data.value.gender = "1"
|
|
|
|
|
if (input_data.value.gender === '女') input_data.value.gender = "2"
|
|
|
|
|
const response = await axios.post($api("GetDayPlanList"), {
|
|
|
|
|
hospital: input_data.value.hospital,
|
|
|
|
|
openid: "",
|
|
|
|
|
person_id: "",
|
|
|
|
|
combo_id:select_data.value.combo,
|
|
|
|
|
person_sex:input_data.value.gender,
|
|
|
|
|
combo_id: select_data.value.combo,
|
|
|
|
|
person_sex: input_data.value.gender,
|
|
|
|
|
date: plan_data.value.date,
|
|
|
|
|
use_type: 1,
|
|
|
|
|
checkup_type_id: 1,
|
|
|
|
|
@ -1031,7 +1101,7 @@
|
|
|
|
|
window.$response(response.data, () => {
|
|
|
|
|
plan_list.value = response.data.data.list;
|
|
|
|
|
plan_dialog_show.value = true
|
|
|
|
|
if(plan_list.value.length===0){
|
|
|
|
|
if (plan_list.value.length === 0) {
|
|
|
|
|
alert("当前日期暂无号源");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
@ -1088,45 +1158,55 @@
|
|
|
|
|
for (let i in select_rows) {
|
|
|
|
|
select_ids.push(select_rows[i].id)
|
|
|
|
|
}
|
|
|
|
|
let classnames=''
|
|
|
|
|
let classnames = ''
|
|
|
|
|
|
|
|
|
|
if (select_ids.includes(e.row.id)) {
|
|
|
|
|
console.log('select_ids', select_ids, e.row.id)
|
|
|
|
|
classnames= 'item_active cursor-pointer'
|
|
|
|
|
classnames = 'item_active cursor-pointer'
|
|
|
|
|
} else {
|
|
|
|
|
classnames= 'cursor-pointer'
|
|
|
|
|
classnames = 'cursor-pointer'
|
|
|
|
|
}
|
|
|
|
|
if(e.row.group==='材料费'){
|
|
|
|
|
classnames=classnames+' disnone'
|
|
|
|
|
if (e.row.group === '材料费') {
|
|
|
|
|
classnames = classnames + ' disnone'
|
|
|
|
|
}
|
|
|
|
|
return classnames
|
|
|
|
|
}
|
|
|
|
|
const yixuanClassName=(e)=>{
|
|
|
|
|
let classname= 'cursor-pointer'
|
|
|
|
|
if(e.row.group==='材料费'){
|
|
|
|
|
classname=classname+' disnone';
|
|
|
|
|
const yixuanClassName = (e) => {
|
|
|
|
|
let classname = 'cursor-pointer'
|
|
|
|
|
if (e.row.group === '材料费') {
|
|
|
|
|
classname = classname + ' disnone';
|
|
|
|
|
}
|
|
|
|
|
return classname
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function isEnglishOnly(str) {
|
|
|
|
|
// 使用正则表达式检查字符串是否只包含英文字符
|
|
|
|
|
return /^[A-Za-z]+$/.test(str);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function PlanDateChange() {
|
|
|
|
|
getPlanList()
|
|
|
|
|
}
|
|
|
|
|
function handleSubmit(){
|
|
|
|
|
|
|
|
|
|
function handleSubmit() {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
getQueryData();
|
|
|
|
|
if(input_data.value.hospital == '6') input_data.value.hospital = '1'
|
|
|
|
|
if(input_data.value.hospital == '2') input_data.value.hospital = '4'
|
|
|
|
|
if (input_data.value.hospital == '6') input_data.value.hospital = '1'
|
|
|
|
|
if (input_data.value.hospital == '2') input_data.value.hospital = '4'
|
|
|
|
|
getItemGetList();
|
|
|
|
|
// getPlanList();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
order_start,
|
|
|
|
|
order_end,
|
|
|
|
|
order_dialog_show,
|
|
|
|
|
order_list,
|
|
|
|
|
orderSearchClick,
|
|
|
|
|
openOrderDialog,
|
|
|
|
|
elZh,
|
|
|
|
|
getItemGetList,
|
|
|
|
|
handleSubmit,
|
|
|
|
|
|