addInvoiceHeader.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <!-- 新增发票抬头 -->
  2. <template>
  3. <view class="invoice-header">
  4. <view class="invoice-header-form">
  5. <u-form :model="form" ref="uForm" label-width="150">
  6. <u-form-item label="抬 头:" prop="type">
  7. <u-radio-group v-model="form.type">
  8. <u-radio :name="1">企业</u-radio>
  9. <u-radio :name="2">个人</u-radio>
  10. </u-radio-group>
  11. </u-form-item>
  12. <u-form-item label="发票抬头:" prop="name">
  13. <u-input v-model="form.name" placeholder="请输入发票抬头" />
  14. </u-form-item>
  15. <u-form-item label="税 号:" prop="dutyNum" v-if="form.type === 1">
  16. <u-input v-model="form.dutyNum" placeholder="请输入税号" />
  17. </u-form-item>
  18. </u-form>
  19. </view>
  20. <view class="invoice-header-default">
  21. <u-form :model="form" ref="uForm1" label-width="150">
  22. <u-form-item label="默认抬头:">
  23. <view class="invoice-header-default-item">
  24. <text class="tips">每次开票都会默认填写该抬头信息系</text>
  25. <u-switch v-model="form.checked" size="40" />
  26. </view>
  27. </u-form-item>
  28. </u-form>
  29. </view>
  30. <view class="invoice-header-bottom">
  31. <u-button type="primary" @click="submitForm" :loading="loading">保存</u-button>
  32. </view>
  33. <u-toast ref="uToast" />
  34. </view>
  35. </template>
  36. <script>
  37. export default {
  38. data() {
  39. return {
  40. form: {
  41. type: 1,
  42. name: '',
  43. dutyNum: '',
  44. checked: false
  45. },
  46. rules: {
  47. name: [{ required: true, message: '请输入发票抬头', trigger: ['blur', 'change'] }],
  48. dutyNum: [{ required: true, message: '请输入税号', trigger: ['blur', 'change'] }]
  49. },
  50. loading: false
  51. };
  52. },
  53. onLoad(options) {
  54. const { id } = options;
  55. if (id) {
  56. uni.setNavigationBarTitle({
  57. title: '编辑抬头'
  58. });
  59. }
  60. },
  61. // 必须要在onReady生命周期,因为onLoad生命周期组件可能尚未创建完毕
  62. onReady() {
  63. this.$refs.uForm.setRules(this.rules);
  64. },
  65. methods: {
  66. /**
  67. * @description: 获取发票抬头信息
  68. * @param {*} id
  69. * @return {*}
  70. */
  71. async getInvoiceHeaderDetails(id) {
  72. const { code, data } = await this.$u.api.invoiceModuleApi.getInvoiceHeadDetailsApi({ id });
  73. if (code === 200) {
  74. }
  75. },
  76. /**
  77. * @description: 提交发票
  78. * @return {*}
  79. */
  80. submitForm() {
  81. this.$refs.uForm.validate(async (valid) => {
  82. if (valid) {
  83. this.loading = true;
  84. if (this.form.id) {
  85. try {
  86. const { code } = await this.$u.api.invoiceModuleApi.updateInvoiceHeaderApi({ ...this.form });
  87. if (code === 200) {
  88. this.$refs.uToast.show({
  89. title: '修改成功!',
  90. type: 'success',
  91. duration: 2000,
  92. url: '/pages/invoiceModule/invoiceHeaderList/invoiceHeaderList'
  93. });
  94. }
  95. } catch (error) {
  96. } finally {
  97. this.loading = false;
  98. }
  99. } else {
  100. try {
  101. const { code } = await this.$u.api.invoiceModuleApi.addInvoiceHeaderApi({ ...this.form });
  102. if (code === 200) {
  103. this.$refs.uToast.show({
  104. title: '保存成功!',
  105. type: 'success',
  106. duration: 2000,
  107. url: '/pages/invoiceModule/invoiceHeaderList/invoiceHeaderList'
  108. });
  109. }
  110. } catch (error) {
  111. } finally {
  112. this.loading = false;
  113. }
  114. }
  115. }
  116. });
  117. }
  118. }
  119. };
  120. </script>
  121. <style lang="scss" scoped>
  122. @import './addInvoiceHeader.scss';
  123. </style>