scrollView.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429
  1. <template>
  2. <view class="listview">
  3. <view class="listview-all">
  4. <view class="listview-name">
  5. 数据监测
  6. </view>
  7. <view class="listview-seleven">
  8. <uni-data-select v-model="value" :localdata="range" @change="change" :clear="false"></uni-data-select>
  9. </view>
  10. </view>
  11. <view class="listview-table">
  12. <view class="listview-all-b">
  13. <view class="listview-table-all-one">
  14. <view class="listview-table-name">
  15. 总消耗金额(元)
  16. </view>
  17. <view class="listview-table-many">
  18. <span>¥</span>
  19. {{dataList.sumAmt}}
  20. </view>
  21. </view>
  22. <view class="listview-table-all-two">
  23. <view class="listview-table-name">
  24. 总消耗数量
  25. </view>
  26. <view class="listview-table-many">
  27. <span style=" visibility: hidden;">¥</span>
  28. {{dataList.sumCnt}}
  29. </view>
  30. </view>
  31. <view class="boxList"></view>
  32. <view class="xian"></view>
  33. <view class="xianList"></view>
  34. </view>
  35. <view class="listview-all-b">
  36. <view class="listview-table-all-three">
  37. <view class="listview-table-name">
  38. 院内申领次数
  39. </view>
  40. <view class="listview-table-many">
  41. <span style=" visibility: hidden;">¥</span>
  42. {{dataList.appyCnt}}
  43. </view>
  44. </view>
  45. <view class="listview-table-all-four">
  46. <view class="listview-table-name">
  47. 院内配送次数
  48. </view>
  49. <view class="listview-table-many">
  50. <span style=" visibility: hidden;">¥</span>
  51. {{dataList.delvCnt}}
  52. </view>
  53. </view>
  54. <view class="boxList"></view>
  55. <view class="xian"></view>
  56. <view class="xianList"></view>
  57. </view>
  58. <view class="listview-all-b">
  59. <view class="listview-table-all-three">
  60. <view class="listview-table-name">
  61. 集采条目数
  62. </view>
  63. <view class="listview-table-many">
  64. <span style=" visibility: hidden;">¥</span>
  65. {{dataList.fasCnt}}
  66. </view>
  67. </view>
  68. <view class="listview-table-all-four">
  69. <view class="listview-table-name">
  70. 非集采条目数
  71. </view>
  72. <view class="listview-table-many">
  73. <span style=" visibility: hidden;">¥</span>
  74. {{dataList.othCnt}}
  75. </view>
  76. </view>
  77. <view class="boxList"></view>
  78. <view class="xian"></view>
  79. <view class="xianList"></view>
  80. </view>
  81. <view class="listview-all-b">
  82. <view class="listview-table-all-three">
  83. <view class="listview-table-name">
  84. 流水金额
  85. </view>
  86. <view class="listview-table-many">
  87. <span style=" visibility: hidden;">¥</span>
  88. {{dataListTwo.amt}}
  89. </view>
  90. </view>
  91. <view class="listview-table-all-four">
  92. <view class="listview-table-name">
  93. 费用量
  94. </view>
  95. <view class="listview-table-many">
  96. <span style=" visibility: hidden;">¥</span>
  97. {{dataListTwo.delvCnt}}
  98. </view>
  99. </view>
  100. </view>
  101. </view>
  102. <view class="spd-section">
  103. <!-- 耗材SPD -->
  104. <view class="spd-card spd-card-border">
  105. <view class="spd-title spd-title-border" style="display:flex;align-items:center;position:relative;">
  106. <span style="flex:1;text-align:center;">耗材SPD</span>
  107. <span class="spd-date-tip" style="position:absolute;right:0;">{{ new Date().getFullYear() }}.01.01-至今</span>
  108. </view>
  109. <view class="spd-row spd-row-hc">
  110. <view class="spd-col">
  111. <view>遗留耗材</view>
  112. <view class="spd-num">¥{{ dataListThree.ylhcAmt == null ? 0 : dataListThree.ylhcAmt }}</view>
  113. </view>
  114. <view class="spd-vline"></view>
  115. <view class="spd-col">
  116. <view>医用耗材</view>
  117. <view class="spd-num">¥{{ dataListThree.yyhcAmt == null ? 0 : dataListThree.yyhcAmt }}</view>
  118. </view>
  119. <view class="spd-vline"></view>
  120. <view class="spd-col">
  121. <view>试剂耗材</view>
  122. <view class="spd-num">¥{{ dataListThree.sjhcAmt == null ? 0 : dataListThree.sjhcAmt }}</view>
  123. </view>
  124. <view class="spd-vline"></view>
  125. <view class="spd-col">
  126. <view>总务耗材</view>
  127. <view class="spd-num">¥{{ dataListThree.zwAmt == null ? 0 : dataListThree.zwAmt }}</view>
  128. </view>
  129. </view>
  130. <view class="spd-hline"></view>
  131. <view class="spd-row spd-row-wrap">
  132. <view class="spd-col">
  133. <view>集采</view>
  134. <view class="spd-num-small">¥{{ dataListThree.jcAmt == null ? 0 : dataListThree.jcAmt }}</view>
  135. </view>
  136. <view class="spd-vline"></view>
  137. <view class="spd-col">
  138. <view>非集采</view>
  139. <view class="spd-num-small">¥{{ dataListThree.fjcAmt == null ? 0 : dataListThree.fjcAmt }}</view>
  140. </view>
  141. </view>
  142. <view class="spd-hline"></view>
  143. <view class="spd-row spd-row-bottom">
  144. <view class="spd-col">
  145. 非集采比例:<text class="spd-num-small">{{ dataListThree.fjcbl == null ? 0 : dataListThree.fjcbl }}%</text>
  146. </view>
  147. <view class="spd-vline"></view>
  148. <view class="spd-col">
  149. 服务费:<text class="spd-num-small">¥{{ dataListThree.fwfAmt == null ? 0 : dataListThree.fwfAmt }}</text>
  150. </view>
  151. </view>
  152. </view>
  153. </view>
  154. </view>
  155. </template>
  156. <script>
  157. import {
  158. mapState
  159. } from 'vuex';
  160. export default {
  161. data() {
  162. return {
  163. dataList: {
  164. cosmAmt: "", //消耗金额
  165. cosmCnt: "", //消耗数量
  166. appyCnt: "", //申领次数
  167. stooutCnt: "", //院内配送次数
  168. },
  169. dataListTwo: {
  170. delvCnt: "", //费用量
  171. amt: "", //流水金额
  172. },
  173. dataListThree: {
  174. ylhcAmt: "", //遗留耗材金额
  175. yyhcAmt: "", //医用耗材金额
  176. sjhcAmt: "", //试剂耗材金额
  177. zwAmt: "", //总务耗材金额
  178. jcAmt: "", //集采金额
  179. fjcAmt: "", //非集采金额
  180. fjcbl: "", //非集采比例
  181. fwfAmt: "", //服务费
  182. },
  183. value: 'Y',
  184. range: [{
  185. value: 'Y',
  186. text: "年"
  187. },
  188. {
  189. value: 'M',
  190. text: "月"
  191. },
  192. {
  193. value: 'D',
  194. text: "日"
  195. },
  196. {
  197. value: 'W',
  198. text: "周"
  199. },
  200. ],
  201. };
  202. },
  203. computed: {
  204. ...mapState(['instData'])
  205. },
  206. methods: {
  207. listData() {
  208. this.$http('homePage.totalCosm', {
  209. timeType: this.value
  210. }, '加载中').then((res) => {
  211. this.dataList = res.data
  212. })
  213. this.$http('homePage.totalAmtAndCnt', {
  214. timeType: this.value,
  215. spdId: this.instData.spdId,
  216. }).then((res) => {
  217. this.dataListTwo = res.data
  218. })
  219. this.$http('homePage.totalFwfAmt', {
  220. spdId: this.instData.spdId,
  221. }).then((res) => {
  222. this.dataListThree = res.data
  223. })
  224. },
  225. change(e) {
  226. this.value = e;
  227. this.listData({
  228. timeType: this.value
  229. })
  230. },
  231. },
  232. created() {
  233. this.listData()
  234. }
  235. };
  236. </script>
  237. <style scoped lang="scss">
  238. .listview {
  239. padding: 30rpx;
  240. .listview-all {
  241. width: 100%;
  242. height: 100rpx;
  243. display: flex;
  244. justify-content: space-between;
  245. background-color: #ffffff;
  246. padding: 20rpx;
  247. box-sizing: border-box;
  248. border-top-left-radius: 20rpx;
  249. border-top-right-radius: 20rpx;
  250. border-width: 4rpx 4rpx 4rpx 4rpx;
  251. border-style: solid;
  252. border-color: #90ffe4;
  253. }
  254. .listview-name {
  255. font-size: 35rpx;
  256. font-weight: bold;
  257. }
  258. .listview-table {
  259. background-color: #fff;
  260. border-style: solid;
  261. border-color: #90ffe4;
  262. border-width: 0 4rpx 4rpx 4rpx;
  263. border-bottom-right-radius: 20rpx;
  264. border-bottom-left-radius: 20rpx;
  265. .listview-all-b {
  266. display: flex;
  267. justify-content: space-around;
  268. position: relative;
  269. .listview-table-all-one,
  270. .listview-table-all-three {
  271. width: 300rpx;
  272. height: 100rpx;
  273. text-align: left
  274. }
  275. .listview-table-all-two,
  276. .listview-table-all-four {
  277. width: 300rpx;
  278. height: 100rpx;
  279. text-align: right
  280. }
  281. .boxList {
  282. width: 50rpx;
  283. height: 50rpx;
  284. background: #fff;
  285. /* left: 46%; */
  286. top: 70%;
  287. position: absolute;
  288. z-index: 999;
  289. }
  290. .xian {
  291. position: absolute;
  292. top: 95rpx;
  293. width: 100%;
  294. height: 4rpx;
  295. background-color: #90ffe4;
  296. border-radius: 10rpx;
  297. }
  298. .xianList {
  299. position: absolute;
  300. height: 200rpx;
  301. width: 4rpx;
  302. background-color: #90ffe4;
  303. border-radius: 10rpx;
  304. left: 50%;
  305. }
  306. }
  307. .listview-table-name {
  308. color: #ccc;
  309. font-size: 25rpx;
  310. }
  311. .listview-table-many {
  312. color: #000;
  313. font-size: 30rpx;
  314. font-weight: bold;
  315. }
  316. }
  317. .spd-section {
  318. margin-top: 40rpx;
  319. }
  320. .spd-card {
  321. position: relative;
  322. padding: 24rpx 16rpx;
  323. background: #fff;
  324. margin-bottom: 30rpx;
  325. padding: 24rpx 16rpx;
  326. box-shadow: 0 2rpx 8rpx rgba(0,128,128,0.08);
  327. position: relative;
  328. }
  329. .spd-card-border {
  330. border: 4rpx solid #90ffe4;
  331. border-radius: 16rpx;
  332. }
  333. .spd-title {
  334. font-size: 35rpx;
  335. font-weight: bold;
  336. }
  337. .spd-row, .spd-row-hc, .spd-row-wrap, .spd-row-bottom {
  338. margin-top: 24rpx; // 增大间隙
  339. display: flex;
  340. justify-content: space-between;
  341. align-items: center;
  342. margin-bottom: 24rpx; // 增大间隙
  343. position: relative;
  344. }
  345. .spd-col {
  346. flex: 1;
  347. text-align: center;
  348. font-size: 24rpx;
  349. color: #333;
  350. display: flex;
  351. flex-direction: column;
  352. align-items: center;
  353. justify-content: center;
  354. gap: 4rpx;
  355. }
  356. .spd-num {
  357. font-size: 24rpx;
  358. color: #000;
  359. font-weight: bold;
  360. margin-top: 4rpx;
  361. }
  362. .spd-num-small {
  363. font-size: 24rpx;
  364. color: #008080;
  365. font-weight: bold;
  366. margin-top: 2rpx;
  367. }
  368. .spd-vline {
  369. width: 4rpx;
  370. height: 60rpx;
  371. background-color: #90ffe4;
  372. border-radius: 2rpx;
  373. margin: 0 18rpx;
  374. }
  375. .spd-hline {
  376. margin-left: -16rpx;
  377. width: calc(100% + 36rpx);
  378. border-bottom: 4rpx solid #90ffe4;
  379. padding-bottom: 20rpx;
  380. }
  381. .spd-card-border {
  382. border: 4rpx solid #90ffe4;
  383. border-radius: 16rpx;
  384. }
  385. .spd-title {
  386. font-size: 32rpx;
  387. font-weight: bold;
  388. color: #000;
  389. text-align: center;
  390. margin-bottom: 18rpx;
  391. letter-spacing: 2rpx;
  392. }
  393. .spd-row-wrap, .spd-row-bottom {
  394. border-bottom: none;
  395. padding-bottom: 0;
  396. }
  397. .spd-title-border {
  398. margin-left: -16rpx;
  399. width: calc(100% + 36rpx);
  400. border-bottom: 4rpx solid #90ffe4;
  401. padding-bottom: 20rpx;
  402. }
  403. }
  404. .spd-date-tip {
  405. font-size: 22rpx;
  406. color: #999;
  407. font-weight: normal;
  408. margin-right: 12rpx;
  409. margin-top: 42rpx;
  410. }
  411. </style>