|
|
|
|
@ -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>
|
|
|
|
|
@ -107,16 +107,41 @@
|
|
|
|
|
align-items: 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>
|
|
|
|
|
<script></script>
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
<div id="app">
|
|
|
|
|
<div id="app">
|
|
|
|
|
<el-config-provider :button="button_config">
|
|
|
|
|
<el-dialog v-model="combo_dialog_show" title="选择套餐" width="800">
|
|
|
|
|
<div>
|
|
|
|
|
<el-table border :data="combo_list" style="width: 100%" height="calc(50vh - 45px)" show-overflow-tooltip
|
|
|
|
|
<div>
|
|
|
|
|
<div class="select_flex_wrapper">
|
|
|
|
|
<el-form label-width="40px" inline>
|
|
|
|
|
<el-form-item label="简拼">
|
|
|
|
|
<el-input v-model="combo_search_input" placeholder="" />
|
|
|
|
|
</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">
|
|
|
|
|
<el-table-column property="combo_id" label="套餐ID" width="120"></el-table-column>
|
|
|
|
|
<el-table-column property="name" label="套餐名称"></el-table-column>
|
|
|
|
|
@ -170,13 +195,13 @@
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="姓名">
|
|
|
|
|
<el-input v-model="input_data.name" placeholder="请输入姓名"/>
|
|
|
|
|
<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 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-input v-model="input_data.phone" placeholder="请输入手机号" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="性别">
|
|
|
|
|
<el-select v-model="input_data.gender" placeholder="请选择性别">
|
|
|
|
|
@ -200,7 +225,7 @@
|
|
|
|
|
value-format="YYYY-MM-DD"></el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="登记人">
|
|
|
|
|
<el-input v-model="input_data.doctor" placeholder="请输入登记人"/>
|
|
|
|
|
<el-input v-model="input_data.doctor" placeholder="请输入登记人" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
</div>
|
|
|
|
|
@ -209,7 +234,7 @@
|
|
|
|
|
<div class="select_flex_wrapper">
|
|
|
|
|
<el-form label-width="40px" inline>
|
|
|
|
|
<el-form-item label="简拼">
|
|
|
|
|
<el-input v-model="search_input" placeholder=""/>
|
|
|
|
|
<el-input v-model="search_input" placeholder="" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
<el-button type="primary" @click="searchClick()">搜索</el-button>
|
|
|
|
|
@ -226,9 +251,10 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<el-table border @selection-change="itemSelectionChange" row-class-name="cursor-pointer"
|
|
|
|
|
highlight-current-row @row-click="tableRowClick" ref="item_table_ref" show-overflow-tooltip
|
|
|
|
|
:data="item_list_show" style="width: 100%" height="calc(50vh - 100px)">
|
|
|
|
|
<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>
|
|
|
|
|
@ -244,7 +270,8 @@
|
|
|
|
|
</el-table>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mt-3">
|
|
|
|
|
<el-table border :data="select_table_computed" style="width: 100%" height="calc(50vh - 45px)"
|
|
|
|
|
<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>
|
|
|
|
|
@ -267,11 +294,11 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-config-provider>
|
|
|
|
|
</div>
|
|
|
|
|
</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>
|
|
|
|
|
@ -381,6 +408,14 @@
|
|
|
|
|
select_items_deep.value = ids.join(',');
|
|
|
|
|
};
|
|
|
|
|
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 = () => {
|
|
|
|
|
if (search_input_deep.value === search_input.value) {
|
|
|
|
|
return
|
|
|
|
|
@ -479,6 +514,20 @@
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
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 response = await axios.post($api("ComboGetList"), {
|
|
|
|
|
hospital: input_data.value.hospital,
|
|
|
|
|
@ -669,7 +718,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 {
|
|
|
|
|
@ -702,7 +751,7 @@
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
if (input_data.value.id_number === '') {
|
|
|
|
|
window.$message().error('请输入身份证号')
|
|
|
|
|
window.$message().error('请输入证件号')
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
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(() => {
|
|
|
|
|
getQueryData();
|
|
|
|
|
getItemGetList();
|
|
|
|
|
@ -793,6 +856,7 @@
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
itemTableRowClassName,
|
|
|
|
|
createOrderClick,
|
|
|
|
|
selectPlanClick,
|
|
|
|
|
getPlanList,
|
|
|
|
|
@ -805,6 +869,8 @@
|
|
|
|
|
idNumberUpdate,
|
|
|
|
|
tableRowClick,
|
|
|
|
|
planDialogShowClick,
|
|
|
|
|
comboSearchClick,
|
|
|
|
|
combo_search_input,
|
|
|
|
|
married_array,
|
|
|
|
|
plan_list,
|
|
|
|
|
plan_data,
|
|
|
|
|
@ -813,6 +879,7 @@
|
|
|
|
|
combo_table_ref,
|
|
|
|
|
combo_dialog_show,
|
|
|
|
|
combo_list,
|
|
|
|
|
combo_list_show,
|
|
|
|
|
select_table_ref,
|
|
|
|
|
pay_info,
|
|
|
|
|
item_list_show,
|
|
|
|
|
|