adviceSearch.vue 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966
  1. <template>
  2. <div class="dashboard-container">
  3. <div class="block">
  4. <div class="barBtn-title">住院医嘱查询</div>
  5. <div class="bnh"></div>
  6. <div class="barBtn">
  7. <el-form ref="form" :model="formData1" label-width="100px">
  8. <el-form-item v-for="(item, index) in formData1.seniorList" :key="index">
  9. <!-- 下拉框开始 -->
  10. <el-select v-model="item.select_type" class="width100 marginLeft" filterable placeholder="">
  11. <!-- fieldList -->
  12. <el-option label="且" :value="0" />
  13. <el-option label="或者" :value="1" />
  14. <el-option label="不包含" :value="2" />
  15. </el-select>
  16. <span v-if="index != 0" class="pind10" />
  17. <el-select v-model="item.key" class="width150" filterable placeholder="请选择" @change="funSelect(index)">
  18. <!-- fieldList -->
  19. <el-option v-for="(item, index) in fieldList" :key="index" :label="item.name" :value="item.id" />
  20. </el-select>
  21. <!-- 下拉框结束 -->
  22. <span class="pind10" />
  23. <!-- 中间选择输入框开始 -->
  24. <span v-if="item.key == 'YZQX'">
  25. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  26. <el-option v-for="(item, index) in YZQXList" :key="index" :label="item.val" :value="item.id"></el-option>
  27. </el-select>
  28. </span>
  29. <span v-else-if="item.key == 'KZKS'">
  30. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  31. <el-option v-for="(item, index) in KZKSList" :key="index" :label="item.val" :value="item.id"></el-option>
  32. </el-select>
  33. </span>
  34. <span v-else-if="item.key == 'BRKS'">
  35. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  36. <el-option v-for="(item, index) in BRKSList" :key="index" :label="item.val" :value="item.id"></el-option>
  37. </el-select>
  38. </span>
  39. <span v-else-if="item.key == 'YYSX'">
  40. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  41. <el-option v-for="(item, index) in YYSXList" :key="index" :label="item.val" :value="item.id"></el-option>
  42. </el-select>
  43. </span>
  44. <span v-else-if="item.key == 'XMLB'">
  45. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  46. <el-option v-for="(item, index) in XMLBList" :key="index" :label="item.val" :value="item.id"></el-option>
  47. </el-select>
  48. </span>
  49. <span v-else-if="item.key == 'MD_RYQK'">
  50. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  51. <el-option v-for="(item, index) in MD_RYQKList" :key="index" :label="item.val" :value="item.id"></el-option>
  52. </el-select>
  53. </span>
  54. <span v-else-if="item.key == 'OD_RYQK'">
  55. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  56. <el-option v-for="(item, index) in OD_RYQKList" :key="index" :label="item.val" :value="item.id"></el-option>
  57. </el-select>
  58. </span>
  59. <span v-else-if="item.key == 'MO_OPE_LEVEL'">
  60. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  61. <el-option v-for="(item, index) in MO_OPE_LEVELList" :key="index" :label="item.val" :value="item.id"></el-option>
  62. </el-select>
  63. </span>
  64. <span v-else-if="item.key == 'MO_SSPB'">
  65. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  66. <el-option v-for="(item, index) in MO_SSPBList" :key="index" :label="item.val" :value="item.id"></el-option>
  67. </el-select>
  68. </span>
  69. <span v-else-if="item.key == 'MO_OPE_TYPE'">
  70. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  71. <el-option v-for="(item, index) in MO_OPE_TYPEList" :key="index" :label="item.val" :value="item.id"></el-option>
  72. </el-select>
  73. </span>
  74. <span v-else-if="item.key == 'SO_OPE_LEVEL'">
  75. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  76. <el-option v-for="(item, index) in SO_OPE_LEVELList" :key="index" :label="item.val" :value="item.id"></el-option>
  77. </el-select>
  78. </span>
  79. <span v-else-if="item.key == 'SO_SSPB'">
  80. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  81. <el-option v-for="(item, index) in SO_SSPBList" :key="index" :label="item.val" :value="item.id"></el-option>
  82. </el-select>
  83. </span>
  84. <span v-else-if="item.key == 'SO_OPE_TYPE'">
  85. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  86. <el-option v-for="(item, index) in SO_OPE_TYPEList" :key="index" :label="item.val" :value="item.id"></el-option>
  87. </el-select>
  88. </span>
  89. <span v-else-if="item.key == 'MO_SO_OPE_LEVEL'">
  90. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  91. <el-option v-for="(item, index) in MO_SO_OPE_LEVELList" :key="index" :label="item.val" :value="item.id"></el-option>
  92. </el-select>
  93. </span>
  94. <span v-else-if="item.key == 'MO_SO_SSPB'">
  95. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  96. <el-option v-for="(item, index) in MO_SO_SSPBList" :key="index" :label="item.val" :value="item.id"></el-option>
  97. </el-select>
  98. </span>
  99. <span v-else-if="item.key == 'MO_SO_OPE_TYPE'">
  100. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  101. <el-option v-for="(item, index) in MO_SO_OPE_TYPEList" :key="index" :label="item.val" :value="item.id"></el-option>
  102. </el-select>
  103. </span>
  104. <span v-else-if="item.key == 'MO_SO_RJSS'">
  105. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  106. <el-option v-for="(item, index) in MO_SO_RJSSList" :key="index" :label="item.val" :value="item.id"></el-option>
  107. </el-select>
  108. </span>
  109. <span v-else-if="item.key == 'AEM01C'">
  110. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  111. <el-option v-for="(item, index) in AEM01CList" :key="index" :label="item.val" :value="item.id"></el-option>
  112. </el-select>
  113. </span>
  114. <span v-else-if="item.key == 'AAB06C'">
  115. <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
  116. <el-option v-for="(item, index) in AAB06CList" :key="index" :label="item.val" :value="item.id"></el-option>
  117. </el-select>
  118. </span>
  119. <span v-else>
  120. <el-input class="width150" v-model="item.value" placeholder="请输入"></el-input>
  121. </span>
  122. <!-- 中间选择输入框结束 -->
  123. <span class="pind10" />
  124. <!-- 条件下拉开始 -->
  125. <!-- <el-select v-model="item.type" class="width90" placeholder="">
  126. <el-option label="精确" value="1" />
  127. <el-option label="模糊" value="0" />
  128. </el-select> -->
  129. <!-- 条件下拉结束 -->
  130. <span class="pind10" />
  131. <!-- 增减重置选项按钮开始 -->
  132. <span>
  133. <el-button v-if="index != 0" :disabled="formData1.seniorList.length == 1" type="primary" icon="el-icon-minus" @click="funDel(index)" />
  134. <el-button v-if="index == formData1.seniorList.length - 1" type="primary" icon="el-icon-plus" @click="funAdd" />
  135. </span>
  136. <!-- 增减重置选项按钮结束 -->
  137. </el-form-item>
  138. <el-form-item label="出院时间">
  139. <el-date-picker v-model="formData1.startTime" type="date" format="yyyy 年 MM 月 dd 日" value-format="yyyyMMdd" placeholder="开始日期" :picker-options="pickerOptions" />
  140. <span class="pind10" />
  141. <el-date-picker v-model="formData1.endTime" type="date" format="yyyy 年 MM 月 dd 日" value-format="yyyyMMdd" placeholder="结束日期" :picker-options="pickerOptions" />
  142. </el-form-item>
  143. <el-form-item label="住院天数">
  144. <el-input-number v-model="formData1.AAC04_start" :min="1" :step="1" :controls="false" placeholder="起始天数" style="width: 220px"></el-input-number>
  145. <span class="pind10" />
  146. <el-input-number v-model="formData1.AAC04_end" :min="1" :step="1" :controls="false" placeholder="终止天数" style="width: 220px"></el-input-number>
  147. </el-form-item>
  148. <el-form-item label="患者年龄">
  149. <el-input-number
  150. v-model="formData1.AAA04_start"
  151. :min="1"
  152. :step="1"
  153. :controls="false"
  154. :placeholder="formData1.ageType1 ? '起始年龄' : '起始天数'"
  155. style="width: 220px"
  156. ></el-input-number>
  157. <el-select v-model="formData1.ageType1" placeholder="请选择" @change="ageTypeChange1" style="width: 80px">
  158. <el-option label="年龄" :value="1"></el-option>
  159. <el-option label="天数" :value="0"></el-option>
  160. </el-select>
  161. <span class="pind10" />
  162. ——
  163. <span class="pind10" />
  164. <el-input-number
  165. v-model="formData1.AAA04_end"
  166. :min="1"
  167. :step="1"
  168. :controls="false"
  169. :placeholder="formData1.ageType2 ? '终止年龄' : '终止天数'"
  170. style="width: 220px"
  171. ></el-input-number>
  172. <el-select v-model="formData1.ageType2" placeholder="请选择" @change="ageTypeChange2" style="width: 80px">
  173. <el-option label="年龄" :value="1"></el-option>
  174. <el-option label="天数" :value="0"></el-option>
  175. </el-select>
  176. </el-form-item>
  177. <el-form-item label="住院次数">
  178. <el-input-number v-model="formData1.AAA29_start" :min="1" :step="1" :controls="false" placeholder="住院次数" style="width: 220px"></el-input-number>
  179. <span class="pind10" />
  180. <el-input-number v-model="formData1.AAA29_end" :min="1" :step="1" :controls="false" placeholder="住院次数" style="width: 220px"></el-input-number>
  181. </el-form-item>
  182. <el-form-item label="开嘱时间">
  183. <el-date-picker
  184. v-model="formData1.KZSJ_start"
  185. type="date"
  186. format="yyyy 年 MM 月 dd 日"
  187. value-format="yyyyMMdd"
  188. placeholder="开始日期"
  189. :picker-options="pickerOptions"
  190. />
  191. <span class="pind10" />
  192. <el-date-picker v-model="formData1.KZSJ_end" type="date" format="yyyy 年 MM 月 dd 日" value-format="yyyyMMdd" placeholder="结束日期" :picker-options="pickerOptions" />
  193. </el-form-item>
  194. </el-form>
  195. </div>
  196. <div class="fBtn" style="position: relative">
  197. <el-button class="btn1" style="position: absolute; right: 270px" @click="reset">重置条件</el-button>
  198. <el-button class="btn2" @click="seachFunQuery">检索</el-button>
  199. </div>
  200. </div>
  201. <div class="tableBox">
  202. <div class="flextab" style="margin: 0; margin-bottom: 15px">
  203. <div class="flextabtitle-box">
  204. <div class="h-title">
  205. <span class="blue"></span>
  206. <span class="text">住院医嘱列表</span>
  207. <span class="titleName" v-if="paginationData.total != 0">
  208. 例数:
  209. <span class="title-left-span">{{ paginationData.total }}</span>
  210. </span>
  211. </div>
  212. <!-- 不登陆访问没有导出 -->
  213. <el-button v-if="!isWhitelist" class="title-left-btn" @click="funExport()">导出Excel</el-button>
  214. </div>
  215. </div>
  216. <div class="conter" style="border: none">
  217. <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange">
  218. <el-table-column type="index" :index="indexAdd" label="序号" width="70px"></el-table-column>
  219. <el-table-column prop="AAA28" label="病案号">
  220. <template slot-scope="scope">
  221. <span class="blue" @click="funGoto(scope.row.ZYH)">
  222. <template>
  223. <div>
  224. {{ scope.row.AAA28 }}
  225. </div>
  226. </template>
  227. </span>
  228. </template>
  229. </el-table-column>
  230. <el-table-column prop="AAB01" label="入院时间"></el-table-column>
  231. <el-table-column prop="YZMC" label="医嘱名称"></el-table-column>
  232. <el-table-column prop="YCJL" label="剂量"></el-table-column>
  233. <el-table-column prop="SYPC" label="用法"></el-table-column>
  234. <el-table-column prop="BRKS" label="病人科室"></el-table-column>
  235. <el-table-column prop="KZKS" label="开嘱科室"></el-table-column>
  236. <el-table-column prop="YZQX" label="医嘱期效"></el-table-column>
  237. <el-table-column prop="AAC01" label="出院时间"></el-table-column>
  238. </el-table>
  239. <!-- 分页控制 -->
  240. </div>
  241. <el-pagination
  242. v-if="tableData && tableData.length !== 0"
  243. @size-change="SizeChangeEvent"
  244. @current-change="pageHasChanged"
  245. :total="paginationData.total"
  246. background
  247. class="table-pagination"
  248. style="margin: 15px 0px"
  249. :page-size="paginationData.pageSize"
  250. :current-page.sync="paginationData.currentPage"
  251. layout="total, sizes, prev, pager, next, jumper"
  252. ></el-pagination>
  253. </div>
  254. </div>
  255. </template>
  256. <script>
  257. import { downloadFile } from '@/httpFile';
  258. import Title from '@/components/Title';
  259. import { mapGetters } from 'vuex';
  260. import mPagination from '@/components/m-pagination';
  261. import { doctorAdviceExport } from '@/api/excel';
  262. export default {
  263. name: 'adviceSearch',
  264. props: {
  265. isWhitelist: {
  266. type: Boolean,
  267. default() {
  268. return false
  269. }
  270. }
  271. },
  272. components: {
  273. Title,
  274. mPagination,
  275. },
  276. computed: {
  277. ...mapGetters(['name']),
  278. },
  279. data() {
  280. return {
  281. choice: 0,
  282. formData: {
  283. endTime: '',
  284. startTime: '',
  285. seniorList: [
  286. {
  287. key: '',
  288. value: '',
  289. type: '0',
  290. },
  291. ],
  292. },
  293. tableData: [],
  294. paginationData: {
  295. total: 0,
  296. currentPage: 1,
  297. pageSize: 10,
  298. },
  299. fieldList: [],
  300. multipleSelection: [],
  301. setList: [],
  302. YZQXList: [], //医嘱起效列表
  303. KZKSList: [], //开嘱科室列表
  304. BRKSList: [], //病人列表
  305. YYSXList: [], //用药属性
  306. XMLBList: [], // 项目类别
  307. MD_RYQKList: [], // 主要诊断入院情况
  308. OD_RYQKList: [], // 其他诊断入院情况
  309. MO_OPE_LEVELList: [], // 主要手术级别
  310. MO_SSPBList: [], // 主要手术判别
  311. MO_OPE_TYPEList: [], // 主要手术类型
  312. SO_OPE_LEVELList: [], // 其他手术手术级别L
  313. SO_SSPBList: [], // 其他手术判别
  314. SO_OPE_TYPEList: [], // 其他手术类型
  315. MO_SO_OPE_LEVELList: [], // 手术级别
  316. MO_SO_SSPBList: [], // 手术判别
  317. MO_SO_OPE_TYPEList: [], // 手术类型
  318. MO_SO_RJSSList: [], // 是否为日间手术
  319. AEM01CList: [], // 离院方式
  320. AAB06CList: [], // 入院途径
  321. formData1: {
  322. // 搜搜条件
  323. ageday: '',
  324. age_start_type: 2,
  325. age_end_type: 2,
  326. ageyear: '',
  327. endTime: undefined,
  328. startTime: undefined,
  329. seniorList: [
  330. {
  331. select_type: 0,
  332. key: '',
  333. value: '',
  334. // type: '0',
  335. },
  336. ],
  337. seniorList1: [],
  338. hospitalizationon: '',
  339. hospitalizationin: '',
  340. AAC04_start: undefined,
  341. AAC04_end: undefined,
  342. AAA04_start: undefined,
  343. AAA04_end: undefined,
  344. ageType1: 1,
  345. ageType2: 1,
  346. AAA29_start: undefined, // 住院次数
  347. AAA29_end: undefined, // 住院次数
  348. KZSJ_start: undefined, // 开嘱时间
  349. KZSJ_end: undefined, // 开嘱时间
  350. },
  351. departmentList: [],
  352. searchNum: 0,
  353. pickerOptions: {
  354. disabledDate(time) {
  355. return time.getTime() > Date.now();
  356. },
  357. },
  358. };
  359. },
  360. mounted() {
  361. this.funQuery();
  362. },
  363. created() {
  364. this.searchCondition();
  365. },
  366. methods: {
  367. funGoto(val) {
  368. this.storageSet('getData', val);
  369. const { path } = this.$route;
  370. let toPath;
  371. if (path === '/hospital-search') {
  372. toPath = '/hospital-caseViews';
  373. } else if (path === '/whitelist-search') {
  374. toPath = '/whitelist-caseViews';
  375. } else {
  376. toPath = '/caseViews';
  377. }
  378. this.$router.push({ path: toPath, query: { status: 1} })
  379. },
  380. indexAdd(index) {
  381. return index + 1 + (this.paginationData.currentPage - 1) * this.paginationData.pageSize;
  382. },
  383. funSelect(index, e) {
  384. this.formData1.seniorList[index].value = '';
  385. },
  386. funSetList() {},
  387. handleSelectionChange(val) {
  388. this.multipleSelection = val;
  389. },
  390. SizeChangeEvent(val) {
  391. this.paginationData.pageSize = val;
  392. this.funQuery();
  393. },
  394. pageHasChanged() {
  395. this.funQuery();
  396. },
  397. seachFunQuery() {
  398. this.paginationData.currentPage = 1;
  399. this.funQuery();
  400. },
  401. funDel(i) {
  402. const index = i;
  403. if (index == 0) {
  404. return;
  405. }
  406. const list = this.formData1.seniorList;
  407. list.splice(index, 1);
  408. this.formData1.seniorList = list;
  409. },
  410. funAdd() {
  411. this.formData1.seniorList.push({
  412. key: '',
  413. select_type: 0,
  414. value: '',
  415. // type: '0',
  416. });
  417. },
  418. funQuery() {
  419. let pramse = {
  420. page_size: this.paginationData.pageSize,
  421. page: this.paginationData.currentPage, //是当前页数 默认是0 。普通检索的参数是
  422. };
  423. // 处理 field 字段等于空的时候
  424. let fieldArr = [];
  425. this.formData1.seniorList.forEach((item, index) => {
  426. if (item.key != '') {
  427. fieldArr.push(item);
  428. }
  429. });
  430. if (fieldArr != '' && fieldArr != null) {
  431. pramse.field = fieldArr;
  432. }
  433. pramse.AAC01_start = this.formData1.startTime;
  434. pramse.AAC01_end = this.formData1.endTime;
  435. pramse.AAC04_start = this.formData1.AAC04_start;
  436. pramse.AAC04_end = this.formData1.AAC04_end;
  437. pramse.AAA29_start = this.formData1.AAA29_start;
  438. pramse.AAA29_end = this.formData1.AAA29_end;
  439. pramse.KZSJ_start = this.formData1.KZSJ_start;
  440. pramse.KZSJ_end = this.formData1.KZSJ_end;
  441. const { ageType1, ageType2 } = this.formData1;
  442. if (this.formData1.AAA04_start) {
  443. pramse.AAA04_start = { type: ageType1, value: this.formData1.AAA04_start };
  444. }
  445. if (this.formData1.AAA04_end) {
  446. pramse.AAA04_end = { type: ageType2, value: this.formData1.AAA04_end };
  447. }
  448. this.$axios3.post('/yz/serach', pramse).then(res => {
  449. this.tableData = res.data.list || [];
  450. this.paginationData.total = res.data.total;
  451. });
  452. },
  453. reset() {
  454. // 重置数据
  455. this.paginationData.currentPage = 1;
  456. Object.assign(this.$data.formData1, this.$options.data().formData1);
  457. this.funQuery();
  458. },
  459. searchCondition() {
  460. this.$axios3.post('/yz/serach_where').then(res => {
  461. res.data.forEach((item, index) => {
  462. item.id = item.key;
  463. if (item.key == 'YZQX') {
  464. let YZQXArr = Object.keys(item.value);
  465. YZQXArr.forEach((jitem, index) => {
  466. this.YZQXList.push({ id: jitem, val: item.value[jitem] });
  467. });
  468. }
  469. if (item.key == 'KZKS') {
  470. let KZKSArr = Object.keys(item.value);
  471. KZKSArr.forEach((jitem, index) => {
  472. this.KZKSList.push({ id: jitem, val: item.value[jitem] });
  473. });
  474. }
  475. if (item.key == 'BRKS') {
  476. let BRKSArr = Object.keys(item.value);
  477. BRKSArr.forEach((jitem, index) => {
  478. this.BRKSList.push({ id: jitem, val: item.value[jitem] });
  479. });
  480. }
  481. if (item.key == 'YYSX') {
  482. let YYSXArr = Object.keys(item.value);
  483. YYSXArr.forEach((jitem, index) => {
  484. this.YYSXList.push({ id: jitem, val: item.value[jitem] });
  485. });
  486. }
  487. if (item.key == 'XMLB') {
  488. let XMLBArr = Object.keys(item.value);
  489. XMLBArr.forEach((jitem, index) => {
  490. this.XMLBList.push({ id: jitem, val: item.value[jitem] });
  491. });
  492. }
  493. if (item.key == 'MD_RYQK') {
  494. let MD_RYQKArr = Object.keys(item.value);
  495. MD_RYQKArr.forEach((jitem, index) => {
  496. this.MD_RYQKList.push({ id: jitem, val: item.value[jitem] });
  497. });
  498. }
  499. if (item.key == 'OD_RYQK') {
  500. let OD_RYQKArr = Object.keys(item.value);
  501. OD_RYQKArr.forEach((jitem, index) => {
  502. this.OD_RYQKList.push({ id: jitem, val: item.value[jitem] });
  503. });
  504. }
  505. if (item.key == 'MO_OPE_LEVEL') {
  506. let MO_OPE_LEVELArr = Object.keys(item.value);
  507. MO_OPE_LEVELArr.forEach((jitem, index) => {
  508. this.MO_OPE_LEVELList.push({ id: jitem, val: item.value[jitem] });
  509. });
  510. }
  511. if (item.key == 'MO_SSPB') {
  512. let MO_SSPBArr = Object.keys(item.value);
  513. MO_SSPBArr.forEach((jitem, index) => {
  514. this.MO_SSPBList.push({ id: jitem, val: item.value[jitem] });
  515. });
  516. }
  517. if (item.key == 'MO_OPE_TYPE') {
  518. let MO_OPE_TYPEArr = Object.keys(item.value);
  519. MO_OPE_TYPEArr.forEach((jitem, index) => {
  520. this.MO_OPE_TYPEList.push({ id: jitem, val: item.value[jitem] });
  521. });
  522. }
  523. if (item.key == 'SO_OPE_LEVEL') {
  524. let SO_OPE_LEVELArr = Object.keys(item.value);
  525. SO_OPE_LEVELArr.forEach((jitem, index) => {
  526. this.SO_OPE_LEVELList.push({ id: jitem, val: item.value[jitem] });
  527. });
  528. }
  529. if (item.key == 'SO_SSPB') {
  530. let SO_SSPBArr = Object.keys(item.value);
  531. SO_SSPBArr.forEach((jitem, index) => {
  532. this.SO_SSPBList.push({ id: jitem, val: item.value[jitem] });
  533. });
  534. }
  535. if (item.key == 'SO_OPE_TYPE') {
  536. let SO_OPE_TYPEArr = Object.keys(item.value);
  537. SO_OPE_TYPEArr.forEach((jitem, index) => {
  538. this.SO_OPE_TYPEList.push({ id: jitem, val: item.value[jitem] });
  539. });
  540. }
  541. if (item.key == 'MO_SO_OPE_LEVEL') {
  542. let MO_SO_OPE_LEVELArr = Object.keys(item.value);
  543. MO_SO_OPE_LEVELArr.forEach((jitem, index) => {
  544. this.MO_SO_OPE_LEVELList.push({ id: jitem, val: item.value[jitem] });
  545. });
  546. }
  547. if (item.key == 'MO_SO_SSPB') {
  548. let MO_SO_SSPBArr = Object.keys(item.value);
  549. MO_SO_SSPBArr.forEach((jitem, index) => {
  550. this.MO_SO_SSPBList.push({ id: jitem, val: item.value[jitem] });
  551. });
  552. }
  553. if (item.key == 'MO_SO_OPE_TYPE') {
  554. let MO_SO_OPE_TYPEArr = Object.keys(item.value);
  555. MO_SO_OPE_TYPEArr.forEach((jitem, index) => {
  556. this.MO_SO_OPE_TYPEList.push({ id: jitem, val: item.value[jitem] });
  557. });
  558. }
  559. if (item.key == 'MO_SO_RJSS') {
  560. let MO_SO_RJSSArr = Object.keys(item.value);
  561. MO_SO_RJSSArr.forEach((jitem, index) => {
  562. this.MO_SO_RJSSList.push({ id: jitem, val: item.value[jitem] });
  563. });
  564. }
  565. if (item.key == 'AEM01C') {
  566. let AEM01CArr = Object.keys(item.value);
  567. AEM01CArr.forEach((jitem, index) => {
  568. this.AEM01CList.push({ id: jitem, val: item.value[jitem] });
  569. });
  570. }
  571. if (item.key == 'AAB06C') {
  572. let AAB06CArr = Object.keys(item.value);
  573. AAB06CArr.forEach((jitem, index) => {
  574. this.AAB06CList.push({ id: jitem, val: item.value[jitem] });
  575. });
  576. }
  577. });
  578. this.fieldList = res.data;
  579. });
  580. },
  581. funExport() {
  582. //查询
  583. let pramse = {
  584. page_size: this.paginationData.pageSize,
  585. page: this.paginationData.currentPage, //是当前页数 默认是0 。普通检索的参数是
  586. };
  587. // 处理 field 字段等于空的时候
  588. let fieldArr = [];
  589. this.formData1.seniorList.forEach((item, index) => {
  590. if (item.key != '') {
  591. fieldArr.push(item);
  592. }
  593. });
  594. if (fieldArr != '' && fieldArr != null) {
  595. pramse.field = fieldArr;
  596. }
  597. if (this.formData1.startTime) {
  598. pramse.AAC01_start = this.formData1.startTime;
  599. }
  600. if (this.formData1.endTime) {
  601. pramse.AAC01_end = this.formData1.endTime;
  602. }
  603. if (this.formData1.AAC04_start) {
  604. pramse.AAC04_start = this.formData1.AAC04_start;
  605. }
  606. if (this.formData1.AAC04_end) {
  607. pramse.AAC04_end = this.formData1.AAC04_end;
  608. }
  609. if (this.formData1.AAA29_start) {
  610. pramse.AAA29_start = this.formData1.AAA29_start;
  611. }
  612. if (this.formData1.AAA29_end) {
  613. pramse.AAA29_end = this.formData1.AAA29_end;
  614. }
  615. if (this.formData1.KZSJ_start) {
  616. pramse.KZSJ_start = this.formData1.KZSJ_start;
  617. }
  618. if (this.formData1.KZSJ_end) {
  619. pramse.KZSJ_end = this.formData1.KZSJ_end;
  620. }
  621. const { ageType1, ageType2 } = this.formData1;
  622. if (this.formData1.AAA04_start) {
  623. pramse.AAA04_start = { type: ageType1, value: this.formData1.AAA04_start };
  624. }
  625. if (this.formData1.AAA04_end) {
  626. pramse.AAA04_end = { type: ageType2, value: this.formData1.AAA04_end };
  627. }
  628. doctorAdviceExport(pramse).then(res => {
  629. const content = res.data; // 后台返回二进制数据
  630. const blob = new Blob([content]);
  631. const fileName = `病案医嘱列表.csv`;
  632. if ('download' in document.createElement('a')) {
  633. // 非IE下载
  634. const elink = document.createElement('a');
  635. elink.download = fileName;
  636. elink.style.display = 'none';
  637. elink.href = URL.createObjectURL(blob);
  638. document.body.appendChild(elink);
  639. elink.click();
  640. URL.revokeObjectURL(elink.href); // 释放URL 对象
  641. document.body.removeChild(elink);
  642. } else {
  643. // IE10+下载
  644. navigator.msSaveBlob(blob, fileName);
  645. }
  646. });
  647. },
  648. ageTypeChange1() {
  649. this.formData1.ageType2 = this.formData1.ageType1;
  650. },
  651. ageTypeChange2() {
  652. this.formData1.ageType1 = this.formData1.ageType2;
  653. },
  654. },
  655. };
  656. </script>
  657. <style scoped>
  658. ::v-deep.el-pagination.is-background .btn-next,
  659. ::v-deep.el-pagination.is-background .btn-prev,
  660. ::v-deep.el-pagination.is-background .el-pager li {
  661. margin: 0 5px;
  662. background-color: #fff;
  663. color: #606266;
  664. min-width: 30px;
  665. border-radius: 2px;
  666. border: 1px solid #dfe3f3;
  667. line-height: 27px;
  668. }
  669. ::v-deep.el-pagination.is-background .el-pager li:not(.disabled).active {
  670. background: #7e8bab;
  671. }
  672. ::v-deep.el-table .el-table__row td {
  673. color: #7e8bab;
  674. border-bottom: 1px solid #f4f4f4;
  675. }
  676. ::v-deep.el-table .el-table__header tr th:first-child {
  677. border-radius: 10px 0px 0px 10px;
  678. }
  679. ::v-deep.el-table .el-table__header tr th:last-child {
  680. border-radius: 0px 10px 10px 0px;
  681. }
  682. ::v-deep.el-table .el-table__header tr th {
  683. background: #f1f6ff;
  684. color: #13171e;
  685. border-bottom: 0px;
  686. }
  687. </style>
  688. <style lang="scss" scoped>
  689. .tableBox {
  690. background: #fff;
  691. padding: 19px;
  692. border-radius: 5px;
  693. font-size: 12px;
  694. }
  695. .block {
  696. background: #fff;
  697. border-radius: 5px;
  698. margin-bottom: 16px;
  699. padding: 20px 30px;
  700. margin-bottom: 20px;
  701. .fBtn {
  702. margin-bottom: 20px;
  703. display: flex;
  704. align-items: center;
  705. justify-content: center;
  706. .btn1 {
  707. background: #185da6;
  708. color: #fff;
  709. }
  710. .btn2 {
  711. width: 200px;
  712. color: #185da6;
  713. background: #d5e4ff;
  714. }
  715. }
  716. .bnh {
  717. margin: 0 auto;
  718. margin-bottom: 20px;
  719. display: flex;
  720. flex-direction: column;
  721. align-items: center;
  722. justify-content: center;
  723. }
  724. .barBtn {
  725. display: flex;
  726. align-items: center;
  727. justify-content: center;
  728. }
  729. .barBtn-title {
  730. display: flex;
  731. align-items: center;
  732. justify-content: center;
  733. font-size: 24px;
  734. font-weight: bold;
  735. margin-top: 10px;
  736. }
  737. .selects {
  738. width: 100%;
  739. }
  740. .rowsa {
  741. margin-bottom: 20px;
  742. }
  743. }
  744. .tableBox {
  745. background: #fff;
  746. padding: 19px;
  747. border-radius: 5px;
  748. }
  749. .dashboard {
  750. &-container {
  751. margin: 30px;
  752. }
  753. &-text {
  754. font-size: 30px;
  755. line-height: 46px;
  756. }
  757. }
  758. .pind {
  759. padding: 0 20px;
  760. }
  761. .pind10 {
  762. padding: 0 5px;
  763. }
  764. .width100 {
  765. width: 100px;
  766. }
  767. .width150 {
  768. width: 200px;
  769. }
  770. .width300 {
  771. width: 295px;
  772. }
  773. .width500 {
  774. width: 420px;
  775. }
  776. .width90 {
  777. width: 90px;
  778. }
  779. .blue {
  780. color: #185da6;
  781. }
  782. .h-title {
  783. display: flex;
  784. .blue {
  785. display: block;
  786. width: 6px;
  787. height: 17px;
  788. background: linear-gradient(180deg, #185da6 0%, #3195ff 100%);
  789. border-radius: 3px;
  790. }
  791. .text {
  792. font-size: 16px;
  793. font-weight: 600;
  794. color: #13171e;
  795. margin: 0 0 0 14px;
  796. }
  797. }
  798. .flextabtitle-box {
  799. display: flex;
  800. align-items: center;
  801. justify-content: space-between;
  802. width: 100%;
  803. }
  804. .flextab-item {
  805. display: flex;
  806. align-items: center;
  807. margin-left: 20px;
  808. }
  809. .flextab-item > div {
  810. font-size: 15px;
  811. margin-right: 15px;
  812. }
  813. .flextab-item > div span.s-1 {
  814. color: #185da6;
  815. }
  816. .flextab-item > div span.s-2 {
  817. font-weight: bold;
  818. }
  819. .inputOn {
  820. width: 200px;
  821. margin: 10px 10px;
  822. }
  823. .search-title {
  824. padding: 20px 10px;
  825. // width: 900px;
  826. display: flex;
  827. justify-content: space-between;
  828. }
  829. .search-title-span {
  830. font-size: 20px;
  831. font-weight: 600;
  832. color: #13171e;
  833. }
  834. .conter {
  835. position: relative;
  836. margin: 20px 0;
  837. border: 1px solid skyblue;
  838. }
  839. .conter-title {
  840. font-size: 16px;
  841. font-weight: 600;
  842. color: #13171e;
  843. }
  844. .blue {
  845. color: #185da6;
  846. font-size: 16px;
  847. font-weight: 600;
  848. }
  849. .conter-case {
  850. margin: 20px 0;
  851. font-size: 15px;
  852. text-indent: 30px;
  853. line-height: 30px;
  854. }
  855. .conter-case1 {
  856. margin: 0 auto;
  857. margin: 50px 0;
  858. }
  859. .yeleou {
  860. font-size: 16px;
  861. color: rgb(233, 157, 66);
  862. }
  863. .conter-num {
  864. font-size: 15px;
  865. padding-top: 30px;
  866. font-weight: 600;
  867. }
  868. .conter-time {
  869. font-size: 15px;
  870. padding-top: 10px;
  871. font-weight: 600;
  872. }
  873. .onQuery {
  874. padding: 0 20px;
  875. color: rgb(233, 157, 66);
  876. }
  877. .cont-title {
  878. width: 100%;
  879. padding: 20px;
  880. display: flex;
  881. justify-content: space-between;
  882. }
  883. .title-left {
  884. display: flex;
  885. }
  886. .title-right {
  887. width: 300px;
  888. display: flex;
  889. & > div {
  890. width: 150px;
  891. border: 1px solid #d5e4ff;
  892. text-align: center;
  893. padding: 10px 0;
  894. }
  895. }
  896. .title-right-data {
  897. background: #3195ff;
  898. color: #fff;
  899. }
  900. .title-left-p {
  901. line-height: 38px;
  902. padding: 0 20px;
  903. font-size: 16px;
  904. color: #13171e;
  905. }
  906. .title-left-span {
  907. color: #3195ff;
  908. font-size: 18px;
  909. padding: 0 5px;
  910. // font-weight: 600;
  911. }
  912. .title-left-btn {
  913. margin: 0 0 0 40px;
  914. background: #185da6;
  915. color: #fff;
  916. }
  917. .title-left-checked {
  918. margin-top: 10px;
  919. }
  920. .conter-checked {
  921. position: absolute;
  922. top: 21px;
  923. left: 30px;
  924. }
  925. .bule {
  926. background: #3195ff !important;
  927. color: #fff !important;
  928. }
  929. .titleName {
  930. margin-left: 30px;
  931. // margin-top:3px;
  932. }
  933. .marginLeft {
  934. margin-left: -110px;
  935. }
  936. </style>