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

chargeDialog.vue 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494
  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 == 10510">
  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 == 10510 ">
  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 == 10510 ">
  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 == 10510 ">
  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 == 10510 ">
  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 == 10510 ">
  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 == 10510 ">
  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="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="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. import {
  133. getfapiaonumber
  134. }from "@/api/his/his";
  135. export default {
  136. name: 'chargeDialog',
  137. data() {
  138. return {
  139. IsShow:false,
  140. tmp_pay:"",//临时付款金额
  141. isshow:false,
  142. id:0,
  143. decimal:0,//当前押金余额
  144. record_date:'',
  145. acct_used_flags: [
  146. { id: 0, name: '不使用' },
  147. { id: 1, name: '使用本人个账' },
  148. { id: 2, name: '使用共济个账' },
  149. ],
  150. form: {
  151. medical_insurance_price:0,
  152. private_price:'',//自费12
  153. pay_way:"",
  154. pay_wayss:[],
  155. dec_way:'false',//是否使用押金支付
  156. tmp_decimal:"",//本次使用的押金
  157. pay_price:'',
  158. oth_desc:"",
  159. pay_card_no:'',
  160. discount_price:'',
  161. preferential_price:'',
  162. reality_price:'',
  163. found_price:'',
  164. total:0,
  165. fapiao_code:"",
  166. fapiao_number:"",
  167. order:null,
  168. acct_pay:'',
  169. psn_pay:'',
  170. overlmt_self_pay:'',
  171. acct_mulaid_pay:'',
  172. fulamt_ownpay_amt:'',
  173. acct_used_flag:0,
  174. cash_pay:"",
  175. band_card_pay:"",
  176. wechat_pay:"",
  177. ali_pay:"",
  178. jifen_pay:"",
  179. },
  180. payWays: [
  181. {value: "1", label: '现金'},
  182. {value: "2", label: '银行卡'},
  183. {value: "3", label: '微信'},
  184. {value: "5", label: '支付宝'},
  185. {value: "7", label: '积分'},
  186. {value: "4", label: '医保卡'},
  187. {value: "8", label: '其他'},
  188. ],
  189. total:"",
  190. visibility: false,
  191. labelPosition: 'right',
  192. isClose: false,
  193. resetForm: {
  194. medical_insurance_price:'',
  195. private_price:'',
  196. pay_way:'',
  197. pay_price:'',
  198. pay_card_no:'',
  199. discount_price:'',
  200. preferential_price:'',
  201. reality_price:'',
  202. found_price:'',
  203. fapiao_code:"",
  204. fapiao_number:"",
  205. acct_pay:"",
  206. psn_pay:"",
  207. overlmt_self_pay:"",
  208. acct_mulaid_pay:"",
  209. fulamt_ownpay_amt:"",
  210. pay_wayss: [],
  211. acct_used_flag:0,
  212. cash_pay:"",
  213. band_card_pay:"",
  214. wechat_pay:"",
  215. ali_pay:"",
  216. jifen_pay:"",
  217. },
  218. }
  219. },
  220. props: {
  221. titles: {
  222. type: String,
  223. default: ''
  224. },
  225. formValue: {
  226. type: Object
  227. },
  228. type: {
  229. type: Number,
  230. default: 1
  231. },
  232. isCreated: {
  233. type: Number,
  234. default: 1
  235. }
  236. },
  237. created(){
  238. },
  239. methods: {
  240. init(){
  241. console.log("this.tmp_decimal",this.tmp_decimal)
  242. console.log("this.tmp_decimal",this.tmp_decimal)
  243. console.log("this.tmp_decimal",this.tmp_decimal)
  244. },
  245. lilili(val){
  246. console.log("this.form.tmp_decimal",this.form.tmp_decimal)
  247. //null undefined
  248. if(this.form.tmp_decimal == ""){
  249. this.form.pay_price = this.tmp_pay
  250. return
  251. }
  252. console.log("val",val)
  253. // if (parseFloat(this.form.tmp_decimal) > parseFloat(this.form.private_price)){
  254. // // alert("押金不得大于自费金额")
  255. // this.$message.error("押金不得大于自费金额");
  256. // this.form.tmp_decimal = ""
  257. // this.form.pay_price = this.tmp_pay
  258. // return
  259. // }
  260. // this.form.private_price = parseFloat(this.form.tmp_decimal) + parseFloat(this.form.pay_price)
  261. this.form.pay_price = ((parseFloat(this.form.private_price)*10000 - parseFloat(this.form.tmp_decimal)*10000)/10000).toFixed(2)
  262. },
  263. changedecimal(){
  264. console.log("this.form.dec_way前",this.form.dec_way)
  265. this.$forceUpdate();
  266. this.isshow = this.form.dec_way
  267. // console.log("this.form.dec_way后",this.form.dec_way)
  268. if (this.isshow == false){
  269. // this.form.private_price = parseFloat(this.form.pay_price)
  270. this.form.tmp_decimal = 0
  271. this.form.pay_price = this.tmp_pay
  272. }else {
  273. //储存临时押金
  274. this.tmp_pay = this.form.pay_price
  275. // if (parseFloat(this.form.tmp_decimal) > parseFloat(this.form.private_price)){
  276. // this.form.tmp_decimal = 0
  277. // // alert("押金不得大于自费金额")
  278. // // this.$message.error("押金不得大于自费金额");
  279. // return
  280. // }
  281. // this.form.private_price = parseFloat(this.form.tmp_decimal) + parseFloat(this.form.pay_price)
  282. this.tmp_pay = this.form.pay_price
  283. this.form.pay_price = ((parseFloat(this.form.private_price)*10000 - parseFloat(this.form.tmp_decimal)*10000)/10000).toFixed(2)
  284. }
  285. },getfapiaonumber(){
  286. getfapiaonumber().then((res) => {
  287. if (res.data.state == 1) {
  288. this.form.fapiao_number = res.data.data.fapiao_number;
  289. }
  290. })
  291. },
  292. //查询用户当前的余额
  293. updateconfig(){
  294. var params = {
  295. his_patient_id: this.id,
  296. }
  297. idtobalance(params).then((res) => {
  298. if (res.data.state == 1){
  299. this.decimal = res.data.data.list;
  300. }
  301. })
  302. },
  303. show: function (total,order,id) {
  304. // alert("total",total)
  305. // console.log("===========")
  306. // console.log(total)
  307. // alert("order",orde
  308. // console.log(order)
  309. // alert("id",id)
  310. // console.log("wwwwwwwwwwwwww")
  311. // console.log(id)
  312. // console.log("++++++++++++")
  313. //初始化
  314. this.form.tmp_decimal = 0
  315. this.tmp_pay = 0
  316. this.id =id
  317. this.form.dec_way = false
  318. this.updateconfig()
  319. this.getfapiaonumber()
  320. this.form.total = total
  321. this.form.private_price = total
  322. this.form.pay_price = total
  323. this.form.total = total + this.form.medical_insurance_price
  324. this.form.discount_price = 0.0
  325. this.form.preferential_price = 0.0
  326. this.form.acct_used_flag = 0
  327. this.form.fapiao_code =""
  328. this.form.fapiao_number = ""
  329. this.order = order
  330. if(this.order && this.order.id > 0){
  331. this.form.acct_pay = this.order.acct_pay
  332. this.form.psn_pay = this.order.psn_cash_pay
  333. this.form.total = this.order.medfee_sumamt
  334. this.form.pay_price = (this.order.medfee_sumamt).toFixed(2)
  335. this.form.medical_insurance_price = this.order.fund_pay_sumamt
  336. this.form.private_price = this.order.psn_part_amt
  337. this.form.overlmt_self_pay = this.order.overlmt_self_pay
  338. this.form.acct_mulaid_pay = this.order.acct_mulaid_pay
  339. this.form.fulamt_ownpay_amt = this.order.fulamt_ownpay_amt
  340. }
  341. this.visibility = true
  342. }, hide: function () {
  343. this.form = Object.assign({}, this.resetForm)
  344. this.loadingtwo = false
  345. this.visibility = false
  346. }, cancel: function (formName) {
  347. this.form.tmp_decimal = 0
  348. this.tmp_pay = 0
  349. this.form.dec_way = false
  350. this.$emit('cancel', this.getValue())
  351. this.$refs['formValue'].resetFields()
  352. },
  353. confirm: function (formName) {
  354. if (parseFloat(this.form.tmp_decimal) > parseFloat(this.decimal)){
  355. this.$message.error("押金余额不足");
  356. return
  357. }
  358. this.$refs['formValue'].validate((valid) => {
  359. if (valid) {
  360. let value = {}
  361. value = this.getValue()
  362. console.log(value)
  363. this.$emit('confirm', value)
  364. this.loadingtwo = true
  365. }
  366. })
  367. },
  368. getValue: function () {
  369. let form = {}
  370. form = this.form
  371. return form
  372. },
  373. realityPrice(val){
  374. if(val < (this.form.total - this.form.discount_price - this.form.preferential_price)){
  375. this.$message.error('实收金额不能小于收费金额')
  376. return
  377. }
  378. this.form.found_price = parseInt(val) - parseInt(this.form.total) + parseInt(this.form.discount_price) + parseInt(this.form.preferential_price)
  379. },
  380. changeDiscountPrice(val){
  381. if(val > this.form.total){
  382. this.$message.error('折扣金额不能超过费用总额')
  383. return
  384. }
  385. this.form.reality_price = parseInt(this.form.total) - parseInt(val) - parseInt(this.form.preferential_price)
  386. },
  387. changePreferentialPrice(val){
  388. if(val > this.form.total){
  389. this.$message.error('优惠金额不能超过费用总额')
  390. return
  391. }
  392. this.form.reality_price = parseInt(this.form.total) - parseInt(val) - parseInt(this.form.discount_price)
  393. }
  394. },
  395. mounted() {
  396. var nowDate = new Date()
  397. var nowYear = nowDate.getFullYear()
  398. var nowMonth = nowDate.getMonth() + 1
  399. var nowDay = nowDate.getDate()
  400. var nowHours = nowDate.getHours()
  401. var nowMin = nowDate.getMinutes()
  402. var nowSecond = nowDate.getSeconds()
  403. this.record_date =
  404. nowYear +
  405. '-' +
  406. (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
  407. '-' +
  408. (nowDay < 10 ? '0' + nowDay : nowDay)+" "+(nowHours < 10 ? '0' + nowHours : nowHours)+":"+(nowMin < 10 ? '0' + nowMin : nowMin)
  409. },
  410. }
  411. </script>
  412. <style lang="scss" scoped>
  413. .chargeDialog{
  414. .el-form{
  415. display: flex;
  416. flex-wrap: wrap;
  417. }
  418. .el-form-item{
  419. width:50%;
  420. }
  421. }
  422. .input_style {
  423. border-radius: 5px;
  424. border: 1px solid #dddddd;
  425. }
  426. .input_style:focus {
  427. outline:none;
  428. border: 1px solid #66b1ff;
  429. }
  430. /deep/ .number_style{
  431. .el-input__inner{
  432. font-weight: bolder;
  433. }
  434. }
  435. </style>