3 changed files with 244 additions and 0 deletions
-
237src/components/order_statistics/orderStatistics.vue
-
6src/router/index.js
-
1src/views/home/Home.vue
@ -0,0 +1,237 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<!-- 组件主体 --> |
||||
|
<div> |
||||
|
<!-- 查询条件 --> |
||||
|
<div style="display: flex;font-size: 14px;flex-wrap: wrap;"> |
||||
|
<div style="display: flex;"> |
||||
|
<span style="display: flex;width:20%;margin-right: 5px;justify-content: center;align-items: center;">姓名:</span> |
||||
|
<el-input v-model="data.patientName" /> |
||||
|
</div> |
||||
|
<div style="display: flex;"> |
||||
|
<span style="display: flex;width:30%;margin-right: 5px;justify-content: center;align-items: center;">手机号:</span> |
||||
|
<el-input v-model="data.mobileTelephone" /> |
||||
|
</div> |
||||
|
<div style="display: flex;"> |
||||
|
<span style="display: flex;width:30%;margin-right: 5px;justify-content: center;align-items: center;">身份证:</span> |
||||
|
<el-input v-model="data.idNo" /> |
||||
|
</div> |
||||
|
<div style="display: flex;"> |
||||
|
<span style="display: flex;width:30%;margin-right: 5px;justify-content: center;align-items: center;">人员类别:</span> |
||||
|
<el-select v-model="data.personType" placeholder="请选择人员类别" style="width: 240px" clearable > |
||||
|
<el-option v-for="item in data.personTypeList" :key="item.id" :label="item.label" |
||||
|
:value="item.id" /> |
||||
|
</el-select> |
||||
|
</div> |
||||
|
<div style="display: flex;"> |
||||
|
<span style="display: flex;width:30%;margin-right: 5px;justify-content: center;align-items: center;">预约开始日期:</span> |
||||
|
<el-date-picker |
||||
|
v-model="data.appointStartDate" |
||||
|
type="date" |
||||
|
placeholder="请选择预约开始日期" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
/> |
||||
|
</div> |
||||
|
<div style="display: flex;"> |
||||
|
<span style="display: flex;width:30%;margin-right: 5px;justify-content: center;align-items: center;">预约结束日期:</span> |
||||
|
<el-date-picker |
||||
|
v-model="data.appointEndDate" |
||||
|
type="date" |
||||
|
placeholder="请选择预约结束日期" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
/> |
||||
|
</div> |
||||
|
<div style="display: flex;"> |
||||
|
<span style="display: flex;width:30%;margin-right: 5px;justify-content: center;align-items: center;">收费状态:</span> |
||||
|
<el-select v-model="data.chargeFlag" placeholder="请选择收费状态" style="width: 240px" clearable > |
||||
|
<el-option v-for="item in data.chargeFlagList" :key="item.id" :label="item.label" |
||||
|
:value="item.id" /> |
||||
|
</el-select> |
||||
|
</div> |
||||
|
<el-tooltip content="查询或刷新" placement="top"> |
||||
|
<el-button :icon="Search" @click="btnQuery" |
||||
|
:style="`margin-left: 0px;min-width:40px;color:#67C23A;font-size: ${state.winForm.icon.size}px;`" /> |
||||
|
</el-tooltip> |
||||
|
</div> |
||||
|
<!-- 数据表格 --> |
||||
|
<div :id="`el_${data.base.name}_table`"> |
||||
|
<!--表格--> |
||||
|
<el-table ref="ref_table" :data="data.tableData" border |
||||
|
style="width: 100%" id="tableId" :height="tableHeight"> |
||||
|
<el-table-column prop="patientName" label="姓名" min-width="80" align="center" /> |
||||
|
<el-table-column prop="phoneNumber" label="手机号" min-width="80" align="center" /> |
||||
|
<el-table-column prop="idNo" label="身份证" min-width="80" align="center" /> |
||||
|
<el-table-column prop="appointDate" label="预约日期" min-width="80" align="center" /> |
||||
|
<el-table-column prop="medicalPackageName" label="套餐名称" min-width="80" align="center" /> |
||||
|
<el-table-column prop="customerOrgGroupName" label="分组名称" min-width="80" align="center" /> |
||||
|
<el-table-column prop="customerOrgName" label="单位名称" min-width="80" align="center" /> |
||||
|
<el-table-column prop="departmentName" label="部门名称" min-width="80" align="center" /> |
||||
|
<el-table-column prop="chargeFlagName" label="收费状态" min-width="80" align="center" /> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- 弹窗 --> |
||||
|
<div> |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script lang="ts" setup> |
||||
|
// 框架脚手架 |
||||
|
import { reactive, ref, getCurrentInstance, computed, onMounted, watch, nextTick } from 'vue' |
||||
|
// import type { FormInstance, FormRules } from 'element-plus' |
||||
|
import { ElTable, ElMessage, ElMessageBox } from 'element-plus' |
||||
|
import { Plus, Operation, Message, MoreFilled, Search, Setting, Edit, Delete } from '@element-plus/icons-vue' |
||||
|
import { useStore } from 'vuex' |
||||
|
|
||||
|
|
||||
|
// 项目封装的脚手架 |
||||
|
import { abcfun } from 'abcfun' |
||||
|
|
||||
|
|
||||
|
// 组件申明 |
||||
|
import axios from '../../api/axios' |
||||
|
|
||||
|
// 申明的 数据 与 方法 -------------------------------------- start -------------------------------------- |
||||
|
// 获取当前组件实例的全局配置 |
||||
|
const appConfig = getCurrentInstance()!.appContext.config.globalProperties.$appConfig |
||||
|
const state = useStore().state |
||||
|
|
||||
|
const ref_table = ref() |
||||
|
|
||||
|
const data = reactive({ |
||||
|
base: { //本组件基本信息 (支持跨项目、跨数据库) |
||||
|
name: 'AppointScheduleTemplate', // pageName 页面标识名称,用于区分不同页面的对象的id,主要用于通用打印,导出 等功能 |
||||
|
maxResultCount: 0, //返回最大记录数(1、0表示所有记录,其他表示返回相应的记录数;2、大于1时,表示有分页,需返回符合条件的记录总数;3、删改时不起作用,新增只在 'insert into ... select' 情况下起作用) |
||||
|
disabledDragCols: ['_index', '_selection'], // 禁止拖拽的列名(仅限 index selection 列) 表格中从后往前显示 |
||||
|
}, |
||||
|
pagePriv: { |
||||
|
route: '/AppointScheduleTemplate', //当前页面归属路由或归属页面权限名称 |
||||
|
privs: [] as Array<object> // 页面权限( onMounted 中赋值) |
||||
|
}, |
||||
|
patientName:"", |
||||
|
idNo:"", |
||||
|
mobileTelephone:"", |
||||
|
personType:"0", |
||||
|
appointStartDate:"" as string, |
||||
|
appointEndDate:"" as string, |
||||
|
chargeFlag:"", |
||||
|
tableData: [] as Array<object>, //表格列表数据 |
||||
|
tableDataChoosed: [] as Array<object>, //选中表格列表数据 |
||||
|
tableDataTotalCount: 0, //列表总数据数(有分页时,才用到) |
||||
|
personTypeList:[{ |
||||
|
id:"0", |
||||
|
label:"所有" |
||||
|
},{ |
||||
|
id:"1", |
||||
|
label:"个人" |
||||
|
},{ |
||||
|
id:"2", |
||||
|
label:"单位" |
||||
|
}], |
||||
|
chargeFlagList:[{ |
||||
|
id:"0", |
||||
|
label:"未收费" |
||||
|
},{ |
||||
|
id:"1", |
||||
|
label:"已收费" |
||||
|
},{ |
||||
|
id:"2", |
||||
|
label:"已退费" |
||||
|
}] |
||||
|
}) |
||||
|
|
||||
|
// 被依赖的方法 建议 放在其他方法前面 --- start --- |
||||
|
|
||||
|
const disabledWeeks = (rowIndex: number, weekId: number) => { |
||||
|
let ret = false |
||||
|
let weeks = [] |
||||
|
data.tableData.forEach((e, index) => { |
||||
|
if (index != rowIndex) weeks.push(e['weekId']) |
||||
|
}); |
||||
|
if (weeks.indexOf(weekId) > -1) ret = true |
||||
|
return ret |
||||
|
} |
||||
|
|
||||
|
// 被依赖的方法 建议 放在其他方法前面 --- end --- |
||||
|
|
||||
|
// 查询操作 --- start --- |
||||
|
|
||||
|
// 查询操作 --- end --- |
||||
|
|
||||
|
// 菜单操作 --- start --- |
||||
|
// 菜单--选择 |
||||
|
const menuSelect = (key: string, keyPath: string[]) => { |
||||
|
console.log(key, keyPath) |
||||
|
} |
||||
|
// 菜单--高级查询 |
||||
|
const btnQuery = () => { |
||||
|
axios.post(appConfig, '/api/app/AppointPatientRegister/GetAppointPatientRegisterList', { |
||||
|
patientName:data.patientName, |
||||
|
idNo:data.idNo, |
||||
|
phoneNumber:data.mobileTelephone, |
||||
|
personType:data.personType, |
||||
|
appointStartDate:data.appointStartDate, |
||||
|
appointEndDate:data.appointEndDate, |
||||
|
chargeFlag:data.chargeFlag==""?null:data.chargeFlag |
||||
|
}).then(res => { |
||||
|
if (res['code'] > -1) { |
||||
|
data.tableData = res.data |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
// 申明的 数据 与 方法 -------------------------------------- end -------------------------------------- |
||||
|
|
||||
|
// computed: 计算函数 -------------------------------------- start -------------------------------------- |
||||
|
// 表格高度 |
||||
|
const tableHeight = computed(() => { |
||||
|
// 主体高度 - 查询栏30 - 菜单栏 - 分页栏 - 平衡高度 |
||||
|
let pagination: number = data.base.maxResultCount > 1 ? 22 : 0 |
||||
|
return state.winForm.mainHeight - 32 - 48 - pagination |
||||
|
}) |
||||
|
// drawer 宽度 |
||||
|
const drawerWidth = computed(() => { |
||||
|
return state.winForm.pageWidth < state.winForm.drawerMaxWidth ? state.winForm.pageWidth : state.winForm.drawerMaxWidth |
||||
|
}) |
||||
|
|
||||
|
// computed: 计算函数 -------------------------------------- end -------------------------------------- |
||||
|
// methods: 方法(函数)-------------------------------------- start -------------------------------------- |
||||
|
|
||||
|
const getMedicalCenter = () => { |
||||
|
return new Promise<void>((resolve, reject) => { |
||||
|
// 获取体检中心 |
||||
|
axios.post(appConfig, '/api/app/Sex/GetAll') |
||||
|
.then(res => { |
||||
|
if (res.code > -1) { |
||||
|
|
||||
|
resolve(res) |
||||
|
} else { |
||||
|
reject(res.message) |
||||
|
} |
||||
|
}) |
||||
|
}) |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
// methods: 方法(函数)-------------------------------------- end -------------------------------------- |
||||
|
// 组件挂载完成 -------------------------------------- start -------------------------------------- |
||||
|
onMounted(() => { |
||||
|
console.log('onMounted') |
||||
|
getMedicalCenter() |
||||
|
|
||||
|
|
||||
|
}) |
||||
|
|
||||
|
// 组件挂载完成 -------------------------------------- end -------------------------------------- |
||||
|
// watch: 监听事件 -------------------------------------- start -------------------------------------- |
||||
|
// 监听查询关键字的变化 |
||||
|
// watch(() => data.query.keyWord, (newVal, oldVal) => { |
||||
|
// console.log(`watch: data.query.keyWord newVal: ${newVal} oldVal: ${oldVal}`) |
||||
|
// if (newVal != oldVal) funCom.madeFuzzyCondition({ newVal, oldVal }, data.query.keyWordCols, data.query.DMQL.condition) |
||||
|
// }) |
||||
|
// watch: 监听事件 -------------------------------------- end -------------------------------------- |
||||
|
</script> |
||||
|
<style scoped></style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue