| | |
| | | <template> |
| | | <div id="wantBuy" class="c2cBackground fixed left-0 right-0 top-0 bottom-0 wantBuy"> |
| | | <div |
| | | id="wantBuy" |
| | | class="c2cBackground fixed left-0 right-0 top-0 bottom-0 wantBuy" |
| | | > |
| | | <div |
| | | class="w-full h-122 pl-40 pr-31 box-border c2cBackground flex text-white items-center" |
| | | class="w-full h-122 pl-40 pr-31 box-border c2cBackground flex text-white items-center" |
| | | > |
| | | <van-icon name="arrow-left" @click="goback"/> |
| | | <van-icon name="arrow-left" @click="goback" /> |
| | | <div class="flex-1 text-right mr-100" @click="showPopup"> |
| | | <span class="font-35 mr-8">{{ $t('自选区') }}</span> |
| | | <span class="font-35 mr-8">{{ $t("自选区") }}</span> |
| | | <van-icon name="arrow-down" /> |
| | | </div> |
| | | <van-popup round position="top" class="pt-30" v-model="show" :closeable="true"> |
| | | <van-popup |
| | | round |
| | | position="top" |
| | | class="pt-30" |
| | | v-model="show" |
| | | :closeable="true" |
| | | > |
| | | <div class="flex justify-around c2cColor mt-40 pb-48"> |
| | | <div class="flex flex-col items-center" @click="$router.push({ path: '/wantBuy/quick' })"> |
| | | <img class="w-56 h-56" src="@/assets/image/otc/wantBuyHead/fast.png" alt="" /> |
| | | <span class="font-24 mt-10 h-32 font-500" >{{ $t('快捷区') }}</span> |
| | | <div |
| | | class="flex flex-col items-center" |
| | | @click="$router.push({ path: '/wantBuy/quick' })" |
| | | > |
| | | <img |
| | | class="w-56 h-56" |
| | | src="@/assets/image/otc/wantBuyHead/fast.png" |
| | | alt="" |
| | | /> |
| | | <span class="font-24 mt-10 h-32 font-500">{{ $t("快捷区") }}</span> |
| | | </div> |
| | | <div class="flex flex-col items-center" @click="show=false"> |
| | | <img class="w-56 h-56" src="@/assets/image/otc/wantBuyHead/optional.png" alt="" /> |
| | | <span class="font-24 mt-10 font-500">{{ $t('自选区') }}</span> |
| | | <div class="flex flex-col items-center" @click="show = false"> |
| | | <img |
| | | class="w-56 h-56" |
| | | src="@/assets/image/otc/wantBuyHead/optional.png" |
| | | alt="" |
| | | /> |
| | | <span class="font-24 mt-10 font-500">{{ $t("自选区") }}</span> |
| | | </div> |
| | | </div> |
| | | </van-popup> |
| | | <div class="w-232 h-64 px-23 box-border box-radius text-black flex justify-around items-center" |
| | | style="background: #c2e1ff"> |
| | | <div class="flex items-center" @click="$router.push({ path: '/selectLegalCurrency' })"> |
| | | <div |
| | | class="w-232 h-64 px-23 box-border box-radius text-black flex justify-around items-center" |
| | | style="background: #c2e1ff" |
| | | > |
| | | <div |
| | | class="flex items-center" |
| | | @click="$router.push({ path: '/selectLegalCurrency' })" |
| | | > |
| | | <span class="mr-15 font-31 font-400">{{ exchangeCurrency }}</span> |
| | | <img class="w-24 h-20" :src="require('@/assets/image/otc/wantBuyHead/Group.png')" alt="" /> |
| | | <img |
| | | class="w-24 h-20" |
| | | :src="require('@/assets/image/otc/wantBuyHead/Group.png')" |
| | | alt="" |
| | | /> |
| | | </div> |
| | | <template > |
| | | <template> |
| | | <span class="mx-28 w-2 h-36">|</span> |
| | | <van-popover get-container="#quick" v-model="showPopover" :actions="actions" @select="onSelect" placement="bottom-end" |
| | | theme="dark" :offset="[20, 20]"> |
| | | <van-popover |
| | | get-container="#quick" |
| | | v-model="showPopover" |
| | | :actions="actions" |
| | | @select="onSelect" |
| | | placement="bottom-end" |
| | | theme="dark" |
| | | :offset="[20, 20]" |
| | | > |
| | | <template #reference> |
| | | <img @click="showPopover = !showPopover" class="relative bottom-4 w-24 h-6 list-img" |
| | | :src="require('@/assets/image/otc/wantBuyHead/Group2.png')" alt="" /> |
| | | <span @click="showPopover = !showPopover"> |
| | | <img |
| | | class="relative bottom-4 w-24 h-6 list-img" |
| | | :src="require('@/assets/image/otc/wantBuyHead/Group2.png')" |
| | | alt="" |
| | | /> |
| | | </span> |
| | | </template> |
| | | </van-popover> |
| | | </template> |
| | | </div> |
| | | </div> |
| | | <!-- <buy :loading="loading" :symbol="symbolList" @change="onChange" @change-direction="handleDirection"--> |
| | | <buy :loading="loading" :symbol="['USDT']" @change="onChange" @change-direction="handleDirection" |
| | | @confirm="selectConfirm"> |
| | | <van-pull-refresh :pulling-text="$t('下拉即可刷新')" :loosing-text="$t('释放即可刷新')" :loading-text="$t('加载中')" |
| | | v-model="isLoading" @refresh="onRefresh"> |
| | | <!-- <buy :loading="loading" :symbol="symbolList" @change="onChange" @change-direction="handleDirection"--> |
| | | <buy |
| | | :loading="loading" |
| | | :symbol="['USDT']" |
| | | @change="onChange" |
| | | @change-direction="handleDirection" |
| | | @confirm="selectConfirm" |
| | | > |
| | | <van-pull-refresh |
| | | :pulling-text="$t('下拉即可刷新')" |
| | | :loosing-text="$t('释放即可刷新')" |
| | | :loading-text="$t('加载中')" |
| | | v-model="isLoading" |
| | | @refresh="onRefresh" |
| | | > |
| | | <template v-if="list.length > 0"> |
| | | <van-list v-model="loading" :immediate-check="false" :finished="finished" :finished-text="$t('没有更多了')" |
| | | @load="onLoad"> |
| | | <div class="flex flex-col ml-32 mr-32" v-for="(item, index) in list" :key="'buy' + index"> |
| | | <van-list |
| | | v-model="loading" |
| | | :immediate-check="false" |
| | | :finished="finished" |
| | | :finished-text="$t('没有更多了')" |
| | | @load="onLoad" |
| | | > |
| | | <div |
| | | class="flex flex-col ml-32 mr-32" |
| | | v-for="(item, index) in list" |
| | | :key="'buy' + index" |
| | | > |
| | | <div class="flex"> |
| | | <div class="flex-1 textColor"> |
| | | <div class="flex items-center"> |
| | | <img class="w-32 h-32 mr-10" @click="handleGoUserHome(item)" :src="item.head_img" alt=""> |
| | | <div class="font-400 font-26 mr-10">{{ item.nick_name }}</div> |
| | | <img class="w-22 h-22" :src="require('@/assets/image/otc/buy/star.png')" alt=""> |
| | | <span @click="handleGoUserHome(item)"> |
| | | <img |
| | | class="w-32 h-32 mr-10" |
| | | :src="item.head_img" |
| | | alt="" |
| | | /> |
| | | </span> |
| | | |
| | | <div class="font-400 font-26 mr-10"> |
| | | {{ item.nick_name }} |
| | | </div> |
| | | <img |
| | | class="w-22 h-22" |
| | | :src="require('@/assets/image/otc/buy/star.png')" |
| | | alt="" |
| | | /> |
| | | </div> |
| | | <div class="font-22 text-grey mt-31">{{ $t('单价') }}</div> |
| | | <div class="font-22 text-grey mt-31">{{ $t("单价") }}</div> |
| | | <div class="mt-10"> |
| | | <span class="font-22 mr-10">{{ item.currency }}</span> |
| | | <span class="font-40">{{ (item.symbol_value / 1).toFixed(2) }}</span> |
| | | <span class="font-40">{{ |
| | | (item.symbol_value / 1).toFixed(2) |
| | | }}</span> |
| | | </div> |
| | | <div class="mt-26"> |
| | | <span class="font-22 text-grey mr-10">{{ $t('数量') }}</span> |
| | | <span>{{ item.coin_amount && (item.coin_amount / 1).toFixed(item.symbol.toUpperCase() === 'USDT' ? 2 : 4) }}</span> |
| | | <span class="font-22 text-grey mr-10">{{ |
| | | $t("数量") |
| | | }}</span> |
| | | <span>{{ |
| | | item.coin_amount && |
| | | (item.coin_amount / 1).toFixed( |
| | | item.symbol.toUpperCase() === "USDT" ? 2 : 4 |
| | | ) |
| | | }}</span> |
| | | </div> |
| | | <div class="mt-13"> |
| | | <span class="font-22 text-grey mr-10">{{ $t('限额') }}</span> |
| | | <span class="font-22 ">{{ currencySymbol }} {{ (item.investment_min / 1).toFixed(2) }} - {{ currencySymbol }} {{ (item.investment_max / 1).toFixed(2) }}</span> |
| | | <span class="font-22 text-grey mr-10">{{ |
| | | $t("限额") |
| | | }}</span> |
| | | <span class="font-22" |
| | | >{{ currencySymbol }} |
| | | {{ (item.investment_min / 1).toFixed(2) }} - |
| | | {{ currencySymbol }} |
| | | {{ (item.investment_max / 1).toFixed(2) }}</span |
| | | > |
| | | </div> |
| | | <div class="flex mt-36"> |
| | | <section v-for="(_item, _index) in (item.pay_type_name.split(','))" :key="_index" class="flex"> |
| | | <div class="w-5 h-20 col mr-9">|</div> |
| | | <section |
| | | v-for="(_item, _index) in item.pay_type_name.split(',')" |
| | | :key="_index" |
| | | class="flex" |
| | | > |
| | | <div class="w-5 h-20 col mr-9">|</div> |
| | | <div class="mr-19">{{ _item }}</div> |
| | | </section> |
| | | <!-- <div class="w-5 h-20 cl mr-9">|</div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="flex flex-col justify-between items-end"> |
| | | <div class="text-grey flex font-24 "> |
| | | <div class="text-grey flex font-24"> |
| | | <div class="flex items-center"> |
| | | <span>{{ $t('成交量') }} {{ item.thirty_days_order }}</span> |
| | | <span class="w-1 h-16 mx-8" style="background: #EAEBEE"></span> |
| | | <span |
| | | >{{ $t("成交量") }} {{ item.thirty_days_order }}</span |
| | | > |
| | | <span |
| | | class="w-1 h-16 mx-8" |
| | | style="background: #eaebee" |
| | | ></span> |
| | | <span>{{ item.thirty_days_order_ratio }}%</span> |
| | | </div> |
| | | </div> |
| | | <div class="w-250 h-54 font-24 greyBg lh-54 text-center textColor px-10" |
| | | v-if="item.direction === 'sell'&&!methodAvaiable(item.pay_type_name, payMethods)">{{ $t('不满足广告方要求') }}</div> |
| | | <div v-if="item.direction === 'sell'" @click="trade('sell', item)" |
| | | class="w-160 h-58 font-29 text-white rounded-lg bg-red text-center lh-58">{{ $t('出售') }} |
| | | <div |
| | | class="w-250 h-54 font-24 greyBg lh-54 text-center textColor px-10" |
| | | v-if=" |
| | | item.direction === 'sell' && |
| | | !methodAvaiable(item.pay_type_name, payMethods) |
| | | " |
| | | > |
| | | {{ $t("不满足广告方要求") }} |
| | | </div> |
| | | <div v-if="item.direction === 'buy'" @click="trade('buy', item)" |
| | | class="w-160 h-58 font-29 text-white rounded-lg bg-green text-center lh-58">{{ $t('购买') }} |
| | | <div |
| | | v-if="item.direction === 'sell'" |
| | | @click="trade('sell', item)" |
| | | class="w-160 h-58 font-29 text-white rounded-lg bg-red text-center lh-58" |
| | | > |
| | | {{ $t("出售") }} |
| | | </div> |
| | | <div |
| | | v-if="item.direction === 'buy'" |
| | | @click="trade('buy', item)" |
| | | class="w-160 h-58 font-29 text-white rounded-lg bg-green text-center lh-58" |
| | | > |
| | | {{ $t("购买") }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </van-list> |
| | | </template> |
| | | <template v-if="list.length === 0 && loading === false && isLoading === false"> |
| | | <template |
| | | v-if="list.length === 0 && loading === false && isLoading === false" |
| | | > |
| | | <div> |
| | | <van-empty class="custom-image" :image="require('@/assets/image/otc/nodatas.png')" |
| | | :description="$t('暂无广告')"> |
| | | <van-empty |
| | | class="custom-image" |
| | | :image="require('@/assets/image/otc/nodatas.png')" |
| | | :description="$t('暂无广告')" |
| | | > |
| | | </van-empty> |
| | | </div> |
| | | |
| | | </template> |
| | | </van-pull-refresh> |
| | | </buy> |
| | | <van-dialog v-model="showJie" :showConfirmButton="false"> |
| | | <div class="dia-main"> |
| | | <p class="dia-change">{{$t('切换到接单模式')}}</p> |
| | | <p class="dia-text">{{$t('接单模式适用于有发布广告交易需求的用户。')}}</p> |
| | | <p class="dia-change">{{ $t("切换到接单模式") }}</p> |
| | | <p class="dia-text"> |
| | | {{ $t("接单模式适用于有发布广告交易需求的用户。") }} |
| | | </p> |
| | | <div class="dia-btn"> |
| | | <div @click="showJie = false">{{$t('取消')}}</div> |
| | | <div @click="showJie = false">{{ $t("取消") }}</div> |
| | | <div style="background: #1d91ff; color: #ffffff" @click="linkToC2C"> |
| | | {{$t('确认')}} |
| | | {{ $t("确认") }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | SET_ORDER_MODE |
| | | } from "@/store/const.store"; |
| | | import { Icon, Popup, Popover, Dialog, List, PullRefresh, Empty } from 'vant' |
| | | import listLoadMixins from '@/utils/list-load-mixins' |
| | | import Buy from '@/page/placeAnOrder/components/buy/buy' |
| | | import { SET_ORDER_MODE } from "@/store/const.store"; |
| | | import { Icon, Popup, Popover, Dialog, List, PullRefresh, Empty } from "vant"; |
| | | import listLoadMixins from "@/utils/list-load-mixins"; |
| | | import Buy from "@/page/placeAnOrder/components/buy/buy"; |
| | | import otcApi from "@/API/otc"; |
| | | import { mapActions, mapGetters, mapMutations } from 'vuex' |
| | | import { Toast, Notify } from 'vant' |
| | | import { mapActions, mapGetters, mapMutations } from "vuex"; |
| | | import { Toast, Notify } from "vant"; |
| | | // import payment from "@/store/modules/payment"; |
| | | |
| | | export default { |
| | |
| | | // }, |
| | | beforeRouteLeave(to, from, next) { |
| | | // 保存离开页面时的列表的位置 |
| | | const position = document.querySelector('.roll-section').scrollTop |
| | | window.sessionStorage.setItem('position', JSON.stringify(position)) |
| | | next() |
| | | const position = document.querySelector(".roll-section").scrollTop; |
| | | window.sessionStorage.setItem("position", JSON.stringify(position)); |
| | | next(); |
| | | }, |
| | | props: { |
| | | showDot: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | default: true, |
| | | }, |
| | | }, |
| | | name: 'wantBuy', |
| | | name: "wantBuy", |
| | | mixins: [listLoadMixins], |
| | | components: { |
| | | [Icon.name]: Icon, |
| | |
| | | Buy, |
| | | }, |
| | | computed: { |
| | | ...mapGetters('c2c', ['symbolList', 'exchangeCurrency', 'symbol','currencySymbol']), |
| | | ...mapGetters('home', ['currency']) |
| | | ...mapGetters("c2c", [ |
| | | "symbolList", |
| | | "exchangeCurrency", |
| | | "symbol", |
| | | "currencySymbol", |
| | | ]), |
| | | ...mapGetters("home", ["currency"]), |
| | | }, |
| | | async created() { |
| | | console.log('created') |
| | | await this.SET_SYMBOL_LIST() |
| | | await this.SET_PAY_METHODS({ language: this.$i18n.locale }) |
| | | console.log("created"); |
| | | await this.SET_SYMBOL_LIST(); |
| | | await this.SET_PAY_METHODS({ language: this.$i18n.locale }); |
| | | if (!this.exchangeCurrency) { |
| | | console.log(this.currency.currency); |
| | | this.SET_CURRENCY(this.currency.currency) |
| | | this.SET_CURRENCY(this.currency.currency); |
| | | } |
| | | |
| | | if (!this.currencySymbol) { |
| | | this.SET_CURRENCY_SYMBOL(this.currency.currency_symbol) |
| | | this.SET_CURRENCY_SYMBOL(this.currency.currency_symbol); |
| | | } |
| | | |
| | | otcApi.ctcPaymentMethodList({ language: this.$i18n.locale }).then(res => { |
| | | res.data.map(item => { |
| | | this.payMethods.push(item.methodName) |
| | | }) |
| | | }) |
| | | otcApi.ctcPaymentMethodList({ language: this.$i18n.locale }).then((res) => { |
| | | res.data.map((item) => { |
| | | this.payMethods.push(item.methodName); |
| | | }); |
| | | }); |
| | | this.params = { |
| | | page_no: this.page_no, // 页码 |
| | | direction: this.$store.state.c2c.direction, // 买 or 卖 |
| | | currency: this.exchangeCurrency, // 法币 |
| | | symbol: this.symbol, // 配置的加密货币 |
| | | amount: '', // 兑换金额 |
| | | method_type: '', // 支付方式 |
| | | language: this.$i18n.locale |
| | | } |
| | | this.get() |
| | | amount: "", // 兑换金额 |
| | | method_type: "", // 支付方式 |
| | | language: this.$i18n.locale, |
| | | }; |
| | | this.get(); |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | showPopover: false, |
| | | page_no: 1, |
| | | list: [], |
| | | direction: 'buy', // |
| | | direction: "buy", // |
| | | params: {}, |
| | | loading: false, |
| | | payMethods: [], |
| | | actions: [ |
| | | { |
| | | text: this.$t('收款方式'), |
| | | icon: require('@/assets/image/otc/buy/collection_icon.png'), |
| | | path: '/paymentMethod', |
| | | text: this.$t("收款方式"), |
| | | icon: require("@/assets/image/otc/buy/collection_icon.png"), |
| | | path: "/paymentMethod", |
| | | }, |
| | | // { |
| | | // text: this.$t('c2c帮助中心'), |
| | |
| | | // icon: require('@/assets/image/otc/buy/order_icon.png'), |
| | | // }, |
| | | ], |
| | | } |
| | | }; |
| | | }, |
| | | methods: { |
| | | ...mapActions('c2c', ['SET_SYMBOL_LIST', 'SET_PAY_METHODS']), |
| | | ...mapMutations('c2c', ['SET_CURRENCY','SET_CURRENCY_SYMBOL']), |
| | | onChange(params) { // 买卖变化 |
| | | this.params = Object.assign(this.params, params) |
| | | this.list = [] |
| | | this.get() |
| | | ...mapActions("c2c", ["SET_SYMBOL_LIST", "SET_PAY_METHODS"]), |
| | | ...mapMutations("c2c", ["SET_CURRENCY", "SET_CURRENCY_SYMBOL"]), |
| | | onChange(params) { |
| | | // 买卖变化 |
| | | this.params = Object.assign(this.params, params); |
| | | this.list = []; |
| | | this.get(); |
| | | }, |
| | | methodAvaiable(payStr, arr) { |
| | | console.log(payStr, arr) |
| | | let exist = false |
| | | console.log(payStr, arr); |
| | | let exist = false; |
| | | for (let i = 0; i < arr.length; i++) { |
| | | if (payStr.indexOf(arr[i]) > -1) { |
| | | exist = true |
| | | break |
| | | exist = true; |
| | | break; |
| | | } |
| | | } |
| | | return exist |
| | | return exist; |
| | | }, |
| | | get() { |
| | | Toast.loading() |
| | | otcApi.ctcAdvertList(this.params).then(res => { |
| | | Toast.clear() |
| | | this.handleData(res.data) |
| | | }) |
| | | Toast.loading(); |
| | | otcApi.ctcAdvertList(this.params).then((res) => { |
| | | Toast.clear(); |
| | | this.handleData(res.data); |
| | | }); |
| | | }, |
| | | linkToC2C() { |
| | | // if (this.$store.state.user.userInfo.c2c_user_type === 0) { // 普通用户 |
| | | // Toast('你不是平台认证商家') |
| | | // return |
| | | // } |
| | | this.$router.push('/c2c/receivingBuy') |
| | | this.$router.push("/c2c/receivingBuy"); |
| | | this.$store.commit(`c2c/${SET_ORDER_MODE}`, { |
| | | state: true, |
| | | }) |
| | | }); |
| | | }, |
| | | showPopup() { |
| | | this.show = true |
| | | this.show = true; |
| | | }, |
| | | onSelect(action) { |
| | | if (action.text === '接单模式') { |
| | | this.showJie = true |
| | | return |
| | | if (action.text === "接单模式") { |
| | | this.showJie = true; |
| | | return; |
| | | } |
| | | this.$router.push({ |
| | | path: action.path, |
| | | }) |
| | | }); |
| | | }, |
| | | handleDirection(direction) { |
| | | console.log(direction); |
| | | this.direction = direction; |
| | | this.params.direction = this.direction; |
| | | // 发送请求 |
| | | this.get() |
| | | this.get(); |
| | | }, |
| | | handleGoUserHome(item) { |
| | | console.log('去买卖用户首页', item) |
| | | console.log("去买卖用户首页", item); |
| | | this.$router.push({ |
| | | path: '/advertiserDetail', |
| | | path: "/advertiserDetail", |
| | | query: { |
| | | uid: item.c2c_user_id |
| | | } |
| | | }) |
| | | uid: item.c2c_user_id, |
| | | }, |
| | | }); |
| | | }, |
| | | trade(type, data) { |
| | | // 支付方式是否满足 |
| | | if (type=='sell'&&!this.methodAvaiable(data.pay_type_name, this.payMethods)) { |
| | | console.log(data.pay_type_name) |
| | | console.log(this.payMethods) |
| | | this.$toast(this.$t('请添加相应的收款方式')) |
| | | setTimeout(() => { |
| | | this.$router.push('/paymentMethod') |
| | | }, 500); |
| | | //Notify({ type: 'danger', message: '不满足广告方要求' }) |
| | | return |
| | | if ( |
| | | type == "sell" && |
| | | !this.methodAvaiable(data.pay_type_name, this.payMethods) |
| | | ) { |
| | | console.log(data.pay_type_name); |
| | | console.log(this.payMethods); |
| | | this.$toast(this.$t("请添加相应的收款方式")); |
| | | setTimeout(() => { |
| | | this.$router.push("/paymentMethod"); |
| | | }, 500); |
| | | //Notify({ type: 'danger', message: '不满足广告方要求' }) |
| | | return; |
| | | } |
| | | // |
| | | if (data && data.isRemoved) { |
| | | this.showRemoved = true; |
| | | return; |
| | | } |
| | | this.$store.commit('c2c/SET_ADV_ID', data.id) // 保存广告id |
| | | this.$store.commit("c2c/SET_ADV_ID", data.id); // 保存广告id |
| | | this.$router.push({ |
| | | name: 'c2cTrade' |
| | | name: "c2cTrade", |
| | | // query: { |
| | | // type, |
| | | // id: data.id |
| | | // } |
| | | }) |
| | | }); |
| | | }, |
| | | selectConfirm(params) { |
| | | this.params = Object.assign(this.params,params) |
| | | this.list = [] |
| | | this.params = Object.assign(this.params, params); |
| | | this.list = []; |
| | | this.get(); |
| | | }, |
| | | goback(){ |
| | | let frompath = this.$route.query.frompath |
| | | if (frompath){ |
| | | this.$router.push(frompath) |
| | | }else{ |
| | | this.$router.push('/home') |
| | | goback() { |
| | | let frompath = this.$route.query.frompath; |
| | | if (frompath) { |
| | | this.$router.push(frompath); |
| | | } else { |
| | | this.$router.push("/home"); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |