pengjun 2 years ago
parent
commit
9ba4344d50
  1. 6
      src/components/patientRegister/LisRequest.vue
  2. 8
      src/components/patientRegister/MergeAsbitem.vue
  3. 57
      src/components/patientRegister/PatientRegisterEdit.vue
  4. 134
      src/components/patientRegister/PatientRegisterEditItemBatch.vue
  5. 2
      src/components/patientRegister/PatientRegisterItem.vue
  6. 176
      src/components/patientRegister/PatientRegisterList.vue
  7. 14
      src/components/patientRegister/patientRegisterAsbItem.vue
  8. 3
      src/store/index.js

6
src/components/patientRegister/LisRequest.vue

@ -25,13 +25,13 @@
<!-- 按钮区域 --> <!-- 按钮区域 -->
<div style="display: flex; margin-top: 30px; margin-left: 280px"> <div style="display: flex; margin-top: 30px; margin-left: 280px">
<div style="margin-left: 10px"> <div style="margin-left: 10px">
<el-button type="primary" @click="submit" style="width:80px;">确定</el-button>
<el-button class="commonbutton" type="primary" @click="submit" style="width:80px;">确定</el-button>
</div> </div>
<div style="margin-left: 10px"> <div style="margin-left: 10px">
<el-button type="success" @click="lisPrint('0002', false)" style="width:80px;">条码打印</el-button>
<el-button class="commonbutton" type="success" @click="lisPrint('0002', false)" style="width:80px;">条码打印</el-button>
</div> </div>
<div style="margin-left: 10px"> <div style="margin-left: 10px">
<el-button type="danger" @click="patientRegister.lisRequestVisble = false" style="width:80px;">关闭</el-button>
<el-button class="commonbutton" type="danger" @click="patientRegister.lisRequestVisble = false" style="width:80px;">关闭</el-button>
</div> </div>
</div> </div>
</div> </div>

8
src/components/patientRegister/MergeAsbitem.vue

@ -11,7 +11,7 @@
<el-table :data="tableData" border style="width: 100%" row-key="id" height="300" highlight-current-row size="small" <el-table :data="tableData" border style="width: 100%" row-key="id" height="300" highlight-current-row size="small"
@selection-change="handleSelectionChange" :span-method="spanMethod" ref="tableData" @selection-change="handleSelectionChange" :span-method="spanMethod" ref="tableData"
:row-style="{ height: '30px' }"> :row-style="{ height: '30px' }">
<el-table-column type="selection" :selectable="selectable" />
<el-table-column type="selection" :selectable="selectable" align="center" />
<el-table-column label="项目类别" width="120" prop="itemTypeName" /> <el-table-column label="项目类别" width="120" prop="itemTypeName" />
<el-table-column label="组合项目" width="140" prop="asbitemName" /> <el-table-column label="组合项目" width="140" prop="asbitemName" />
<!-- isItemResultMerger 项目是否可以合并 --> <!-- isItemResultMerger 项目是否可以合并 -->
@ -31,13 +31,13 @@
<!-- 按钮区域 --> <!-- 按钮区域 -->
<div style="display: flex; margin-top: 30px; margin-left: 280px"> <div style="display: flex; margin-top: 30px; margin-left: 280px">
<div style="margin-left: 10px"> <div style="margin-left: 10px">
<el-button type="primary" @click="mergeSubmit" style="width:80px;">合并项目</el-button>
<el-button class="commonbutton" type="primary" @click="mergeSubmit" style="width:80px;">合并项目</el-button>
</div> </div>
<div style="margin-left: 10px"> <div style="margin-left: 10px">
<el-button type="info" @click="unMergeSubmit" style="width:80px;">取消合并</el-button>
<el-button class="commonbutton" type="info" @click="unMergeSubmit" style="width:80px;">取消合并</el-button>
</div> </div>
<div style="margin-left: 10px"> <div style="margin-left: 10px">
<el-button type="danger" @click="patientRegister.mergeAsbitemVisble = false" style="width:80px;">关闭</el-button>
<el-button class="commonbutton" type="danger" @click="patientRegister.mergeAsbitemVisble = false" style="width:80px;">关闭</el-button>
</div> </div>
</div> </div>
</div> </div>

57
src/components/patientRegister/PatientRegisterEdit.vue

@ -1,5 +1,6 @@
<template> <template>
<div> <div>
<!--组件主体-->
<div style="display: flex"> <div style="display: flex">
<div :style="'width:' + (window.pageWidth - 110 - 20) + 'px;'"> <div :style="'width:' + (window.pageWidth - 110 - 20) + 'px;'">
<!--查询条件--> <!--查询条件-->
@ -12,7 +13,8 @@
<el-col :span="5"> <el-col :span="5">
<el-form-item label="单位名称" prop="customerOrgId"> <el-form-item label="单位名称" prop="customerOrgId">
<el-cascader v-model="form.customerOrgId" :options="patientRegister.customerOrgTreeAll" <el-cascader v-model="form.customerOrgId" :options="patientRegister.customerOrgTreeAll"
:style="'width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'" filterable popper-class="example"
:style="'width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'" filterable
popper-class="example"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" :props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }"
:disabled="(form.completeFlag == '3' || isDoctor != '1') ? true : false" size="small"> :disabled="(form.completeFlag == '3' || isDoctor != '1') ? true : false" size="small">
</el-cascader> </el-cascader>
@ -48,7 +50,8 @@
<el-row> <el-row>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="姓名" prop="patientName"> <el-form-item label="姓名" prop="patientName">
<el-input id="patientName" v-model="form.patientName" @change="Query(form.patientName)" size="small" autocomplete="off"></el-input>
<el-input id="patientName" v-model="form.patientName" @change="Query(form.patientName)" size="small"
autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
@ -62,9 +65,9 @@
<input type="date" v-model="form.birthDate" size="small" <input type="date" v-model="form.birthDate" size="small"
:style="'border-radius: 4px;border: 1px solid #DCDFE6;height: 32px;line-height: 32px;padding-left: 2px;width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'"/> :style="'border-radius: 4px;border: 1px solid #DCDFE6;height: 32px;line-height: 32px;padding-left: 2px;width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'"/>
--> -->
<el-date-picker v-model="form.birthDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="出生日期"
:style="'width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'" @change="changeBirthDate"
prefix-icon="" size="small"/>
<el-date-picker v-model="form.birthDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="出生日期" :style="'width:' + Math.floor((window.pageWidth - 510) / 4.8) + 'px;'"
@change="changeBirthDate" prefix-icon="" size="small" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
@ -133,7 +136,8 @@
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
<el-form-item label="性激素期" prop="sexHormoneTermId"> <el-form-item label="性激素期" prop="sexHormoneTermId">
<el-select v-model="form.sexHormoneTermId" placeholder="请选择" filterable clearable size="small" :disabled="isComplete">
<el-select v-model="form.sexHormoneTermId" placeholder="请选择" filterable clearable size="small"
:disabled="isComplete">
<el-option v-for="item in dict.sexHormoneTerm" :key="item.id" :label="item.displayName" <el-option v-for="item in dict.sexHormoneTerm" :key="item.id" :label="item.displayName"
:value="item.id"> :value="item.id">
</el-option> </el-option>
@ -202,7 +206,8 @@
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="单位体检次数" prop="isVip" label-width="110px"> <el-form-item label="单位体检次数" prop="isVip" label-width="110px">
<el-select :class="form.customerOrgId == dict.personOrgId ? '':'enterToTab'" v-model="form.customerOrgRegisterId" placeholder="次数" size="small"
<el-select :class="form.customerOrgId == dict.personOrgId ? '' : 'enterToTab'"
v-model="form.customerOrgRegisterId" placeholder="次数" size="small"
:disabled="form.customerOrgId == dict.personOrgId" :disabled="form.customerOrgId == dict.personOrgId"
:style="'width:' + Math.floor((window.pageWidth - 654) / 4.8) + 'px;'" @change="changeMedicalTimes" :style="'width:' + Math.floor((window.pageWidth - 654) / 4.8) + 'px;'" @change="changeMedicalTimes"
value-key="id"> value-key="id">
@ -284,7 +289,8 @@
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
<el-form-item label="状态" prop="completeFlag" label-width="50px"> <el-form-item label="状态" prop="completeFlag" label-width="50px">
<el-select v-model="form.completeFlag" placeholder="请选择" :disabled="(form.completeFlag == '2' || form.completeFlag == '3') ? true:false" size="small">
<el-select v-model="form.completeFlag" placeholder="请选择"
:disabled="(form.completeFlag == '2' || form.completeFlag == '3') ? true : false" size="small">
<div v-if="form.completeFlag == '2' || form.completeFlag == '3'"> <div v-if="form.completeFlag == '2' || form.completeFlag == '3'">
<el-option v-for="item in dict.completeFlag" :key="item.id" :label="item.displayName" <el-option v-for="item in dict.completeFlag" :key="item.id" :label="item.displayName"
:value="item.id"> :value="item.id">
@ -337,7 +343,8 @@
</div> </div>
<!--人员登记组合项目明细 register_asbitem--> <!--人员登记组合项目明细 register_asbitem-->
<div> <div>
<PatientRegisterItem :prForm="form" :prAsbOpraOpts="prAsbOpraOpts" :triggerHeadSave="triggerHeadSave" :refreshFormId="refreshFormId"/>
<PatientRegisterItem :prForm="form" :prAsbOpraOpts="prAsbOpraOpts" :triggerHeadSave="triggerHeadSave"
:refreshFormId="refreshFormId" />
</div> </div>
</div> </div>
<div style="margin-left: 10px;"> <div style="margin-left: 10px;">
@ -387,11 +394,14 @@
</div> </div>
</div> </div>
<!--组件弹窗-->
<div>
<!-- 人员档案列表 --> <!-- 人员档案列表 -->
<el-dialog title="人员档案列表" :visible.sync="dialogVisible" width="800px" :show-close="false" :close-on-click-modal="false"
:append-to-body="true">
<el-dialog title="人员档案列表" :visible.sync="dialogVisible" width="800px" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
<el-table :data="patientList" border width="800" height="480" row-key="id" size="small" <el-table :data="patientList" border width="800" height="480" row-key="id" size="small"
class="el-table__body-wrapper tbody" highlight-current-row @row-click="rowick" @row-dblclick="patientDblclick" ref="patientList">
class="el-table__body-wrapper tbody" highlight-current-row @row-click="rowick" @row-dblclick="patientDblclick"
ref="patientList">
<el-table-column type="index" width="30" /> <el-table-column type="index" width="30" />
<el-table-column prop="patientNo" label="档案号" /> <el-table-column prop="patientNo" label="档案号" />
<el-table-column prop="lastTime" label="末次体检" width="100"> <el-table-column prop="lastTime" label="末次体检" width="100">
@ -436,8 +446,8 @@
<el-table-column prop="mobileTelephone" label="手机号" /> <el-table-column prop="mobileTelephone" label="手机号" />
</el-table> </el-table>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false" style="width:90px;">取消</el-button>
<el-button type="primary" @click="choosePatient" style="width:90px;">确定</el-button>
<el-button class="commonbutton" @click="dialogVisible = false" style="width:90px;">取消</el-button>
<el-button class="commonbutton" type="primary" @click="choosePatient" style="width:90px;">确定</el-button>
</span> </span>
</el-dialog> </el-dialog>
@ -460,20 +470,25 @@
</el-dialog> </el-dialog>
<!-- 收费 --> <!-- 收费 -->
<el-dialog title="" :visible.sync="dialogWin.charge" :close-on-click-modal="false"
:append-to-body="true" fullscreen @close="closeDialogCharge">
<el-dialog title="" :visible.sync="dialogWin.charge" :close-on-click-modal="false" :append-to-body="true" fullscreen
@close="closeDialogCharge">
<div style="margin-top: -30px;"> <div style="margin-top: -30px;">
<Charge :patientRegisterNo="chargePatientRegisterNo" /> <Charge :patientRegisterNo="chargePatientRegisterNo" />
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</div>
</template> </template>
<script> <script>
import moment from "moment"; import moment from "moment";
import { mapState, mapActions } from "vuex"; import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api"; import { getapi, postapi, putapi, deletapi } from "@/api/api";
import mm from "../../utlis/mm"; import mm from "../../utlis/mm";
import { getPagePriv,checkPagePriv, objCopy, setNull, dddw,checkIDCode, parseID, birthdayToAge,ageToBirthday, deepCopy, arrayFilter, arrayReduce,parsIcCardtoLocal, photoParse, savePeoplePhoto, arrayExistObj } from "../../utlis/proFunc";
import {
getPagePriv, checkPagePriv, objCopy, setNull, dddw, checkIDCode, parseID,
birthdayToAge, ageToBirthday, deepCopy, arrayFilter, arrayReduce, parsIcCardtoLocal,
photoParse, savePeoplePhoto, arrayExistObj
} from "../../utlis/proFunc";
import Camera from "./Camera.vue"; import Camera from "./Camera.vue";
import PatientRegisterItem from "./PatientRegisterItem.vue"; import PatientRegisterItem from "./PatientRegisterItem.vue";
import LisRequest from "./LisRequest.vue"; import LisRequest from "./LisRequest.vue";
@ -492,7 +507,7 @@ export default {
PatientRegisterEditQuery PatientRegisterEditQuery
}, },
// isDoctor: '0:/1:()' // isDoctor: '0:/1:()'
props: ['isDoctor','patientRegisterId','editTimes','refreshRegister'],
props: ['isDoctor', 'patientRegisterId', 'editTimes', 'refreshRegister', 'refFuncSetData'],
data() { data() {
return { return {
pagePriv: { pagePriv: {
@ -1756,8 +1771,6 @@ export default {
}; };
</script> </script>
<style scoped> <style scoped>
.btn { .btn {
margin-top: 5px; margin-top: 5px;
} }
@ -1769,7 +1782,7 @@ export default {
.query { .query {
margin-left: 10px; margin-left: 10px;
} }
.querySpan { .querySpan {
margin-right: 2px; margin-right: 2px;
}
</style>
}</style>

134
src/components/patientRegister/PatientRegisterEditItemBatch.vue

@ -5,90 +5,43 @@
批量调整分组只针对单位体检有效个人体检将忽略此操作不能调整已收费或已检的项目及已总检的体检人员 批量调整分组只针对单位体检有效个人体检将忽略此操作不能调整已收费或已检的项目及已总检的体检人员
</div> </div>
<div> <div>
<br /><el-radio v-model="asbitemBatch.operate" label="add"
>增加项目</el-radio
>
<el-radio v-model="asbitemBatch.operate" label="del"
>删除项目</el-radio
>
<br /><el-radio v-model="asbitemBatch.operate" label="add">增加项目</el-radio>
<el-radio v-model="asbitemBatch.operate" label="del">删除项目</el-radio>
</div> </div>
<div> <div>
<br /><el-checkbox
v-model="asbitemBatch.isDeleteGroup"
:disabled="asbitemBatch.operate == 'add' ? true : false"
>如果删除项目属于分组则删除体检记录信息的分组设置</el-checkbox
>
<br /><el-checkbox v-model="asbitemBatch.isDeleteGroup"
:disabled="asbitemBatch.operate == 'add' ? true : false">如果删除项目属于分组则删除体检记录信息的分组设置</el-checkbox>
</div> </div>
<div> <div>
<br /><span>直接录入</span> <br /><span>直接录入</span>
<el-select
v-model="asbitemBatch.asbItemId"
placeholder="快速选择组合项目"
size="small" highlight-current-row
filterable :filter-method="filterMethod"
clearable @clear="quickAsb = deepCopy(asbItemQuick)"
@change="quickChoosedAsb"
default-first-option ref="quickAsbOCX"
style="width: 150px; text-align: left; padding-right: 15px"
>
<el-option
v-for="item in quickAsb"
:key="item.id"
:value="item.id"
:label="item.displayName"
/>
<el-select v-model="asbitemBatch.asbItemId" placeholder="快速选择组合项目" size="small" highlight-current-row filterable
:filter-method="filterMethod" clearable @clear="quickAsb = deepCopy(asbItemQuick)" @change="quickChoosedAsb"
default-first-option ref="quickAsbOCX" style="width: 150px; text-align: left; padding-right: 15px">
<el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" />
</el-select> </el-select>
</div> </div>
<div style="display: flex; margin-top: 2px"> <div style="display: flex; margin-top: 2px">
<div style="width: 480px"> <div style="width: 480px">
<el-table
:data="asbitemBatch.asbitemsTemp"
height="240"
width="100%"
show-summary
@row-dblclick="removeAbs"
size="small" highlight-current-row
@row-click="rowClickaAbitemCurr"
border
>
<el-table-column
label="组合项目"
width="150"
prop="asbitemName"
/>
<el-table :data="asbitemBatch.asbitemsTemp" height="240" width="100%" show-summary @row-dblclick="removeAbs"
size="small" highlight-current-row @row-click="rowClickaAbitemCurr" border>
<el-table-column label="组合项目" width="150" prop="asbitemName" />
<el-table-column label="数量" prop="amount" width="60"> <el-table-column label="数量" prop="amount" width="60">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input
type="number"
v-model="scope.row.amount"
size="small"
:disabled="asbitemBatch.operate == 'del' ? true : false"
/>
<el-input type="number" v-model="scope.row.amount" size="small"
:disabled="asbitemBatch.operate == 'del' ? true : false" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="实收价格" prop="chargePrice" width="90"> <el-table-column label="实收价格" prop="chargePrice" width="90">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input
type="number"
v-model="scope.row.chargePrice"
size="small"
:disabled="asbitemBatch.operate == 'del' ? true : false"
/>
<el-input type="number" v-model="scope.row.chargePrice" size="small"
:disabled="asbitemBatch.operate == 'del' ? true : false" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="支付方式" prop="payTypeFlag" width="120"> <el-table-column label="支付方式" prop="payTypeFlag" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select
v-model="scope.row.payTypeFlag"
size="small"
:disabled="asbitemBatch.operate == 'del' ? true : false"
>
<el-option
v-for="item in dict.payType"
:key="item.id"
:label="item.displayName"
:value="item.id"
/>
<el-select v-model="scope.row.payTypeFlag" size="small"
:disabled="asbitemBatch.operate == 'del' ? true : false">
<el-option v-for="item in dict.payType" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
@ -96,66 +49,34 @@
</div> </div>
<div style="display: block; width: 110px; margin-left: 10px"> <div style="display: block; width: 110px; margin-left: 10px">
<div style="margin-top: 5px"> <div style="margin-top: 5px">
<el-button
type="danger"
@click="asbitemDel(1)"
style="width: 100px"
>删除</el-button
>
<el-button class="commonbutton" type="danger" @click="asbitemDel(1)" style="width: 100px">删除</el-button>
</div> </div>
<div style="margin-top: 5px"> <div style="margin-top: 5px">
<el-button
type="danger"
@click="asbitemDel(0)"
style="width: 100px"
>删除全部</el-button
>
<el-button class="commonbutton" type="danger" @click="asbitemDel(0)" style="width: 100px">删除全部</el-button>
</div> </div>
<div style="margin-top: 5px"> <div style="margin-top: 5px">
<el-button
type="primary"
@click="changePayTypeFlag('0')"
style="width: 100px"
>全个人支付</el-button
>
<el-button class="commonbutton" type="primary" @click="changePayTypeFlag('0')" style="width: 100px">全个人支付</el-button>
</div> </div>
<div style="margin-top: 5px"> <div style="margin-top: 5px">
<el-button
type="primary"
@click="changePayTypeFlag('1')"
style="width: 100px"
>全单位支付</el-button
>
<el-button class="commonbutton" type="primary" @click="changePayTypeFlag('1')" style="width: 100px">全单位支付</el-button>
</div> </div>
<div style="margin-top: 5px"> <div style="margin-top: 5px">
<el-button
type="primary"
@click="changePayTypeFlag('2')"
style="width: 100px"
>全赠送</el-button
>
<el-button class="commonbutton" type="primary" @click="changePayTypeFlag('2')" style="width: 100px">全赠送</el-button>
</div> </div>
</div> </div>
</div> </div>
<div style="display: flex;margin-top: 5px;margin-right: 10px;justify-content:space-between;"> <div style="display: flex;margin-top: 5px;margin-right: 10px;justify-content:space-between;">
<div></div> <div></div>
<div> <div>
<el-button type="primary" @click="asbitemBatchHandle"> </el-button>
<el-button @click="dialogWin.PatientRegisterEditItemBatch = false"> </el-button>
<el-button class="commonbutton" type="primary" @click="asbitemBatchHandle"> </el-button>
<el-button class="commonbutton" @click="dialogWin.PatientRegisterEditItemBatch = false"> </el-button>
</div> </div>
</div> </div>
</div> </div>
<!-- 通用进度条 --> <!-- 通用进度条 -->
<el-dialog
title="数据处理中……"
:visible.sync="elProgress.display"
width="600px"
height="400"
:show-close="false"
:close-on-click-modal="false"
:append-to-body="true"
>
<el-dialog title="数据处理中……" :visible.sync="elProgress.display" width="600px" height="400" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
<ElProgressOCX /> <ElProgressOCX />
</el-dialog> </el-dialog>
</div> </div>
@ -471,5 +392,4 @@ export default {
.btnClass { .btnClass {
width: 100px; width: 100px;
} }
</style> </style>

2
src/components/patientRegister/PatientRegisterItem.vue

@ -96,7 +96,7 @@
<el-table-column label="已选组合项目" min-width="120" prop="asbitemName" > <el-table-column label="已选组合项目" min-width="120" prop="asbitemName" >
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
<el-tooltip class="item" effect="dark" content="套餐/分组中包含组合项目" placement="top">
<el-tooltip class="item" effect="dark" content="标五角星表示属于分组或套餐的项目" placement="top">
<i v-if="scope.row.groupPackageId" class="el-icon-star-on" style="font-size: 14px;color: purple;"></i> <i v-if="scope.row.groupPackageId" class="el-icon-star-on" style="font-size: 14px;color: purple;"></i>
</el-tooltip> </el-tooltip>
{{ scope.row.asbitemName }} {{ scope.row.asbitemName }}

176
src/components/patientRegister/PatientRegisterList.vue

@ -1,18 +1,21 @@
<template> <template>
<div>
<!--组件主体-->
<div style="display: flex"> <div style="display: flex">
<div :style="'width:' + (window.pageWidth - 200 - 145) + 'px;'" @contextmenu.prevent="onContextmenu"> <div :style="'width:' + (window.pageWidth - 200 - 145) + 'px;'" @contextmenu.prevent="onContextmenu">
<div> <div>
<el-table @body-scrolling="load" :data="patientRegister.prList" border
:height="window.pageHeight < 600 ? 248 : Math.floor(((window.pageHeight - 250) * 2) / 3)" highlight-current-row
@row-click="rowClick" size="small" row-key="id" @selection-change="handleSelectionChange"
@cell-contextmenu="onCellRightClick" ref="info" id="info" :row-class-name="handleRowClassName">
<el-table @body-scrolling="load" :data="tableData" border
:height="window.pageHeight < 600 ? 248 : Math.floor(((window.pageHeight - 250) * 2) / 3)"
highlight-current-row @row-click="rowClick" size="small" row-key="id"
@selection-change="handleSelectionChange" @cell-contextmenu="onCellRightClick" ref="info" id="info"
:row-class-name="handleRowClassName">
<!-- 取消勾选改为选中 <!-- 取消勾选改为选中
<el-table-column type="selection" width="40" show-overflow-tooltip/> <el-table-column type="selection" width="40" show-overflow-tooltip/>
:height="window.pageHeight < 600 ? 202 : Math.floor(((window.pageHeight - 302) * 2) / 3)" :height="window.pageHeight < 600 ? 202 : Math.floor(((window.pageHeight - 302) * 2) / 3)"
--> -->
<el-table-column v-for="(item, index) in headerCols" :key="`col_${index}`" :min-width="dropCol[index].minWidth"
:align="dropCol[index].align" :label="item.label" :prop="dropCol[index].prop"
:sortable="dropCol[index].prop == 'sn' ? false : true">
<el-table-column v-for="(item, index) in headerCols" :key="`col_${index}`"
:min-width="dropCol[index].minWidth" :align="dropCol[index].align" :label="item.label"
:prop="dropCol[index].prop" :sortable="dropCol[index].prop == 'sn' ? false : true">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="dropCol[index].prop == 'sn'"> <div v-if="dropCol[index].prop == 'sn'">
{{ scope.$index + 1 }} {{ scope.$index + 1 }}
@ -98,7 +101,8 @@
<div style="display: flex;justify-content:space-between;"> <div style="display: flex;justify-content:space-between;">
<div></div> <div></div>
<div> <div>
<span style="font-size:12px;">{{ loadOpts.totalCount }} 条记录当前显示{{ patientRegister.prList.length }} </span>
<span style="font-size:12px;">{{ loadOpts.totalCount }} 条记录当前显示{{ tableData.length }}
</span>
</div> </div>
</div> </div>
</div> </div>
@ -154,17 +158,20 @@
</div> </div>
<!-- <!--
<div class="listBtn"> <div class="listBtn">
<el-button type="" class="btnClass commonbutton" @click="rowSelected(patientRegister.prList)">选中</el-button>
<el-button type="" class="btnClass commonbutton" @click="rowSelected(tableData)">选中</el-button>
</div> </div>
--> -->
</div> </div>
</div>
<!--组件弹窗-->
<div>
<!-- 体检人员登记 :title="patientRegister.patientRegisterRd.id ? '体检人员--编辑' : '体检人员--新增'" --> <!-- 体检人员登记 :title="patientRegister.patientRegisterRd.id ? '体检人员--编辑' : '体检人员--新增'" -->
<el-dialog :title="dataTransOpts.tableS.patient_register.id ? '体检人员--编辑' : '体检人员--新增'" :visible.sync="dialogVisible"
:close-on-click-modal="false" fullscreen @close="closeDialogPR">
<el-dialog :title="dataTransOpts.tableS.patient_register.id ? '体检人员--编辑' : '体检人员--新增'"
:visible.sync="dialogWin.PatientRegisterEdit" :close-on-click-modal="false" fullscreen
@close="close_dialogWin_PatientRegisterEdit">
<!-- :formInitData="patientRegister.patientRegisterRd" --> <!-- :formInitData="patientRegister.patientRegisterRd" -->
<PatientRegisterEdit :isDoctor="'0'" :patientRegisterId="patientRegister.patientRegisterRd.id" <PatientRegisterEdit :isDoctor="'0'" :patientRegisterId="patientRegister.patientRegisterRd.id"
:editTimes="editTimes" :refreshRegister="refreshRegister" />
:editTimes="editTimes" :refreshRegister="refreshRegister" :refFuncSetData="refFuncSetData"/>
</el-dialog> </el-dialog>
<!-- 拍照 --> <!-- 拍照 -->
@ -173,11 +180,6 @@
<Camera :id="patientRegister.patientRegisterId" /> <Camera :id="patientRegister.patientRegisterId" />
</el-dialog> </el-dialog>
<!-- 指引单 -->
<el-dialog title="指引单" :visible.sync="dialogGuide" width="400" height="800" :append-to-body="true"
:close-on-click-modal="false">
<div>{{ guideMsg }}</div>
</el-dialog>
<!-- 批量调整分组 --> <!-- 批量调整分组 -->
<el-dialog title="批量调整分组" :visible.sync="dialogWin.PatientRegisterEditGroupBatch" width="600px" height="800px" <el-dialog title="批量调整分组" :visible.sync="dialogWin.PatientRegisterEditGroupBatch" width="600px" height="800px"
@ -198,6 +200,7 @@
<ElProgressOCX /> <ElProgressOCX />
</el-dialog> </el-dialog>
</div> </div>
</div>
</template> </template>
<script> <script>
import moment from "moment"; import moment from "moment";
@ -243,11 +246,12 @@ export default {
startPoint: -1, // -1 startPoint: -1, // -1
endPoint: -1, // -1 endPoint: -1, // -1
tableData: [], //
tableDataCurrentRow: {}, //
multipleSelection: [], // multipleSelection: [], //
dialogVisible: false,
dialogCamera: false, dialogCamera: false,
dialogGuide: false,
guideMsg: "guideMsg",
tabChoosed: "1", tabChoosed: "1",
formInitData: {}, // formInitData: {}, //
editTimes: 0, editTimes: 0,
@ -354,12 +358,17 @@ export default {
} }
}, },
//
rowSelected(rows) { rowSelected(rows) {
rows.forEach((e) => { rows.forEach((e) => {
this.$refs["info"].toggleRowSelection(e, true); this.$refs["info"].toggleRowSelection(e, true);
}); });
}, },
refFuncSetData(item, v) {
setData(this, item, v)
},
// (isPreview) // (isPreview)
async guidePrint(ReportCode, isPreview) { async guidePrint(ReportCode, isPreview) {
if (!this.$peisAPI) { if (!this.$peisAPI) {
@ -381,7 +390,7 @@ export default {
//start ------------------------- //start -------------------------
this.multipleSelection = [] this.multipleSelection = []
this.patientRegister.prList.forEach(e => {
this.tableData.forEach(e => {
if (e.choosed) { if (e.choosed) {
this.multipleSelection.push(deepCopy(e)) this.multipleSelection.push(deepCopy(e))
} }
@ -435,15 +444,15 @@ export default {
if (JSON.parse(resPeisAPI).code < 0) continue if (JSON.parse(resPeisAPI).code < 0) continue
resPrintTimes = postapi("api/app/patientregister/updatepatientregisterguideprinttimesmany", [this.multipleSelection[i].id]); resPrintTimes = postapi("api/app/patientregister/updatepatientregisterguideprinttimesmany", [this.multipleSelection[i].id]);
if (resPrintTimes.code == -1) continue if (resPrintTimes.code == -1) continue
lfind = arrayExistObj(this.patientRegister.prList, "id", this.multipleSelection[i].id);
lfind = arrayExistObj(this.tableData, "id", this.multipleSelection[i].id);
if (lfind > -1) { if (lfind > -1) {
if (this.patientRegister.prList[lfind].guidePrintTimes) {
this.patientRegister.prList[lfind].guidePrintTimes =
if (this.tableData[lfind].guidePrintTimes) {
this.tableData[lfind].guidePrintTimes =
Number( Number(
this.patientRegister.prList[lfind].guidePrintTimes
this.tableData[lfind].guidePrintTimes
) + 1; ) + 1;
} else { } else {
this.patientRegister.prList[lfind].guidePrintTimes = 1;
this.tableData[lfind].guidePrintTimes = 1;
} }
} }
} catch (error) { } catch (error) {
@ -466,7 +475,7 @@ export default {
}); });
// //
if (!rows.length) { if (!rows.length) {
this.patientRegister.prList.forEach((item) => {
this.tableData.forEach((item) => {
item.highLightBg = ""; item.highLightBg = "";
}); });
} }
@ -483,32 +492,32 @@ export default {
// //
rowClick(row) { rowClick(row) {
//console.log("this.patientRegister.prList",this.window,this.patientRegister.prList);
//console.log("this.tableData",this.window,this.tableData);
// shift // shift
if (this.window.shift) { if (this.window.shift) {
// //
this.patientRegister.prList.forEach((e, index) => {
this.tableData.forEach((e, index) => {
e.choosed = false; e.choosed = false;
e.index = index; e.index = index;
}); });
if (this.startPoint == -1) { if (this.startPoint == -1) {
this.patientRegister.prList[row.index].choosed = true;
this.tableData[row.index].choosed = true;
this.startPoint = row.index; this.startPoint = row.index;
} else { } else {
if (this.startPoint > row.index) { if (this.startPoint > row.index) {
for (let i = row.index; i <= this.startPoint; i++) { for (let i = row.index; i <= this.startPoint; i++) {
this.patientRegister.prList[i].choosed = true;
this.tableData[i].choosed = true;
} }
} else if (this.startPoint <= row.index) { } else if (this.startPoint <= row.index) {
for (let i = this.startPoint; i <= row.index; i++) { for (let i = this.startPoint; i <= row.index; i++) {
this.patientRegister.prList[i].choosed = true;
this.tableData[i].choosed = true;
} }
} }
} }
} else if (this.window.ctrl) { // ctrl } else if (this.window.ctrl) { // ctrl
this.patientRegister.prList[row.index].choosed = true;
this.tableData[row.index].choosed = true;
if (this.startPoint == -1) { if (this.startPoint == -1) {
this.startPoint = row.index; this.startPoint = row.index;
} }
@ -516,22 +525,22 @@ export default {
// ctrl shift // ctrl shift
// //
console.log("清除所有选择"); console.log("清除所有选择");
this.patientRegister.prList.forEach((e, index) => {
this.tableData.forEach((e, index) => {
e.choosed = false; e.choosed = false;
e.index = index; e.index = index;
}); });
console.log(this.patientRegister.prList, row.index);
console.log(this.patientRegister.prList[row.index].choosed);
console.log(this.tableData, row.index);
console.log(this.tableData[row.index].choosed);
this.patientRegister.prList[row.index].choosed = true;
this.tableData[row.index].choosed = true;
this.startPoint = row.index; this.startPoint = row.index;
} }
// //
console.log('row.index <= this.startPoint', row.index, this.startPoint) console.log('row.index <= this.startPoint', row.index, this.startPoint)
let lfind = -1 let lfind = -1
for (let i = 0; i < this.patientRegister.prList.length; i++) {
if (this.patientRegister.prList[i].choosed) {
for (let i = 0; i < this.tableData.length; i++) {
if (this.tableData[i].choosed) {
lfind = i lfind = i
break break
} }
@ -539,21 +548,22 @@ export default {
if (lfind > -1) { if (lfind > -1) {
// //
this.dataTransOpts.tableS.patient_register.id = this.patientRegister.prList[lfind].id
// this.getCustomerOrgGroup(this.patientRegister.prList[lfind].customerOrgParentId);
this.dataTransOpts.tableS.patient_register.id = this.tableData[lfind].id
this.tableDataCurrentRow = deepCopy(this.tableData[lfind])
// this.getCustomerOrgGroup(this.tableData[lfind].customerOrgParentId);
setTimeout(() => { setTimeout(() => {
this.dataTransOpts.refresh.register_asbitem.M++ // this.dataTransOpts.refresh.register_asbitem.M++ //
}, 20);
}, 10);
// //
// if(this.patientRegister.patientRegisterRd.id != this.patientRegister.prList[lfind].id){
// this.setForm(this.patientRegister.prList[lfind])
// // this.patientRegister.query.customerOrgParentId = this.patientRegister.prList[lfind].customerOrgParentId;
// if(this.patientRegister.patientRegisterRd.id != this.tableData[lfind].id){
// this.setForm(this.tableData[lfind])
// // this.patientRegister.query.customerOrgParentId = this.tableData[lfind].customerOrgParentId;
// this.patientRegister.customerOrgGroupChange = 0; //0 // this.patientRegister.customerOrgGroupChange = 0; //0
// this.patientRegister.medicalPackageChange = 0; //0 // this.patientRegister.medicalPackageChange = 0; //0
// // this.getCustomerOrgGroup(this.patientRegister.prList[lfind].customerOrgParentId);
// // this.getCustomerOrgGroup(this.tableData[lfind].customerOrgParentId);
// this.dict.asbItem = [...this.dict.asbItemAll]; // this.dict.asbItem = [...this.dict.asbItemAll];
// this.getPatientRegisterAbs(this.patientRegister.prList[lfind].id);
// this.getPatientRegisterAbs(this.tableData[lfind].id);
// } // }
} }
@ -576,12 +586,12 @@ export default {
// this.setForm(this.patientRegister.patientRegisterRdInit) // this.setForm(this.patientRegister.patientRegisterRdInit)
// this.patientRegister.patientRegisterAbs = []; // this.patientRegister.patientRegisterAbs = [];
// this.patientRegister.patientRegisterRd.id = '' // this.patientRegister.patientRegisterRd.id = ''
// this.dialogVisible = true;
// this.dialogWin.PatientRegisterEdit = true;
// this.editTimes++; // // this.editTimes++; //
// this.getPatientRegisterAbs(); // this.getPatientRegisterAbs();
this.dataTransOpts.tableS.patient_register.id = '' this.dataTransOpts.tableS.patient_register.id = ''
this.dialogVisible = true;
this.dialogWin.PatientRegisterEdit = true;
setTimeout(() => { setTimeout(() => {
// //
this.dataTransOpts.refresh.patient_register.S++ // this.dataTransOpts.refresh.patient_register.S++ //
@ -602,7 +612,7 @@ export default {
let patientRegisterIds = [] let patientRegisterIds = []
// start // start
this.multipleSelection = []; this.multipleSelection = [];
this.patientRegister.prList.forEach((e) => {
this.tableData.forEach((e) => {
if (e.choosed && e.completeFlag == '0') { if (e.choosed && e.completeFlag == '0') {
this.multipleSelection.push(e); this.multipleSelection.push(e);
patientRegisterIds.push(e.id) patientRegisterIds.push(e.id)
@ -621,8 +631,8 @@ export default {
if (res.code != -1) { if (res.code != -1) {
console.log('操作成功!') console.log('操作成功!')
patientRegisterIds.forEach(e => { patientRegisterIds.forEach(e => {
let lfind = arrayExistObj(this.patientRegister.prList, 'id', e)
if (lfind > -1) this.patientRegister.prList[lfind].completeFlag = completeFlag
let lfind = arrayExistObj(this.tableData, 'id', e)
if (lfind > -1) this.tableData[lfind].completeFlag = completeFlag
}); });
} }
}) })
@ -638,8 +648,8 @@ export default {
this.$message.warning("请选择要操作的记录"); this.$message.warning("请选择要操作的记录");
return; return;
} }
//console.log(this.patientRegister.patientRegisterRd,this.patientRegister.prList)
this.dialogVisible = true;
//console.log(this.patientRegister.patientRegisterRd,this.tableData)
this.dialogWin.PatientRegisterEdit = true;
// //
this.dataTransOpts.refresh.patient_register.S++ //() this.dataTransOpts.refresh.patient_register.S++ //()
this.dataTransOpts.plus.clearPatientRegisterQuery++ // this.dataTransOpts.plus.clearPatientRegisterQuery++ //
@ -647,29 +657,29 @@ export default {
}, },
// //
async closeDialogPR() {
async close_dialogWin_PatientRegisterEdit() {
// dataTransOpts.tableS.patient_register.id () // dataTransOpts.tableS.patient_register.id ()
if (!this.dataTransOpts.tableS.patient_register.id) return
let id = this.dataTransOpts.tableS.patient_register.id
if (!id){
id = this.tableDataCurrentRow.id
}
if(!id) return
this.dataTransOpts.tableS.patient_register.id = id
//
this.patientRegister.prList.forEach(e => {
e.choosed = false
})
let res = await postapi(`/api/app/patientregister/getinfoorpatient?PatientRegisterId=${this.dataTransOpts.tableS.patient_register.id}`)
if (res.code != 1) return
// let res = await postapi(`/api/app/patientregister/getinfoorpatient?PatientRegisterId=${this.dataTransOpts.tableS.patient_register.id}`)
// if (res.code != 1) return
this.patientRegister.prList.forEach(e => {
e.choosed = false
});
let lfind = arrayExistObj(this.patientRegister.prList, 'id', this.dataTransOpts.tableS.patient_register.id)
// this.tableData.forEach(e => {
// e.choosed = false
// });
let lfind = arrayExistObj(this.tableData, 'id', this.dataTransOpts.tableS.patient_register.id)
if (lfind > -1) { if (lfind > -1) {
objCopy(res.data, this.patientRegister.prList[lfind])
this.patientRegister.prList[lfind].choosed = true
objCopy(this.tableDataCurrentRow,this.tableData[lfind])
} else { } else {
lfind = this.patientRegister.prList.length
this.patientRegister.prList.push(res.data)
this.patientRegister.prList[lfind].index = lfind
this.patientRegister.prList[lfind].choosed = true
lfind = this.tableData.length
this.tableDataCurrentRow.index = lfind
this.tableDataCurrentRow.choosed = true
this.tableData.push(this.tableDataCurrentRow)
} }
// register_asbitem // register_asbitem
@ -678,10 +688,10 @@ export default {
// setTimeout(() => { // setTimeout(() => {
// this.$refs['info'].setCurrentRow(currentRow) // this.$refs['info'].setCurrentRow(currentRow)
// this.setForm(currentRow) // this.setForm(currentRow)
// // this.patientRegister.query.customerOrgParentId = this.patientRegister.prList[lfind].customerOrgParentId;
// // this.patientRegister.query.customerOrgParentId = this.tableData[lfind].customerOrgParentId;
// this.patientRegister.customerOrgGroupChange = 0; //0 // this.patientRegister.customerOrgGroupChange = 0; //0
// this.patientRegister.medicalPackageChange = 0; //0 // this.patientRegister.medicalPackageChange = 0; //0
// // this.getCustomerOrgGroup(this.patientRegister.prList[lfind].customerOrgParentId);
// // this.getCustomerOrgGroup(this.tableData[lfind].customerOrgParentId);
// this.dict.asbItem = [...this.dict.asbItemAll]; // this.dict.asbItem = [...this.dict.asbItemAll];
// this.getPatientRegisterAbs(currentRow.id); // this.getPatientRegisterAbs(currentRow.id);
// }, 100) // }, 100)
@ -703,7 +713,7 @@ export default {
//start ------------------------- //start -------------------------
this.multipleSelection = [] this.multipleSelection = []
this.patientRegister.prList.forEach(e => {
this.tableData.forEach(e => {
if (e.choosed) { if (e.choosed) {
this.multipleSelection.push(deepCopy(e)) this.multipleSelection.push(deepCopy(e))
} }
@ -734,7 +744,7 @@ export default {
.then((res) => { .then((res) => {
if (res.code != -1) { if (res.code != -1) {
console.log("操作成功"); console.log("操作成功");
arrayReduce(this.patientRegister.prList, this.multipleSelection, 'id=id')
arrayReduce(this.tableData, this.multipleSelection, 'id=id')
this.setForm(this.patientRegister.patientRegisterRdInit) this.setForm(this.patientRegister.patientRegisterRdInit)
this.getPatientRegisterAbs(); this.getPatientRegisterAbs();
} }
@ -843,13 +853,13 @@ export default {
let oldCount = 0 let oldCount = 0
if (body.skipCount == 0) { // if (body.skipCount == 0) { //
this.patientRegister.prList = [];
this.tableData = [];
} else { } else {
// , // ,
oldCount = this.patientRegister.prList.length
oldCount = this.tableData.length
} }
curLoad.forEach((e, index) => { curLoad.forEach((e, index) => {
this.patientRegister.prList.push(Object.assign({ index: Number(oldCount) + Number(index), choosed: false }, e))
this.tableData.push(Object.assign({ index: Number(oldCount) + Number(index), choosed: false }, e))
}) })
// //
@ -954,7 +964,7 @@ export default {
} }
// start // start
this.multipleSelection = []; this.multipleSelection = [];
this.patientRegister.prList.forEach((e) => {
this.tableData.forEach((e) => {
if (e.choosed) this.multipleSelection.push(e); if (e.choosed) this.multipleSelection.push(e);
}); });
// end // end
@ -977,7 +987,7 @@ export default {
} }
// start // start
this.multipleSelection = []; this.multipleSelection = [];
this.patientRegister.prList.forEach((e) => {
this.tableData.forEach((e) => {
if (e.choosed) this.multipleSelection.push(e); if (e.choosed) this.multipleSelection.push(e);
}); });
// end // end
@ -1269,7 +1279,7 @@ export default {
//console.log('watch:patientRegister.query.customerOrgId:',newVal,oldVal) //console.log('watch:patientRegister.query.customerOrgId:',newVal,oldVal)
// //
if (newVal && newVal != oldVal) { if (newVal && newVal != oldVal) {
this.patientRegister.prList = []
this.tableData = []
this.dataTransOpts.tableM.register_asbitem = [] this.dataTransOpts.tableM.register_asbitem = []
} }
} }

14
src/components/patientRegister/patientRegisterAsbItem.vue

@ -2,11 +2,15 @@
<div> <div>
<el-table :data="dataTransOpts.tableM.register_asbitem" border <el-table :data="dataTransOpts.tableM.register_asbitem" border
:height="window.pageHeight < 600 ? 124 : Math.floor((window.pageHeight - 228) / 3)" size="small" :height="window.pageHeight < 600 ? 124 : Math.floor((window.pageHeight - 228) / 3)" size="small"
highlight-current-row :summary-method="getSummaries" show-summary
ref="patientRegister.patientRegisterAbs">
highlight-current-row :summary-method="getSummaries" show-summary ref="patientRegister.patientRegisterAbs">
<el-table-column label="序号" width="50" align="center"> <el-table-column label="序号" width="50" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div><i v-if="scope.row.groupPackageId" class="el-icon-star-on" style="font-size: 16px;color: purple;"></i>{{ scope.$index + 1 }}</div>
<div>
<el-tooltip class="item" effect="dark" content="标五角星表示属于分组或套餐的项目" placement="left">
<i v-if="scope.row.groupPackageId" class="el-icon-star-on" style="font-size: 16px;color: purple;" />
</el-tooltip>
{{ scope.$index + 1 }}
</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="asbitemName" label="已选组合项目" width="120" /> <el-table-column prop="asbitemName" label="已选组合项目" width="120" />
@ -85,10 +89,8 @@ export default {
// //
retrieveRegister_asbitem(id) { retrieveRegister_asbitem(id) {
if(!id){
this.dataTransOpts.tableM.register_asbitem = [] this.dataTransOpts.tableM.register_asbitem = []
return
}
if (!id) return
getapi(`/api/app/registerasbitem/getlistinpatientregisterid?PatientRegisterId=${id}`) getapi(`/api/app/registerasbitem/getlistinpatientregisterid?PatientRegisterId=${id}`)
.then(res => { .then(res => {
console.log(`/api/app/registerasbitem/getlistinpatientregisterid?PatientRegisterId=${id}`, res) console.log(`/api/app/registerasbitem/getlistinpatientregisterid?PatientRegisterId=${id}`, res)

3
src/store/index.js

@ -357,7 +357,8 @@ export default new Vuex.Store({
sum_diagnosis: [], // 总检诊断 sum_diagnosis: [], // 总检诊断
}, },
plus: { plus: {
clearPatientRegisterQuery: 0,
clearPatientRegisterQuery: 0, //清空人员登记界面查询条件
PatientRegisterEditItemBatch:0, //刷新批量调整项目窗口
} }
}, },

Loading…
Cancel
Save