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

chargeDialog.vue 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481
  1. <template><!--门诊收费-->
  2. <el-dialog width="854px" title="收费单" class="chargeDialog" :visible.sync="visibility" :close-on-click-modal="isClose"
  3. :close-on-press-escape="isClose">
  4. <el-form :model="form" ref="formValue" label-width="100px">
  5. <el-form-item label="日期:" style="width:100%;">
  6. <div>{{record_date}}</div>
  7. </el-form-item>
  8. <el-form-item label="总计:" prop="name" :validate-event="is_Name">
  9. <el-input class="number_style" type="number" v-model="form.total" :disabled="true"></el-input>
  10. </el-form-item>
  11. <el-form-item label="医保:" prop="name" :validate-event="is_Name">
  12. <el-input class="number_style" type="number" v-model="form.medical_insurance_price" :disabled="true"></el-input>
  13. </el-form-item>
  14. <el-form-item class="number_style" label="自费:" prop="age" :validate-event="is_Name">
  15. <el-input type="number" v-model="form.private_price" :disabled="true"></el-input>
  16. </el-form-item>
  17. <el-form-item class="number_style" label="个账支出:" prop="age" :validate-event="is_Name">
  18. <el-input type="number" v-model="form.acct_pay" :disabled="true"></el-input>
  19. </el-form-item>
  20. <el-form-item class="number_style" label="个人现金支出:" prop="age" :validate-event="is_Name">
  21. <el-input type="number" v-model="form.psn_pay" :disabled="true"></el-input>
  22. </el-form-item>
  23. <el-form-item class="number_style" label="完全自费:" prop="age" :validate-event="is_Name">
  24. <el-input type="number" v-model="form.fulamt_ownpay_amt" :disabled="true"></el-input>
  25. </el-form-item>
  26. <el-form-item class="number_style" label="超限价:" prop="age" :validate-event="is_Name">
  27. <el-input type="number" v-model="form.overlmt_self_pay" :disabled="true"></el-input>
  28. </el-form-item>
  29. <el-form-item class="number_style" label="个人共济:" prop="age" :validate-event="is_Name">
  30. <el-input type="number" v-model="form.acct_mulaid_pay" :disabled="true"></el-input>
  31. </el-form-item>
  32. <el-form-item label="个人现金支付方式:" style="width:100%;"><!--门诊-->
  33. <el-checkbox v-model="form.dec_way" @change="changedecimal">
  34. 使用押金余额抵扣(当前押金余额为¥{{decimal}})
  35. </el-checkbox>
  36. <span v-if="form.dec_way == true">
  37. <el-form-item class="specialFormItem" >
  38. <div style="display:flex;">
  39. <!-- 这里不要改成el-input,因为使用el-input会导致一个奇怪的bug,千万不要改!!!!!!!!!!!!!!!!!!!!-->
  40. <input class="input_style" v-model="form.tmp_decimal" onkeyup="this.value = this.value.replace(/[^\d.]/g,'');" @input="lilili"></input>元
  41. </div>
  42. </el-form-item>
  43. </span>
  44. </el-form-item>
  45. <el-form-item label="个账使用标识:" prop="acct_used_flag" >
  46. <el-select style="margin-right:5px;width:100px;"
  47. v-model="form.acct_used_flag" placeholder="">
  48. <el-option
  49. v-for="(item,index) in acct_used_flags"
  50. :key="index"
  51. :label="item.name"
  52. :value="item.id">
  53. </el-option>
  54. </el-select>
  55. </el-form-item>
  56. <el-form-item label="" style="width:100%;" v-if="this.$store.getters.xt_user.org.id != 10138 && this.$store.getters.xt_user.org.id != 10278 && this.$store.getters.xt_user.org.id != 0 ">
  57. <el-radio-group v-model="form.pay_way">
  58. <el-radio :label="item.value" v-for="(item,index) in payWays" :key="index">{{ item.label }}</el-radio>
  59. </el-radio-group>
  60. </el-form-item>
  61. <el-form-item label="" style="width:100%;" v-if="this.$store.getters.xt_user.org.id == 10138 || this.$store.getters.xt_user.org.id == 10278 || this.$store.getters.xt_user.org.id == 0">
  62. <el-checkbox-group v-model="form.pay_wayss">
  63. <el-checkbox :label="item.value" v-for="(item,index) in payWays" :key="item.value">{{ item.label }}</el-checkbox>
  64. </el-checkbox-group>
  65. </el-form-item>
  66. <el-form-item label="现金支付金额:" v-if="this.$store.getters.xt_user.org.id == 10138 || this.$store.getters.xt_user.org.id == 10278 || this.$store.getters.xt_user.org.id == 0 ">
  67. <el-input class="number_style" v-model="form.cash_pay" ></el-input>
  68. </el-form-item>
  69. <el-form-item label="微信支付金额:" v-if="this.$store.getters.xt_user.org.id == 10138 || this.$store.getters.xt_user.org.id == 10278 || this.$store.getters.xt_user.org.id == 0 ">
  70. <el-input class="number_style" v-model="form.wechat_pay" ></el-input>
  71. </el-form-item>
  72. <el-form-item label="银行卡支付金额:" v-if="this.$store.getters.xt_user.org.id == 10138 || this.$store.getters.xt_user.org.id == 10278 || this.$store.getters.xt_user.org.id == 0 ">
  73. <el-input class="number_style" v-model="form.band_card_pay" ></el-input>
  74. </el-form-item>
  75. <el-form-item label="支付宝支付金额:" v-if="this.$store.getters.xt_user.org.id == 10138 || this.$store.getters.xt_user.org.id == 10278 || this.$store.getters.xt_user.org.id == 0 ">
  76. <el-input class="number_style" v-model="form.ali_pay" ></el-input>
  77. </el-form-item>
  78. <el-form-item label="积分支付:" v-if="this.$store.getters.xt_user.org.id == 10138 || this.$store.getters.xt_user.org.id == 10278 || this.$store.getters.xt_user.org.id == 0 ">
  79. <el-input class="number_style" v-model="form.jifen_pay" ></el-input>
  80. </el-form-item>
  81. <el-form-item label="其他说明:" v-if="this.$store.getters.xt_user.org.id == 10138 || this.$store.getters.xt_user.org.id == 10278 || this.$store.getters.xt_user.org.id == 0 ">
  82. <el-input class="number_style" v-model="form.oth_desc" ></el-input>
  83. </el-form-item>
  84. <el-form-item label="付款金额:" prop="id_card" :validate-event="is_Name">
  85. <el-input class="number_style" type="number" v-model="form.pay_price" :disabled="true"></el-input>
  86. </el-form-item>
  87. <el-form-item label="付款详情:" prop="id_card" :validate-event="is_Name">
  88. <el-input v-model="form.pay_card_no"></el-input>
  89. </el-form-item>
  90. <el-form-item class="specialFormItem" label="折扣金额:">
  91. <div style="display:flex;">
  92. <el-input class="number_style" v-model="form.discount_price" :disabled="form.preferential_price != 0" @change="changeDiscountPrice"></el-input>
  93. </div>
  94. </el-form-item>
  95. <el-form-item class="specialFormItem" label="优惠金额:">
  96. <div style="display:flex;">
  97. <el-input class="number_style" v-model="form.preferential_price" :disabled="form.discount_price != 0" @change="changePreferentialPrice"></el-input>
  98. </div>
  99. </el-form-item>
  100. <el-form-item label="实收金额:">
  101. <div style="display:flex;">
  102. <el-input class="number_style" v-model="form.reality_price" @change="realityPrice"></el-input>
  103. </div>
  104. </el-form-item>
  105. <el-form-item label="找回金额:">
  106. <div style="display:flex;">
  107. <el-input class="number_style" v-model.number="form.found_price"></el-input>
  108. </div>
  109. </el-form-item>
  110. <el-form-item label="发票编码:">
  111. <div style="display:flex;">
  112. <el-input v-model.number="form.fapiao_code"></el-input>
  113. </div>
  114. </el-form-item>
  115. <el-form-item label="发票号码:">
  116. <div style="display:flex;">
  117. <el-input v-model.number="form.fapiao_number"></el-input>
  118. </div>
  119. </el-form-item>
  120. </el-form>
  121. <span slot="footer" class="dialog-footer">
  122. <el-button @click="cancel('formValue')">取 消</el-button>
  123. <el-button type="primary" @click="confirm('formValue')">确 定</el-button>
  124. </span>
  125. </el-dialog>
  126. </template>
  127. <script>
  128. import { uParseTime } from '@/utils/tools'
  129. import {
  130. idtobalance
  131. }from "@/api/deposit";
  132. export default {
  133. name: 'chargeDialog',
  134. data() {
  135. return {
  136. IsShow:false,
  137. tmp_pay:"",//临时付款金额
  138. isshow:false,
  139. id:0,
  140. decimal:0,//当前押金余额
  141. record_date:'',
  142. acct_used_flags: [
  143. { id: 0, name: '不使用' },
  144. { id: 1, name: '使用本人个账' },
  145. { id: 2, name: '使用共济个账' },
  146. ],
  147. form: {
  148. medical_insurance_price:0,
  149. private_price:'',//自费12
  150. pay_way:"",
  151. pay_wayss:[],
  152. dec_way:'false',//是否使用押金支付
  153. tmp_decimal:"",//本次使用的押金
  154. pay_price:'',
  155. oth_desc:"",
  156. pay_card_no:'',
  157. discount_price:'',
  158. preferential_price:'',
  159. reality_price:'',
  160. found_price:'',
  161. total:0,
  162. fapiao_code:"",
  163. fapiao_number:"",
  164. order:null,
  165. acct_pay:'',
  166. psn_pay:'',
  167. overlmt_self_pay:'',
  168. acct_mulaid_pay:'',
  169. fulamt_ownpay_amt:'',
  170. acct_used_flag:0,
  171. cash_pay:"",
  172. band_card_pay:"",
  173. wechat_pay:"",
  174. ali_pay:"",
  175. jifen_pay:"",
  176. },
  177. payWays: [
  178. {value: "1", label: '现金'},
  179. {value: "2", label: '银行卡'},
  180. {value: "3", label: '微信'},
  181. {value: "5", label: '支付宝'},
  182. {value: "7", label: '积分'},
  183. {value: "4", label: '医保卡'},
  184. {value: "8", label: '其他'},
  185. ],
  186. total:"",
  187. visibility: false,
  188. labelPosition: 'right',
  189. isClose: false,
  190. resetForm: {
  191. medical_insurance_price:'',
  192. private_price:'',
  193. pay_way:'',
  194. pay_price:'',
  195. pay_card_no:'',
  196. discount_price:'',
  197. preferential_price:'',
  198. reality_price:'',
  199. found_price:'',
  200. fapiao_code:"",
  201. fapiao_number:"",
  202. acct_pay:"",
  203. psn_pay:"",
  204. overlmt_self_pay:"",
  205. acct_mulaid_pay:"",
  206. fulamt_ownpay_amt:"",
  207. pay_wayss: [],
  208. acct_used_flag:0,
  209. cash_pay:"",
  210. band_card_pay:"",
  211. wechat_pay:"",
  212. ali_pay:"",
  213. jifen_pay:"",
  214. },
  215. }
  216. },
  217. props: {
  218. titles: {
  219. type: String,
  220. default: ''
  221. },
  222. formValue: {
  223. type: Object
  224. },
  225. type: {
  226. type: Number,
  227. default: 1
  228. },
  229. isCreated: {
  230. type: Number,
  231. default: 1
  232. }
  233. },
  234. created(){
  235. },
  236. methods: {
  237. init(){
  238. console.log("this.tmp_decimal",this.tmp_decimal)
  239. console.log("this.tmp_decimal",this.tmp_decimal)
  240. console.log("this.tmp_decimal",this.tmp_decimal)
  241. },
  242. lilili(val){
  243. console.log("this.form.tmp_decimal",this.form.tmp_decimal)
  244. //null undefined
  245. if(this.form.tmp_decimal == ""){
  246. this.form.pay_price = this.tmp_pay
  247. return
  248. }
  249. console.log("val",val)
  250. if (parseFloat(this.form.tmp_decimal) > parseFloat(this.form.private_price)){
  251. // alert("押金不得大于自费金额")
  252. this.$message.error("押金不得大于自费金额");
  253. this.form.tmp_decimal = ""
  254. this.form.pay_price = this.tmp_pay
  255. return
  256. }
  257. // this.form.private_price = parseFloat(this.form.tmp_decimal) + parseFloat(this.form.pay_price)
  258. this.form.pay_price = ((parseFloat(this.form.private_price)*10000 - parseFloat(this.form.tmp_decimal)*10000)/10000).toFixed(2)
  259. },
  260. changedecimal(){
  261. console.log("this.form.dec_way前",this.form.dec_way)
  262. this.$forceUpdate();
  263. this.isshow = this.form.dec_way
  264. // console.log("this.form.dec_way后",this.form.dec_way)
  265. if (this.isshow == false){
  266. // this.form.private_price = parseFloat(this.form.pay_price)
  267. this.form.tmp_decimal = 0
  268. this.form.pay_price = this.tmp_pay
  269. }else {
  270. //储存临时押金
  271. this.tmp_pay = this.form.pay_price
  272. if (parseFloat(this.form.tmp_decimal) > parseFloat(this.form.private_price)){
  273. this.form.tmp_decimal = 0
  274. // alert("押金不得大于自费金额")
  275. this.$message.error("押金不得大于自费金额");
  276. return
  277. }
  278. // this.form.private_price = parseFloat(this.form.tmp_decimal) + parseFloat(this.form.pay_price)
  279. this.tmp_pay = this.form.pay_price
  280. this.form.pay_price = ((parseFloat(this.form.private_price)*10000 - parseFloat(this.form.tmp_decimal)*10000)/10000).toFixed(2)
  281. }
  282. },
  283. //查询用户当前的余额
  284. updateconfig(){
  285. var params = {
  286. his_patient_id: this.id,
  287. }
  288. idtobalance(params).then((res) => {
  289. if (res.data.state == 1){
  290. this.decimal = res.data.data.list;
  291. }
  292. })
  293. },
  294. show: function (total,order,id) {
  295. // alert("total",total)
  296. // console.log("===========")
  297. // console.log(total)
  298. // alert("order",orde
  299. // console.log(order)
  300. // alert("id",id)
  301. // console.log("wwwwwwwwwwwwww")
  302. // console.log(id)
  303. // console.log("++++++++++++")
  304. //初始化
  305. this.form.tmp_decimal = 0
  306. this.tmp_pay = 0
  307. this.id = id
  308. this.form.dec_way = false
  309. this.updateconfig()
  310. this.form.total = total
  311. this.form.private_price = total
  312. this.form.pay_price = total
  313. this.form.total = total + this.form.medical_insurance_price
  314. this.form.discount_price = 0.0
  315. this.form.preferential_price = 0.0
  316. this.form.acct_used_flag = 0
  317. this.form.fapiao_code =""
  318. this.form.fapiao_number = ""
  319. this.order = order
  320. if(this.order && this.order.id > 0){
  321. this.form.acct_pay = this.order.acct_pay
  322. this.form.psn_pay = this.order.psn_cash_pay
  323. this.form.total = this.order.medfee_sumamt
  324. this.form.pay_price = (this.order.medfee_sumamt).toFixed(2)
  325. this.form.medical_insurance_price = this.order.fund_pay_sumamt
  326. this.form.private_price = this.order.psn_part_amt
  327. this.form.overlmt_self_pay = this.order.overlmt_self_pay
  328. this.form.acct_mulaid_pay = this.order.acct_mulaid_pay
  329. this.form.fulamt_ownpay_amt = this.order.fulamt_ownpay_amt
  330. }
  331. this.visibility = true
  332. }, hide: function () {
  333. this.form = Object.assign({}, this.resetForm)
  334. this.loadingtwo = false
  335. this.visibility = false
  336. }, cancel: function (formName) {
  337. this.form.tmp_decimal = 0
  338. this.tmp_pay = 0
  339. this.form.dec_way = false
  340. this.$emit('cancel', this.getValue())
  341. this.$refs['formValue'].resetFields()
  342. },
  343. confirm: function (formName) {
  344. if (parseFloat(this.form.tmp_decimal) > parseFloat(this.decimal)){
  345. this.$message.error("押金余额不足");
  346. return
  347. }
  348. this.$refs['formValue'].validate((valid) => {
  349. if (valid) {
  350. let value = {}
  351. value = this.getValue()
  352. console.log(value)
  353. this.$emit('confirm', value)
  354. this.loadingtwo = true
  355. }
  356. })
  357. },
  358. getValue: function () {
  359. let form = {}
  360. form = this.form
  361. return form
  362. },
  363. realityPrice(val){
  364. if(val < (this.form.total - this.form.discount_price - this.form.preferential_price)){
  365. this.$message.error('实收金额不能小于收费金额')
  366. return
  367. }
  368. this.form.found_price = parseInt(val) - parseInt(this.form.total) + parseInt(this.form.discount_price) + parseInt(this.form.preferential_price)
  369. },
  370. changeDiscountPrice(val){
  371. if(val > this.form.total){
  372. this.$message.error('折扣金额不能超过费用总额')
  373. return
  374. }
  375. this.form.reality_price = parseInt(this.form.total) - parseInt(val) - parseInt(this.form.preferential_price)
  376. },
  377. changePreferentialPrice(val){
  378. if(val > this.form.total){
  379. this.$message.error('优惠金额不能超过费用总额')
  380. return
  381. }
  382. this.form.reality_price = parseInt(this.form.total) - parseInt(val) - parseInt(this.form.discount_price)
  383. }
  384. },
  385. mounted() {
  386. var nowDate = new Date()
  387. var nowYear = nowDate.getFullYear()
  388. var nowMonth = nowDate.getMonth() + 1
  389. var nowDay = nowDate.getDate()
  390. var nowHours = nowDate.getHours()
  391. var nowMin = nowDate.getMinutes()
  392. var nowSecond = nowDate.getSeconds()
  393. this.record_date =
  394. nowYear +
  395. '-' +
  396. (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
  397. '-' +
  398. (nowDay < 10 ? '0' + nowDay : nowDay)+" "+(nowHours < 10 ? '0' + nowHours : nowHours)+":"+(nowMin < 10 ? '0' + nowMin : nowMin)
  399. },
  400. }
  401. </script>
  402. <style lang="scss" scoped>
  403. .chargeDialog{
  404. .el-form{
  405. display: flex;
  406. flex-wrap: wrap;
  407. }
  408. .el-form-item{
  409. width:50%;
  410. }
  411. }
  412. .input_style {
  413. border-radius: 5px;
  414. border: 1px solid #dddddd;
  415. }
  416. .input_style:focus {
  417. outline:none;
  418. border: 1px solid #66b1ff;
  419. }
  420. /deep/ .number_style{
  421. .el-input__inner{
  422. font-weight: bolder;
  423. }
  424. }
  425. </style>