微信小程序餐廳點(diǎn)餐項(xiàng)目完整源碼

外賣(mài)行業(yè)近幾年發(fā)展迅猛婉徘,微信平臺(tái)也成為其中的一個(gè)主力軍捌议,小程序的橫空出世,讓不少微信外賣(mài)平臺(tái)加入其中嚼黔,紛紛開(kāi)發(fā)了自己的餐廳點(diǎn)餐小程序

餐廳點(diǎn)餐小程序功能非常方便细层,對(duì)于用戶(hù)來(lái)講,操作如下:
1.打開(kāi)自己的微信賬號(hào)唬涧,選擇【小程序】
2.點(diǎn)擊【小程序】進(jìn)入疫赎,進(jìn)入餐廳點(diǎn)餐小程序系統(tǒng)
3.選擇這家餐廳之后,進(jìn)入微信授權(quán)界面碎节,選擇允許
4.進(jìn)入店內(nèi)之后捧搞,選擇外賣(mài)字樣,可以看到這家店的詳細(xì)地址和詳細(xì)聯(lián)系電話以及營(yíng)業(yè)時(shí)間,還有商家的環(huán)境
5.選擇外賣(mài)的界面之后胎撇,在左邊有一個(gè)列表是大分類(lèi):如熱銷(xiāo)介粘、優(yōu)惠、套餐晚树、主食姻采、配菜、飲料等等
6.點(diǎn)擊選擇規(guī)格之后進(jìn)入選項(xiàng)中口味的選擇:選擇好之后【加入購(gòu)物車(chē)】
7.選擇【加入購(gòu)物車(chē)】爵憎,如何沒(méi)有其他需要點(diǎn)餐的就可以直接點(diǎn)擊【選好了】慨亲,還需要選擇其他外賣(mài)的話都一致加入購(gòu)物車(chē)
8.最后在想【選好了】點(diǎn)擊進(jìn)入【訂單提交】,添加好收貨地址之后宝鼓、收貨人刑棵、聯(lián)系電話進(jìn)去付款即可∮拚。可選擇填寫(xiě)備注蛉签,比如口味、偏好等
微信小程序餐廳點(diǎn)餐界面截圖茂附,所有數(shù)據(jù)都是通過(guò)后臺(tái)設(shè)置上傳正蛙。


在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

菜單界面代碼邏輯

<view class="section">
    <!-- 左側(cè)類(lèi)型 -->
    <scroll-view scroll-y="true" class="left">
        <view wx:for="{{types}}" wx:key="typeId" data-type-id="{{item.typeId}}" bindtap="tapType" class="{{item.typeId == currType ? 'active' : ''}}" style="font-size:33rpx">
            {{item.name}}
        </view>
    </scroll-view>

    <!-- 右側(cè)數(shù)據(jù) -->
    <scroll-view scroll-y="true" class="right">
        <view class="typeTree">
           
                <view  class="brand" wx:for="{{typeTree}}" wx:for-item="data">
                    <navigator url="{{data.pic}}"  wx:key="typeId" class="item">
                        <image src="{{data.pic}}"></image>
                        <text>{{data.name}}</text>
                    </navigator>
                    
                </view>
         
        </view>
    </scroll-view>
</view>
// import ApiList from  '../../config/api';
// import request from '../../utils/request.js';

Page({
    data: {
        // types: null,
        typeTree: {},       // 數(shù)據(jù)緩存
          currType: 0 ,
            // 當(dāng)前類(lèi)型
     "types": [
            {
                "name":"熱銷(xiāo)產(chǎn)品",
               "typeId":"0",
            },   
            {
          
                "name":"人氣產(chǎn)品",
               "typeId":"1",
            },
            {
                "name":"店家推薦",
               "typeId":"2",
            }, 
        ],
     "typeTree": [
        ],


    },
    onLoad (){
        var me = this;
        request({
            url: ApiList.goodsType,
            success: function (res) {
                me.setData({
                    types: res.data.data
                });
            }
        });
  this.getTypeTree(this.data.currType);
    },
 tapType(e){
   const currType = e.currentTarget.dataset.typeId;
        this.setData({
            currType: currType
        });
        this.getTypeTree(currType);
    },
    // 加載二級(jí)類(lèi)目數(shù)據(jù)
    getTypeTree (currType) {
        const me = this, _data = me.data;
        if(!_data.typeTree[currType]){
            request({
                url: ApiList.goodsTypeTree,
                data: {typeId: +currType},
                success: function (res) {
                    _data.typeTree[currType] = res.data.data;
                    me.setData({
                        typeTree: _data.typeTree
                    });
                }
            });
        }
    }
})

