DashboardPriceSuggest.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <template>
  2. <div class="q-mx-md q-mb-md">
  3. <q-card class="price-suggest-card bg-surface shadow-card card-border" :flat="false">
  4. <q-card-section class="q-pa-md">
  5. <div class="row items-center justify-between q-mb-sm">
  6. <div class="row items-center q-gutter-x-sm">
  7. <span class="text-suggest-label font10">{{ $t('provider.dashboard.price_suggest.region_label_1') }}</span>
  8. <span class="text-suggest-label font10 fontbold">{{ $t('provider.dashboard.price_suggest.region_label_2') }}</span>
  9. </div>
  10. <q-badge rounded class="price-badge font10 fontbold q-px-md q-py-xs gradient-diarista-bg">
  11. {{ formatCurrency(data?.average_price ?? 0) }}
  12. </q-badge>
  13. </div>
  14. <div class="row items-center justify-between no-wrap">
  15. <div class="row items-center q-gutter-x-sm">
  16. <span class="text-suggest-label font10">{{ $t('provider.dashboard.price_suggest.my_price_label') }}</span>
  17. <q-chip class="row items-center no-wrap bg-surface" outline color="text">
  18. <span class="text-my-price font10 fontsemibold q-mr-xs">{{ showMyPrice ? formatCurrency(data?.your_price ?? 0) : $t('common.price_masked') }}</span>
  19. <q-btn icon="mdi-eye-off-outline" flat size="xs" color="grey-6" class="q-pa-none q-pl-sm" @click="showMyPrice = !showMyPrice"/>
  20. </q-chip>
  21. </div>
  22. <q-btn flat no-caps color="primary" size="xs" padding="0" @click="openServiceDataDialog">
  23. <div class="row items-center q-gutter-x-xs font10">
  24. <span class="fontbold">{{ $t('common.alter') }}</span>
  25. <q-icon name="mdi-pencil-outline" size="xs" />
  26. </div>
  27. </q-btn>
  28. </div>
  29. </q-card-section>
  30. </q-card>
  31. </div>
  32. </template>
  33. <script setup>
  34. import { formatCurrency } from 'src/helpers/utils';
  35. import { ref } from 'vue';
  36. import { useQuasar } from 'quasar';
  37. import ServiceDataDialog from '../profile/ProfileServiceDataDialog.vue';
  38. defineProps({
  39. data: {
  40. type: Object,
  41. default: () => ({
  42. })
  43. }
  44. });
  45. const showMyPrice = ref(false);
  46. const $q = useQuasar()
  47. const openServiceDataDialog = () => {
  48. $q.dialog({
  49. component: ServiceDataDialog
  50. })
  51. }
  52. </script>
  53. <style scoped lang="scss">
  54. .price-suggest-card {
  55. border-radius: 12px;
  56. }
  57. .text-suggest-label {
  58. color: #3a3a4a;
  59. }
  60. .price-badge {
  61. border-radius: 20px;
  62. }
  63. .text-my-price {
  64. color: #3a3a4a;
  65. }
  66. </style>