HlwInvoiceModal.vue 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <template>
  2. <a-modal
  3. :title="title"
  4. :width="width"
  5. :visible="visible"
  6. :confirmLoading="confirmLoading"
  7. switchFullscreen
  8. @ok="handleOk"
  9. @cancel="handleCancel"
  10. cancelText="关闭"
  11. :footer="null">
  12. <a-spin :spinning="confirmLoading">
  13. <a-form :form="form">
  14. <a-form-item label="已选" :labelCol="labelCol" :wrapperCol="wrapperCol">
  15. {{model.totalNum}}个
  16. </a-form-item>
  17. <a-form-item label="企业名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
  18. {{model.companyName}}
  19. </a-form-item>
  20. <a-form-item label="服务商" :labelCol="labelCol" :wrapperCol="wrapperCol">
  21. {{model.subcontractorName}}
  22. </a-form-item>
  23. <template v-if="model.isThroughPlatform==1">
  24. <a-form-item label="服务费率" :labelCol="labelCol" :wrapperCol="wrapperCol">
  25. {{model.companyCpServiceRate}}%
  26. </a-form-item>
  27. <a-form-item label="开票金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
  28. ¥{{model.serviceAmount}}元(创客佣金:¥{{model.companyCpAmount}}元+服务费:¥{{model.companyCpServiceFee}}元)
  29. </a-form-item>
  30. </template>
  31. <template v-else>
  32. <a-form-item label="服务费率" :labelCol="labelCol" :wrapperCol="wrapperCol">
  33. {{model.serviceRate}}%
  34. </a-form-item>
  35. <a-form-item label="开票金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
  36. ¥{{model.totalPayment}}(创客佣金:¥{{model.amount}}元+服务费:¥{{model.serviceFee}}元)
  37. </a-form-item>
  38. </template>
  39. <a-form-item label="发票抬头" :labelCol="labelCol" :wrapperCol="wrapperCol">
  40. {{model.hlwCompanyInvoiceInformation.invoiceTitle}}
  41. </a-form-item>
  42. <a-form-item label="纳税人识别号" :labelCol="labelCol" :wrapperCol="wrapperCol">
  43. {{model.hlwCompanyInvoiceInformation.dutyParagraph}}
  44. </a-form-item>
  45. <a-form-item label="开户银行" :labelCol="labelCol" :wrapperCol="wrapperCol">
  46. {{model.hlwCompanyInvoiceInformation.accountBank}}
  47. </a-form-item>
  48. <a-form-item label="开户账户" :labelCol="labelCol" :wrapperCol="wrapperCol">
  49. {{model.hlwCompanyInvoiceInformation.account}}
  50. </a-form-item>
  51. <a-form-item label="注册地址" :labelCol="labelCol" :wrapperCol="wrapperCol">
  52. {{model.hlwCompanyInvoiceInformation.registerAddress}}
  53. </a-form-item>
  54. <a-form-item label="注册电话" :labelCol="labelCol" :wrapperCol="wrapperCol">
  55. {{model.hlwCompanyInvoiceInformation.registerPhone}}
  56. </a-form-item>
  57. <a-form-item style="margin-bottom: 90px" label="票种选择" :labelCol="labelCol" :wrapperCol="wrapperCol" >
  58. <j-dict-select-tag type="list" v-decorator="[ 'invoiceType', validatorRules.invoiceType]" :trigger-change="true" dictCode="invoice_type" placeholder="请选择票种" />
  59. </a-form-item>
  60. </a-form>
  61. </a-spin>
  62. <div class="drawer-bootom-button">
  63. <a-button class="ant-btn" @click="handleCancel">取消</a-button>
  64. <a-button class="ant-btn ant-btn-primary" style="margin-left: 8px" @click="handleOk">申请开票</a-button>
  65. </div>
  66. </a-modal>
  67. </template>
  68. <script>
  69. import Vue from 'vue'
  70. import { httpAction } from '@/api/manage'
  71. import pick from 'lodash.pick'
  72. import { validateDuplicateValue } from '@/utils/util'
  73. import JDate from '@/components/jeecg/JDate'
  74. import { ACCESS_TOKEN } from "@/store/mutation-types"
  75. export default {
  76. name: "HlwInvoiceModal",
  77. components: {
  78. JDate,
  79. },
  80. data () {
  81. return {
  82. headers:{},
  83. uploadLoading:false,
  84. form: this.$form.createForm(this),
  85. title:"操作",
  86. width:800,
  87. visible: false,
  88. model: {hlwCompanyInvoiceInformation:{}},
  89. labelCol: {
  90. xs: { span: 24 },
  91. sm: { span: 5 },
  92. },
  93. wrapperCol: {
  94. xs: { span: 24 },
  95. sm: { span: 16 },
  96. },
  97. confirmLoading: false,
  98. validatorRules: {
  99. invoiceType:{
  100. rules: [
  101. { required: true, message: '请选择票种!'},
  102. ],
  103. 'initialValue':'1'
  104. },
  105. },
  106. url: {
  107. add: "/wisdom/hlwInvoice/add",
  108. fileUpload: window._CONFIG['domianURL']+"/hpSys/common/ossUpload",
  109. imgerver: window._CONFIG['imgDomainOssURL'],
  110. }
  111. }
  112. },
  113. created () {
  114. const token = Vue.ls.get(ACCESS_TOKEN);
  115. this.headers = {"X-Access-Token":token}
  116. },
  117. computed:{
  118. uploadAction:function () {
  119. return this.url.fileUpload;
  120. }
  121. },
  122. methods: {
  123. add () {
  124. this.edit({});
  125. },
  126. edit (record) {
  127. this.form.resetFields();
  128. this.model = Object.assign({}, record);
  129. this.visible = true;
  130. this.$nextTick(() => {
  131. this.form.setFieldsValue(pick(this.model,'amount','invoiceNumber','serviceInvoiceNumber','invoice','sysOrgCode','uploadTime','uploadBy'))
  132. })
  133. },
  134. getAvatarView(img){
  135. return this.url.imgerver + img;
  136. },
  137. close () {
  138. this.$emit('close');
  139. this.visible = false;
  140. },
  141. handleOk () {
  142. const that = this;
  143. // 触发表单验证
  144. this.form.validateFields((err, values) => {
  145. if (!err) {
  146. that.confirmLoading = true;
  147. let httpurl = '';
  148. let method = '';
  149. httpurl+=this.url.add;
  150. method = 'post';
  151. let formData = Object.assign(this.model, values);
  152. formData.invoiceTitle=this.model.hlwCompanyInvoiceInformation.invoiceTitle
  153. formData.dutyParagraph=this.model.hlwCompanyInvoiceInformation.dutyParagraph
  154. formData.accountBank=this.model.hlwCompanyInvoiceInformation.accountBank
  155. formData.account=this.model.hlwCompanyInvoiceInformation.account
  156. formData.registerAddress=this.model.hlwCompanyInvoiceInformation.registerAddress
  157. formData.registerPhone=this.model.hlwCompanyInvoiceInformation.registerPhone
  158. console.log("表单提交数据",formData)
  159. httpAction(httpurl,formData,method).then((res)=>{
  160. if(res.success){
  161. that.$message.success(res.message);
  162. that.$emit('ok');
  163. }else{
  164. that.$message.warning(res.message);
  165. }
  166. }).finally(() => {
  167. that.confirmLoading = false;
  168. that.close();
  169. })
  170. }
  171. })
  172. },
  173. handleCancel () {
  174. this.close()
  175. },
  176. popupCallback(row){
  177. this.form.setFieldsValue(pick(row,'amount','invoiceNumber','invoice','sysOrgCode','uploadTime','uploadBy'))
  178. },
  179. }
  180. }
  181. </script>
  182. <style lang="less" scoped>
  183. .drawer-bootom-button {
  184. position: absolute;
  185. bottom: -8px;
  186. width: 100%;
  187. border-top: 1px solid #e8e8e8;
  188. padding: 10px 16px;
  189. text-align: right;
  190. left: 0;
  191. background: #fff;
  192. border-radius: 0 0 2px 2px;
  193. }
  194. </style>