add.vue 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. <template>
  2. <div>
  3. <el-button size="small" type="primary" @click="drawer = true">新 建</el-button>
  4. <el-drawer
  5. title="新建开票申请单"
  6. :visible.sync="drawer"
  7. direction="rtl"
  8. :show-close="false"
  9. append-to-body
  10. size="700px"
  11. @close="onClose">
  12. <div class="drawer__panel">
  13. <el-row :gutter="20">
  14. <el-form :model="form" :rules="rules" ref="form" class="demo-form-inline" size="small" label-position="right" label-width="80px">
  15. <el-col :span="12">
  16. <p class="normal-title normal-margin">企业信息</p>
  17. <el-form-item label="选择企业" prop="enterprisename">
  18. <el-popover
  19. placement="bottom"
  20. trigger="click"
  21. v-model="visible">
  22. <invoiceCanUseAgent :qiyi="true" ref="UseAgent" @selectRow="selectRow"></invoiceCanUseAgent>
  23. <el-input readonly slot="reference" v-model="form.enterprisename" @focus="queryAgent" suffix-icon="el-icon-arrow-down" placeholder="企业"></el-input>
  24. </el-popover>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="24">
  28. <p class="normal-title normal-margin">财务信息</p>
  29. </el-col>
  30. <el-col :span="12">
  31. <el-form-item label="税号" prop="taxno">
  32. <el-popover
  33. placement="bottom"
  34. trigger="click"
  35. :disabled="form.enterprisename === ''"
  36. v-model="visible1">
  37. <invoiceCanUseTax :sys_enterpriseid="form.sys_enterpriseid" ref="UseTax" @selectTaxRow="selectTaxRow"></invoiceCanUseTax>
  38. <el-input readonly :disabled="form.enterprisename === ''" slot="reference" v-model="form.taxno" @focus="queryTax" suffix-icon="el-icon-arrow-down" placeholder="选择税号"></el-input>
  39. </el-popover>
  40. </el-form-item>
  41. <el-form-item label="开票单位">
  42. <el-input readonly v-model="form.invo_enterprisename" placeholder="开票单位"></el-input>
  43. </el-form-item>
  44. <el-form-item label="开票地址">
  45. <el-input readonly v-model="form.address" placeholder="开票地址"></el-input>
  46. </el-form-item>
  47. </el-col>
  48. <el-col :span="12">
  49. <el-form-item label="联系电话">
  50. <el-input readonly v-model="form.phonenumber" placeholder="联系电话"></el-input>
  51. </el-form-item>
  52. <el-form-item label="开户行">
  53. <el-input readonly v-model="form.bank" placeholder="开户行"></el-input>
  54. </el-form-item>
  55. <el-form-item label="开户账号">
  56. <el-input readonly v-model="form.bankcardno" placeholder="开户账号"></el-input>
  57. </el-form-item>
  58. </el-col>
  59. <el-col :span="24">
  60. <el-form-item label="备注">
  61. <el-input v-model="form.remarks" type="textarea" :aotusize="{minRows:4}" placeholder="备注"></el-input>
  62. </el-form-item>
  63. </el-col>
  64. </el-form>
  65. </el-row>
  66. </div>
  67. <div class="fixed__btn__panel">
  68. <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
  69. <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">保 存</el-button>
  70. </div>
  71. </el-drawer>
  72. </div>
  73. </template>
  74. <script>
  75. import invoiceCanUseAgent from '@/template/invoiceCanUseAgent/index.vue'
  76. import invoiceCanUseTax from '@/template/invoiceCanUseTax/index.vue'
  77. export default {
  78. data () {
  79. var checktaxno = (rule, value, callback) => {
  80. if (this.form.enterprisename === '') return callback(new Error('请先选择经销商'));
  81. if (!value) {
  82. return callback(new Error('请选择税号'));
  83. }
  84. callback();
  85. };
  86. return {
  87. drawer:false,
  88. visible:false,
  89. visible1:false,
  90. form:{
  91. enterprisename:'',
  92. taxno:'',
  93. sa_invoiceapplyid:0,
  94. remarks:'',
  95. byhand:false,
  96. invoiceline:'p',
  97. quota:"10000000",
  98. },
  99. accountAmount:'',
  100. value:'',
  101. rules:{
  102. enterprisename: [
  103. { required: true, message: '请选择经销商', trigger: 'change' },
  104. ],
  105. taxno: [
  106. { validator: checktaxno,trigger: 'change' }
  107. ],
  108. quota:[
  109. { required: true, message: '发票限额不能为空', trigger: 'blur' },
  110. ],
  111. }
  112. }
  113. },
  114. components:{
  115. invoiceCanUseAgent,
  116. invoiceCanUseTax
  117. },
  118. methods:{
  119. onClose () {
  120. this.form = {
  121. enterprisename:'',
  122. taxno:'',
  123. sa_invoiceapplyid:0,
  124. remarks:'',
  125. byhand:false,
  126. invoiceline:'p'
  127. }
  128. },
  129. onSubmit () {
  130. this.$refs['form'].validate(async (valid) => {
  131. if (valid) {
  132. const res = await this.$api.requested({
  133. "id": "20221216142903",
  134. "version":1,
  135. "content": this.form
  136. })
  137. this.tool.showMessage(res,()=>{
  138. this.$emit('onSuccess')
  139. this.drawer = false
  140. this.form = {
  141. enterprisename:'',
  142. taxno:'',
  143. sa_invoiceapplyid:0,
  144. remarks:'',
  145. byhand:false,
  146. invoiceline:'p'
  147. }
  148. })
  149. } else {
  150. return false;
  151. }
  152. });
  153. },
  154. // 选择经销商
  155. selectRow (row) {
  156. this.visible = false
  157. console.log(row);
  158. this.form.enterprisename = row.enterprisename
  159. this.form.sys_enterpriseid = row.sys_enterpriseid
  160. this.getAccountAmount(row.sys_enterpriseid)
  161. },
  162. /* 获取财务信息 */
  163. async getAccountAmount (id) {
  164. let res = await this.$api.requested({
  165. "id": 20221013160602,
  166. "content": {
  167. "sys_enterpriseid":id,
  168. "pageNumber": 1,
  169. "pageSize": 20,
  170. "where": {
  171. "condition": ""
  172. }
  173. },
  174. })
  175. if (res.data && res.data.length > 0) {
  176. this.accountAmount = res.data[0]
  177. this.form.invo_enterprisename = this.accountAmount.enterprisename
  178. this.form.taxno = this.accountAmount.taxno
  179. this.form.address = this.accountAmount.address
  180. this.form.phonenumber = this.accountAmount.phonenumber
  181. this.form.bank = this.accountAmount.bank
  182. this.form.bankcardno = this.accountAmount.bankcardno
  183. }
  184. console.log(res,'财务信息');
  185. },
  186. // 选择开票信息
  187. selectTaxRow (row) {
  188. this.visible1 = false
  189. this.form.invo_enterprisename = row.enterprisename
  190. this.form.taxno = row.taxno
  191. this.form.address = row.address
  192. this.form.phonenumber = row.phonenumber
  193. this.form.bank = row.bank
  194. this.form.bankcardno = row.bankcardno
  195. },
  196. // 查询经销商
  197. queryAgent () {
  198. this.$refs['UseAgent'].listData()
  199. },
  200. // 查询开票信息
  201. queryTax () {
  202. this.$refs['UseTax'].listData()
  203. }
  204. }
  205. }
  206. </script>
  207. <style>
  208. </style>