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

chargeDialog.vue 7.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  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" style="width:33%;">
  9. <el-input 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" style="width:33%;">
  12. <el-input type="number" v-model="form.medical_insurance_price" :disabled="true"></el-input>
  13. </el-form-item>
  14. <el-form-item label="自费:" prop="age" :validate-event="is_Name" style="width:33%;">
  15. <el-input type="number" v-model="form.private_price" :disabled="true"></el-input>
  16. </el-form-item>
  17. <el-form-item label="支付方式:" style="width:100%;">
  18. <!-- <el-select v-model="form.pay_way" placeholder="请选择">
  19. <el-option
  20. v-for="(item,index) in payWays"
  21. :key="index"
  22. :label="item.label"
  23. :value="item.value">
  24. </el-option>
  25. </el-select> -->
  26. <el-radio-group v-model="form.pay_way">
  27. <el-radio :label="index" v-for="(item,index) in payWays" :key="index">{{ item.label }}</el-radio>
  28. </el-radio-group>
  29. </el-form-item>
  30. <el-form-item label="付款金额:" prop="id_card" :validate-event="is_Name">
  31. <el-input type="number" v-model="form.pay_price" :disabled="true"></el-input>
  32. </el-form-item>
  33. <el-form-item label="付款卡号:" prop="id_card" :validate-event="is_Name">
  34. <el-input v-model="form.pay_card_no"></el-input>
  35. </el-form-item>
  36. <el-form-item class="specialFormItem" label="折扣金额:">
  37. <div style="display:flex;">
  38. <el-input v-model="form.discount_price" :disabled="form.preferential_price != 0" @change="changeDiscountPrice"></el-input>
  39. </div>
  40. </el-form-item>
  41. <el-form-item class="specialFormItem" label="优惠金额:">
  42. <div style="display:flex;">
  43. <el-input v-model="form.preferential_price" :disabled="form.discount_price != 0" @change="changePreferentialPrice"></el-input>
  44. </div>
  45. </el-form-item>
  46. <el-form-item label="实收金额:">
  47. <div style="display:flex;">
  48. <el-input v-model="form.reality_price" @change="realityPrice"></el-input>
  49. </div>
  50. </el-form-item>
  51. <el-form-item label="找回金额:">
  52. <div style="display:flex;">
  53. <el-input v-model.number="form.found_price"></el-input>
  54. </div>
  55. </el-form-item>
  56. <el-form-item label="发票编码:">
  57. <div style="display:flex;">
  58. <el-input v-model.number="form.fapiao_code"></el-input>
  59. </div>
  60. </el-form-item>
  61. <el-form-item label="发票号码:">
  62. <div style="display:flex;">
  63. <el-input v-model.number="form.fapiao_number"></el-input>
  64. </div>
  65. </el-form-item>
  66. </el-form>
  67. <span slot="footer" class="dialog-footer">
  68. <el-button @click="cancel('formValue')">取 消</el-button>
  69. <el-button type="primary" @click="confirm('formValue')">确 定</el-button>
  70. </span>
  71. </el-dialog>
  72. </template>
  73. <script>
  74. import { uParseTime } from '@/utils/tools'
  75. export default {
  76. name: 'chargeDialog',
  77. data() {
  78. return {
  79. record_date:'',
  80. form: {
  81. medical_insurance_price:0,
  82. private_price:'',
  83. pay_way:'',
  84. pay_price:'',
  85. pay_card_no:'',
  86. discount_price:'',
  87. preferential_price:'',
  88. reality_price:'',
  89. found_price:'',
  90. total:0,
  91. fapiao_code:"",
  92. fapiao_number:"",
  93. order:null
  94. },
  95. payWays: [
  96. {value: 1, label: '现金'},
  97. {value: 2, label: '银行卡'},
  98. {value: 3, label: '微信'},
  99. {value: 4, label: '支付宝'},
  100. ],
  101. total:"",
  102. visibility: false,
  103. labelPosition: 'right',
  104. isClose: false,
  105. resetForm: {
  106. medical_insurance_price:'',
  107. private_price:'',
  108. pay_way:'',
  109. pay_price:'',
  110. pay_card_no:'',
  111. discount_price:'',
  112. preferential_price:'',
  113. reality_price:'',
  114. found_price:'',
  115. fapiao_code:"",
  116. fapiao_number:""
  117. },
  118. }
  119. },
  120. props: {
  121. titles: {
  122. type: String,
  123. default: ''
  124. },
  125. formValue: {
  126. type: Object
  127. },
  128. type: {
  129. type: Number,
  130. default: 1
  131. },
  132. isCreated: {
  133. type: Number,
  134. default: 1
  135. }
  136. },
  137. methods: {
  138. show: function (total,order) {
  139. this.form.total = total
  140. this.form.private_price = total
  141. this.form.pay_price = total
  142. this.form.total = total + this.form.medical_insurance_price
  143. this.form.discount_price = 0.0
  144. this.form.preferential_price = 0.0
  145. this.form.fapiao_code =""
  146. this.form.fapiao_number = ""
  147. this.order = order
  148. if(this.order && this.order.id > 0){
  149. this.form.total = this.order.medfee_sumamt
  150. this.form.pay_price = this.order.medfee_sumamt
  151. this.form.medical_insurance_price = this.order.fund_pay_sumamt
  152. this.form.private_price = this.order.psn_part_amt
  153. }
  154. this.visibility = true
  155. }, hide: function () {
  156. this.form = Object.assign({}, this.resetForm)
  157. this.loadingtwo = false
  158. this.visibility = false
  159. }, cancel: function (formName) {
  160. this.$emit('cancel', this.getValue())
  161. this.$refs['formValue'].resetFields()
  162. },
  163. confirm: function (formName) {
  164. this.$refs['formValue'].validate((valid) => {
  165. if (valid) {
  166. let value = {}
  167. value = this.getValue()
  168. this.$emit('confirm', value)
  169. this.loadingtwo = true
  170. }
  171. })
  172. },
  173. getValue: function () {
  174. let form = {}
  175. form = this.form
  176. return form
  177. },
  178. realityPrice(val){
  179. if(val < (this.form.total - this.form.discount_price - this.form.preferential_price)){
  180. this.$message.error('实收金额不能小于收费金额')
  181. return
  182. }
  183. this.form.found_price = parseInt(val) - parseInt(this.form.total) + parseInt(this.form.discount_price) + parseInt(this.form.preferential_price)
  184. },
  185. changeDiscountPrice(val){
  186. if(val > this.form.total){
  187. this.$message.error('折扣金额不能超过费用总额')
  188. return
  189. }
  190. this.form.reality_price = parseInt(this.form.total) - parseInt(val) - parseInt(this.form.preferential_price)
  191. },
  192. changePreferentialPrice(val){
  193. if(val > this.form.total){
  194. this.$message.error('优惠金额不能超过费用总额')
  195. return
  196. }
  197. this.form.reality_price = parseInt(this.form.total) - parseInt(val) - parseInt(this.form.discount_price)
  198. }
  199. },mounted() {
  200. var nowDate = new Date()
  201. var nowYear = nowDate.getFullYear()
  202. var nowMonth = nowDate.getMonth() + 1
  203. var nowDay = nowDate.getDate()
  204. var nowHours = nowDate.getHours()
  205. var nowMin = nowDate.getMinutes()
  206. var nowSecond = nowDate.getSeconds()
  207. this.record_date =
  208. nowYear +
  209. '-' +
  210. (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
  211. '-' +
  212. (nowDay < 10 ? '0' + nowDay : nowDay)+" "+(nowHours < 10 ? '0' + nowHours : nowHours)+":"+(nowMin < 10 ? '0' + nowMin : nowMin)
  213. }
  214. }
  215. </script>
  216. <style lang="scss" scoped>
  217. .chargeDialog{
  218. .el-form{
  219. display: flex;
  220. flex-wrap: wrap;
  221. }
  222. .el-form-item{
  223. width:50%;
  224. }
  225. }
  226. </style>