vue+element-plus完美实现跨境电商商城网站

目录

一、项目介绍

二、项目截图

1.项目结构图

2.首页 

3.中英文样式切换 

4.金钱类型切换

5.商品详情

6.购物车

7.登录

​编辑 

8.注册

9.个人中心

三、源码实现

1.项目依赖package.json

2.项目启动

3.购物车页面 

四、总结


一、项目介绍

本项目在线预览:点击访问

本项目模仿跨境电商商城实现,跨境电商一般设计上与传统电商网站是不太一样的,样式上会更加向外;

技术要点:vue3、 路由router、pinia、element-plus、vuex、axios、vite等

二、项目截图

1.项目结构图

开发软件是webstorm,当然vscode、hbuilder等都可以,看自己习惯就行

2.首页 

分为顶部+中间具体页面+底部,组件思想重复利用实现

 

3.中英文样式切换 

4.金钱类型切换

5.商品详情

 图片动态切换

6.购物车

 动态改变数量

7.登录

8.注册

9.个人中心

三、源码实现

 项目以组件(顶部、底部)+主布局页面配合路由构思实现,可以通过组件思维重复利用共同的局部页面,简单且美观,也更加利于后期功能页面拓展和维护、修改等。

1.项目依赖package.json

{
  "name": "vue3-project",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview",
    "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
    "format": "prettier --write src/",
    "prepare": "husky install",
    "lint-staged": "lint-staged"
  },
  "dependencies": {
    "@element-plus/icons-vue": "^2.3.0",
    "@vant/area-data": "^1.5.1",
    "@vueup/vue-quill": "^1.2.0",
    "axios": "^1.4.0",
    "element-china-area-data": "^6.1.0",
    "element-plus": "^2.3.7",
    "express-jwt": "^8.4.1",
    "jsonwebtoken": "^9.0.2",
    "pinia": "^2.1.3",
    "vant": "^4.9.0",
    "vite-plugin-style-import": "^2.0.0",
    "vue": "^3.4.0",
    "vue-router": "^4.2.2",
    "vuex": "^4.1.0"
  },
  "devDependencies": {
    "@rushstack/eslint-patch": "^1.2.0",
    "@vitejs/plugin-vue": "^4.2.3",
    "@vue/eslint-config-prettier": "^7.1.0",
    "eslint": "^8.39.0",
    "eslint-plugin-vue": "^9.11.0",
    "husky": "^8.0.0",
    "lint-staged": "^13.2.3",
    "pinia-plugin-persistedstate": "^3.1.0",
    "prettier": "^2.8.8",
    "sass": "^1.63.6",
    "unplugin-auto-import": "^0.16.6",
    "unplugin-vue-components": "^0.25.1",
    "vite": "^4.3.9"
  },
  "lint-staged": {
    "*.{js,ts,vue}": [
      "eslint --fix"
    ]
  }
}

2.项目启动

依次成功执行以下两个命令:

  1. npm install
  2. npm run dev

3.购物车页面 

