index.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8" />
  4. <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
  5. <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  6. <title>慢阻肺患者档案</title>
  7. <link rel="stylesheet" type="text/css" href="index.css" />
  8. </head>
  9. <body>
  10. <div id="app">
  11. <div class="copd-table-main">
  12. <template v-if="showTotalTable">
  13. <!--过滤器-->
  14. <div class="copd-filter-group ui-col-1 bgc-fff" style="min-width: 900px">
  15. <div class="searchDiv pb20">
  16. <label class="c-333 c-f14">
  17. <label class="c-333 c-f14">确诊年份:</label>
  18. <el-select v-model="chooseYear" class="pr20 formWidth wd160">
  19. <el-option v-for="(item , index) in years" :key="index" :label="item" :value="item"></el-option>
  20. </el-select>
  21. </label>
  22. </div>
  23. <!--=======================================================-->
  24. <div class="searchDiv pb20">
  25. <label class="c-333 c-f14">患者姓名:</label>
  26. <el-input v-model="name" class="pr20 formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
  27. </div>
  28. <!--=======================================================-->
  29. <div class="searchDiv pb20">
  30. <label class="c-333 c-f14">下转状态:</label>
  31. <el-select class="pr20 formWidth" v-model="turnDownStatus" placeholder="请选择">
  32. <el-option v-for="(option, index) in transferStatusOptions" :label="option.value" :value="option.code"></el-option>
  33. <!-- <el-option label="全部" value="item.value"></el-option> -->
  34. </el-select>
  35. </div>
  36. <!--=======================================================-->
  37. <div class="searchDiv pb20">
  38. <label class="c-333 c-f14">接收状态:</label>
  39. <el-select class="pr20 formWidth" v-model="receiveStatus" placeholder="请选择">
  40. <el-option v-for="(option, index) in receiveStatusOptions" :label="option.label" :value="option.value"></el-option>
  41. </el-select>
  42. </div>
  43. <!--=======================================================-->
  44. <div class="searchDiv pb20">
  45. <label class="c-333 c-f14">接收社区医院:</label>
  46. <el-select class="pr20 formWidth" v-model="hospital" placeholder="请选择">
  47. <el-option v-for="(option, index) in receivingHospitalList" :label="option.name" :value="option.code"></el-option>
  48. </el-select>
  49. </div>
  50. <!--=======================================================-->
  51. <div class="searchDiv pb20">
  52. <label class="c-333 c-f14">接收医生:</label>
  53. <el-input class="pr20 formWidth wd160" v-model="doctorName" placeholder="请输入医生姓名查询"></el-input>
  54. </div>
  55. <!--=======================================================-->
  56. <div class="searchDiv pb20">
  57. <label class="c-333 c-f14">随访状态:</label>
  58. <el-select class="pr20 formWidth" v-model="archivesStatus" placeholder="请选择">
  59. <el-option v-for="(option, index) in followStatusArr" :label="option.value" :value="option.code"></el-option>
  60. </el-select>
  61. </div>
  62. <!--=======================================================-->
  63. <div class="searchDiv pb20">
  64. <label class="c-333 c-f14">生存状态:</label>
  65. <el-select class="pr20 formWidth" v-model="isLive" placeholder="请选择">
  66. <el-option v-for="(option, index) in survivalStatusOption" :label="option.value" :value="option.code"></el-option>
  67. </el-select>
  68. </div>
  69. <!--=======================================================-->
  70. <div class="searchDiv pb20">
  71. <label class="c-333 c-f14">首次诊断医院名称:</label>
  72. <el-input class="pr20 formWidth wd160" v-model="firstOrg" placeholder="请输入医院名称查询"></el-input>
  73. </div>
  74. <!--=======================================================-->
  75. <div class="searchDiv pb20">
  76. <label class="c-333 c-f14">数据范围:</label>
  77. <el-select class="pr20 formWidth" v-model="rangeCode" placeholder="请选择" @change="initScope(3)">
  78. <el-option v-for="(option, index) in rangeList" :label="option.name" :value="option.code"></el-option>
  79. </el-select>
  80. </div>
  81. <!--=======================================================-->
  82. <div class="searchDiv pb20">
  83. <label class="c-333 c-f14">地区:</label>
  84. <el-select v-model="areaCode" style="width: 100px" class="pr10" @change="initScope(5)">
  85. <el-option v-for="(item , index) in areaList" :key="index" :label="item.name" :value="item.code"></el-option>
  86. </el-select>
  87. </div>
  88. <!--=======================================================-->
  89. <div class="searchDiv pb20" v-if="rangeCode=='hospital'">
  90. <label class="c-333 c-f14">社区:</label>
  91. <el-select v-model="communityCode" style="width: 200px" class="pr10">
  92. <el-option v-for="(item , index) in communityList" :key="index" :label="item.name" :value="item.code"></el-option>
  93. </el-select>
  94. </div>
  95. <!--=======================================================-->
  96. <div class="searchDiv pb20">
  97. <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
  98. <!-- <el-upload
  99. class="upload-demo"
  100. active=""
  101. :on-preview="handlePreview"
  102. :file-list="fileList">
  103. <el-button type="success " size="mini">导入</el-button>
  104. </el-upload> -->
  105. <!-- <div>
  106. <input ref="imgFile" type="file" name="FileUpload" class="file-upload" @change="handlePreview">
  107. </div>
  108. -->
  109. <!-- <el-button type="success " size="mini" @click="toggle(true)">导入</el-button> -->
  110. <el-button type="ff9526" size="mini" @click="exportTable">导出</el-button>
  111. <el-button type="ff9526" size="mini" @click="standardExport" :disabled="exportStandardLoading">国家标准导出</el-button>
  112. <el-button type="success" size="mini" @click="synPatient">档案同步</el-button>
  113. <el-button type="primary" size="mini" v-if="isGuGan" @click="openAllocationDialog">分配</el-button>
  114. <el-button type="primary" size="mini" v-else @click="distributionHospital">批量分配</el-button>
  115. <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
  116. </div>
  117. <!--=======================================================-->
  118. </div>
  119. <div class="ad-schedule-import">
  120. <el-dialog :destroy-on-close="true" title="导入" custom-class="schedule-import" :visible.sync="isShow" :append-to-body="true" width="400px">
  121. <div>
  122. <el-form ref="form" label-width="100px">
  123. <el-form-item label="居民档案">
  124. <el-upload action="" :before-upload="beforeUploadPic" :multiple="false" accept=".xls,.xlsx" :show-file-list="false" :file-list="fileList">
  125. <span class="fileName" style="color: #12b7f5">{{file? file.name : '请选择文件'}}</span>
  126. <el-button style="vertical-align: middle" size="small" type="primary">选择文件</el-button>
  127. </el-upload>
  128. </el-form-item>
  129. </el-form>
  130. </div>
  131. <span slot="footer" class="dialog-footer">
  132. <el-button @click="toggle(false)">取 消</el-button>
  133. <el-button v-loading="loading" type="primary" @click="check">确 定</el-button>
  134. </span>
  135. </el-dialog>
  136. <el-dialog
  137. :destroy-on-close="true"
  138. title="导入进度"
  139. custom-class="schedule-import"
  140. :visible.sync="isProgressShow"
  141. :append-to-body="true"
  142. :close-on-click-modal="false"
  143. :close-on-press-escape="false"
  144. :show-close="false"
  145. width="400px">
  146. <div class="tc">
  147. <div class="mb20">{{percentage!=100? '批量处理中,请耐心等待' : success? '处理成功!' : '处理失败,请重试'}}</div>
  148. <el-progress v-if="percentage!=100||success" :percentage="percentage"></el-progress>
  149. <el-progress v-else="" status="exception" :percentage="percentage"></el-progress>
  150. <div class="err-list" v-if="errList&&errList.length">
  151. <div v-for="(item, i) in errList" :key="i" v-html="item.errorMes"></div>
  152. </div>
  153. <div class="mt20">
  154. <el-button v-if="percentage!=100" type="info">处理中...</el-button>
  155. <el-button @click="close()" v-else-if="success" type="primary">处理成功</el-button>
  156. <el-button @click="close(1)" v-else type="danger">重试</el-button>
  157. </div>
  158. </div>
  159. </el-dialog>
  160. </div>
  161. <el-table style="width: 100%" :data="dataList" v-loading="daLoading" @selection-change="selectionLineChangeHandle">
  162. <el-table-column type="selection" width="55"></el-table-column>
  163. <el-table-column prop="name" label="患者姓名" width="180"></el-table-column>
  164. <el-table-column prop="nationality" label="国籍" width="180"></el-table-column>
  165. <el-table-column prop="nationName" label="民族" width="180"></el-table-column>
  166. <el-table-column prop="idcardTypeName" label="证件类型" width="180"></el-table-column>
  167. <el-table-column prop="idcard" label="证件号码" width="180"></el-table-column>
  168. <el-table-column prop="sexName" label="性别" width="180"></el-table-column>
  169. <el-table-column prop="birthday" label="出生日期" width="180"></el-table-column>
  170. <el-table-column prop="age" label="年龄" width="180"></el-table-column>
  171. <el-table-column prop="mobile" label="联系电话" width="180"></el-table-column>
  172. <el-table-column prop="liveAddress" label="常住地址" width="180"></el-table-column>
  173. <el-table-column prop="registAddress" label="户籍地址" width="180"></el-table-column>
  174. <el-table-column prop="occupationName" label="职业" width="180"></el-table-column>
  175. <el-table-column prop="marriageName" label="婚姻状态" width="180"></el-table-column>
  176. <el-table-column prop="firstChargeType" label="医保类型" width="180"></el-table-column>
  177. <el-table-column prop="turnDownStatusName" label="下转状态" width="180"></el-table-column>
  178. <el-table-column prop="receiveStatusName" label="接收状态" width="180"></el-table-column>
  179. <el-table-column prop="hospitalName" label="接收医院" width="180"></el-table-column>
  180. <el-table-column prop="doctorName" label="接收医生" width="180"></el-table-column>
  181. <el-table-column prop="archivesStatusName" label="随访状态" width="180"></el-table-column>
  182. <el-table-column prop="isLiveName" label="生存状态" width="180"></el-table-column>
  183. <el-table-column prop="deathTime" label="死亡日期" width="180"></el-table-column>
  184. <el-table-column label="操作" min-width="220" fixed="right">
  185. <template slot-scope="{row}">
  186. <el-button type="text" @click="onClickEdit(row)">编辑</el-button>
  187. <el-button type="text" @click="onClickServiceRecord(row)">服务记录</el-button>
  188. <el-button type="text" @click="onClickHealthRecord(row)">健康档案</el-button>
  189. </template>
  190. </el-table-column>
  191. </el-table>
  192. <div class="c-t-right mt20">
  193. <!-- TODO 修正 -->
  194. <el-pagination
  195. @current-change="handleCurrentChange"
  196. @size-change="handleSizeChange"
  197. :current-page.sync="page"
  198. :page-size="size"
  199. :page-sizes="[10, 20, 50]"
  200. layout="total, sizes, prev, pager, next, jumper"
  201. :total="totalCount"></el-pagination>
  202. </div>
  203. </template>
  204. <template v-else-if="showEditView">
  205. <copd-patient-record-edit :editData="currentEditData" ref="editName"></copd-patient-record-edit>
  206. </template>
  207. <template v-else-if="serviceRecordVisable">
  208. <copd-service-record :detailInfo="currentEditData" @back="back"></copd-service-record>
  209. </template>
  210. <template v-else-if="healthRecordVisable">
  211. <health-record></health-record>
  212. </template>
  213. <el-dialog title="分配管理医生" :visible.sync="allocationDialog" width="500px">
  214. <el-form :model="allocationForm" ref="allocationForm">
  215. <el-form-item label="管理机构:">{{docInfo.hospitalName}}</el-form-item>
  216. <el-form-item label="管理医生:" :rules="{required: true, message:'请选择管理医生'}" prop="doctor">
  217. <el-select v-model="allocationForm.doctor" popper-class="dropDown-select" filterable :loading="selectLoading">
  218. <el-option v-for="item in doctorList" :value="item.code" :label="item.name">
  219. {{item.name}}
  220. <span style="padding-left: 6px">已接收:{{item.receiveNum}}人</span>
  221. <span style="padding-left: 6px">未接收:{{item.unReceiveNum}}人</span>
  222. <span style="padding-left: 6px">签约患者:{{item.signNum}}人</span>
  223. <span style="padding-left: 6px">非签约患者:{{item.unSignNum}}人</span>
  224. </el-option>
  225. </el-select>
  226. </el-form-item>
  227. </el-form>
  228. <span slot="footer" class="dialog-footer">
  229. <el-button @click="closeAllocationDialog">取 消</el-button>
  230. <el-button type="primary" @click="allocationFn">确 定</el-button>
  231. </span>
  232. </el-dialog>
  233. </div>
  234. </div>
  235. </body>
  236. </html>