FinancialTab.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <template>
  2. <div class="q-pa-md">
  3. <div class="row full-width q-col-gutter-md">
  4. <!-- Coluna esquerda -->
  5. <div class="col-12 col-md-6 column q-gutter-md">
  6. <!-- Dados Bancários -->
  7. <div class="row q-col-gutter-sm">
  8. <div class="col-12">
  9. <span class="text-subtitle1 text-weight-medium"
  10. >Dados Bancários</span
  11. >
  12. </div>
  13. <DefaultSelect
  14. v-model="form.tax_regime"
  15. label="Regime Tributário"
  16. :options="taxRegimeOptions"
  17. class="col-12"
  18. outlined
  19. emit-value
  20. map-options
  21. />
  22. <DefaultInput
  23. v-model="form.bank"
  24. label="Banco"
  25. class="col-12"
  26. outlined
  27. />
  28. <DefaultInput
  29. v-model="form.agency"
  30. label="Agência"
  31. class="col-12"
  32. outlined
  33. />
  34. <DefaultInput
  35. v-model="form.account"
  36. label="Conta"
  37. class="col-12"
  38. outlined
  39. />
  40. <DefaultSelect
  41. v-model="form.account_type"
  42. label="Tipo de Conta"
  43. :options="accountTypeOptions"
  44. class="col-12"
  45. outlined
  46. emit-value
  47. map-options
  48. />
  49. <DefaultInput
  50. v-model="form.account_holder"
  51. label="Titular da Conta"
  52. class="col-12"
  53. outlined
  54. />
  55. <DefaultInput
  56. v-model="form.pix_key"
  57. label="Chave Pix"
  58. class="col-12"
  59. outlined
  60. />
  61. </div>
  62. <!-- Dados para Faturamento -->
  63. <div class="row q-col-gutter-sm">
  64. <div class="col-12">
  65. <span class="text-subtitle1 text-weight-medium"
  66. >Dados para Faturamento</span
  67. >
  68. </div>
  69. <DefaultSelect
  70. v-model="form.billing_method"
  71. label="Forma de Cobrança"
  72. :options="billingMethodOptions"
  73. class="col-12"
  74. outlined
  75. emit-value
  76. map-options
  77. />
  78. <DefaultInput
  79. v-model="form.due_date"
  80. label="Data de Vencimento"
  81. class="col-12"
  82. outlined
  83. />
  84. <DefaultInput
  85. v-model="form.financial_email"
  86. label="E-mail Financeiro"
  87. class="col-12"
  88. outlined
  89. />
  90. </div>
  91. </div>
  92. <!-- Coluna direita -->
  93. <div class="col-12 col-md-6 column q-gutter-md">
  94. <!-- Dados do Contrato -->
  95. <div class="row q-col-gutter-sm">
  96. <div class="col-12">
  97. <span class="text-subtitle1 text-weight-medium"
  98. >Dados do Contrato</span
  99. >
  100. </div>
  101. <DefaultSelect
  102. v-model="form.group"
  103. label="Grupo"
  104. :options="groupOptions"
  105. class="col-12"
  106. outlined
  107. emit-value
  108. map-options
  109. />
  110. <DefaultInput
  111. v-model="form.maintenance_fee"
  112. label="Taxa de Manutenção"
  113. class="col-12"
  114. outlined
  115. />
  116. <DefaultInput
  117. v-model="form.marketing_fund"
  118. label="Fundo de Marketing"
  119. class="col-12"
  120. outlined
  121. />
  122. <DefaultInput
  123. v-model="form.tbr"
  124. label="TBR"
  125. class="col-12"
  126. outlined
  127. />
  128. </div>
  129. <div class="row q-col-gutter-sm">
  130. <div class="col-12">
  131. <span class="text-subtitle1 text-weight-medium"
  132. >Dados de Contato</span
  133. >
  134. </div>
  135. <div
  136. v-for="(partner, index) in contactPartners"
  137. :key="index"
  138. class="col-6"
  139. >
  140. <PartnerCardComponent :partner />
  141. </div>
  142. </div>
  143. </div>
  144. </div>
  145. <div class="row justify-end q-mt-md items-end full-width q-px-xs">
  146. <div class="row q-gutter-sm">
  147. <q-btn label="Cancelar" color="primary" outline />
  148. <q-btn label="Salvar" color="primary-2" />
  149. <q-btn
  150. icon="mdi-paperclip-plus"
  151. color="primary-2"
  152. style="height: 40px; width: 40px"
  153. />
  154. </div>
  155. </div>
  156. </div>
  157. </template>
  158. <script setup>
  159. import { ref } from "vue";
  160. import DefaultInput from "src/components/defaults/DefaultInput.vue";
  161. import DefaultSelect from "src/components/defaults/DefaultSelect.vue";
  162. import PartnerCardComponent from "src/components/shared/PartnerCardComponent.vue";
  163. import { useFormUpdateTracker } from "src/composables/useFormUpdateTracker";
  164. const taxRegimeOptions = [
  165. { label: "Selecione", value: null },
  166. { label: "Simples Nacional", value: "simples_nacional" },
  167. { label: "Lucro Presumido", value: "lucro_presumido" },
  168. { label: "Lucro Real", value: "lucro_real" },
  169. { label: "MEI", value: "mei" },
  170. ];
  171. const accountTypeOptions = [
  172. { label: "Selecione", value: null },
  173. { label: "Conta Corrente", value: "corrente" },
  174. { label: "Conta Poupança", value: "poupanca" },
  175. ];
  176. const billingMethodOptions = [
  177. { label: "Selecione", value: null },
  178. { label: "Boleto", value: "boleto" },
  179. { label: "Débito Automático", value: "debit" },
  180. { label: "PIX", value: "pix" },
  181. { label: "Cartão de Crédito", value: "credit_card" },
  182. ];
  183. const groupOptions = [{ label: "Selecione", value: null }];
  184. const contactPartners = ref([
  185. { social_name: null, role: null, avatarUrl: null, color: "#ff8340" },
  186. { social_name: null, role: null, avatarUrl: null, color: "#4caf50" },
  187. ]);
  188. const { form } = useFormUpdateTracker({
  189. tax_regime: null,
  190. bank: null,
  191. agency: null,
  192. account: null,
  193. account_type: null,
  194. account_holder: null,
  195. pix_key: null,
  196. billing_method: null,
  197. due_date: null,
  198. financial_email: null,
  199. group: null,
  200. maintenance_fee: null,
  201. marketing_fund: null,
  202. tbr: null,
  203. });
  204. </script>