You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

178 lines
6.2 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div style="display: flex">
  3. <div style="display: flex; flex-wrap: wrap; width: 100%;">
  4. <div class="query">
  5. <span>条码号</span>
  6. <el-input placeholder="条码号" v-model="doctorCheck.prBase.patientRegisterNo" size="small" style="width: 140px"
  7. clearable @input="onQueryByPatientRegisterNo" />
  8. </div>
  9. <div class="query">
  10. <span>档案号</span>
  11. <el-input placeholder="档案号" v-model="doctorCheck.prBase.patientNo" size="small" style="width: 130px" clearable
  12. @input="onQueryByPatientNo" />
  13. </div>
  14. <div class="query">
  15. <span>姓名</span>
  16. <el-input placeholder="姓名" v-model="doctorCheck.prBase.patientName" size="small" style="width: 100px" clearable
  17. @blur="onQuery()" />
  18. </div>
  19. <div class="query">
  20. <span>性别</span>
  21. <el-select v-model="doctorCheck.prBase.sexId" style="width: 80px" size="small" disabled>
  22. <el-option v-for="item in dict.sex" :key="item.id" :label="item.displayName" :value="item.id" />
  23. </el-select>
  24. </div>
  25. <div class="query">
  26. <span>体检次数</span>
  27. <el-input v-model="doctorCheck.prBase.medicalTimes" size="small" style="width: 40px" disabled />
  28. </div>
  29. <div class="query">
  30. <span>婚姻</span>
  31. <el-select v-model="doctorCheck.prBase.maritalStatusId" style="width: 80px" size="small" disabled>
  32. <el-option v-for="item in dict.maritalStatus" :key="item.id" :label="item.displayName" :value="item.id" />
  33. </el-select>
  34. </div>
  35. <div class="query">
  36. <span>体检日期</span>
  37. <el-input :value="doctorCheck.prBase.creationTime ? lmoment(doctorCheck.prBase.creationTime, 'yyyy-MM-DD') : ''"
  38. style="width: 100px" size="small" disabled></el-input>
  39. </div>
  40. <div class="query">
  41. <span>单位</span>
  42. <el-input :value="doctorCheck.prBase.customerOrgParentName" style="width: 120px" size="small" disabled />
  43. </div>
  44. <div class="query">
  45. <span>部门</span>
  46. <el-input :value="doctorCheck.prBase.customerOrgName" style="width: 120px" size="small" disabled />
  47. </div>
  48. <div class="query">
  49. <span>体检类别</span>
  50. <el-select v-model="doctorCheck.prBase.medicalTypeId" disabled style="width: 80px" size="small">
  51. <el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName" :value="item.id" />
  52. </el-select>
  53. </div>
  54. <div class="query">
  55. <span>人员类别</span>
  56. <el-select v-model="doctorCheck.prBase.personnelTypeId" disabled style="width: 80px" size="small">
  57. <el-option v-for="item in dict.personnelType" :key="item.id" :label="item.displayName" :value="item.id" />
  58. </el-select>
  59. </div>
  60. <div class="query">
  61. <span>民族</span>
  62. <el-select v-model="doctorCheck.prBase.nationId" disabled style="width: 80px" size="small">
  63. <el-option v-for="item in dict.nation" :key="item.id" :label="item.displayName" :value="item.id" />
  64. </el-select>
  65. </div>
  66. <div class="query">
  67. <span>手机</span>
  68. <el-input :value="doctorCheck.prBase.mobileTelephone" style="width: 120px" size="small" disabled />
  69. </div>
  70. </div>
  71. </div>
  72. </template>
  73. <script>
  74. import moment from "moment";
  75. import { mapState, mapMutations} from "vuex";
  76. import { getapi, postapi, putapi, deletapi } from "@/api/api";
  77. import { objCopy, opjCopy } from '../../utlis/proFunc'
  78. export default {
  79. components: {},
  80. data() {
  81. return {
  82. dialogVisible: false,
  83. pickerOptions: {
  84. shortcuts: [
  85. {
  86. text: "最近一周",
  87. onClick(picker) {
  88. const end = new Date();
  89. const start = new Date();
  90. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  91. picker.$emit("pick", [start, end]);
  92. },
  93. },
  94. {
  95. text: "最近一个月",
  96. onClick(picker) {
  97. const end = new Date();
  98. const start = new Date();
  99. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  100. picker.$emit("pick", [start, end]);
  101. },
  102. },
  103. {
  104. text: "最近三个月",
  105. onClick(picker) {
  106. const end = new Date();
  107. const start = new Date();
  108. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  109. picker.$emit("pick", [start, end]);
  110. },
  111. },
  112. ],
  113. },
  114. };
  115. },
  116. created() { },
  117. //挂载完成
  118. mounted() { },
  119. computed: {
  120. ...mapState(["dict", "doctorCheck", "patientRegister", "customerOrg"]),
  121. },
  122. methods: {
  123. ...mapMutations(['doctorCheckPrBaseInit']),
  124. //按条码号查个人数据
  125. onQueryByPatientRegisterNo() {
  126. let val = this.doctorCheck.prBase.patientRegisterNo
  127. console.log(`/api/app/patient-register/patient-register-or-patient?SType=1&PatientRegisterNo=${val}`)
  128. getapi(`/api/app/patient-register/patient-register-or-patient?SType=1&PatientRegisterNo=${val}`)
  129. .then((res) => {
  130. if (res.code != -1) {
  131. this.doctorCheckPrBaseInit()
  132. this.doctorCheck.prBase.patientRegisterNo = val
  133. objCopy(res.data,this.doctorCheck.prBase)
  134. }
  135. });
  136. },
  137. //按条码号查个人数据
  138. onQueryByPatientNo() {
  139. let val = this.doctorCheck.prBase.patientNo
  140. console.log(`/api/app/patient-register/patient-register-or-patient?SType=2&PatientNo=${val}`)
  141. getapi(`/api/app/patient-register/patient-register-or-patient?SType=2&PatientNo=${val}`)
  142. .then((res) => {
  143. if (res.code != -1) {
  144. this.doctorCheckPrBaseInit()
  145. this.doctorCheck.prBase.patientNo = val
  146. objCopy(res.data,this.doctorCheck.prBase)
  147. }
  148. });
  149. },
  150. lmoment(date, forMat) {
  151. return moment(new Date(date)).format(forMat);
  152. },
  153. //查询
  154. btnQuery() {
  155. this.doctorCheck.prBase.times++;
  156. console.log("this.doctorCheck.prBase", this.doctorCheck.prBase);
  157. },
  158. //读身份证
  159. readIdCard() {
  160. alert("读身份证");
  161. },
  162. },
  163. };
  164. </script>
  165. <style scoped>
  166. .query {
  167. margin-left: 10px;
  168. }
  169. </style>