2 changed files with 334 additions and 0 deletions
			
			
		@ -0,0 +1,328 @@ | 
			
		|||||
 | 
				<template> | 
			
		||||
 | 
				  <div style="font-size: 14px;display: flex; width: 100%;"> | 
			
		||||
 | 
				    <div style="display: flex;"> | 
			
		||||
 | 
				      <div :style="`display: block; width: ${window.pageWidth - 10}px;`"> | 
			
		||||
 | 
				        <!-- 查询条件 与列表  --> | 
			
		||||
 | 
				        <div | 
			
		||||
 | 
				          :style="'display: flex;flex-wrap: wrap;height: 40px;background-color: #fff;border-radius: 8px;margin-bottom: 5px;align-items: center;padding: 10px;width:' + (window.pageWidth - 40) + 'px;'"> | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				          <div class="query"> | 
			
		||||
 | 
				            <span class="spanClass">条码号</span> | 
			
		||||
 | 
				            <el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small" clearable style="width: 120px" /> | 
			
		||||
 | 
				          </div> | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        </div> | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        <div :style="`height: ${window.pageHeight - 130}px;`"></div> | 
			
		||||
 | 
				        <!-- 人员列表 --> | 
			
		||||
 | 
				        <div v-if="false" style="padding: 10px 0 0 0;border-radius: 8px;background-color: #fff;"> | 
			
		||||
 | 
				          <el-table :data="patientList" border highlight-current-row ref="patientList" | 
			
		||||
 | 
				            :height="Math.floor(tableListHeight / 2)" @row-click="rowClick" size="small"> | 
			
		||||
 | 
				            <el-table-column type="index" label="序号" width="40" align="center" /> | 
			
		||||
 | 
				            <el-table-column prop="chargeSumMoney" label="金额" width="80" align="center" /> | 
			
		||||
 | 
				            <el-table-column prop="patientName" label="姓名" /> | 
			
		||||
 | 
				            <el-table-column prop="sexId" label="性别" width="40" /> | 
			
		||||
 | 
				            <el-table-column prop="age" label="年龄" width="40" /> | 
			
		||||
 | 
				            <el-table-column prop="patientRegisterNo" label="条码号" width="150" /> | 
			
		||||
 | 
				            <el-table-column prop="patientNo" label="档案号" /> | 
			
		||||
 | 
				            <el-table-column prop="medicalTimes" label="体检次数" /> | 
			
		||||
 | 
				            <el-table-column prop="isVip" label="是否VIP"> | 
			
		||||
 | 
				              <template slot-scope="scope"> | 
			
		||||
 | 
				                <div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div> | 
			
		||||
 | 
				              </template> | 
			
		||||
 | 
				            </el-table-column> | 
			
		||||
 | 
				            <el-table-column prop="salesman" label="介绍人" /> | 
			
		||||
 | 
				            <!-- | 
			
		||||
 | 
				            <el-table-column prop="invoiceNo" label="发票号" /> | 
			
		||||
 | 
				            <el-table-column prop="invoiceOrgName" label="发票抬头" /> | 
			
		||||
 | 
				            <el-table-column prop="chargeId" label="介绍人" /> | 
			
		||||
 | 
				            <el-table-column prop="chargeBackId" label="介绍人" /> | 
			
		||||
 | 
				            --> | 
			
		||||
 | 
				            <el-table-column prop="email" label="邮箱" width="180" /> | 
			
		||||
 | 
				            <el-table-column prop="idNo" label="身份证" width="150" /> | 
			
		||||
 | 
				            <el-table-column prop="mobileTelephone" label="手机" width="100" /> | 
			
		||||
 | 
				            <el-table-column prop="telephone" label="电话" width="100" /> | 
			
		||||
 | 
				            <el-table-column prop="address" label="地址" width="300" /> | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				          </el-table> | 
			
		||||
 | 
				        </div> | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        <!-- 项目收费列表 --> | 
			
		||||
 | 
				        <div v-if="false" style="padding: 10px 0 5px 0;border-radius: 8px;background-color: #fff;"> | 
			
		||||
 | 
				          <el-table :data="details" border highlight-current-row :height="Math.floor(tableListHeight / 2) - 10" | 
			
		||||
 | 
				            size="small"> | 
			
		||||
 | 
				            <el-table-column label="序号" width="40" type="index" align="center" /> | 
			
		||||
 | 
				            <el-table-column label="组合项目" width="240" prop="asbitemName" /> | 
			
		||||
 | 
				            <el-table-column label="标准价格" prop="standardPrice" width="80" align="center" /> | 
			
		||||
 | 
				            <el-table-column label="折扣" prop="discount" width="80" align="center" /> | 
			
		||||
 | 
				            <el-table-column label="数量" prop="amount" width="50" align="center" /> | 
			
		||||
 | 
				            <el-table-column label="实收价格" prop="chargePrice" width="80" align="center" /> | 
			
		||||
 | 
				            <el-table-column prop="total" label="金额" width="70" v-if="false" /> | 
			
		||||
 | 
				            <el-table-column prop="standardPrice" label="标准金额" width="80" v-if="false" /> | 
			
		||||
 | 
				          </el-table> | 
			
		||||
 | 
				        </div> | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				      </div> | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				      <!-- | 
			
		||||
 | 
				      <div style="margin-left:10px;" class="btnDivClass"> | 
			
		||||
 | 
				        <div class="btnListClass"> | 
			
		||||
 | 
				          <el-button type="primary" class="commonbutton" @click="Query">查询</el-button> | 
			
		||||
 | 
				        </div>         | 
			
		||||
 | 
				      </div> | 
			
		||||
 | 
				      --> | 
			
		||||
 | 
				    </div> | 
			
		||||
 | 
				  </div> | 
			
		||||
 | 
				</template> | 
			
		||||
 | 
				<script> | 
			
		||||
 | 
				import moment from 'moment'; | 
			
		||||
 | 
				import { mapState, mapActions } from "vuex"; | 
			
		||||
 | 
				import { getapi, postapi, putapi, deletapi } from "@/api/api"; | 
			
		||||
 | 
				import { tcdate, dddw, arrayExistObj, deepCopy } from "../../utlis/proFunc"; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				export default { | 
			
		||||
 | 
				  components: { | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				  }, | 
			
		||||
 | 
				  data() { | 
			
		||||
 | 
				    return { | 
			
		||||
 | 
				      activeName: "peis", | 
			
		||||
 | 
				      query: { | 
			
		||||
 | 
				        dateType: '1',  // 1登记 2体检 3缴费         | 
			
		||||
 | 
				        startDate: null, | 
			
		||||
 | 
				        endDate: null, | 
			
		||||
 | 
				        patientRegisterNo: '', | 
			
		||||
 | 
				        patientNo: '', | 
			
		||||
 | 
				        invoiceNo: '', // 发票号,订单号 | 
			
		||||
 | 
				        patientName: '', | 
			
		||||
 | 
				        idNo: "", // 身份证号 | 
			
		||||
 | 
				      },//查询条件 | 
			
		||||
 | 
				      patientList: [],//人员列表 | 
			
		||||
 | 
				      curPatient: {}, // 当前 | 
			
		||||
 | 
				      details: [], // 收费明细 | 
			
		||||
 | 
				       | 
			
		||||
 | 
				      LocalConfig: { | 
			
		||||
 | 
				        doctorCheck: { // 医生诊台 | 
			
		||||
 | 
				          scheduledAet: '',  //scheduledAet     | 
			
		||||
 | 
				        }, | 
			
		||||
 | 
				        lisLab: { // 实验室 | 
			
		||||
 | 
				          specimens: [], // 默认标本 | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				      },       | 
			
		||||
 | 
				    }; | 
			
		||||
 | 
				  }, | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				  created() {     | 
			
		||||
 | 
				    this.dictInit(); | 
			
		||||
 | 
				  }, | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				  //挂载完成 | 
			
		||||
 | 
				  mounted() { | 
			
		||||
 | 
				    this.enterToQuery() | 
			
		||||
 | 
				  }, | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				  computed: { | 
			
		||||
 | 
				    ...mapState(["pickerOptions", "window", "dict", "dataTransOpts", "patientRegister", "customerOrg"]), | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    tableListHeight() { | 
			
		||||
 | 
				      let tempH = this.window.pageHeight < 600 ? 600 : this.window.pageHeight | 
			
		||||
 | 
				      return tempH - 175 - 30 | 
			
		||||
 | 
				    }, | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    bodyWidth() { | 
			
		||||
 | 
				      let tempW = this.window.pageWidth < 600 ? 600 : this.window.pageWidth | 
			
		||||
 | 
				      return tempW - 110 - 25 | 
			
		||||
 | 
				    } | 
			
		||||
 | 
				  }, | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				  methods: { | 
			
		||||
 | 
				    ...mapActions(["getCustomerOrgGroup"]), | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    dddw, moment, | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    //查询人员列表数据 | 
			
		||||
 | 
				    Query() { | 
			
		||||
 | 
				      let loading = this.$loading({ | 
			
		||||
 | 
				        lock: true, | 
			
		||||
 | 
				        text: 'Loading', | 
			
		||||
 | 
				        spinner: 'el-icon-loading', | 
			
		||||
 | 
				        background: 'rgba(0, 0, 0, 0.7)' | 
			
		||||
 | 
				      }); | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				      this.query.startDate = moment(this.query.startDate).format("yyyy-MM-DD"); | 
			
		||||
 | 
				      this.query.endDate = moment(this.query.endDate).format("yyyy-MM-DD"); | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				      postapi('/api/app/AppointPatientRegister/GerAppointPatientRegisterWithAsbitemList', this.query) | 
			
		||||
 | 
				        .then(res => { | 
			
		||||
 | 
				          if (res.code > -1) { | 
			
		||||
 | 
				            this.patientList = res.data | 
			
		||||
 | 
				            if (this.patientList.length > 0) { | 
			
		||||
 | 
				              this.rowClick(this.patientList[0]) | 
			
		||||
 | 
				              this.$refs['patientList'].setCurrentRow(this.patientList[0]) | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				          } | 
			
		||||
 | 
				        }) | 
			
		||||
 | 
				        .finally(() => { | 
			
		||||
 | 
				          loading.close(); | 
			
		||||
 | 
				        }) | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    }, | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    //人员列表点击 | 
			
		||||
 | 
				    rowClick(row) { | 
			
		||||
 | 
				      this.curPatient = row | 
			
		||||
 | 
				      this.details = row.appointRegisterAsbitemDetail | 
			
		||||
 | 
				    }, | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    //数据初始化 | 
			
		||||
 | 
				    dictInit() { | 
			
		||||
 | 
				      this.formInit = Object.assign({}, this.form) | 
			
		||||
 | 
				      this.query.startDate = new Date() | 
			
		||||
 | 
				      this.query.endDate = this.query.startDate | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				      let LocalConfigStr = window.localStorage.getItem("LocalConfig") || null | 
			
		||||
 | 
				      if (LocalConfigStr) { | 
			
		||||
 | 
				        try { | 
			
		||||
 | 
				          let LocalConfig = JSON.parse(LocalConfigStr)           | 
			
		||||
 | 
				          if(LocalConfig?.doctorCheck?.scheduledAet) this.LocalConfig.doctorCheck.scheduledAet = LocalConfig.doctorCheck.scheduledAet | 
			
		||||
 | 
				          if (LocalConfig?.lisLab?.specimens) this.LocalConfig.lisLab.specimens = LocalConfig.lisLab.specimens | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        } catch (error) { | 
			
		||||
 | 
				          console.log('error', error) | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				      } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    }, | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				    //回车替代查询 | 
			
		||||
 | 
				    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 '条码号': | 
			
		||||
 | 
				                  // 扫码 | 
			
		||||
 | 
				                  this.pacsRequest(input.value) | 
			
		||||
 | 
				                    .then(() => { }) | 
			
		||||
 | 
				                    .catch(err => { | 
			
		||||
 | 
				                      console.log('pacsRequest.err', err) | 
			
		||||
 | 
				                    }) | 
			
		||||
 | 
				                    .finally(() => { | 
			
		||||
 | 
				                      input.select() | 
			
		||||
 | 
				                    }) | 
			
		||||
 | 
				                  break; | 
			
		||||
 | 
				                case '检查条码': | 
			
		||||
 | 
				                  if (input.value) this.onQueryByPacsNo(input.value) | 
			
		||||
 | 
				                  input.select() | 
			
		||||
 | 
				                  break; | 
			
		||||
 | 
				                case '检验条码': | 
			
		||||
 | 
				                  if (input.value) this.onQueryByLisNo(input.value) | 
			
		||||
 | 
				                  input.select() | 
			
		||||
 | 
				                  break; | 
			
		||||
 | 
				              } | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				          }); | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				          input.addEventListener('click', (event) => { | 
			
		||||
 | 
				            let placeholder = input.getAttribute('placeholder') | 
			
		||||
 | 
				            switch (placeholder) { | 
			
		||||
 | 
				              case '条码号': | 
			
		||||
 | 
				                input.select() | 
			
		||||
 | 
				                break; | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				          }); | 
			
		||||
 | 
				        }); | 
			
		||||
 | 
				      }); | 
			
		||||
 | 
				    }, | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				     // 发送pacs申请(有DCM-Worklist才有) | 
			
		||||
 | 
				    pacsRequest(checkRequestNo) { | 
			
		||||
 | 
				      return new Promise((resolve, reject) => { | 
			
		||||
 | 
				        let body = { | 
			
		||||
 | 
				          scheduledAet: this.LocalConfig.doctorCheck.scheduledAet, | 
			
		||||
 | 
				          checkRequestNo | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				        postapi('/api/app/Worklist/CreateRegisterCheckWorklist', body) | 
			
		||||
 | 
				          .then(res => { | 
			
		||||
 | 
				            if (res.code > -1) { | 
			
		||||
 | 
				              resolve(res.data) | 
			
		||||
 | 
				            } else { | 
			
		||||
 | 
				              reject(res.message) | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				          }) | 
			
		||||
 | 
				          .catch(err => { | 
			
		||||
 | 
				            reject(err) | 
			
		||||
 | 
				          }) | 
			
		||||
 | 
				      }) | 
			
		||||
 | 
				    } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				  }, | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				  //监听事件() | 
			
		||||
 | 
				  watch: { | 
			
		||||
 | 
				    // "dataTransOpts.refresh.charge.S": { | 
			
		||||
 | 
				    //   immediate: true, // 立即执行 | 
			
		||||
 | 
				    //   // // deep: true, // 深度监听复杂类型内变化 | 
			
		||||
 | 
				    //   handler(newVal, oldVal) { | 
			
		||||
 | 
				    //     console.log(`watch: 收费 newVal: ${newVal}, oldVal: ${oldVal}, 人员条码号: `, this.patientRegisterNo) | 
			
		||||
 | 
				    //     this.query.patientRegisterNo = this.patientRegisterNo | 
			
		||||
 | 
				    //     this.Query("patientRegisterNo") | 
			
		||||
 | 
				    //   } | 
			
		||||
 | 
				    // }, | 
			
		||||
 | 
				  }, | 
			
		||||
 | 
				}; | 
			
		||||
 | 
				</script> | 
			
		||||
 | 
				<style scoped> | 
			
		||||
 | 
				@import '../../assets/css/global_button.css'; | 
			
		||||
 | 
				@import '../../assets/css/global_card.css'; | 
			
		||||
 | 
				@import '../../assets/css/global_dialog.css'; | 
			
		||||
 | 
				@import '../../assets/css/global_form.css'; | 
			
		||||
 | 
				@import '../../assets/css/global_input.css'; | 
			
		||||
 | 
				@import '../../assets/css/global_table.css'; | 
			
		||||
 | 
				@import '../../assets/css/global.css'; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				.query { | 
			
		||||
 | 
				  margin-left: 5px; | 
			
		||||
 | 
				  font-size: 14px; | 
			
		||||
 | 
				  color: #232748; | 
			
		||||
 | 
				  font-weight: 400; | 
			
		||||
 | 
				  font-family: "NotoSansSC-Regular"; | 
			
		||||
 | 
				} | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				.btnDivClass { | 
			
		||||
 | 
				  display: block; | 
			
		||||
 | 
				  width: 100px; | 
			
		||||
 | 
				  margin-left: 10px; | 
			
		||||
 | 
				} | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				.btnListClass { | 
			
		||||
 | 
				  margin-top: 10px; | 
			
		||||
 | 
				} | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				.btnClass { | 
			
		||||
 | 
				  width: 100px; | 
			
		||||
 | 
				} | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				:deep .el-form-item--mini.el-form-item, | 
			
		||||
 | 
				.el-form-item--small.el-form-item { | 
			
		||||
 | 
				  margin-bottom: 10px; | 
			
		||||
 | 
				} | 
			
		||||
 | 
				</style> | 
			
		||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue