index.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" @submit.native.prevent label-position="right">
  4. <el-row type="flex" justify="space-between" :gutter="20">
  5. <el-col span="8">
  6. <el-form-item label="患者ID" prop="patientId">
  7. <el-input v-model="queryParams.patientId" placeholder="请输入患者ID" @keyup.enter.native="handleQuery" clearable
  8. class="inp"/>
  9. </el-form-item>
  10. </el-col>
  11. <el-col span="8">
  12. <el-form-item label="就诊卡号" prop="cardId">
  13. <el-input v-model="queryParams.cardId" placeholder="请输入就诊卡号" @keyup.enter.native="handleQuery" clearable
  14. class="inp"/>
  15. </el-form-item>
  16. </el-col>
  17. <el-col span="8">
  18. <el-form-item label="患者类别" prop="patientCategory">
  19. <el-select v-model="queryParams.patientCategory" placeholder="请选择患者类别" clearable class="se">
  20. <el-option v-for="dict in dict.type.patient_category" :key="dict.value" :label="dict.label"
  21. :value="dict.value"/>
  22. </el-select>
  23. </el-form-item>
  24. </el-col>
  25. </el-row>
  26. <el-row :gutter="20">
  27. <el-col span="8">
  28. <el-form-item label="患者位置" prop="bed">
  29. <el-input v-model="queryParams.bed" placeholder="请输入患者位置" @keyup.enter.native="handleQuery" clearable
  30. class="inp"/>
  31. </el-form-item>
  32. </el-col>
  33. <el-col span="8">
  34. <el-form-item label="主治医师" prop="physician">
  35. <el-input v-model="queryParams.physician" placeholder="请输入主治医师" @keyup.enter.native="handleQuery"
  36. clearable class="inp"/>
  37. </el-form-item>
  38. </el-col>
  39. <el-col span="8">
  40. <el-form-item label="主管护士代码" prop="nurseCode">
  41. <el-input v-model="queryParams.nurseCode" placeholder="请输入主管护士代码" @keyup.enter.native="handleQuery"
  42. clearable class="inp"/>
  43. </el-form-item>
  44. </el-col>
  45. </el-row>
  46. <el-row :gutter="20">
  47. <el-col span="8">
  48. <el-form-item label="入院次数" prop="hospitalizedNumber">
  49. <el-input v-model="queryParams.hospitalizedNumber" placeholder="请输入入院次数"
  50. @keyup.enter.native="handleQuery" clearable class="inp"/>
  51. </el-form-item>
  52. </el-col>
  53. <el-col span="8">
  54. <el-form-item label="出院方式" prop="dischargeMethod">
  55. <el-select v-model="queryParams.dischargeMethod" placeholder="请选择出院方式" clearable class="se">
  56. <el-option v-for="dict in dict.type.discharge_method" :key="dict.value" :label="dict.label"
  57. :value="dict.value"/>
  58. </el-select>
  59. </el-form-item>
  60. </el-col>
  61. <el-col span="8">
  62. <el-form-item label="医疗机构代码" prop="medicalCode">
  63. <el-input v-model="queryParams.medicalCode" placeholder="请输入医疗机构代码" @keyup.enter.native="handleQuery"
  64. clearable class="inp"/>
  65. </el-form-item>
  66. </el-col>
  67. </el-row>
  68. <el-row :gutter="20">
  69. <el-col span="8">
  70. <el-form-item label=" 在院状态" prop="hospitalStatus">
  71. <el-select v-model="queryParams.hospitalStatus" placeholder="请选择 在院状态" clearable class="se">
  72. <el-option v-for="dict in dict.type.hospital_status" :key="dict.value" :label="dict.label"
  73. :value="dict.value"/>
  74. </el-select>
  75. </el-form-item>
  76. </el-col>
  77. <el-col span="8">
  78. <el-form-item label="门诊挂号状态" prop="registrationStatus">
  79. <el-select v-model="queryParams.registrationStatus" placeholder="请选择门诊挂号状态" clearable class="se">
  80. <el-option v-for="dict in dict.type.registration_status" :key="dict.value" :label="dict.label"
  81. :value="dict.value"/>
  82. </el-select>
  83. </el-form-item>
  84. </el-col>
  85. <el-col span="8">
  86. <el-form-item label="入院时间" prop="admissionTime">
  87. <el-input v-model="queryParams.admissionTime" placeholder="请输入入院时间" @keyup.enter.native="handleQuery"
  88. clearable class="inp"/>
  89. </el-form-item>
  90. </el-col>
  91. </el-row>
  92. <el-row :gutter="20">
  93. <el-col span="8">
  94. <el-form-item label="出院时间" prop="dischargeTime">
  95. <el-input v-model="queryParams.dischargeTime" placeholder="请输入出院时间" @keyup.enter.native="handleQuery"
  96. clearable class="inp"/>
  97. </el-form-item>
  98. </el-col>
  99. <el-col span="8">
  100. <el-form-item label="患者(信息)ID" prop="msgId">
  101. <el-input v-model="queryParams.msgId" placeholder="请输入患者(信息)ID" @keyup.enter.native="handleQuery" clearable
  102. class="inp"/>
  103. </el-form-item>
  104. </el-col>
  105. <el-col span="8">
  106. <el-form-item label="科室" prop="department">
  107. <el-input v-model="queryParams.department" placeholder="请输入科室" @keyup.enter.native="handleQuery" clearable
  108. class="inp"/>
  109. </el-form-item>
  110. </el-col>
  111. </el-row>
  112. <el-row :gutter="20">
  113. <el-col span="24" >
  114. <el-form-item>
  115. <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
  116. <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
  117. </el-form-item>
  118. </el-col>
  119. </el-row>
  120. </el-form>
  121. <el-row :gutter="10" class="mb8">
  122. <el-button type="primary" icon="el-icon-plus" :disabled="ids.length > 0" @click="op('add')"
  123. v-hasPermi="['work:pv1:add']">新增
  124. </el-button>
  125. <el-button type="success" icon="el-icon-edit" :disabled="ids.length != 1" @click="op('edit',ids)"
  126. v-hasPermi="['work:pv1:edit']">修改
  127. </el-button>
  128. <el-button type="danger" icon="el-icon-delete" :disabled="ids.length == 0" @click="del"
  129. v-hasPermi="['work:pv1:remove']">删除{{ ids.length > 0 ? '(' + ids.length + ')' : '' }}
  130. </el-button>
  131. </el-row>
  132. <el-table :data="response.rows" border @selection-change="selects" height="calc(100vh - 270px)">
  133. <el-table-column type="selection" width="55" align="center"/>
  134. <el-table-column label="访问ID" align="center" prop="id"/>
  135. <el-table-column label="患者ID" align="center" prop="patientId"/>
  136. <el-table-column label="就诊卡号" align="center" prop="cardId"/>
  137. <el-table-column label="患者类别" align="center" prop="patientCategory">
  138. <template slot-scope="scope">
  139. <dict-tag :options="dict.type.patient_category" :value="scope.row.patientCategory"/>
  140. </template>
  141. </el-table-column>
  142. <el-table-column label="患者位置" align="center" prop="bed"/>
  143. <el-table-column label="主治医师" align="center" prop="physician"/>
  144. <el-table-column label="主管护士代码" align="center" prop="nurseCode"/>
  145. <el-table-column label="入院次数" align="center" prop="hospitalizedNumber"/>
  146. <el-table-column label="收费类别" align="center" prop="feeCategory"/>
  147. <el-table-column label="出院方式" align="center" prop="dischargeMethod">
  148. <template slot-scope="scope">
  149. <dict-tag :options="dict.type.discharge_method" :value="scope.row.dischargeMethod"/>
  150. </template>
  151. </el-table-column>
  152. <el-table-column label="医疗机构代码" align="center" prop="medicalCode"/>
  153. <el-table-column label=" 在院状态" align="center" prop="hospitalStatus">
  154. <template slot-scope="scope">
  155. <dict-tag :options="dict.type.hospital_status" :value="scope.row.hospitalStatus"/>
  156. </template>
  157. </el-table-column>
  158. <el-table-column label="门诊挂号状态" align="center" prop="registrationStatus">
  159. <template slot-scope="scope">
  160. <dict-tag :options="dict.type.registration_status" :value="scope.row.registrationStatus"/>
  161. </template>
  162. </el-table-column>
  163. <el-table-column label="入院时间" align="center" prop="admissionTime"/>
  164. <el-table-column label="出院时间" align="center" prop="dischargeTime"/>
  165. <el-table-column label="患者ID" align="center" prop="msgId"/>
  166. <el-table-column label="科室" align="center" prop="department"/>
  167. <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
  168. <template slot-scope="scope">
  169. <el-button size="mini" type="text" icon="el-icon-edit" @click="op('edit',scope.row)"
  170. v-hasPermi="['work:pv1:edit']">修改
  171. </el-button>
  172. <el-button size="mini" type="text" icon="el-icon-delete" @click="del(scope.row)"
  173. v-hasPermi="['work:pv1:remove']">删除
  174. </el-button>
  175. </template>
  176. </el-table-column>
  177. <template slot="empty">
  178. <el-empty></el-empty>
  179. </template>
  180. </el-table>
  181. <pagination v-if="response.total>0" :total="response.total" :page.sync="queryParams.pageNum"
  182. :limit.sync="queryParams.pageSize" @pagination="getList"/>
  183. </div>
  184. </template>
  185. <script>
  186. import edit from './edit'
  187. export default {
  188. name: "Pv1",
  189. dicts: ['hospital_status', 'discharge_method', 'patient_category', 'registration_status'],
  190. data() {
  191. return {
  192. queryParams: {
  193. pageNum: 1,
  194. pageSize: 10,
  195. patientId: null,
  196. cardId: null,
  197. patientCategory: null,
  198. bed: null,
  199. physician: null,
  200. nurseCode: null,
  201. hospitalizedNumber: null,
  202. feeCategory: null,
  203. dischargeMethod: null,
  204. medicalCode: null,
  205. hospitalStatus: null,
  206. registrationStatus: null,
  207. admissionTime: null,
  208. dischargeTime: null,
  209. msgId: null,
  210. department: null,
  211. orderByColumn: 'id', //排序字段
  212. isAsc: 'desc' //排序方式
  213. }
  214. };
  215. },
  216. created() {
  217. this.getList();
  218. },
  219. methods: {
  220. getList() {
  221. this.ajax({url: '/work/pv1/list', data: this.queryParams}).then(response => {
  222. this.response = response;
  223. });
  224. },
  225. handleQuery() {
  226. this.queryParams.pageNum = 1;
  227. this.getList();
  228. },
  229. resetQuery() {
  230. this.resetForm("queryForm");
  231. this.handleQuery();
  232. },
  233. selects(rows) {
  234. this.ids = rows.map(item => item.id)
  235. },
  236. op(tag, row) {
  237. if (tag == 'add') {
  238. this.iframe({obj: edit, param: {}, title: '新增', width: '45%', height: '55%'});
  239. }
  240. if (tag == 'edit') {
  241. const id = row.id || this.ids[0];
  242. this.iframe({obj: edit, param: {id: id}, title: '编辑', width: '50%', height: '50%'});
  243. }
  244. },
  245. del(row) {
  246. this.$confirm('是否确认删除选中数据?', '警告', {type: 'warning'}).then(() => {
  247. this.get({url: '/work/pv1/remove/' + (row.id || this.ids)}).then(response => {
  248. this.$modal.msgSuccess('删除成功');
  249. this.getList();
  250. });
  251. });
  252. }
  253. }
  254. };
  255. </script>