main
刘佳宇 1 year ago
commit 5cb1ddf531

@ -2,17 +2,17 @@
<html lang="zh"> <html lang="zh">
<head> <head>
<meta charset="UTF-8"/> <meta charset="UTF-8" />
<meta name="viewport" <meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/> 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"/> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
<link type="image/x-icon" rel="shortcut icon" href="./favicon.png"/> <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-plus.css" />
<link rel="stylesheet" href="./assets/import/element.css"/> <link rel="stylesheet" href="./assets/import/element.css" />
<link href="./assets/import/tailwind.min.css" rel="stylesheet"/> <link href="./assets/import/tailwind.min.css" rel="stylesheet" />
<script src="./assets/import/vue.js"></script> <script src="./assets/import/vue.js"></script>
<script src="./assets/import/element-plus.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> <script src="./assets/import/axios.js"></script>
<title>体检登记</title> <title>体检登记</title>
<style> <style>
@ -107,171 +107,198 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.item_active {
background: #cccccc50 !important;
}
.table_title_wrapper {
background: var(--el-fill-color-light);
border: #ebeef5 1px solid;
border-bottom: 0px;
padding: 8px 12px;
line-height: 23px;
font-size: 14px;
color: #909399;
font-weight: bold;
}
</style> </style>
<script></script> <script></script>
</head> </head>
<body> <body>
<div id="app"> <div id="app">
<el-config-provider :button="button_config"> <el-config-provider :button="button_config">
<el-dialog v-model="combo_dialog_show" title="选择套餐" width="800"> <el-dialog v-model="combo_dialog_show" title="选择套餐" width="800">
<div> <div>
<el-table border :data="combo_list" style="width: 100%" height="calc(50vh - 45px)" show-overflow-tooltip <div>
ref="combo_table_ref" @row-click="comboRowClick" :row-class-name="comboRowClassName"> <div class="select_flex_wrapper">
<el-table-column property="combo_id" label="套餐ID" width="120"></el-table-column> <el-form label-width="40px" inline>
<el-table-column property="name" label="套餐名称"></el-table-column> <el-form-item label="简拼">
<el-table-column label="性别" width="60"> <el-input v-model="combo_search_input" placeholder="" />
<template #default="scope"> </el-form-item>
{{ ['全部', '男', '女'][scope.row.sex] }} </el-form>
</template> <el-button type="primary" @click="comboSearchClick()">搜索</el-button>
</el-table-column> </div>
<el-table-column property="pinyin" label="套餐简拼" width="120"></el-table-column> </div>
</el-table> <el-table border :data="combo_list_show" style="width: 100%" height="calc(50vh - 45px)" show-overflow-tooltip
</div> ref="combo_table_ref" @row-click="comboRowClick" :row-class-name="comboRowClassName">
</el-dialog> <el-table-column property="combo_id" label="套餐ID" width="120"></el-table-column>
<el-table-column property="name" label="套餐名称"></el-table-column>
<el-dialog v-model="plan_dialog_show" title="号源" width="800"> <el-table-column label="性别" width="60">
<div> <template #default="scope">
<div class="select_flex_wrapper"> {{ ['全部', '男', '女'][scope.row.sex] }}
<el-form label-width="40px" inline> </template>
<el-form-item label="日期"> </el-table-column>
<el-date-picker v-model="plan_data.date" type="date" placeholder="请选择号源日期" format="YYYY-MM-DD" <el-table-column property="pinyin" label="套餐简拼" width="120"></el-table-column>
value-format="YYYY-MM-DD"></el-date-picker> </el-table>
</el-form-item>
</el-form>
<el-button @click="getPlanList()" type="primary">查看号源</el-button>
</div> </div>
<div class="plan_show_wrapper"> </el-dialog>
<div @click="selectPlanClick(i)" class="plan_item_wrapper" v-for="(i,k) in plan_list" :key="k" :class="[
<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"></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.is_vip === 1 ? 'plan_item_vip_wrapper' : '',
(i.sex !== Number(input_data.gender) && i.sex !== 0) ? 'plan_item_error_wrapper' : '', (i.sex !== Number(input_data.gender) && i.sex !== 0) ? 'plan_item_error_wrapper' : '',
i.status === 2 ? 'plan_item_error_wrapper' : '', i.status === 2 ? 'plan_item_error_wrapper' : '',
(i.is_vip === 1 && input_data.vip !== '1') ? '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.id === plan_data.active) ? 'plan_item_active_wrapper' : '',
]"> ]">
{{ i.plan_number }} {{ i.plan_number }}
</div>
<div class="plan_item_blank_wrapper" v-for="(i,k) in 6" :key="k"></div>
</div> </div>
<div class="plan_item_blank_wrapper" v-for="(i,k) in 6" :key="k"></div> <div class="select_flex_center_wrapper">
</div> <el-button @click="plan_dialog_show = false">取消</el-button>
<div class="select_flex_center_wrapper"> <el-button @click="createOrderClick()" type="primary">预约</el-button>
<el-button @click="plan_dialog_show = false">取消</el-button>
<el-button @click="createOrderClick()" type="primary">预约</el-button>
</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>
</div>
<div class="select_box_wrapper">
<div class="select_input_wrapper">
<div class="select_flex_wrapper">
<el-form label-width="40px" inline>
<el-form-item label="简拼">
<el-input v-model="search_input" placeholder=""/>
</el-form-item>
</el-form>
<el-button type="primary" @click="searchClick()">搜索</el-button>
</div>
<div class="select_flex_wrapper">
<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>
<el-button @click="combo_dialog_show = true" type="primary">选择套餐</el-button>
</div> </div>
</div> </div>
<div> </el-dialog>
<el-table border @selection-change="itemSelectionChange" row-class-name="cursor-pointer"
highlight-current-row @row-click="tableRowClick" ref="item_table_ref" show-overflow-tooltip <div class="page_wrapper">
:data="item_list_show" style="width: 100%" height="calc(50vh - 100px)"> <div class="input_box_wrapper">
<el-table-column type="selection" width="38"></el-table-column> <el-form label-width="80px">
<el-table-column property="title" label="项目名称" width="120"></el-table-column> <el-form-item label="院区">
<el-table-column property="price" label="价格" width="80"></el-table-column> <el-select v-model="input_data.hospital" placeholder="请选择院区">
<el-table-column property="group" label="科室" width="80"></el-table-column> <el-option label="秀英院区" value="1"></el-option>
<el-table-column label="性别" width="60"> <el-option label="府城院区" value="4"></el-option>
<template #default="scope"> </el-select>
{{ ['全部', '男', '女'][scope.row.sex] }} </el-form-item>
</template> <el-form-item label="姓名">
</el-table-column> <el-input v-model="input_data.name" placeholder="请输入姓名" />
<el-table-column property="desc" label="备注"></el-table-column> </el-form-item>
<el-table-column property="id" label="项目ID" width="120"></el-table-column> <el-form-item label="证件号">
<el-table-column property="can_qian_hou" label="餐前/餐后" width="90"></el-table-column> <el-input @change="idNumberUpdate" v-model="input_data.id_number" placeholder="请输入证件号" />
</el-table> </el-form-item>
</div> <el-form-item label="手机号">
<div class="mt-3"> <el-input v-model="input_data.phone" placeholder="请输入手机号" />
<el-table border :data="select_table_computed" style="width: 100%" height="calc(50vh - 45px)" </el-form-item>
show-overflow-tooltip ref="select_table_ref" row-class-name="cursor-pointer" highlight-current-row <el-form-item label="性别">
@row-click="itemRowClick"> <el-select v-model="input_data.gender" placeholder="请选择性别">
<el-table-column type="selection" width="38"></el-table-column> <el-option label="男" value="1"></el-option>
<el-table-column property="name" label="项目名称" width="120"></el-table-column> <el-option label="女" value="2"></el-option>
<el-table-column property="group" label="科室" width="100"></el-table-column> </el-select>
<el-table-column property="desc" label="备注"></el-table-column> </el-form-item>
<el-table-column property="type" label="类型" width="80"></el-table-column> <el-form-item label="婚否">
<el-table-column property="id" label="项目ID" width="120"></el-table-column> <el-select v-model="input_data.married" placeholder="请选择婚否">
</el-table> <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>
</div> </div>
<div class="price_wrapper"> <div class="select_box_wrapper">
<div class="price_value_wrapper"> <div class="select_input_wrapper">
<span v-if="!!pay_info">合计价格:¥ {{ pay_info.true_price }}</span> <div class="select_flex_wrapper">
<el-form label-width="40px" inline>
<el-form-item label="简拼">
<el-input v-model="search_input" placeholder="" />
</el-form-item>
</el-form>
<el-button type="primary" @click="searchClick()">搜索</el-button>
</div>
<div class="select_flex_wrapper">
<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>
<el-button @click="combo_dialog_show = true" type="primary">选择套餐</el-button>
</div>
</div> </div>
<div> <div>
<el-button @click="removeItemClick()" type="danger">移除项目</el-button> <div class="table_title_wrapper">待选项目</div>
<el-button @click="planDialogShowClick()" type="primary">预约登记</el-button> <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="cursor-pointer" 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="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>
</div>
<div>
<el-button @click="removeItemClick()" type="danger">移除项目</el-button>
<el-button @click="planDialogShowClick()" type="primary">预约登记</el-button>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </el-config-provider>
</el-config-provider> </div>
</div>
</body> </body>
<script> <script>
const {createApp, onMounted, ref, nextTick, computed} = Vue; const { createApp, onMounted, ref, nextTick, computed } = Vue;
const {ElLoading, ElMessage, ElMessageBox} = ElementPlus; const { ElLoading, ElMessage, ElMessageBox } = ElementPlus;
</script> </script>
<script src="./assets/mounting.js"></script> <script src="./assets/mounting.js"></script>
<script> <script>
@ -381,6 +408,14 @@
select_items_deep.value = ids.join(','); select_items_deep.value = ids.join(',');
}; };
const search_input_deep = ref('search_input_deep') const search_input_deep = ref('search_input_deep')
const combo_search_input = ref('')
const combo_search_input_deep = ref('')
const comboSearchClick = () => {
if (combo_search_input.value === combo_search_input_deep.value) {
return
}
combo_search_input_deep.value = combo_search_input.value
}
const searchClick = () => { const searchClick = () => {
if (search_input_deep.value === search_input.value) { if (search_input_deep.value === search_input.value) {
return return
@ -479,6 +514,20 @@
}); });
}; };
const combo_list = ref([]) const combo_list = ref([])
const combo_list_show = computed(() => {
if (!!combo_search_input_deep.value) {
let search_str = combo_search_input_deep.value.toUpperCase();
let il = []
for (let i in combo_list.value) {
if (!!combo_list.value[i].pinyin.includes(search_str)) {
il.push(combo_list.value[i])
}
}
return il
} else {
return combo_list.value
}
})
const getComboGetList = async () => { const getComboGetList = async () => {
const response = await axios.post($api("ComboGetList"), { const response = await axios.post($api("ComboGetList"), {
hospital: input_data.value.hospital, hospital: input_data.value.hospital,
@ -669,7 +718,7 @@
combo_dialog_show.value = false combo_dialog_show.value = false
} }
const comboRowClassName = ({row}) => { const comboRowClassName = ({ row }) => {
if (select_data.value.combo === row.combo_id) { if (select_data.value.combo === row.combo_id) {
return 'combo_active cursor-pointer' return 'combo_active cursor-pointer'
} else { } else {
@ -702,7 +751,7 @@
return false return false
} }
if (input_data.value.id_number === '') { if (input_data.value.id_number === '') {
window.$message().error('请输入身份证号') window.$message().error('请输入证号')
return false return false
} }
return true return true
@ -786,6 +835,20 @@
}); });
} }
const itemTableRowClassName = (e) => {
const select_rows = item_table_ref.value.getSelectionRows();
let select_ids = [];
for (let i in select_rows) {
select_ids.push(select_rows[i].id)
}
if (select_ids.includes(e.row.id)) {
console.log('select_ids', select_ids, e.row.id)
return 'item_active cursor-pointer'
} else {
return 'cursor-pointer'
}
}
onMounted(() => { onMounted(() => {
getQueryData(); getQueryData();
getItemGetList(); getItemGetList();
@ -793,6 +856,7 @@
}); });
return { return {
itemTableRowClassName,
createOrderClick, createOrderClick,
selectPlanClick, selectPlanClick,
getPlanList, getPlanList,
@ -805,6 +869,8 @@
idNumberUpdate, idNumberUpdate,
tableRowClick, tableRowClick,
planDialogShowClick, planDialogShowClick,
comboSearchClick,
combo_search_input,
married_array, married_array,
plan_list, plan_list,
plan_data, plan_data,
@ -813,6 +879,7 @@
combo_table_ref, combo_table_ref,
combo_dialog_show, combo_dialog_show,
combo_list, combo_list,
combo_list_show,
select_table_ref, select_table_ref,
pay_info, pay_info,
item_list_show, item_list_show,

Loading…
Cancel
Save