<template>
    <div class="aiz-main-wrapper d-flex flex-column">

        <section class="pt-5 mb-4">
            <div class="container">
                <div class="row">
                    <div class="col-xl-8 mx-auto">
                        <div class="row aiz-steps arrow-divider">
                            <div class="col active">
                                <div class="text-center text-primary">
                                    <i class="la-3x mb-2 las la-shopping-cart"></i>
                                    <h3 class="fs-14 fw-600 d-none d-lg-block">1.我的购物车</h3>
                                </div>
                            </div>
                            <div class="col">
                                <div class="text-center">
                                    <i class="la-3x mb-2 opacity-50 las la-map"></i>
                                    <h3 class="fs-14 fw-600 d-none d-lg-block opacity-50">2.发货信息</h3>
                                </div>
                            </div>
                            <div class="col">
                                <div class="text-center">
                                    <i class="la-3x mb-2 opacity-50 las la-truck"></i>
                                    <h3 class="fs-14 fw-600 d-none d-lg-block opacity-50">3.交货信息</h3>
                                </div>
                            </div>
                            <div class="col">
                                <div class="text-center">
                                    <i class="la-3x mb-2 opacity-50 las la-credit-card"></i>
                                    <h3 class="fs-14 fw-600 d-none d-lg-block opacity-50">4.付款</h3>
                                </div>
                            </div>
                            <div class="col">
                                <div class="text-center">
                                    <i class="la-3x mb-2 opacity-50 las la-check-circle"></i>
                                    <h3 class="fs-14 fw-600 d-none d-lg-block opacity-50">5.确认</h3>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>

        <section class="mb-4" id="cart-summary">
            <div class="container">
                <div class="row">
                    <div class="col-xxl-8 col-xl-10 mx-auto">
                        <div class="shadow-sm bg-white p-3 p-lg-4 rounded text-left">
                            <div class="mb-4">
                                <div class="row gutters-5 d-none d-lg-flex border-bottom mb-3 pb-3">
                                    <div class="col-md-5 fw-600">产品</div>
                                    <div class="col fw-600">价格</div>
                                    <div class="col fw-600">税收</div>
                                    <div class="col fw-600">数量</div>
                                    <div class="col fw-600">总计</div>
                                    <div class="col-auto fw-600">移除</div>
                                </div>
                                <ul class="list-group list-group-flush">
                                    <li class="list-group-item px-0 px-lg-3">
                                        <div class="row gutters-5">
                                            <div class="col-lg-5 d-flex" @click="toPath('/productDetail')">
                                                <span class="mr-2 ml-0">
                                                    <img src="http://kuajingshop.cpolar.top/public/uploads/all/FX3JDXrJ3l1KANjg2E93Uup52q8CMrYKdr3p18Y0.jpg" class="img-fit size-60px rounded" alt="HUAWEI 华为 MatePad Refresh - 10.4 英寸 2K FullView 平板电脑 - Kirin 810,4 GB RAM,64 GB ROM,7250 mAh,四角扬声器,EMUI 10.1(基于 Android 10.0),Wi-Fi,灰色">
                                                </span>
                                                <span class="fs-14 opacity-60">HUAWEI 华为 MatePad Refresh - 10.4 英寸 2K FullView 平板电脑 - Kirin 810,4 GB RAM,64 GB ROM,7250 mAh,四角扬声器,EMUI 10.1(基于 Android 10.0),Wi-Fi,灰色</span>
                                            </div>

                                            <div class="col-lg col-4 order-1 order-lg-0 my-3 my-lg-0">
                                                <span class="opacity-60 fs-12 d-block d-lg-none">价格</span>
                                                <span class="fw-600 fs-16">$165.00</span>
                                            </div>
                                            <div class="col-lg col-4 order-2 order-lg-0 my-3 my-lg-0">
                                                <span class="opacity-60 fs-12 d-block d-lg-none">税收</span>
                                                <span class="fw-600 fs-16">$0.00</span>
                                            </div>

                                            <div class="col-lg col-6 order-4 order-lg-0">
                                                <div class="row no-gutters align-items-center aiz-plus-minus mr-2 ml-0">
                                                    <button class="btn col-auto btn-icon btn-sm btn-circle btn-light" type="button" :disabled="num<=1?'':disabled" @click="sub()">
                                                        <i class="las la-minus"></i>
                                                    </button >
                                                    <input type="number" class="col border-0 text-center flex-grow-1 fs-16 input-number" v-model="num" min="1" max="1000">
                                                    <button class="btn col-auto btn-icon btn-sm btn-circle btn-light" type="button" @click="add()">
                                                        <i class="las la-plus"></i>
                                                    </button>
                                                </div>
                                            </div>
                                            <div class="col-lg col-4 order-3 order-lg-0 my-3 my-lg-0">
                                                <span class="opacity-60 fs-12 d-block d-lg-none">总计</span>
                                                <span class="fw-600 fs-16 text-primary">$165.00</span>
                                            </div>
                                            <div class="col-lg-auto col-6 order-5 order-lg-0 text-right">
                                                    <el-popconfirm
                                                            width="220"
                                                            confirm-button-text="确定"
                                                            cancel-button-text="取消"
                                                            :icon="InfoFilled"
                                                            icon-color="#626AEF"
                                                            title="确定删除?"
                                                    >
                                                        <template #reference>
                                                            <a href="javascript:void(0)" class="btn btn-icon btn-sm btn-soft-primary btn-circle">
                                                                <i class="las la-trash"></i>
                                                            </a>
                                                        </template>
                                                    </el-popconfirm>
                                            </div>
                                        </div>
                                    </li>
                                </ul>
                            </div>

                            <div class="px-3 py-2 mb-4 border-top d-flex justify-content-between">
                                <span class="opacity-60 fs-15">小计</span>
                                <span class="fw-600 fs-17">$165.00</span>
                            </div>
                            <div class="row align-items-center">
                                <div class="col-md-6 text-center text-md-left order-1 order-md-0">
                                    <a class="btn btn-link" @click="toPath('/')">
                                        <i class="las la-arrow-left"></i>
                                        返回商店
                                    </a>
                                </div>
                                <div class="col-md-6 text-center text-md-right">
                                    <button class="btn btn-primary fw-600">继续发货</button>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>
    </div>
</template>

<script>
    export default {
        name: "index",
        data() {
            return {
                num: 1
            };
        },
        mounted() {
        },
        methods: {
            toPath(path) {
                this.$router.push({path: path});
            },
            //数量加
            add(){
                this.num++;
            },
            //数量减
            sub(){
                if(this.num > 1){
                    this.num--;
                }
            }
        }
    }
</script>

<style>
    .aiz-main-wrapper {
        min-height: auto !important;
    }
</style>

四、总结

项目页面完整,后续可能将不断升级。

关注作者,及时了解更多好项目!

更多优质项目请看作者主页!

获取源码或如需帮助,可通过博客后面名片+作者即可!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/729761.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[网络安全产品]---EDR

写在前面 前端时间看抖音&#xff0c;刷到周鸿祎介绍360为什么这么厉害&#xff0c;他提到一点就是360是全球第一个提出云查杀概念的公司&#xff0c;相比较传统的基于病毒特征库终端杀毒&#xff0c;360依托积累的庞大的信息数据能有效应对APT攻击。 然后又特意找了一下云查…

世界是软件定义的 - 正如硬件公司所证明的那样

很难相信&#xff0c;马克安德森&#xff08;Marc Andressen&#xff09;在13年前写下了他著名的博客&#xff0c;题为“软件正在吞噬世界”。在这篇文章中&#xff0c;他谈到了现代软件组织对传统企业造成的破坏。 十三年后&#xff0c;即使面对英伟达的平流层估值&#xff0…

openGauss开发者大会、华为云HDC大会举行; PostgreSQL中国技术大会7月杭州开启

重要更新 1. openGauss Developer Day本周五于北京举行&#xff0c;大会聚集了相关行业专家、用户、伙伴和开发者&#xff0c;分享给予openGauss的联合创新成果和实践案例。([2] ) &#xff1b;华为云 HDC 2024本周五于东莞松山湖举行&#xff0c;主题演讲主要覆盖鸿蒙、AI ([3…

IntelliJ IDEA 2024 mac/win版:编程利器,智慧之选

IntelliJ IDEA 2024是一款由JetBrains精心打造的集成开发环境(IDE)&#xff0c;专为Java等编程语言量身打造&#xff0c;同时支持多种其他语言&#xff0c;为开发者提供了卓越的开发体验。 IntelliJ IDEA 2024 mac/win版获取 这款IDE凭借其出色的智能化和高效性&#xff0c;赢…

【Python高级编程】新手小白必须得学会的文本文件操作,资料资源均可分享!

文件读取处理 使用 read()&#xff1a; # 使用 read 方法读取文件的所有内容 with open(resources/training_log.txt, r) as file:content file.read()print(content)# 报错处理版本 # 使用 read 方法读取文件的所有内容 # 使用 utf-8 编码方式打开文件 with open(resources…

车载模块负载基础认识

车载模块负载是指车辆上的各种电子设备和系统&#xff0c;如导航系统、音响系统、空调系统、安全气囊等。这些设备和系统在车辆运行过程中需要消耗一定的电能&#xff0c;以保证其正常工作。车载模块负载的基础认识主要包括以下几个方面&#xff1a; 1. 负载类型&#xff1a;车…

GaussDB关键技术原理:高性能(一)

引言 对数据库性能进行优化是令人激动的&#xff0c;无论是对其进行性能需求分析、性能需求设计、性能问题定个位都是富于变化又充满挑战的工作&#xff0c;本章围绕“数据库性能”进行全面系统化的介绍&#xff0c;首先从数据库在现代软件栈中所处的位置出发&#xff0c;介绍…

vue+echarts ----中国地图 下拉选择省份地图中的省份区域高亮显示以及飞线图的效果

vueecharts ----中国地图 下拉选择省份地图中的省份区域高亮显示以及飞线图的效果 1、父组件核心代码&#xff1a;【/utils/area的详细数据】、【/utils/china详细数据】 <template><div class"center"><div class"digital"><el-se…

canvas实现画布拖拽效果 适配Uniapp和Vue (开箱即用)

需求:我司是做AIGC项目最近和地铁项目有关需要实现海报效果图&#xff0c;并且需要使用画布拖拽和修改上传删除等等功能 当时连续加班花了10个工作日搓出来 实现挺简单的但是Canvas数据处理还是挺麻烦的 大概功能如图下 首先我们需要引入Fabric.js 这个库封装好了原生的Canva…

Apifox 快速入门教程

访问示例项目​ 可访问Apifox官网&#xff0c;下载并打开 Apifox 后&#xff0c;你将会看到由系统自动创建的“示例团队”&#xff0c;其中内含一个“示例项目”。 项目中自动生成了与宠物商店有关的数条接口。 手动新建接口​ 新建接口是开发者们最常用的功能之一。Apifox 能…

硫化物固态电解质在全固态锂电池制造领域发展潜力大

硫化物固态电解质在全固态锂电池制造领域发展潜力大 固态电解质主要包括氧化物、硫化物、聚合物等类型。氧化物固态电解质由于研发难度相对较低&#xff0c;是目前主流技术路线。硫化物固态电解质研发难度较高&#xff0c;但性能优异&#xff0c;特别适合制造全固态锂电池&…

小程序wx.uploadFile异步问题

问题&#xff1a;小程序上传文件后我需要后端返回的一个值&#xff0c;但这个值总是在最后面导致需要这个值的方法总是报错&#xff0c;打印测试后发现这它是异步的。但直接使用 await来等待也不行。 uploadImg.wxml <view class"upload-wrap"><view clas…

黑神话悟空-吉吉国王版本【抢先版】

在中国的游戏市场中&#xff0c;一款名为“黑神话悟空”的游戏引起了广泛的关注。这款游戏以中国传统的神话故事“西游记”为背景&#xff0c;创造了一个令人震撼的虚拟世界。今天&#xff0c;我们要来介绍的是这款游戏的一种特殊版本&#xff0c;那就是吉吉国王版本。 在吉吉国…

邮件推送服务商有哪些核心功能?怎么选择?

邮件推送服务商支持哪些营销工具&#xff1f;推送性能如何评估&#xff1f; 邮件推送服务商的核心功能可以帮助企业更高效地管理和优化其电子邮件营销活动&#xff0c;从而提升客户参与度和转化率。AokSend将详细介绍邮件推送服务商的一些核心功能。 邮件推送服务商&#xff…

鸿蒙仓颉编程语音来了,ArkTs语言危矣?

鸿蒙仓颉编程语言来了&#xff0c;请允许我哭会~~呜呜呜~~我的arkts啊 仓颉编程语言文档地址文档中心 鸿蒙直播大会开始一个小时了&#xff0c;地址华为开发者大会&#xff08;HDC 2024&#xff09;主题演讲 同时api12 不再是秘密了 各位&#xff01;公开啦 api12 公开地址…

如何开启Claude 3的Artifacts功能以及如何注册Claude3

就很突然&#xff0c;Claude 3.5&#xff0c;它来了&#xff01; Anthropic发布3.5系列第一个版本Claude 3.5 Sonnet。在多个关键指标中&#xff0c;GPT-4o几乎被吊打&#xff01; 另外Claude 3.5 Sonnet是免费的&#xff0c;提供了跟gpt-4o一样的次数。更高的速度和次数&…

maxwell源码编译安装部署

目录 1、组件环境 2、maxwell安装前提 3、maxwell安装 3.1、maxwell下载 3.1.1、最新版本下载 ​编辑 3.1.2、历史版本下载 3.2、maxwell安装 3.3、maxwell配置 3.2.1、mysql开启binlog 3.3.2、maxwell元数据配置 3.3.3、maxwell配置任务 4、maxwell部署问题 4.1、utf…

Jenkins macos 下 failed to create dmg 操作不被允许hdiutil: create failed - 操作不被允许?

解决方案&#xff1a; 打开设置&#xff0c;选择“隐私与安全”&#xff0c;选择“完全磁盘访问权限”&#xff0c;点击“”&#xff0c;选择jenkins的路径并添加。 同理&#xff0c;添加java的访问权限。

【Android】记录在自己的AMD处理器无法使用Android studio 虚拟机处理过程

文章目录 问题&#xff1a;无法在AMD平台打开Android studio 虚拟机&#xff0c;已解决平台&#xff1a;AMD 5700g系统&#xff1a;win10专业版1、在 amd平台上使用安卓虚拟机需要安装硬件加速器2、关闭win10上的系统服务 问题&#xff1a;无法在AMD平台打开Android studio 虚拟…

java 八股文最集全网站

弟弟快看-教程&#xff0c;程序员编程资料站 | DDKK.COM