国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Taro+vue3 實(shí)現(xiàn)選座位 功能 以及座位顯示

這篇具有很好參考價(jià)值的文章主要介紹了Taro+vue3 實(shí)現(xiàn)選座位 功能 以及座位顯示。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Taro+vue3 實(shí)現(xiàn)選座位 功能 以及座位顯示,taro

1.類(lèi)似選座位那種功能 我的功能座位 不是html元素 而是 座位圖片 都是圖片

const onConfirm = () => {
    // const area_arr = selectedSeat.value.map((item) => {
    //     return item.areaId;
    // });
    // const abc = isRepeat(area_arr);
    // if (!abc) {
    //     Taro.showToast({
    //         title: "請(qǐng)選擇同一價(jià)格的座位,暫不支持跨區(qū)域選座~~",
    //         icon: "none",
    //         duration: 2000,
    //     });
    //     return;
    // }
    // phoneInputVisible.value = true;
    try {
        const area_arr = selectedSeat.value.map((item) => {
            return item.areaId;
        });
        const abc = isRepeat(area_arr);
        if (!abc) {
            Taro.showToast({
                title: "請(qǐng)選擇同一價(jià)格的座位,暫不支持跨區(qū)域選座~~",
                icon: "none",
                duration: 2000,
            });

            return;
        }
        let result = selectedSeat.value.every(function (element, index, array) {
            console.log(element, "element");
            return checkSeat(element)
        })
        console.log(result, "result");

        // 開(kāi)始計(jì)算是否留下空位 ------------ 結(jié)束
        if (!result) {
            // 如果 result 為false
            Taro.showToast({
                title: "請(qǐng)不要留下空座位~~",
                icon: "none"
            })
            return
        }
        phoneInputVisible.value = true;

        return
    } catch (e) {
        console.log(e);
    }
};
// 檢查每個(gè)座位是否會(huì)留下空位
const checkSeat = (element) => {
    console.log(element, "element");
    // 標(biāo)準(zhǔn)為 1.左右側(cè)都必須保留 兩格座位 + 最大順延座位(也就是已選座位減去自身)
    // 2.靠墻和靠已售的座位一律直接通過(guò)
    const checkNum = 2 + selectedSeat.value.length - 1
    const gRowBasic = element.gRow
    const gColBasic = element.gCol
    console.log(checkNum, gRowBasic, gColBasic);
    let otherLoveSeatIndex = element.seatType
    if (otherLoveSeatIndex) {
        // 如果是情侶座 不檢測(cè)
        return true
    }
    // 檢查座位左側(cè)
    let left = checkSeatDirection(gRowBasic, gColBasic, checkNum, '-')
    console.log(left);


    // 如果左側(cè)已經(jīng)檢查出是靠著過(guò)道直接 返回true
    if (left === 'special') {
        return true
    }
    // 檢查座位右側(cè)
    let right = checkSeatDirection(gRowBasic, gColBasic, checkNum, '+')
    console.log(right);

    if (right === 'special') {
        // 無(wú)論左側(cè)是否是什么狀態(tài) 檢查出右側(cè)靠著過(guò)道直接 返回true
        return true
    } else if (right === 'normal' && left === 'normal') {
        // 如果左右兩側(cè)都有富裕的座位 返回true
        return true
    } else if (right === 'fail' || left === 'fail') {
        // 如果左右兩側(cè)都是不通過(guò)檢測(cè) 返回false
        return false
    }
    return true
}
// 檢查左右側(cè)座位滿(mǎn)足規(guī)則狀態(tài)
const checkSeatDirection = (gRowBasic, gColBasic, checkNum, direction) => {
    // 空位個(gè)數(shù)
    let emptySeat = 0
    let x = 1 // 檢查位置 只允許在x的位置出現(xiàn)過(guò)道,已售,維修
    for (let i = 1; i <= checkNum; i++) {
        let iter // 根據(jù) gRow gCol direction 找出檢查座位左邊按順序排列的checkNum
        if (direction === '-') {
            console.log('---');

            iter = seatList.value.find((el) => (el.gRow == gRowBasic && el.gCol == gColBasic - i))
            console.log(iter, "-");
        } else if (direction === '+') {
            console.log('+++');

            iter = seatList.value.find((el) => (el.gRow == gRowBasic && el.gCol == gColBasic + i))
            console.log(iter), "+";

        }
        if (x === i) {
            if (iter === undefined) {
                // 過(guò)道
                return 'special'
            }
            if (iter.nowIcon === iter.soldedIcon || iter.nowIcon === iter.fixIcon) {
                // 已售或者維修
                return 'special'
            }
            if (iter.nowIcon === iter.selectedIcon) {
                // 已選 順延一位
                x++
                continue
            }
        } else {
            if (iter === undefined) {
                // 過(guò)道
                return 'fail'
            }
            if (iter.nowIcon === iter.soldedIcon ||
                iter.nowIcon === iter.fixIcon ||
                iter.nowIcon === iter.selectedIcon) {
                // 已售或者維修
                return 'fail'
            }
        }
        emptySeat++
        if (emptySeat >= 2) {
            return 'normal'
        }
    }
}