管理后臺(tái)邏輯代碼

    //***************************
    // 產(chǎn)品分類(lèi)
    //***************************
    public function index(){

        $flavor = M('user')->where('id='.intval($_REQUEST['uid']))->field('flavor')->find();
        $list = M('pro_cat')->where('del=0')->field('id,name')->select();
        $type = $_REQUEST['type'];

        if($type == 'tuijian' && ($flavor['flavor'] == '' || !isset($flavor['flavor']))){
            echo json_encode(array('status'=>0,'err'=>'請(qǐng)先去選擇自己喜歡的口味吧'));
            exit();
        }

        $plist = array();
        foreach ($list as $k => $val) {
           $pro = M('product')->where('del=0 AND cid='.intval($val['id']))->field('id,name,price_yh,photo_x,salenum,renqi,flavor')->select();
               foreach ($pro as $key => $v) {
                   if($type != 'tuijian' || $this->is_same_flavor($flavor['flavor'],$v)) {
                       $pro[$key]['photo_x'] = __DATAURL__ . $v['photo_x'];
                       $pro[$key]['cartnum'] = 0;
                       $pro[$key]['cartid'] = 0;
                       $pro[$key]['flavor'] = $this->get_flavor($v['flavor']);

                       if (intval($_REQUEST['uid'])) {
                           $cartinfo = M('shopping_char')->where('uid=' . intval($_REQUEST['uid']) . ' AND pid=' . intval($v['id']))->find();
                           $pro[$key]['cartnum'] = intval($cartinfo['num']);
                           $pro[$key]['cartid'] = intval($cartinfo['id']);
                       }
                   }else{
                       unset($pro[$key]);
                   }
               }
               if(sizeof($pro) > 0){
                   $list[$k]['list'] = $pro;
                   array_push($plist,$list[$k]);
               }

        }

        if(sizeof($plist) <= 0 ){
            echo json_encode(array('status'=>0,'err'=>'沒(méi)有適合您口味的菜可推薦!'));
            exit();
        }

        $cartnum = 0;
        $cartmoney = 0;
        $cartlist = array();

        if (intval($_REQUEST['uid'])) {
            $cartlist = M('shopping_char')->where('uid='.intval($_REQUEST['uid']))->select();
            if ($cartlist) {
                foreach ($cartlist as $k => $v) {
                    $cartlist[$k]['name'] = M('product')->where('id='.intval($v['pid']))->getField('name');
                    $cartlist[$k]['photo'] = __DATAURL__.M('product')->where('id='.intval($v['pid']))->getField('photo_x');
                    $cartmoney += floatval($v['price']*$v['num']);
                    $cartnum += intval($v['num']);
                }
            }
        }
        $fee = M('program')->where('1=1')->getField('yunfei');
        //json加密輸出
        echo json_encode(array('status'=>1,'list'=>$plist,'cartlist'=>$cartlist,'cartnum'=>$cartnum,'cartmoney'=>sprintf("%.2f",$cartmoney),'fee'=>floatval($fee)));
        exit();
    }

需要可以加微信(LGY178888)了解下营曼!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乒验,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蒂阱,更是在濱河造成了極大的恐慌锻全,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件录煤,死亡現(xiàn)場(chǎng)離奇詭異鳄厌,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)妈踊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén)了嚎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人廊营,你說(shuō)我怎么就攤上這事歪泳。” “怎么了露筒?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵呐伞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我慎式,道長(zhǎng)伶氢,這世上最難降的妖魔是什么趟径? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮癣防,結(jié)果婚禮上蜗巧,老公的妹妹穿的比我還像新娘。我一直安慰自己劣砍,他們只是感情好惧蛹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著刑枝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迅腔。 梳的紋絲不亂的頭發(fā)上装畅,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音沧烈,去河邊找鬼掠兄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛锌雀,可吹牛的內(nèi)容都是我干的蚂夕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼腋逆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼婿牍!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起惩歉,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤等脂,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后撑蚌,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體上遥,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年争涌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了粉楚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡亮垫,死狀恐怖模软,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情包警,我是刑警寧澤撵摆,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站害晦,受9級(jí)特大地震影響特铝,放射性物質(zhì)發(fā)生泄漏暑中。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一鲫剿、第九天 我趴在偏房一處隱蔽的房頂上張望鳄逾。 院中可真熱鬧,春花似錦灵莲、人聲如沸雕凹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)枚抵。三九已至,卻和暖如春明场,著一層夾襖步出監(jiān)牢的瞬間汽摹,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工苦锨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留逼泣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓舟舒,卻偏偏與公主長(zhǎng)得像拉庶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子秃励,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 《變了》-----------------梁博 作曲:梁博 作詞:梁博 他們都說(shuō)我變了 變得不太熟悉了 變得好...
    暖心之地閱讀 1,220評(píng)論 0 1
  • D211 將自己塑造成最好的品牌氏仗! 關(guān)于“一雙鞋的三個(gè)哲思”: 1、一雙鞋莺治,耐克的6百多廓鞠;李寧的4百多;特步的3百...
    不美千樹(shù)閱讀 410評(píng)論 0 0
  • 關(guān)于文章的選題(1) 在我看來(lái)谣旁,選題標(biāo)準(zhǔn)只有一條:結(jié)合定位床佳,你的內(nèi)容能為讀者提供哪些獨(dú)特的價(jià)值? 或者反問(wèn)一句:每...
    報(bào)告人故事閱讀 295評(píng)論 0 0
  • 道口古街榄审,是大運(yùn)河碼頭的岸邊砌们。今天,我們就來(lái)到了這里搁进。 現(xiàn)在浪感,道口古街是道口人民的焦點(diǎn),每逢春節(jié)饼问,這里的人就會(huì)很多...
    幸福女孩_d33a閱讀 1,480評(píng)論 0 0
  • 塵蝶庵詩(shī)草 風(fēng)去云飛雁過(guò)崗影兽, 孤帆逐浪蹈汪洋。 別君數(shù)載芳華逝莱革, 噙淚觀天半月殤峻堰。
    塵蝶庵閱讀 179評(píng)論 0 1