9 changed files with 1411 additions and 19 deletions
-
132src/components/patientRegister/PatientRegisterEdit.vue
-
219src/components/third/ThirdMedicalCenterBookDateList.vue
-
178src/components/third/ThirdMedicalCenterEdit.vue
-
340src/components/third/thirdMedicalCenter.vue
-
497src/components/webBooking/WebBookingMzak.vue
-
6src/router/index.js
-
7src/store/index.js
-
3src/views/basic-dictionary/ThirdPartyInterfaces.vue
-
48src/views/customerOrg/customerOrgGroup.vue
@ -0,0 +1,219 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<div> |
||||
|
<div class="contenttitle"> |
||||
|
明细记录 |
||||
|
</div> |
||||
|
<!--公共表分类信息--> |
||||
|
<div style="display: flex; font-size: 14px"> |
||||
|
<div :style="'display: block;width:' + (window.pageWidth - window.pageMarginWidth - 110 - 5) + 'px;'"> |
||||
|
<el-table id="thirdMedicalCenterBookingDate" :data="thirdMedicalCenterBookingDate" |
||||
|
ref="thirdMedicalCenterBookingDate" row-key="id" border :height="`${tableHeight}px`" size="small" |
||||
|
highlight-current-row :row-class-name="handleRowClassName"> |
||||
|
|
||||
|
<el-table-column type="index" label="序号" width="50" align="center" /> |
||||
|
<el-table-column label="体检中心" prop="thirdMedicalCenterId" min-width="200" align="center" /> |
||||
|
<el-table-column prop="bookingDate" label="可约日期" min-width="130" align="center" /> |
||||
|
|
||||
|
</el-table> |
||||
|
</div> |
||||
|
<!--按钮--> |
||||
|
<div style="display: block; margin-left: 5px"> |
||||
|
<div style="margin-top: 5px"> |
||||
|
<el-button class="commonbutton" @click="btnSetBookDate">设置预约日期</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<!-- 新增或者编辑弹框 --> |
||||
|
<el-dialog title="设置可预约日期" :close-on-click-modal="false" :visible.sync="setting" width="240px" |
||||
|
@close="close_setting"> |
||||
|
<div> |
||||
|
<el-table :data="form.bookingDates" border height="480px" size="small" highlight-current-row |
||||
|
:row-class-name="handleRowClassName" row-key="id"> |
||||
|
<el-table-column label="可约日期" min-width="150" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-date-picker v-model="scope.row.bookingDate" type="date" placeholder="可约日期" size="small" |
||||
|
value-format="yyyy-MM-dd" style="width: 150px;" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column fixed="right" label="操作" width="60" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<i class="el-icon-delete" @click="form.bookingDates.splice(scope.$index, 1)" |
||||
|
style="font-size: 24px;color: red;cursor:pointer;"></i> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<div> |
||||
|
<el-button class="commonbutton" @click="form.bookingDates.push({ id: Math.random(), bookingDate: '' })">新增</el-button> |
||||
|
<el-button class="commonbutton" @click="btnSubmit">确定</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</el-dialog> |
||||
|
<!-- --> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import moment from "moment"; |
||||
|
import Sortable from "sortablejs"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { mapState } from "vuex"; |
||||
|
import { |
||||
|
getPagePriv, |
||||
|
checkPagePriv, |
||||
|
dddw, |
||||
|
deepCopy, |
||||
|
objCopy, |
||||
|
arrayExistObj, |
||||
|
} from "../../utlis/proFunc"; |
||||
|
|
||||
|
|
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
|
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
pagePriv: { |
||||
|
routeUrlorPageName: "commonTable", //当前页面归属路由或归属页面权限名称 |
||||
|
privs: [], // 页面权限 |
||||
|
}, |
||||
|
|
||||
|
thirdMedicalCenterBookingDate: [], // 公共表 |
||||
|
setting: false, |
||||
|
form: { |
||||
|
thirdMedicalCenterId: "", |
||||
|
bookingDates: [] |
||||
|
} |
||||
|
|
||||
|
}; |
||||
|
}, |
||||
|
computed: { |
||||
|
...mapState(["pickerOptions", "personnelUnit", "window", "dict", "dialogWin", "dataTransOpts"]), |
||||
|
|
||||
|
tableHeight() { |
||||
|
let h = this.window.pageHeight < 600 ? 600 : this.window.pageHeight |
||||
|
return h - this.window.pageHeaderHeight - this.window.cardHeaderHeight - this.window.pageMarginHeight - 360 |
||||
|
}, |
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
//获取用户当前页面的权限 |
||||
|
let userPriv = window.sessionStorage.getItem("userPriv"); |
||||
|
if (userPriv) |
||||
|
this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)); |
||||
|
|
||||
|
// 清除当前选中的分组ID |
||||
|
this.dataTransOpts.tableS.third_medical_center_booking_date.id = '' |
||||
|
|
||||
|
|
||||
|
|
||||
|
}, |
||||
|
|
||||
|
mounted() { |
||||
|
//获取初始数据(单位、适用性别) |
||||
|
this.dictInit(); |
||||
|
}, |
||||
|
methods: { |
||||
|
moment, |
||||
|
checkPagePriv, |
||||
|
dddw, |
||||
|
deepCopy, |
||||
|
|
||||
|
getList(body) { |
||||
|
// body = { |
||||
|
// "thirdMedicalCenterId": "string", |
||||
|
// "keyWord": "string" |
||||
|
// } |
||||
|
this.thirdMedicalCenterBookingDate = [] |
||||
|
if (!body.thirdMedicalCenterId) return |
||||
|
postapi('/api/app/ThirdMedicalCenter/GetThirdMedicalCenterBookingDateList', body).then(res => { |
||||
|
if (res.code > -1) { |
||||
|
this.thirdMedicalCenterBookingDate = res.data |
||||
|
} |
||||
|
}) |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
btnSubmit() { |
||||
|
let body = { |
||||
|
thirdMedicalCenterId: this.form.thirdMedicalCenterId, |
||||
|
bookingDates: [] |
||||
|
} |
||||
|
|
||||
|
this.form.bookingDates.forEach(e => { |
||||
|
if (e.bookingDate) body.bookingDates.push(e.bookingDate) |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
postapi('/api/app/ThirdMedicalCenter/CreateThirdMedicalCenterBookingDate', body) |
||||
|
.then(res => { |
||||
|
if (res.code > -1) { |
||||
|
this.setting = false |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
close_setting() { |
||||
|
this.getList({ thirdMedicalCenterId: this.dataTransOpts.tableS.third_medical_center.id }) |
||||
|
}, |
||||
|
|
||||
|
//选中颜色 |
||||
|
handleRowClassName({ row, rowIndex }) { |
||||
|
// highLightBg 为 'selected'的高亮 |
||||
|
//console.log(rowIndex, row) |
||||
|
//return row.highLightBg == 'selected' ? 'high-light-bg' : ''; |
||||
|
if (row.choosed) { |
||||
|
return "current-row"; |
||||
|
} else { |
||||
|
return ""; |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
//获取初始数据 |
||||
|
dictInit() { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
btnSetBookDate() { |
||||
|
if (!this.dataTransOpts.tableS.third_medical_center.id) { |
||||
|
this.$message.warning({ showClose: true, message: '未选择体检中心' }) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
this.form.thirdMedicalCenterId = this.dataTransOpts.tableS.third_medical_center.id |
||||
|
this.form.bookingDates = deepCopy(this.thirdMedicalCenterBookingDate) |
||||
|
|
||||
|
this.setting = true |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
//监听事件 |
||||
|
watch: { |
||||
|
// 刷新公共表数据 |
||||
|
"dataTransOpts.refresh.third_medical_center_booking_date.M": { |
||||
|
// immediate:true, |
||||
|
handler(newVal, oldVal) { |
||||
|
console.log(`watch 公共表分类 newVal:${newVal} oldVal:${oldVal} thirdMedicalCenterId: ${this.dataTransOpts.tableS.third_medical_center.id}`); |
||||
|
if (newVal != oldVal) this.getList({ thirdMedicalCenterId: this.dataTransOpts.tableS.third_medical_center.id }); |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
@import "../../assets/css/global_button.css"; |
||||
|
@import "../../assets/css/global_dialog.css"; |
||||
|
@import "../../assets/css/global_table.css"; |
||||
|
@import "../../assets/css/global_form.css"; |
||||
|
@import "../../assets/css/global_input.css"; |
||||
|
@import "../../assets/css/global.css"; |
||||
|
|
||||
|
.btnClass { |
||||
|
width: 100px; |
||||
|
margin-bottom: 5px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,178 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<el-form :model="form" label-width="80px" :rules="rules" ref="form"> |
||||
|
<!-- |
||||
|
<el-row> |
||||
|
<el-col :span="24"> |
||||
|
<el-form-item prop="id" label="编号"> |
||||
|
<el-input v-model="form.id" size="small" :disabled="editType == 'update'" /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
--> |
||||
|
<el-row> |
||||
|
<el-col :span="24"> |
||||
|
<el-form-item prop="displayName" label="体检中心"> |
||||
|
<el-input v-model="form.displayName" size="small" /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="24"> |
||||
|
<el-form-item prop="customerOrgGroupId" label="分组"> |
||||
|
<el-select v-model="form.customerOrgGroupId" placeholder="请选择" filterable style="width: 500px" size="small"> |
||||
|
<el-option v-for="item in customerOrgGroups" :key="item.id" :label="item.displayName" :value="item.id"> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</el-form> |
||||
|
<div style="display: flex;margin-top: 15px;justify-content:space-between;"> |
||||
|
<div></div> |
||||
|
<div style="display: flex;"> |
||||
|
<el-button class="commonbutton" @click="dialogWin.ThirdMedicalCenterEdit = false">关闭</el-button> |
||||
|
<!-- |
||||
|
<el-button type="success" @click="computePrice">同比折算组合项目价格</el-button> |
||||
|
--> |
||||
|
<el-button class="commonbutton" type="primary" @click="onSubmit('form')">确定</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import moment from "moment"; |
||||
|
|
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { mapState } from "vuex"; |
||||
|
import { |
||||
|
dddw, |
||||
|
deepCopy, |
||||
|
objCopy, |
||||
|
arrayExistObj, |
||||
|
} from "../../utlis/proFunc"; |
||||
|
|
||||
|
|
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
|
||||
|
}, |
||||
|
props: ["params"], |
||||
|
data() { |
||||
|
return { |
||||
|
form: { |
||||
|
id: "", |
||||
|
displayName: "", |
||||
|
customerOrgGroupId:"", |
||||
|
}, |
||||
|
editType: 'insert', // update |
||||
|
formOri: {}, //用于对比分析哪些信息更改了(主要是价格) |
||||
|
formInit: {}, //表单初始值 |
||||
|
rules: { |
||||
|
customerOrgGroupId: [{ required: true, message: "请填写分组", trigger: "blur" }], |
||||
|
displayName: [{ required: true, message: "请填写体检中心", trigger: "blur" }], |
||||
|
}, |
||||
|
customerOrgGroups:[] |
||||
|
}; |
||||
|
}, |
||||
|
computed: { |
||||
|
...mapState(["dict", "dialogWin", "dataTransOpts"]), |
||||
|
}, |
||||
|
created() { |
||||
|
this.formInit = deepCopy(this.form); |
||||
|
}, |
||||
|
mounted() { |
||||
|
// 获取初始数据(单位、适用性别) |
||||
|
this.dictInit(); |
||||
|
this.getFormData(this.params.id); |
||||
|
}, |
||||
|
methods: { |
||||
|
moment, dddw, deepCopy, |
||||
|
|
||||
|
// 获取初始数据 |
||||
|
dictInit() { |
||||
|
//字典表 |
||||
|
postapi("/api/app/CustomerOrgGroup/GetBasicList").then((res) => { |
||||
|
if (res.code != -1) { |
||||
|
this.customerOrgGroups = res.data; |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
// 生成表单数据 |
||||
|
getFormData(id) { |
||||
|
if (id) { |
||||
|
postapi('/api/app/ThirdMedicalCenter/Get', { thirdMedicalCenterId: id }) |
||||
|
.then(res => { |
||||
|
if (res.code != -1) { |
||||
|
this.formOri = deepCopy(res.data) |
||||
|
this.form = deepCopy(res.data) |
||||
|
} |
||||
|
}) |
||||
|
this.editType = 'update' |
||||
|
} else { |
||||
|
console.log('this.formInit', this.formInit) |
||||
|
this.form = deepCopy(this.formInit) |
||||
|
this.editType = 'insert' |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
onSubmit(formName) { |
||||
|
this.$refs[formName].validate((valid, fields) => { |
||||
|
if (!valid) { |
||||
|
this.$message.warning(fields[Object.keys(fields)[0]][0].message); |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
let url = '/api/app/ThirdMedicalCenter/Create' |
||||
|
let body = deepCopy(this.form); |
||||
|
body.thirdMedicalCenterId = body.id |
||||
|
|
||||
|
if (this.editType == 'update') { |
||||
|
url = '/api/app/ThirdMedicalCenter/Update' |
||||
|
} |
||||
|
|
||||
|
//新增 编辑 |
||||
|
postapi(url, body) |
||||
|
.then(res => { |
||||
|
if (res.code != -1) { |
||||
|
console.log("操作成功!"); |
||||
|
this.dataTransOpts.tableS.third_medical_center.id = res.data.id |
||||
|
this.dialogWin.ThirdMedicalCenterEdit = false; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
|
||||
|
}, |
||||
|
//监听事件 |
||||
|
watch: { |
||||
|
// 体检分组ID未切换换时 也可以强制刷新数据 |
||||
|
"dataTransOpts.refresh.third_medical_center.S": { |
||||
|
// immediate: true, |
||||
|
handler(newVal, oldVal) { |
||||
|
console.log(`watch 体检分组 newVal:${newVal} oldVal:${oldVal} this.params.id: ${this.params.id}`); |
||||
|
if(newVal != oldVal) this.getFormData(this.params.id); |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
@import "../../assets/css/global_button.css"; |
||||
|
@import "../../assets/css/global_dialog.css"; |
||||
|
@import "../../assets/css/global_table.css"; |
||||
|
@import "../../assets/css/global_form.css"; |
||||
|
@import "../../assets/css/global_input.css"; |
||||
|
@import "../../assets/css/global.css"; |
||||
|
|
||||
|
.btnClass { |
||||
|
width: 100px; |
||||
|
margin-bottom: 5px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,340 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<div> |
||||
|
<div class="contenttitle"> |
||||
|
基础资料 /<span class="contenttitleBold">第三方体检中心</span> |
||||
|
</div> |
||||
|
<!--公共表分类信息--> |
||||
|
<div style="display: flex; font-size: 14px"> |
||||
|
<div :style="'display: block;width:' + (window.pageWidth - window.pageMarginWidth - 110 - 5) + 'px;'"> |
||||
|
<el-table :data="thirdMedicalCenters" ref="thirdMedicalCenters" row-key="id" border height="340px" size="small" |
||||
|
highlight-current-row :row-class-name="handleRowClassName" @row-click="rowClick"> |
||||
|
<el-table-column type="index" label="序号" width="50" align="center" /> |
||||
|
<el-table-column label="编号" prop="id" min-width="200" align="center" /> |
||||
|
<el-table-column prop="displayName" label="第三方体检中心" min-width="150" /> |
||||
|
<el-table-column prop="customerOrgGroupId" label="分组" min-width="150"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{ dddw(customerOrgGroups,'id',scope.row.customerOrgGroupId,'displayName') }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="creatorName" label="创建者" min-width="80" align="center" /> |
||||
|
<el-table-column label="创建时间" min-width="150" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{ scope.row.creationTime ? moment(scope.row.creationTime).format("yyyy-MM-DD HH:mm:ss") : "" }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="lastModifierName" label="修改者" min-width="80" align="center" /> |
||||
|
<el-table-column label="修改时间" min-width="150" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{ scope.row.lastModificationTime ? moment(scope.row.lastModificationTime).format("yyyy-MM-DD HH:mm:ss") |
||||
|
: "" }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column label="操作" align="center"> |
||||
|
<template> |
||||
|
<el-tag class="move" style=" |
||||
|
cursor: move; |
||||
|
background-color: rgb(245, 245, 245); |
||||
|
border: none; |
||||
|
" draggable="true"> |
||||
|
<i class="el-icon-d-caret" style="width: 1rem; height: 1rem; color: rgb(113, 113, 113)"></i> |
||||
|
</el-tag> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
<!--按钮--> |
||||
|
<div style="display: block; margin-left: 5px"> |
||||
|
<div style="margin-top: 5px"> |
||||
|
<el-button class="commonbutton" @click="btnAdd('')">新增</el-button> |
||||
|
</div> |
||||
|
<div style="margin-top: 5px"> |
||||
|
<el-button class="commonbutton" @click="btnEdit">编辑</el-button> |
||||
|
</div> |
||||
|
<div style="margin-top: 5px"> |
||||
|
<el-button class="deleteButton" @click="btnDel">删除</el-button> |
||||
|
</div> |
||||
|
<div style="margin-top: 5px"> |
||||
|
<el-button class="commonbutton" @click="btnSetTopOrBottom(1)">置顶</el-button> |
||||
|
</div> |
||||
|
<div style="margin-top: 5px"> |
||||
|
<el-button class="commonbutton" @click="btnSetTopOrBottom(2)">置底</el-button> |
||||
|
</div> |
||||
|
<div style="margin-top: 5px"> |
||||
|
<el-button class="commonbutton" @click="btnSort" :disabled="!isDrag">保存排序</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<!--可预约信息 --> |
||||
|
<div> |
||||
|
<ThirdMedicalCenterBookDateList :thirdMedicalCenter="curThirdMedicalCenter" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<!-- 新增或者编辑弹框 --> |
||||
|
<el-dialog :title="dataTransOpts.tableS.third_medical_center.id ? '编辑' : '新增'" :close-on-click-modal="false" |
||||
|
:visible.sync="dialogWin.ThirdMedicalCenterEdit" width="600px" @close="close_dialogWinThirdMedicalCenterEdit"> |
||||
|
<ThirdMedicalCenterEdit :params="ThirdMedicalCenterEditParams" /> |
||||
|
</el-dialog> |
||||
|
<!-- --> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import moment from "moment"; |
||||
|
import Sortable from "sortablejs"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { mapState } from "vuex"; |
||||
|
import { |
||||
|
getPagePriv, |
||||
|
checkPagePriv, |
||||
|
dddw, |
||||
|
deepCopy, |
||||
|
objCopy, |
||||
|
arrayExistObj, |
||||
|
} from "../../utlis/proFunc"; |
||||
|
|
||||
|
import ThirdMedicalCenterBookDateList from "./ThirdMedicalCenterBookDateList.vue"; |
||||
|
import ThirdMedicalCenterEdit from "./ThirdMedicalCenterEdit.vue"; |
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
ThirdMedicalCenterBookDateList, ThirdMedicalCenterEdit |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
pagePriv: { |
||||
|
routeUrlorPageName: "thirdMedicalCenter", //当前页面归属路由或归属页面权限名称 |
||||
|
privs: [], // 页面权限 |
||||
|
}, |
||||
|
thirdMedicalCenters: [], //公共表分类 |
||||
|
|
||||
|
|
||||
|
curThirdMedicalCenter: {}, // 当前选中分组 |
||||
|
ThirdMedicalCenterEditParams: {}, //分组 新增时 用到参数 |
||||
|
|
||||
|
isDrag: false, |
||||
|
customerOrgGroups:[] |
||||
|
|
||||
|
}; |
||||
|
}, |
||||
|
computed: { |
||||
|
...mapState(["personnelUnit", "window", "dict", "dialogWin", "dataTransOpts"]), |
||||
|
}, |
||||
|
created() { |
||||
|
//获取用户当前页面的权限 |
||||
|
let userPriv = window.sessionStorage.getItem("userPriv"); |
||||
|
if (userPriv) |
||||
|
this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)); |
||||
|
|
||||
|
// 清除当前选中的分组ID |
||||
|
this.dataTransOpts.tableS.third_medical_center.id = '' |
||||
|
|
||||
|
this.rowDrop(); |
||||
|
}, |
||||
|
mounted() { |
||||
|
//获取初始数据(单位、适用性别) |
||||
|
this.dictInit(); |
||||
|
}, |
||||
|
methods: { |
||||
|
moment, |
||||
|
checkPagePriv, |
||||
|
dddw, |
||||
|
deepCopy, |
||||
|
|
||||
|
//确定排序 |
||||
|
btnSort() { |
||||
|
let result = []; |
||||
|
this.thirdMedicalCenters.forEach((item, index) => { |
||||
|
result.push({ id: item.id, displayOrder: index }); |
||||
|
}); |
||||
|
postapi("/api/app/ThirdMedicalCenter/UpdateSortMany", { |
||||
|
itemList: result, |
||||
|
}).then((res) => { |
||||
|
console.log("操作成功"); |
||||
|
this.isDrag = false; |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
//初始化Sortable组件 |
||||
|
rowDrop() { |
||||
|
this.$nextTick(() => { |
||||
|
const el = document.querySelector(".el-table__body-wrapper tbody"); |
||||
|
//console.log('el0',el) |
||||
|
const that = this; |
||||
|
Sortable.create(el, { |
||||
|
handle: ".move", |
||||
|
animation: 300, |
||||
|
//拖拽结束 |
||||
|
onEnd({ newIndex, oldIndex }) { |
||||
|
that.isDrag = true; |
||||
|
const currRow = that.thirdMedicalCenters.splice(oldIndex, 1)[0]; |
||||
|
that.thirdMedicalCenters.splice(newIndex, 0, currRow); |
||||
|
console.log("el", el); |
||||
|
}, |
||||
|
}); |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
// 置顶 置底 |
||||
|
btnSetTopOrBottom(sortType) { |
||||
|
if (!this.dataTransOpts.tableS.third_medical_center.id) { |
||||
|
this.$message.warning("请选择操作的数据"); |
||||
|
return; |
||||
|
} |
||||
|
let lfind = arrayExistObj(this.thirdMedicalCenters, "id", this.dataTransOpts.tableS.third_medical_center.id); |
||||
|
let currentRow = {}; |
||||
|
|
||||
|
// ?id=${this.dataTransOpts.tableS.third_medical_center.id}&SortType=2` |
||||
|
|
||||
|
postapi('/api/app/ThirdMedicalCenter/UpdateManySort', { thirdMedicalCenterId: this.dataTransOpts.tableS.third_medical_center.id, sortType } |
||||
|
).then((res) => { |
||||
|
console.log("操作成功"); |
||||
|
currentRow = this.thirdMedicalCenters.splice(lfind, 1)[0]; //删除并赋值 |
||||
|
if (sortType == 2) { |
||||
|
this.thirdMedicalCenters.push(currentRow); |
||||
|
} else { |
||||
|
this.thirdMedicalCenters.unshift(currentRow); |
||||
|
} |
||||
|
|
||||
|
this.$refs["thirdMedicalCenters"].setCurrentRow(currentRow); |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
//选中颜色 |
||||
|
handleRowClassName({ row, rowIndex }) { |
||||
|
// highLightBg 为 'selected'的高亮 |
||||
|
//console.log(rowIndex, row) |
||||
|
//return row.highLightBg == 'selected' ? 'high-light-bg' : ''; |
||||
|
if (row.choosed) { |
||||
|
return "current-row"; |
||||
|
} else { |
||||
|
return ""; |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
//获取初始数据 |
||||
|
dictInit() { |
||||
|
//字典表 |
||||
|
postapi("/api/app/CustomerOrgGroup/GetBasicList").then((res) => { |
||||
|
if (res.code != -1) { |
||||
|
this.customerOrgGroups = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
postapi("/api/app/ThirdMedicalCenter/GetList").then((res) => { |
||||
|
if (res.code != -1) { |
||||
|
this.thirdMedicalCenters = res.data; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
|
||||
|
//点击分组 |
||||
|
rowClick(row) { |
||||
|
this.dataTransOpts.tableS.third_medical_center.id = row.id |
||||
|
this.curThirdMedicalCenter = row; |
||||
|
this.dataTransOpts.refresh.third_medical_center_booking_date.M++; |
||||
|
}, |
||||
|
|
||||
|
// 新增(编辑调用时,传入id值) 弹框 |
||||
|
btnAdd(id) { |
||||
|
if (!id) this.dataTransOpts.tableS.third_medical_center.id = '' |
||||
|
if (!id) this.dataTransOpts.refresh.common_table.M++; //新增则清掉已选组合项目 |
||||
|
this.ThirdMedicalCenterEditParams = { |
||||
|
id |
||||
|
} |
||||
|
this.dataTransOpts.refresh.third_medical_center.S++ |
||||
|
this.dialogWin.ThirdMedicalCenterEdit = true; |
||||
|
}, |
||||
|
|
||||
|
//编辑弹框 |
||||
|
btnEdit() { |
||||
|
if (!this.dataTransOpts.tableS.third_medical_center.id) { |
||||
|
this.$message.warning("请先选择分类记录"); |
||||
|
return; |
||||
|
} |
||||
|
this.btnAdd(this.dataTransOpts.tableS.third_medical_center.id) |
||||
|
}, |
||||
|
|
||||
|
//删除 |
||||
|
btnDel() { |
||||
|
if (!this.dataTransOpts.tableS.third_medical_center.id) { |
||||
|
this.$message.warning("请选择需要操作的数据"); |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", { |
||||
|
confirmButtonText: "是", |
||||
|
cancelButtonText: " 否 ", |
||||
|
type: "warning", |
||||
|
}) |
||||
|
.then(() => { |
||||
|
return postapi('/api/app/ThirdMedicalCenter/Delete', { thirdMedicalCenterId: this.dataTransOpts.tableS.third_medical_center.id }); |
||||
|
}) |
||||
|
.then((res) => { |
||||
|
if (res.code != -1) { |
||||
|
console.log("删除成功"); |
||||
|
let lfind = arrayExistObj(this.thirdMedicalCenters, "id", this.dataTransOpts.tableS.third_medical_center.id); |
||||
|
if (lfind > -1) this.thirdMedicalCenters.splice(lfind, 1); |
||||
|
this.dataTransOpts.tableS.third_medical_center.id = '' |
||||
|
this.dataTransOpts.refresh.common_table.M++ |
||||
|
} |
||||
|
}) |
||||
|
.catch((err) => { |
||||
|
if (err == "cancel") { |
||||
|
console.log("已取消删除"); |
||||
|
// this.$message.info("已取消删除"); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
// 关闭 分组 新增/编辑 |
||||
|
close_dialogWinThirdMedicalCenterEdit() { |
||||
|
let id = this.dataTransOpts.tableS.third_medical_center.id |
||||
|
if (id) { |
||||
|
// 点编辑 或 新增有提交 |
||||
|
postapi('/api/app/ThirdMedicalCenter/Get', { thirdMedicalCenterId: id }) |
||||
|
.then(res => { |
||||
|
if (res.code > -1) { |
||||
|
let lfind = arrayExistObj(this.thirdMedicalCenters, 'id', id) |
||||
|
if (lfind > -1) { |
||||
|
objCopy(res.data, this.thirdMedicalCenters[lfind]) |
||||
|
} else { |
||||
|
lfind = this.thirdMedicalCenters.length |
||||
|
this.thirdMedicalCenters.push(res.data) |
||||
|
} |
||||
|
|
||||
|
// 选中当前操作的列 |
||||
|
this.$refs["thirdMedicalCenters"].setCurrentRow(); //清除选择 |
||||
|
this.$refs["thirdMedicalCenters"].setCurrentRow(this.thirdMedicalCenters[lfind]); |
||||
|
|
||||
|
// 更新 common_table 参数 |
||||
|
this.curThirdMedicalCenter = deepCopy(res.data); |
||||
|
} |
||||
|
}) |
||||
|
} else { |
||||
|
// 点 新增 但未提交 |
||||
|
this.dataTransOpts.tableS.third_medical_center.id = this.curThirdMedicalCenter.id || '' |
||||
|
} |
||||
|
|
||||
|
this.dataTransOpts.refresh.common_table.M++; |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
@import "../../assets/css/global_button.css"; |
||||
|
@import "../../assets/css/global_dialog.css"; |
||||
|
@import "../../assets/css/global_table.css"; |
||||
|
@import "../../assets/css/global_form.css"; |
||||
|
@import "../../assets/css/global_input.css"; |
||||
|
@import "../../assets/css/global.css"; |
||||
|
|
||||
|
.btnClass { |
||||
|
width: 100px; |
||||
|
margin-bottom: 5px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,497 @@ |
|||||
|
<template> |
||||
|
<div style="margin-top: -15px;"> |
||||
|
<div style="display: flex;justify-content: space-between;"> |
||||
|
<div |
||||
|
style="display: flex;flex-wrap: wrap;background-color: #fff;border-radius: 8px;align-items: center;padding: 2px;width:700px;"> |
||||
|
<div class="query"> |
||||
|
<!-- |
||||
|
<el-select v-model="query.thirdInterfaceId" placeholder="请选择" style="width: 100px" size="small"> |
||||
|
<el-option v-for="item in thirdInterfaces" :key="item.id" :label="item.displayName" :value="item.id" /> |
||||
|
</el-select> |
||||
|
--> |
||||
|
<el-date-picker v-model="query.startDate" type="date" placeholder="起始日期" size="small" |
||||
|
style="width:90px;" value-format="yyyy-MM-dd" :picker-options="pickerOptions" /> |
||||
|
<span class="spanClass">至</span> |
||||
|
<el-date-picker v-model="query.endDate" type="date" placeholder="截止日期" size="small" |
||||
|
style="width:90px;" value-format="yyyy-MM-dd" :picker-options="pickerOptions" /> |
||||
|
</div> |
||||
|
<div class="query"> |
||||
|
<span class="spanClass">检索关键字</span> |
||||
|
<el-input placeholder="姓名、电话、身份证号" v-model="query.keyWord" size="small" clearable style="width: 240px" /> |
||||
|
</div> |
||||
|
<div class="query"> |
||||
|
<span class="spanClass">状态</span> |
||||
|
<el-select v-model="query.medicalStatus" placeholder="请选择" clearable style="width: 80px" size="small"> |
||||
|
<el-option v-for="item in localDict.medicalStatus" :key="item.value" :label="item.label" :value="item.value"> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div style="margin-top: -38px;width: 80px;"> |
||||
|
<div> |
||||
|
<el-button @click="peopleIcCard" class="commonbutton" style="width:80px;font-size: 14px;">读身份证</el-button> |
||||
|
</div> |
||||
|
<div> |
||||
|
<el-button class="commonbutton" @click="btnQuery" style="margin-top: 6px; width:80px;">查询</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div> |
||||
|
<el-table :data="tableData" border style="width: 100%" row-key="id" height="430" highlight-current-row |
||||
|
size="small" @row-click="rowClick" ref="webBooking"> |
||||
|
<el-table-column label="姓名" width="80" prop="patientName" align="center" /> |
||||
|
<el-table-column label="身份证号" width="150" prop="idNo" align="center" /> |
||||
|
<el-table-column label="预约时间" width="150" prop="bookingDate" align="center" /> |
||||
|
<el-table-column label="手机号" width="130" prop="phone" align="center" /> |
||||
|
<el-table-column label="性别" width="40" prop="sexId" align="center" /> |
||||
|
<el-table-column label="年龄" width="40" prop="age" align="center" /> |
||||
|
<el-table-column label="单位" width="150" prop="customerOrgId" align="center" /> |
||||
|
<el-table-column label="单位体检次数" width="150" prop="customerOrgRegisterId" align="center" /> |
||||
|
<el-table-column label="分组/套餐" width="120" prop="customerOrgGroupId" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<div>{{ scope.row.customerOrgGroupId ? scope.row.customerOrgGroupId : scope.row.medicalPackageName }} |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column label="预约编号" width="120" prop="thirdBookingId" align="center" /> |
||||
|
<el-table-column label="状态" width="50" prop="medicalStatus" align="center" > |
||||
|
<template slot-scope="scope"> |
||||
|
{{ dddw(localDict.medicalStatus,'value',scope.row.medicalStatus,'label') }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
|
||||
|
</div> |
||||
|
<div style="margin-top: 10px; display: flex;justify-content: space-between;"> |
||||
|
<div style="margin: -8px 0 0 0; font-size: 12px;"> |
||||
|
{{ asbDesc }} |
||||
|
</div> |
||||
|
<div> |
||||
|
<el-button v-if="false" @click="btnTest">测试</el-button> |
||||
|
</div> |
||||
|
<div> |
||||
|
<el-button class="commonbutton" @click="btnOk">确定</el-button> |
||||
|
<el-button class="commonbutton" @click="btnClose">关闭</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import { mapState } from "vuex"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { dddw, deepCopy } from "../../utlis/proFunc"; |
||||
|
import moment from "moment"; |
||||
|
|
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
|
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
thirdInterfaces: [], |
||||
|
tableData: [], |
||||
|
currRowData: {}, |
||||
|
tableDataDetails: [], |
||||
|
query: { |
||||
|
thirdInterfaceId: "", |
||||
|
idNo: "", |
||||
|
mobilePhone: "", |
||||
|
appointStartDate: "", |
||||
|
appointStopDate: "", |
||||
|
completeFlag: "0", |
||||
|
keyWord:'', |
||||
|
startDate:'', |
||||
|
endDate:'', |
||||
|
medicalStatus:'0' |
||||
|
}, |
||||
|
asbDesc: '', //所选套餐描述 |
||||
|
localDict:{ |
||||
|
medicalStatus:[ |
||||
|
{label:'未开始',value:'0'}, // 0未开始 1已登记 2已完成 |
||||
|
{label:'已登记',value:'1'}, |
||||
|
{label:'已完成',value:'2'}, |
||||
|
] |
||||
|
} |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
let today = moment(new Date()).format("yyyy-MM-DD") |
||||
|
this.query.endDate = today |
||||
|
this.query.startDate = today |
||||
|
}, |
||||
|
|
||||
|
updated() { |
||||
|
// this.$nextTick(() => { |
||||
|
// this.$refs['webBookingDetaills'].doLayout() |
||||
|
// }) |
||||
|
}, |
||||
|
//挂载完成 |
||||
|
mounted() { |
||||
|
//回车替代查询 |
||||
|
this.enterToQuery() |
||||
|
|
||||
|
this.funMounted() |
||||
|
}, |
||||
|
|
||||
|
computed: { |
||||
|
...mapState([ |
||||
|
"pickerOptions", |
||||
|
"window", |
||||
|
"dict", |
||||
|
"dataTransOpts", |
||||
|
"dialogWin" |
||||
|
]), |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
dddw, |
||||
|
funMounted() { |
||||
|
this.dictInit() |
||||
|
// .then(res => { |
||||
|
// //this.btnQuery() |
||||
|
// }) |
||||
|
}, |
||||
|
|
||||
|
//数据初始化 |
||||
|
dictInit() { |
||||
|
|
||||
|
// return new Promise((resolve, reject) => { |
||||
|
// let curDate = moment(new Date()).format('YYYY-MM-DD') |
||||
|
// this.query.appointStartDate = curDate |
||||
|
// this.query.appointStopDate = moment(Date.now() + 3600 * 1000 * 24 * 7).format('YYYY-MM-DD') |
||||
|
// this.query.idNo = '' |
||||
|
// this.query.mobilePhone = '' |
||||
|
// this.tableData = [] |
||||
|
// this.tableDataDetails = [] |
||||
|
|
||||
|
// // 获取接口列表,传07 |
||||
|
// postapi("/api/app/ThirdInterface/GetListByThirdInterfaceTypeAsync", { thirdInterfaceType: "07" }) |
||||
|
// .then(res => { |
||||
|
// if (res.code > -1) { |
||||
|
// this.thirdInterfaces = res.data |
||||
|
// if (res.data && Array.isArray(res.data) && res.data.length > 0) this.query.thirdInterfaceId = res.data[0].id |
||||
|
// resolve(res) |
||||
|
// } else { |
||||
|
// reject(res.message) |
||||
|
// } |
||||
|
// }) |
||||
|
// .catch(err => { |
||||
|
// reject(err) |
||||
|
// }) |
||||
|
// }) |
||||
|
}, |
||||
|
|
||||
|
//读取身份证信息 |
||||
|
peopleIcCard() { |
||||
|
if (!this.$peisAPI) { |
||||
|
this.$message.info({ showClose: true, message: "此功能,需要在壳客户端才可运行!" }) |
||||
|
return |
||||
|
} |
||||
|
this.$peisAPI.peopleIcCard().then(res => { |
||||
|
// console.log('peopleIcCard', res) |
||||
|
let lres = JSON.parse(res) |
||||
|
if (lres.code >= -1) { |
||||
|
let idNos = parsIcCardtoLocal(lres.data, this.dict.sex, this.dict.nation) |
||||
|
this.query.idNo = idNos.IDCode |
||||
|
this.query.keyWord = idNos.IDCode |
||||
|
// this.form.patientName = idNos.Name |
||||
|
// this.form.birthDate = idNos.birthDate |
||||
|
// this.form.sexId = idNos.sexId |
||||
|
// this.form.age = idNos.age |
||||
|
// this.form.nationId = idNos.nationId |
||||
|
// this.form.idNo = idNos.IDCode |
||||
|
// this.form.address = idNos.Address |
||||
|
// this.peoplePhoto = 'data:image/bmp;base64,' + idNos.Photo |
||||
|
// this.patientRegister.photo = 'data:image/bmp;base64,' + idNos.Photo |
||||
|
this.btnQuery() |
||||
|
|
||||
|
} else { |
||||
|
this.$message.error({ showClose: true, message: `${lres.message}` }) |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
// 查询 |
||||
|
btnQuery() { |
||||
|
// if (!(this.query.appointStartDate && this.query.appointStopDate)) { |
||||
|
// this.$message.error({ showClose: true, message: "必须选择日期段!" }) |
||||
|
// return |
||||
|
// } |
||||
|
// if (!(this.query.idNo || this.query.mobilePhone)) { |
||||
|
// this.$message.error({ showClose: true, message: "手机号或身份证号必须填写一项!" }) |
||||
|
// return |
||||
|
// } |
||||
|
if (!(this.query.startDate && this.query.endDate)) { |
||||
|
this.$message.error({ showClose: true, message: "必须选择日期段!" }) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
this.currRowData = {} |
||||
|
this.tableData = [] |
||||
|
this.tableDataDetails = [] |
||||
|
|
||||
|
let body = deepCopy(this.query) |
||||
|
|
||||
|
// body.appointStartDate = this.query.appointStartDate + " 00:00:00" |
||||
|
// body.appointStopDate = this.query.appointStopDate + " 23:59:59" |
||||
|
body.startDate = this.query.startDate + " 00:00:00" |
||||
|
body.endDate = this.query.endDate + " 23:59:59" |
||||
|
|
||||
|
postapi('/api/app/ThirdBooking/GetThirdBookingList', body) |
||||
|
.then(res => { |
||||
|
if (res.code > -1) { |
||||
|
this.tableData = res.data |
||||
|
if (res.data && Array.isArray(res.data) && res.data.length == 1) { |
||||
|
this.rowClick(res.data[0]) |
||||
|
this.$refs['webBooking'].setCurrentRow(res.data[0]); |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
btnTest() { |
||||
|
console.log('this.thirdInterfaces', this.thirdInterfaces) |
||||
|
console.log('this.tableData', this.tableData) |
||||
|
console.log('this.currRowData', this.currRowData) |
||||
|
console.log('this.tableDataDetails', this.tableDataDetails) |
||||
|
console.log('this.query', this.query) |
||||
|
}, |
||||
|
|
||||
|
rowClick(row) { |
||||
|
this.currRowData = row |
||||
|
// this.tableDataDetails = [] |
||||
|
// postapi('/api/app/AppointPatientRegister/GetAppointRegisterAsbitemListById', { |
||||
|
// thirdInterFaceId: this.query.thirdInterfaceId, |
||||
|
// appointPatientRegisterId: row.appointPatientRegisterId |
||||
|
// }).then(res => { |
||||
|
// if (res.code > -1) { |
||||
|
|
||||
|
// res.data.forEach(e => { |
||||
|
// e.discount = e.standardPrice == 0 ? 100: Math.floor(e.chargePrice * 10000/e.standardPrice)/100 |
||||
|
// if(!e.isBelongGroupPackage){ |
||||
|
// e.isBelongGroupPackage = e.isInMedicalPackage |
||||
|
// } |
||||
|
// // e.standTotal = e.amount * e.standardPrice |
||||
|
// e.total = e.amount * e.chargePrice |
||||
|
// }); |
||||
|
|
||||
|
// this.tableDataDetails = res.data |
||||
|
// } |
||||
|
// }) |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
// 点击确定 |
||||
|
btnOk() { |
||||
|
// if (!this.currRowData.appointPatientRegisterId) { |
||||
|
// this.$message.warning({ showClose: true, message: "请选择预约的记录" }) |
||||
|
// return |
||||
|
// } |
||||
|
if (!this.currRowData.thirdBookingId) { |
||||
|
this.$message.warning({ showClose: true, message: "请选择预约的记录" }) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
this.dataTransOpts.tableS.appoint_patient_register = this.dataTrans(this.currRowData) |
||||
|
// this.dataTransOpts.tableM.appoint_register_asbitem = deepCopy(this.tableDataDetails) |
||||
|
this.dialogWin.WebBookingMzak = false |
||||
|
}, |
||||
|
|
||||
|
dataTrans(curRow){ |
||||
|
// { // 标准数据 |
||||
|
// "appointPatientRegisterId": "string", |
||||
|
// "personId": "string", |
||||
|
// "personName": "string", |
||||
|
// "idNo": "string", |
||||
|
// "mobileTelephone": "string", |
||||
|
// "sexId": "string", |
||||
|
// "sexName": "string", |
||||
|
// "maritalStatusId": "string", |
||||
|
// "maritalStatusName": "string", |
||||
|
// "customerOrgId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
||||
|
// "customerOrgName": "string", |
||||
|
// "childCustomerOrgName": "string", |
||||
|
// "customerOrgGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
||||
|
// "customerOrgGroupName": "string", |
||||
|
// "medicalPackageId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
||||
|
// "medicalPackageName": "string", |
||||
|
// "completeFlag": "string", |
||||
|
// "appointDate": "2024-09-27T08:53:32.520Z", |
||||
|
// "remark": "string", |
||||
|
// "medicalCenterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
||||
|
// "customerOrgRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
||||
|
// "pregnantFlag": "string", |
||||
|
// "pregnantFlagName": "string", |
||||
|
// "height": 0, |
||||
|
// "weight": 0 |
||||
|
// } |
||||
|
|
||||
|
// { // 人寿数据 |
||||
|
// "thirdBookingId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
||||
|
// "patientName": "string", |
||||
|
// "customerOrgGroupId": "string", |
||||
|
// "idNo": "string", |
||||
|
// "sexId": "string", |
||||
|
// "age": 0, |
||||
|
// "bookingDate": "2024-09-27T08:53:32.306Z", |
||||
|
// "phone": "string", |
||||
|
// "medicalStatus": "string", |
||||
|
// "customerOrgRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
||||
|
// "customerOrgId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" |
||||
|
// } |
||||
|
let ret = Object.assign({},curRow,{ |
||||
|
appointPatientRegisterId:curRow.thirdBookingId, |
||||
|
mobileTelephone:curRow.phone, |
||||
|
personName:curRow.patientName |
||||
|
}) |
||||
|
return ret |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
// 点击关闭 |
||||
|
btnClose() { |
||||
|
this.dataTransOpts.tableS.appoint_patient_register = {} |
||||
|
this.dataTransOpts.tableM.appoint_register_asbitem = [] |
||||
|
this.dialogWin.WebBookingMzak = false |
||||
|
}, |
||||
|
|
||||
|
//自定义计算列 |
||||
|
getSummaries(param) { |
||||
|
const { columns, data } = param; |
||||
|
const sumCol = [6] //需合计的列 |
||||
|
const sums = []; |
||||
|
|
||||
|
let count = this.tableDataDetails.length |
||||
|
let pack = this.tableDataDetails.filter(e => { return e.isBelongGroupPackage == 'Y' }).length |
||||
|
|
||||
|
this.asbDesc = `共选 ${count} 个项目,其中套餐/分组 ${pack} 个,加做 ${count - pack} 个` |
||||
|
|
||||
|
columns.forEach((column, index) => { |
||||
|
//console.log('column, index,data',column, index,data) |
||||
|
//显示合计列 |
||||
|
if (index == 1) { |
||||
|
sums[index] = `合计`; |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
//不合计的列 |
||||
|
if (sumCol.indexOf(index) == -1) { |
||||
|
sums[index] = ''; |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
sums[index] = 0 |
||||
|
data.forEach(e => { |
||||
|
if (!isNaN(e[column.property])) { |
||||
|
if (index == 1) { |
||||
|
sums[index] += e[column.property] * e['amount'] |
||||
|
} else { |
||||
|
sums[index] += e[column.property] |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
sums[index] = Math.round(sums[index] * 100) / 100 //+ ' 元'; |
||||
|
|
||||
|
// const values = data.map(item => Number(item[column.property])); |
||||
|
// if (!values.every(value => isNaN(value))) { |
||||
|
// sums[index] = values.reduce((prev, curr) => { |
||||
|
// const value = Number(curr); |
||||
|
// if (!isNaN(value)) { |
||||
|
// //return prev + curr; //原始 |
||||
|
// return prev + curr; //改造 |
||||
|
// } else { |
||||
|
// return prev; |
||||
|
// } |
||||
|
// }, 0); |
||||
|
// sums[index] = sums[index].toFixed(2) + ' 元'; |
||||
|
// } else { |
||||
|
// sums[index] = 'N/A'; |
||||
|
// } |
||||
|
|
||||
|
}); |
||||
|
this.totalStand = sums[1]; |
||||
|
//console.log('this.totalFoucs/this.discountFoucs',this.totalFoucs,this.discountFoucs) |
||||
|
if (!this.totalFoucs) this.total = sums[5]; |
||||
|
if (!this.discountFoucs) this.discount = Math.round(this.total * 10000 / this.totalStand) / 100; |
||||
|
return sums; |
||||
|
}, |
||||
|
|
||||
|
//回车替代查询 |
||||
|
enterToQuery() { |
||||
|
// console.log('enterToTab'); |
||||
|
this.$nextTick(() => { |
||||
|
let inputs = document.querySelectorAll(["input"]); //用数组可以读取多个标签的元素 //.inline-input |
||||
|
|
||||
|
// 为每个输入框添加键盘事件监听器 |
||||
|
inputs.forEach((input, i) => { |
||||
|
// console.log('input',input); |
||||
|
input.addEventListener('keydown', (event) => { |
||||
|
if (event.keyCode === 13) { |
||||
|
// 阻止回车键的默认行为(换行) |
||||
|
event.preventDefault(); |
||||
|
|
||||
|
// 如果按下的是回车查询 |
||||
|
// console.log(input.getAttribute('placeholder'),input.value) |
||||
|
let placeholder = input.getAttribute('placeholder') |
||||
|
switch (placeholder) { |
||||
|
case '预约手机号': |
||||
|
case '身份证号': |
||||
|
case '姓名、电话、身份证号': |
||||
|
this.btnQuery() |
||||
|
input.select() |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
input.addEventListener('click', (event) => { |
||||
|
let placeholder = input.getAttribute('placeholder') |
||||
|
switch (placeholder) { |
||||
|
case '预约手机号': |
||||
|
case '身份证号': |
||||
|
case '姓名、电话、身份证号': |
||||
|
input.select() |
||||
|
break; |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
//监听事件() |
||||
|
watch: { |
||||
|
"dataTransOpts.plus.WebBookingMzak": { |
||||
|
// immediate:true, |
||||
|
handler(newVal, oldVal) { |
||||
|
console.log(`watch dataTransOpts.plus.WebBookingMzak newVal: ${newVal}, oldVal: ${oldVal} `); |
||||
|
if (newVal != oldVal) this.funMounted() |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
@import '../../assets/css/global_card.css'; |
||||
|
@import '../../assets/css/global_input.css'; |
||||
|
@import '../../assets/css/global_table.css'; |
||||
|
@import '../../assets/css/global.css'; |
||||
|
|
||||
|
.query { |
||||
|
margin-right: 10px; |
||||
|
font-size: 14px; |
||||
|
color: #232748; |
||||
|
font-weight: 400; |
||||
|
font-family: "NotoSansSC-Regular"; |
||||
|
} |
||||
|
|
||||
|
.spanClass { |
||||
|
font-size: 14px; |
||||
|
padding: 0 2px 0 0; |
||||
|
} |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue