Elizabeth's proactive approach involves introducing urinal toilet attachment , an ingenious concept that optimizes space and functionality.

outpatientChargesManagement.vue 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. <template>
  2. <div class="main-contain outpatientChargesManagement">
  3. <div class="position">
  4. <bread-crumb :crumbs='crumbs'></bread-crumb>
  5. </div>
  6. <div class="app-container" style="display:flex;flex: 1;padding: 20px 20px 0px 20px;">
  7. <div class="mainLeft">
  8. <div class="mainCell" style="justify-content: space-between;">
  9. <p>未就诊:<span>0</span>人</p>
  10. <p>已就诊:<span>0</span>人</p>
  11. </div>
  12. <div class="mainCell">
  13. <el-radio-group v-model="radio">
  14. <el-radio :label="1">未就诊</el-radio>
  15. <el-radio :label="2">已就诊</el-radio>
  16. <el-radio :label="3">全部</el-radio>
  17. </el-radio-group>
  18. </div>
  19. <div class="mainCell" style="margin-bottom:10px;">
  20. <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
  21. <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
  22. </div>
  23. <div style="flex:1;overflow-y:auto;">
  24. <el-table :data="tableData" border style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
  25. <el-table-column align="center" prop="name" label="患者姓名">
  26. <template slot-scope="scope">{{ scope.row.date }}</template>
  27. </el-table-column>
  28. <el-table-column align="center" prop="name" label="就诊号" width="90">
  29. <template slot-scope="scope">{{ scope.row.date }}</template>
  30. </el-table-column>
  31. </el-table>
  32. </div>
  33. </div>
  34. <div class="mainRight">
  35. <div class="mainCell" style="margin-bottom:10px;flex-direction: row-reverse;">
  36. <el-button size="small" @click="open(1)" type="primary" style="margin-left:10px;">打印处置单</el-button>
  37. <el-button size="small" @click="open(2)" type="primary">打印治疗单</el-button>
  38. <el-button size="small" @click="open(3)" type="primary">打印</el-button>
  39. <el-button size="small" @click="open(4)" type="primary">收费</el-button>
  40. </div>
  41. <div class="mainCenter">
  42. <div class="centerLeft">
  43. <div class="tabsBox">
  44. <el-button type="text" class="addTab" @click="addCharges" icon="el-icon-circle-plus">附加收费</el-button>
  45. <el-tabs class="preTabs" v-model="editableTabsValue" type="card" closable @tab-remove="removeTab" :before-leave="moreState">
  46. <el-tab-pane
  47. v-for="(item, index) in editableTabs"
  48. :key="index"
  49. :label="item.title"
  50. :name="item.name"
  51. >
  52. <div class="RP">Rp</div>
  53. <prescription-table></prescription-table>
  54. </el-tab-pane>
  55. <el-tab-pane name="more" closable><span slot="label"><i class="el-icon-plus" @click="addTab"></i></span></el-tab-pane>
  56. </el-tabs>
  57. </div>
  58. <div class="costBox">
  59. <span>处方编号:2134348971237883</span>
  60. <span>当前处方总费用:<span style="color:red;">0.00元</span></span>
  61. <span>已收费</span>
  62. </div>
  63. </div>
  64. <div class="centerRight">
  65. <p class="centerRightTitle">人员信息</p>
  66. <div style="display:flex;justify-content: space-between;line-height:30px;">
  67. <span style="font-size:14px;">人员编码:676273816287361</span>
  68. <span style="font-size:14px;">日期:2020-10-10</span>
  69. </div>
  70. <ul class="basicUl">
  71. <li style="width:50%;">姓名:张三</li>
  72. <li style="width:50%;">性别:男</li>
  73. <li style="width:50%;">年龄:12</li>
  74. <li style="width:50%;">身高:123</li>
  75. <li style="width:50%;">体重:44kg</li>
  76. <li style="width:50%;">电话:348971237883</li>
  77. <li style="width:100%;">地址:</li>
  78. <li style="width:100%;">过敏史:</li>
  79. </ul>
  80. <p class="centerRightTitle">诊断信息</p>
  81. <div style="display:flex;justify-content: space-between;line-height:30px;">
  82. <span style="font-size:14px;">门诊编号:676273816287361</span>
  83. </div>
  84. <ul class="basicUl">
  85. <li style="width:50%;">医生:张三</li>
  86. <li style="width:50%;">科室:肾病科</li>
  87. <li style="width:100%;">费用:20元</li>
  88. <li style="width:100%;">判断结果:无</li>
  89. <li style="width:100%;">是否有传染病:否</li>
  90. <li style="width:100%;">血压:80/120mmHg</li>
  91. </ul>
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. <additionalCharges ref='additionalCharges'></additionalCharges>
  97. </div>
  98. </template>
  99. <script>
  100. import BreadCrumb from '@/xt_pages/components/bread-crumb'
  101. import noCharge from './components/noCharge'
  102. import charged from './components/charged'
  103. import medicalInsuranceRefund from './components/medicalInsuranceRefund'
  104. import prescriptionTable from './components/prescriptionTable'
  105. import additionalCharges from './components/additionalCharges'
  106. export default {
  107. components:{
  108. BreadCrumb,
  109. noCharge,
  110. charged,
  111. medicalInsuranceRefund,
  112. prescriptionTable,
  113. additionalCharges
  114. },
  115. data(){
  116. return{
  117. crumbs: [
  118. { path: false, name: '门诊收费' },
  119. { path: false, name: '门诊收费管理' }
  120. ],
  121. tableData: [{
  122. date: '2016-05-02',
  123. name: '王小虎',
  124. address: '上海市普陀区金沙江路 1518 弄'
  125. }, {
  126. date: '2016-05-04',
  127. name: '王小虎',
  128. address: '上海市普陀区金沙江路 1517 弄'
  129. }, {
  130. date: '2016-05-01',
  131. name: '王小虎',
  132. address: '上海市普陀区金沙江路 1519 弄'
  133. }, {
  134. date: '2016-05-03',
  135. name: '王小虎',
  136. address: '上海市普陀区金沙江路 1516 弄'
  137. },{
  138. date: '2016-05-02',
  139. name: '王小虎',
  140. address: '上海市普陀区金沙江路 1518 弄'
  141. }, {
  142. date: '2016-05-04',
  143. name: '王小虎',
  144. address: '上海市普陀区金沙江路 1517 弄'
  145. }, {
  146. date: '2016-05-01',
  147. name: '王小虎',
  148. address: '上海市普陀区金沙江路 1519 弄'
  149. }, {
  150. date: '2016-05-03',
  151. name: '王小虎',
  152. address: '上海市普陀区金沙江路 1516 弄'
  153. },{
  154. date: '2016-05-02',
  155. name: '王小虎',
  156. address: '上海市普陀区金沙江路 1518 弄'
  157. }, {
  158. date: '2016-05-04',
  159. name: '王小虎',
  160. address: '上海市普陀区金沙江路 1517 弄'
  161. }, {
  162. date: '2016-05-01',
  163. name: '王小虎',
  164. address: '上海市普陀区金沙江路 1519 弄'
  165. }, {
  166. date: '2016-05-03',
  167. name: '王小虎',
  168. address: '上海市普陀区金沙江路 1516 弄'
  169. }, {
  170. date: '2016-05-04',
  171. name: '王小虎',
  172. address: '上海市普陀区金沙江路 1517 弄'
  173. }, {
  174. date: '2016-05-01',
  175. name: '王小虎',
  176. address: '上海市普陀区金沙江路 1519 弄'
  177. }, {
  178. date: '2016-05-03',
  179. name: '王小虎',
  180. address: '上海市普陀区金沙江路 1516 弄'
  181. }],
  182. editableTabsValue: '1',
  183. editableTabs: [{
  184. title: '处方1',
  185. name: '1',
  186. }],
  187. tabIndex: 1,
  188. }
  189. },
  190. methods:{
  191. moreState(tab, event){
  192. if(tab == 'more'){
  193. return false;
  194. }
  195. },
  196. open(index){
  197. if(index == 1){
  198. }else if(index == 2){
  199. }else if(index == 4){
  200. }else if(index == 5){
  201. }
  202. },
  203. addTab(targetName) {
  204. let newTabName = ++this.tabIndex + '';
  205. this.editableTabs.push({
  206. title: '处方' + this.tabIndex,
  207. name: newTabName,
  208. });
  209. this.editableTabsValue = newTabName;
  210. },
  211. removeTab(targetName) {
  212. let tabs = this.editableTabs;
  213. let activeName = this.editableTabsValue;
  214. if (activeName === targetName) {
  215. tabs.forEach((tab, index) => {
  216. if (tab.name === targetName) {
  217. let nextTab = tabs[index + 1] || tabs[index - 1];
  218. if (nextTab) {
  219. activeName = nextTab.name;
  220. }
  221. }
  222. });
  223. }
  224. this.editableTabsValue = activeName;
  225. this.editableTabs = tabs.filter(tab => tab.name !== targetName);
  226. },
  227. addCharges(){
  228. this.$refs.additionalCharges.show()
  229. }
  230. }
  231. }
  232. </script>
  233. <style lang="scss" scoped>
  234. .app-container{
  235. height:100%;
  236. }
  237. .outpatientChargesManagement{
  238. height: 100%;
  239. display: flex;
  240. flex-direction: column;
  241. .mainLeft{
  242. width:200px;
  243. height: 100%;
  244. display: flex;
  245. flex-direction: column;
  246. .el-radio{
  247. margin-right:5px;
  248. }
  249. }
  250. .mainCell{
  251. height:36px;
  252. display: flex;
  253. align-items: center;
  254. }
  255. .mainRight{
  256. margin-left:20px;
  257. flex:1;
  258. height: 100%;
  259. display: flex;
  260. flex-direction: column;
  261. overflow-y: auto;
  262. .cellSpan{
  263. min-width: 80px;
  264. display: inline-block;
  265. margin-right: 10px;
  266. }
  267. }
  268. .tabsBox{
  269. position: relative;
  270. height: 90%;
  271. overflow-y: auto;
  272. margin-bottom: 60px;
  273. .el-tabs__item{
  274. padding: 0 10px;
  275. }
  276. }
  277. .addTab{
  278. position: absolute;
  279. right: 0;
  280. top: 6px;
  281. z-index: 20;
  282. }
  283. .mainCenter{
  284. display: flex;
  285. flex:1;
  286. }
  287. .costBox{
  288. width:100%;
  289. height:60px;
  290. background:#fff;
  291. position: absolute;
  292. bottom:0;
  293. display: flex;
  294. align-items: center;
  295. justify-content: space-between;
  296. }
  297. .centerLeft{
  298. flex: 1;
  299. display: flex;
  300. flex-direction: column;
  301. position: relative;
  302. }
  303. .centerRight{
  304. width: 300px;
  305. margin-left: 5px;
  306. display: flex;
  307. flex-direction: column;
  308. }
  309. .RP{
  310. color:#409EFF;
  311. font-size: 20px;
  312. margin-bottom: 5px;
  313. }
  314. .centerRightTitle{
  315. color:#409EFF;
  316. padding-top: 10px;;
  317. }
  318. .basicUl{
  319. border-top: 1px solid #e5e5e5;
  320. border-left: 1px solid #e5e5e5;
  321. display: flex;
  322. flex-wrap: wrap;
  323. li{
  324. border-bottom: 1px solid #e5e5e5;
  325. border-right: 1px solid #e5e5e5;
  326. width: 100%;
  327. height: 38px;
  328. line-height: 38px;
  329. text-indent: 5px;
  330. font-size: 14px;
  331. }
  332. }
  333. }
  334. </style>
  335. <style lang="scss">
  336. #tab-more{
  337. .el-icon-close{
  338. display: none;
  339. }
  340. }
  341. </style>