血透系统PC前端

MultipleForm.vue 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462
  1. <template>
  2. <div class="allDialog">
  3. <el-dialog
  4. title="综合查询"
  5. :visible.sync="dialogVisible"
  6. width="95%"
  7. center
  8. >
  9. <el-form style="height:100%">
  10. <el-row :gutter="20">
  11. <el-col :span="4">
  12. <el-form-item label="透析分区:">
  13. <el-select style="width:110px" v-model="form.zone">
  14. <el-option
  15. v-for="item in this.DeviceType"
  16. :key="item.id"
  17. :label="item.name"
  18. :value="item.id"
  19. ></el-option>
  20. </el-select>
  21. </el-form-item>
  22. </el-col>
  23. <el-col :span="4">
  24. <el-form-item label="机号:">
  25. <el-select style="width:110px" v-model="form.device_number">
  26. <el-option
  27. v-for="item in this.Numbers"
  28. :key="item.id"
  29. :label="item.number"
  30. :value="item.id"
  31. ></el-option>
  32. </el-select>
  33. </el-form-item>
  34. </el-col>
  35. <el-col :span="4">
  36. <el-form-item label="设备类型:">
  37. <el-select style="width:110px" v-model="form.device_type">
  38. <el-option
  39. v-for="item in this.EquitmentType"
  40. :key="item.id"
  41. :label="item.name"
  42. :value="item.id"
  43. ></el-option>
  44. </el-select>
  45. </el-form-item>
  46. </el-col>
  47. <el-col :span="4">
  48. <el-form-item label="设备型号:">
  49. <el-select style="width:110px" v-model="form.device_model">
  50. <el-option
  51. v-for="item in this.EquitmentName"
  52. :key="item.id"
  53. :label="item.equitment_name"
  54. :value="item.id"
  55. ></el-option>
  56. </el-select>
  57. </el-form-item>
  58. </el-col>
  59. <el-col :span="4">
  60. <el-form-item label="使用年限:">
  61. <el-select style="width:110px" v-model="form.user_year">
  62. <el-option
  63. v-for="item in this.userYear"
  64. :key="item.id"
  65. :label="item.name"
  66. :value="item.id"
  67. ></el-option>
  68. </el-select>
  69. </el-form-item>
  70. </el-col>
  71. </el-row>
  72. <el-row>
  73. <el-col :span="8">
  74. <div class="cell clearfix">
  75. <label class="title">
  76. <span class="name">日期查询</span> :
  77. </label>
  78. <el-date-picker
  79. size="small"
  80. clearable
  81. v-model="form.start_time"
  82. prefix-icon="el-icon-date"
  83. :editable="false"
  84. style="width: 140px;"
  85. type="date"
  86. placeholder="选择日期时间"
  87. align="right"
  88. format="yyyy-MM-dd"
  89. value-format="yyyy-MM-dd"
  90. ></el-date-picker>
  91. <span class="cellLine">-</span>
  92. <el-date-picker
  93. size="small"
  94. clearable
  95. v-model="form.end_time"
  96. prefix-icon="el-icon-date"
  97. :editable="false"
  98. style="width: 140px;"
  99. type="date"
  100. placeholder="选择日期时间"
  101. align="right"
  102. format="yyyy-MM-dd"
  103. value-format="yyyy-MM-dd"
  104. ></el-date-picker>
  105. </div>
  106. </el-col>
  107. <el-col :span="4">
  108. <el-form-item label="合计:">
  109. 故障次数
  110. <span>{{ failure_times }}</span
  111. >次
  112. <!-- <el-input style="width:90px"></el-input> -->
  113. </el-form-item>
  114. </el-col>
  115. <el-col :span="4">
  116. <el-button type="primary" size="medium" @click="getComprehensive()"
  117. >查询</el-button
  118. >
  119. </el-col>
  120. </el-row>
  121. <!-- <el-row> -->
  122. <el-table
  123. :data="tableData"
  124. border
  125. style="width:100%"
  126. height="80%"
  127. :row-style="{ color: '#303133' }"
  128. :header-cell-style="{
  129. backgroundColor: 'rgb(245, 247, 250)',
  130. color: '#606266'
  131. }"
  132. >
  133. <el-table-column
  134. prop="date"
  135. label="序号"
  136. width="60"
  137. align="center"
  138. type="index"
  139. >
  140. <!-- <template slot-scope="scope">
  141. {{ scope.row.id }}
  142. </template>-->
  143. </el-table-column>
  144. <el-table-column prop="name" label="分区" width="60" align="center">
  145. <template slot-scope="scope">{{ scope.row.name }}</template>
  146. </el-table-column>
  147. <el-table-column
  148. prop="address"
  149. label="序列号"
  150. width="80"
  151. align="center"
  152. >
  153. <template slot-scope="scope">{{
  154. scope.row.serial_number
  155. }}</template>
  156. </el-table-column>
  157. <el-table-column
  158. prop="address"
  159. label="设备类型"
  160. width="100"
  161. align="center"
  162. >
  163. <template slot-scope="scope">{{ scope.row.device_type }}</template>
  164. </el-table-column>
  165. <el-table-column
  166. prop="address"
  167. label="机号"
  168. width="80"
  169. align="center"
  170. >
  171. <template slot-scope="scope">{{ scope.row.bed_number }}</template>
  172. </el-table-column>
  173. <el-table-column
  174. prop="address"
  175. label="设备名称"
  176. width="100"
  177. align="center"
  178. >
  179. <template slot-scope="scope">{{ scope.row.device_name }}</template>
  180. </el-table-column>
  181. <el-table-column
  182. prop="address"
  183. label="设备型号"
  184. width="100"
  185. align="center"
  186. >
  187. <template slot-scope="scope">{{ scope.row.device_mode }}</template>
  188. </el-table-column>
  189. <el-table-column
  190. prop="address"
  191. label="启用日期"
  192. width="100"
  193. align="center"
  194. >
  195. <template slot-scope="scope">{{
  196. getTime(scope.row.start_date)
  197. }}</template>
  198. </el-table-column>
  199. <el-table-column
  200. prop="address"
  201. label="保修期限"
  202. width="100"
  203. align="center"
  204. >
  205. <template slot-scope="scope">{{
  206. scope.row.guarantee_date
  207. }}</template>
  208. </el-table-column>
  209. <el-table-column
  210. prop="address"
  211. label="机器状态"
  212. width="100"
  213. align="center"
  214. >
  215. <template slot-scope="scope">{{
  216. scope.row.machine_status
  217. }}</template>
  218. </el-table-column>
  219. <el-table-column
  220. prop="address"
  221. label="报废日期"
  222. width="100"
  223. align="center"
  224. >
  225. <template slot-scope="scope">{{
  226. getTime(scope.row.rubbish_date)
  227. }}</template>
  228. </el-table-column>
  229. <el-table-column
  230. prop="address"
  231. label="报废原因"
  232. width="100"
  233. align="center"
  234. >
  235. <template slot-scope="scope">{{
  236. scope.row.rubbish_reason
  237. }}</template>
  238. </el-table-column>
  239. <el-table-column
  240. prop="address"
  241. label="使用年限"
  242. width="100"
  243. align="center"
  244. >
  245. <template slot-scope="scope">{{ scope.row.user_year }}</template>
  246. </el-table-column>
  247. <el-table-column
  248. prop="address"
  249. label="工作时长"
  250. width="100"
  251. align="center"
  252. >
  253. <template slot-scope="scope">{{ scope.row.work_time }}</template>
  254. </el-table-column>
  255. <el-table-column
  256. prop="address"
  257. label="使用次数"
  258. width="100"
  259. align="center"
  260. >
  261. <template slot-scope="scope">{{ scope.row.user_total }}</template>
  262. </el-table-column>
  263. <el-table-column
  264. prop="address"
  265. label="故障次数"
  266. width="100"
  267. align="center"
  268. >
  269. <template slot-scope="scope">{{ failure }}</template>
  270. </el-table-column>
  271. </el-table>
  272. <!-- </el-row> -->
  273. </el-form>
  274. <!-- <span slot="footer" class="dialog-footer">
  275. <el-button @click="dialogVisible = false">取 消</el-button>
  276. <el-button type="primary" @click="dialogVisible = false"
  277. >确 定</el-button
  278. >
  279. </span> -->
  280. </el-dialog>
  281. </div>
  282. </template>
  283. <script>
  284. import {
  285. getAllSubregion,
  286. getAllEquimentName,
  287. getComprehensive,
  288. getTotalCount
  289. } from '@/api/manage'
  290. import { uParseTime } from '@/utils/tools'
  291. export default {
  292. name: 'MultipleForm',
  293. props: {
  294. equimentid: Number
  295. },
  296. data() {
  297. return {
  298. failure_times: 0,
  299. failure: 0,
  300. dialogVisible: false,
  301. form: {
  302. zone: '',
  303. device_number: '',
  304. device_type: '',
  305. device_model: '',
  306. user_year: '',
  307. start_time: '',
  308. end_time: ''
  309. },
  310. userYear: [
  311. { id: 0, name: '全部' },
  312. { id: 1, name: '0~1' },
  313. { id: 2, name: '1~3' },
  314. { id: 3, name: '3~10' },
  315. { id: 4, name: '10年以上' }
  316. ],
  317. value1: '',
  318. value2: '',
  319. tableData: [],
  320. EquitmentType: [
  321. { id: 0, name: '全部' },
  322. { id: 1, name: '透析机' },
  323. { id: 2, name: '水处理机' },
  324. { id: 3, name: '报废机' },
  325. { id: 4, name: '其他' }
  326. ],
  327. DeviceType: [{ id: 0, name: '不限' }],
  328. Numbers: [{ id: 0, number: '不限' }],
  329. EquitmentName: [{ id: 0, equitment_name: '全部' }],
  330. runOptions: [
  331. { value: '1', label: '正常' },
  332. { value: '2', label: '故障' }
  333. ]
  334. }
  335. },
  336. methods: {
  337. open: function() {
  338. this.dialogVisible = true
  339. },
  340. getAllSubregion() {
  341. getAllSubregion().then(response => {
  342. if (response.data.state === 1) {
  343. var zone = response.data.data.zones
  344. var zones = [{ id: 0, name: '不限' }]
  345. for (let i = 0; i < zone.length; i++) {
  346. const item = zone[i]
  347. zones.push({ id: item.id, name: item.name })
  348. }
  349. this.DeviceType = zones
  350. var number = response.data.data.numbers
  351. var numbers = [{ id: 0, number: '不限' }]
  352. for (let index = 0; index < number.length; index++) {
  353. const item = number[index]
  354. numbers.push({ id: item.id, number: item.number })
  355. }
  356. this.Numbers = numbers
  357. // console.log('numbers', number)
  358. }
  359. })
  360. },
  361. getAllEquimentName() {
  362. getAllEquimentName().then(response => {
  363. if (response.data.state == 1) {
  364. var equit = response.data.data.equit
  365. var equits = [{ id: 0, equitment_name: '全部' }]
  366. for (let index = 0; index < equit.length; index++) {
  367. const item = equit[index]
  368. equits.push({ id: item.id, equitment_name: item.equitment_name })
  369. }
  370. this.EquitmentName = equits
  371. }
  372. })
  373. },
  374. getComprehensive() {
  375. const params = {
  376. zone: this.form.zone,
  377. number: this.form.device_number,
  378. devicetype: this.form.device_type,
  379. year: this.form.user_year,
  380. starttime: this.form.start_time,
  381. endtime: this.form.end_time
  382. }
  383. getComprehensive(params).then(response => {
  384. if (response.data.state === 1) {
  385. var macher = response.data.data.macher
  386. for (let index = 0; index < macher.length; index++) {
  387. if (macher[index].device_type === 1) {
  388. macher[index].device_type = '透析机'
  389. }
  390. if (macher[index].device_type === 2) {
  391. macher[index].device_type = '水处理机'
  392. }
  393. if (macher[index].device_type === 3) {
  394. macher[index].device_type = '其他'
  395. }
  396. if (macher[index].machine_status === 1) {
  397. macher[index].machine_status = '使用机'
  398. }
  399. if (macher[index].machine_status === 2) {
  400. macher[index].machine_status = '备用机'
  401. }
  402. if (macher[index].machine_status === 3) {
  403. macher[index].machine_status = '急诊机'
  404. }
  405. if (macher[index].machine_status === 4) {
  406. macher[index].machine_status = '报废机'
  407. }
  408. if (macher[index].rubbish_reason === 0) {
  409. macher[index].rubbish_reason = ''
  410. }
  411. }
  412. // console.log('macher', macher)
  413. this.tableData = macher
  414. }
  415. })
  416. },
  417. getTime(time) {
  418. if (time === 0) {
  419. return ''
  420. } else {
  421. return uParseTime(time, '{y}-{m}-{d}')
  422. }
  423. },
  424. getTotalCount() {
  425. getTotalCount().then(response => {
  426. if (response.data.state === 1) {
  427. var total = response.data.data.total
  428. this.failure_times = total
  429. }
  430. })
  431. }
  432. },
  433. created() {
  434. this.getAllSubregion()
  435. this.getAllEquimentName()
  436. this.getTotalCount()
  437. }
  438. }
  439. </script>
  440. <style scoped></style>
  441. <style lang="scss">
  442. .el-table__header {
  443. width: 100% !important;
  444. }
  445. .el-table__body {
  446. width: 100% !important;
  447. }
  448. .allDialog {
  449. .el-dialog {
  450. height: 90%;
  451. }
  452. .el-dialog__body {
  453. max-height: calc(100vh - 200px) !important;
  454. }
  455. }
  456. </style>