分享一段代碼 就是當(dāng)我 選座不能留空的判斷 邏輯 因?yàn)槲疫@里都是圖片 所有 根據(jù)圖片判斷的

2.如果大家有需求 需要源代碼 可以先私信我 源代碼整理中 未來(lái)會(huì)發(fā)布開(kāi)源文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-794680.html

到了這里,關(guān)于Taro+vue3 實(shí)現(xiàn)選座位 功能 以及座位顯示的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • taro+vue3開(kāi)發(fā)小程序

    一.創(chuàng)建項(xiàng)目 (1) npm install -g @tarojs/cli (2) npx @tarojs/cli init myApp ?二.按需引入 nutui 組件 1.使用?babel-plugin-import插件 ? (1)下載插件 npm install babel-plugin-import ? (2) babel.config.js配置 (3)app.js中引入

    2024年02月08日
    瀏覽(25)
  • vue3+taro+Nutui 開(kāi)發(fā)小程序(二)

    vue3+taro+Nutui 開(kāi)發(fā)小程序(二)

    上一篇我們初始化了小程序項(xiàng)目,這一篇我們來(lái)整理一下框架 首先可以看到我的項(xiàng)目整理框架是這樣的: ?components:這里存放封裝的組件 custom-tab-bar:這里存放自己封裝的自定義tabbar interface:這里放置了Ts的一些基本泛型,不用Ts的可以忽略 pages:這里放置了小程序的所有頁(yè)面

    2024年02月16日
    瀏覽(27)
  • Taro+Vue3 小程序引入echarts表

    Taro+Vue3 小程序引入echarts表

    背景:根據(jù)需求在一個(gè)報(bào)告界面需要展示不同的echarts表來(lái)使數(shù)據(jù)更友好的顯示。 效果如下: 一.taro支持echarts 官方說(shuō)明:Taro 文檔支持引用小程序端第三方組件庫(kù) 物料文檔:Taro 物料市場(chǎng) | 讓每一個(gè)輪子產(chǎn)生價(jià)值 二.引入echarts-for-weixin插件 github地址: https://github.com/ecomfe/echar

    2024年02月13日
    瀏覽(22)
  • vue3+taro+Nutui 開(kāi)發(fā)小程序(一)

    vue3+taro+Nutui 開(kāi)發(fā)小程序(一)

    前言:最近在調(diào)研開(kāi)發(fā)小程序,發(fā)現(xiàn)現(xiàn)在taro框架逐漸成熟,能完美地使用vue3來(lái)進(jìn)行開(kāi)發(fā),調(diào)研中發(fā)現(xiàn)京東的Nutui也不錯(cuò)所以準(zhǔn)備寫(xiě)一個(gè)由0到1的vue3+taro+Nutui的小程序。 這篇我們首先搭建一個(gè)框架: vscode插件準(zhǔn)備環(huán)節(jié): 目前我用到的插件如下: Eslint? ?用來(lái)vue格式化代碼的

    2024年02月08日
    瀏覽(23)
  • taro vue3 ts nut-ui 項(xiàng)目

    taro vue3 ts nut-ui 項(xiàng)目

    查看 Taro 全部版本信息? 可以使用? npm info ?查看 Taro 版本信息,在這里你可以看到當(dāng)前最新版本 使用命令創(chuàng)建模板項(xiàng)目: taro init 項(xiàng)目名 微信小程序自定義 TabBar 先安裝 cnpm install pinia 以便解決 小程序的 頁(yè)面首次加載 在?app.config.js 中設(shè)置 在? src 目錄 下 pages 文件夾,在里

    2024年02月06日
    瀏覽(43)
  • taro+vue3 搭建一套框架,適用于微信小程序和H5

    安裝 Taro??梢栽诮K端輸入以下命令進(jìn)行安裝: 創(chuàng)建項(xiàng)目。使用以下命令創(chuàng)建 Taro+Vue3 項(xiàng)目: 其中,myApp 是項(xiàng)目名稱(chēng)。 進(jìn)入項(xiàng)目并啟動(dòng)。使用以下命令進(jìn)入項(xiàng)目并啟動(dòng): 注意,需要先進(jìn)入對(duì)應(yīng)的目錄再啟動(dòng)。 編寫(xiě)代碼。在 src 目錄下編寫(xiě)代碼,可以像使用 Vue 開(kāi)發(fā) Web 應(yīng)用程

    2024年02月10日
    瀏覽(76)
  • 使用taro+canvas實(shí)現(xiàn)微信小程序的圖片分享功能

    使用taro+canvas實(shí)現(xiàn)微信小程序的圖片分享功能

    二輪充電業(yè)務(wù)中,用戶(hù)充電完成后在訂單詳情頁(yè)展示訂單相關(guān)信息,用戶(hù)點(diǎn)擊分享按鈕喚起微信小程序分享菜單,將生成的圖片海報(bào)分享給微信好友或者下載到本地,好友可通過(guò)掃描海報(bào)中的二維碼加群領(lǐng)取優(yōu)惠。 使用場(chǎng)景及功能:微信小程序 生成海報(bào)圖片 分享好友 下載圖

    2024年02月05日
    瀏覽(704)
  • vue3 setup+Taro3 調(diào)用原生小程序自定義年月日時(shí)分多列選擇器,NutUI改造

    vue3 setup+Taro3 調(diào)用原生小程序自定義年月日時(shí)分多列選擇器,NutUI改造

    NutUI 有日期時(shí)間選擇器,但是滑動(dòng)效果太差,卡頓明顯。換成 原生小程序 很順暢 上代碼: 若需要自定義年開(kāi)始時(shí)間,見(jiàn) initColumn 方法 如作為組件,通過(guò)父級(jí)傳遞,可使用:

    2024年02月13日
    瀏覽(20)
  • 小程序-Taro如何實(shí)現(xiàn)利用Canvas生成一個(gè)二維碼以及保存圖片

    不多說(shuō),直接看代碼和文字見(jiàn)解: 第一步:先安裝weapp-qrcode,利用一個(gè)函數(shù)觸發(fā)drawQrcode的方法生成一個(gè)二維碼Canvas ? 到這一步其實(shí)你的二維碼幾乎成型了,但是你還有要把它給展示出來(lái) 第二步:調(diào)用Taro.canvasToTempFilePath的Taro文檔的方法,他是用來(lái)將Canvas轉(zhuǎn)換為臨時(shí)路徑的圖

    2024年02月12日
    瀏覽(93)
  • taro 小程序自定義地圖選點(diǎn)功能

    taro 小程序自定義地圖選點(diǎn)功能

    效果: 1、添加中心點(diǎn) icon, 保證icon 處于地圖中間 效果: 2、地圖移動(dòng)后,重新獲取當(dāng)前中心點(diǎn)坐標(biāo)。 監(jiān)聽(tīng) map regionChange 事件 監(jiān)聽(tīng)到地圖視野改變后,通過(guò) getCenterLocation 方法獲取到中心點(diǎn)坐標(biāo): 3、通過(guò)騰訊地圖 jssdk 提供的 reverseGeocoder 方法,將坐標(biāo)轉(zhuǎn)換為地址。 設(shè)置參數(shù)

    2024年02月12日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包