衣服、商品、商城网站模板首页,仿U袋网,vue+elementui简洁实现(二)

news2024/11/25 10:39:06

一.前言

接上一遍博客:《衣服、商品、商城网站模板首页,仿U袋网,vue+elementui简洁实现》

在此基础上增加了和完善一些页面:

  • 商品分类筛选页面
  • 登录、注册、找回密码共用页面
  • U袋学堂(视频专区,视频播放)
  • 企业账号(企业简述页面,简单例子)
  • 诚信合约(简单例子)
  • 实时下架(简单例子)

当前最新demo源码并没有提供下载,需要源码或需要增加其他页面的,私聊即可(会及时回复)。

二.主页面,分离了菜单(达到共用)

 分离在top(顶部共用):

<template>
  <div style="font-size: 14px;">
    <div style="display: flex;height: 40px;padding: 0 400px;background-color: #f5f5f5;">
      <div class="top-title" style="padding-right: 20px;line-height: 40px;color: #666;">嗨,欢迎来到<span style="color: #b31e22;">XXX</span></div>
      <div class="top-title" style="padding-right: 20px;line-height: 40px;color: #666;margin-left: 20px;">网店代销</div>
      <div class="top-title" style="padding-right: 20px;line-height: 40px;color: #666;margin-left: 20px;">帮助中心</div>
      <div style="flex: 1;display: flex;">
        <div style="flex: 1;"></div>
        <div style="width: 300px;display: flex;">
          <el-button type="text" style="color: #666;" class="top-title" @click="toLogin">登录</el-button>
          <el-button type="text" style="color: #666;margin-right: 10px;" class="top-title" @click="toLogin">注册</el-button>
          <el-button type="text" style="color: #666;margin-right: 10px;" class="top-title">我的U袋</el-button>
          <el-button type="text" style="color: #666;margin-right: 10px;" class="top-title">我的订单</el-button>
          <el-button type="text" style="color: #666;margin-right: 10px;" class="top-title">积分平台</el-button>
        </div>

      </div>
    </div>
    <div style="margin: 0 400px;height: 100px;line-height: 100px;">
      <div style="display: flex;">
        <div style="width: 200px;height: 100px;">
          <img src="../../../public/img/logo.jpg" style="cursor: pointer;width: 200px;height: 100px;">
        </div>
        <div style="flex: 1;text-align: center;padding: 0 50px;">
          <el-input placeholder="Ta们都在搜XXX" v-model="input" style="width: 100%;margin-top: 30px;">
            <el-button slot="append" icon="el-icon-search"></el-button>
          </el-input>
        </div>
        <div style="width: 200px;text-align: center;">
          <el-button type="warning" icon="el-icon-shopping-cart-2">购物车 0 件</el-button>
        </div>
      </div>
    </div>

    <div style="height: 40px;line-height: 40px;background-color: #333;display: flex;">
      <div :class="'menu-index '+(menuIndex===1?'menu-active':'')" @click="selMenu(1)" style="margin-left: 400px;color: #FFFFFF;">
        <div><i class="el-icon-menu" style="margin-right: 10px;"></i>全部分类</div>
      </div>
      <div :class="'menu-index '+(menuIndex===2?'menu-active':'')" @click="selMenu(2)">
        首页
      </div>
      <div :class="'menu-index '+(menuIndex===3?'menu-active':'')" @click="selMenu(3)">
        企业简介
      </div>
      <div :class="'menu-index '+(menuIndex===4?'menu-active':'')" @click="selMenu(4)">
        新手上路
      </div>
      <div :class="'menu-index '+(menuIndex===5?'menu-active':'')" @click="selMenu(5)">
        U袋学堂
      </div>
      <div :class="'menu-index '+(menuIndex===6?'menu-active':'')" @click="selMenu(6)">
        企业账号
      </div>
      <div :class="'menu-index '+(menuIndex===7?'menu-active':'')" @click="selMenu(7)">
        诚信合约
      </div>
      <div :class="'menu-index '+(menuIndex===8?'menu-active':'')" @click="selMenu(8)">
        实时下架
      </div>
    </div>

  </div>
</template>

<script>
  export default {
      data() {
        return {
          input:'',
          menuIndex: 1
        };
      },
      mounted() {
      },
      methods: {
        selMenu(index){
          if(this.menuIndex === index){
            return;
          }
          this.menuIndex = index;
          if(index === 2){
            this.$router.push({path: '/home/index'});
          }else if(index === 5){
            this.$router.push({path: '/video/index'});
          }else if(index === 6){
            this.$router.push({path: '/enterprise/index'});
          }else if(index === 7){
            this.$router.push({path: '/contract/index'});
          }else if(index === 8){
            this.$router.push({path: '/shelf/index'});
          }
         },
        toLogin(){
          this.$router.push({path: '/login'});
        }
      }
    };
</script>

<style>
  .top-title:hover{
    cursor: pointer;
    color: #b31e22!important;
  }
  .el-input-group__append, .el-input-group__prepend{
    background-color: #b31e22!important;
    color: #ffffff!important;
  }
  .menu-index{
    text-align: center;
    width: 100px;
    color: #FFFFFF;
    cursor: pointer;
  }
  .menu-index:hover{
    background-color: #666;
  }
  .menu-active{
    background-color: #b31e22!important;
  }
</style>

主布局:

<template>
  <div id="body" style="width: 100%;height: 100%;overflow: auto;">
    <top></top>
    <router-view></router-view>
    <foot></foot>
  </div>
</template>

<script>
  import top from "../top/index.vue";
  import foot from "../foot/index";

  export default {
      components: {
        top,
        foot
      },
      name: "index",
      data() {
        return {
        };
      },
      mounted() {
      },
      methods: {
      }
    };
</script>

<style>
  #body{
    background-size: 100% 100%;
    background-repeat: no-repeat;
  }
</style>

三.商品分类筛选页面

模拟动态数据:

 

export default {
      name: "index",
      data() {
        return {
          tags: [
            { name: '颜色:灰色', type: 'info' },
            { name: '尺寸:XXXL', type: 'info' }
          ],
          types1: ['全部','上装','下装','裙装','内衣'],
          typeIndex1: 0,
          types2: ['全部','红色','粉红','蓝色','白色'],
          typeIndex2: 0,
          types3: ['全部','L','M','S','X','XL','XXL','XXXL'],
          typeIndex3: 0,
          types4: ['全部','0-20','20-40','40-80','80-100','100-150','150以上'],
          typeIndex4: 0,
          types5: ['销量↑','评价↓','价格'],
          typeIndex5: 0,
          startPrice:'',
          endPrice: '',
          products: [
            {productName:'锦瑟 原创传统日常汉服男绣花交领衣裳cp情侣装春夏款',price: 18.0,saleNum: 666,hot: 888,commentNum: 1666,img:'http://shop.jlkjgf.cn/images/temp/M-001.jpg'},
            {productName:'锦瑟 原创传统日常汉服男绣花交领衣裳cp情侣装春夏款',price: 18.0,saleNum: 666,hot: 888,commentNum: 1666,img:'http://shop.jlkjgf.cn/images/temp/M-001.jpg'},
            {productName:'锦瑟 原创传统日常汉服男绣花交领衣裳cp情侣装春夏款',price: 18.0,saleNum: 666,hot: 888,commentNum: 1666,img:'http://shop.jlkjgf.cn/images/temp/M-001.jpg'},
            {productName:'锦瑟 原创传统日常汉服男绣花交领衣裳cp情侣装春夏款',price: 18.0,saleNum: 666,hot: 888,commentNum: 1666,img:'http://shop.jlkjgf.cn/images/temp/M-001.jpg'},
            {productName:'锦瑟 原创传统日常汉服男绣花交领衣裳cp情侣装春夏款',price: 18.0,saleNum: 666,hot: 888,commentNum: 1666,img:'http://shop.jlkjgf.cn/images/temp/M-001.jpg'},
            {productName:'锦瑟 原创传统日常汉服男绣花交领衣裳cp情侣装春夏款',price: 18.0,saleNum: 666,hot: 888,commentNum: 1666,img:'http://shop.jlkjgf.cn/images/temp/M-001.jpg'},
            {productName:'锦瑟 原创传统日常汉服男绣花交领衣裳cp情侣装春夏款',price: 18.0,saleNum: 666,hot: 888,commentNum: 1666,img:'http://shop.jlkjgf.cn/images/temp/M-001.jpg'},
            {productName:'锦瑟 原创传统日常汉服男绣花交领衣裳cp情侣装春夏款',price: 18.0,saleNum: 666,hot: 888,commentNum: 1666,img:'http://shop.jlkjgf.cn/images/temp/M-001.jpg'},
            {productName:'锦瑟 原创传统日常汉服男绣花交领衣裳cp情侣装春夏款',price: 18.0,saleNum: 666,hot: 888,commentNum: 1666,img:'http://shop.jlkjgf.cn/images/temp/M-001.jpg'},
          ]
        };
      },
      mounted() {
      },
      methods: {
        handleClose(tag) {
          this.tags.splice(this.tags.indexOf(tag), 1);
        },
        selType1(index){
          this.typeIndex1 = index;
        },
        selType2(index){
          this.typeIndex2 = index;
        },
        selType3(index){
          this.typeIndex3 = index;
        },
        selType4(index){
          this.typeIndex4 = index;
        },
        selType5(index){
          this.typeIndex5 = index;
        }

      }
    }

四.U袋学堂-视频专区

 视频数据,视频播放方法:

export default {
      name: "index",
      data() {
        return {
          videos: [
            {title: 'U袋学堂第一课',des:'免费学习',img: 'http://shop.jlkjgf.cn/images/temp/S-001-1_s.jpg',videoPath:'http://shop.jlkjgf.cn/images/temp/videos/video_1.mp4'},
            {title: 'U袋学堂第一课',des:'免费学习',img: 'http://shop.jlkjgf.cn/images/temp/S-001-1_s.jpg',videoPath:'http://shop.jlkjgf.cn/images/temp/videos/video_1.mp4'},
            {title: 'U袋学堂第一课',des:'免费学习',img: 'http://shop.jlkjgf.cn/images/temp/S-001-1_s.jpg',videoPath:'http://shop.jlkjgf.cn/images/temp/videos/video_1.mp4'},
            {title: 'U袋学堂第一课',des:'免费学习',img: 'http://shop.jlkjgf.cn/images/temp/S-001-1_s.jpg',videoPath:'http://shop.jlkjgf.cn/images/temp/videos/video_1.mp4'},
            {title: 'U袋学堂第一课',des:'免费学习',img: 'http://shop.jlkjgf.cn/images/temp/S-001-1_s.jpg',videoPath:'http://shop.jlkjgf.cn/images/temp/videos/video_1.mp4'},
            {title: 'U袋学堂第一课',des:'免费学习',img: 'http://shop.jlkjgf.cn/images/temp/S-001-1_s.jpg',videoPath:'http://shop.jlkjgf.cn/images/temp/videos/video_1.mp4'},
            {title: 'U袋学堂第一课',des:'免费学习',img: 'http://shop.jlkjgf.cn/images/temp/S-001-1_s.jpg',videoPath:'http://shop.jlkjgf.cn/images/temp/videos/video_1.mp4'},
            {title: 'U袋学堂第一课',des:'免费学习',img: 'http://shop.jlkjgf.cn/images/temp/S-001-1_s.jpg',videoPath:'http://shop.jlkjgf.cn/images/temp/videos/video_1.mp4'},
          ],
          playBox: false,
          video: null,
          isPlay: 0,//默认0未自动播放  1播放  2暂停
          eleVideo: null,
          autoPlay: false,//自动播放
        };
      },
      mounted() {

      },
      methods: {
        autoPlayFun(){
          this.autoPlay = !this.autoPlay;
        },
        playModal(item){
          this.video = item;
          this.playBox = true;
          if(!this.eleVideo){
            let that = this;
            setTimeout(function(){
              that.eleVideo = that.$refs.player;
              that.eleVideo.addEventListener('waiting', function () { //加载
                console.log("加载中");
              });
              that.eleVideo.addEventListener('play', function () { //播放开始执行的函数
                console.log("开始播放");
                that.isPlay = 1;
                console.log(that.isPlay);
              });
              that.eleVideo.addEventListener('playing', function () { //播放中
                console.log("播放中");
                that.isPlay = 1;
                console.log(that.isPlay);
              });
              that.eleVideo.addEventListener('pause', function () { //暂停开始执行的函数
                console.log("暂停播放");
                that.isPlay = 2;
                console.log(that.isPlay);
              });
              if(that.autoPlay){
                that.playFun();//加载马上自动播放,有些浏览器已经不支持自动播放,可以先设置浏览器允许自动播放
              }
            },300);
          }else if(this.autoPlay){
            this.playFun();//加载马上自动播放,有些浏览器已经不支持自动播放,可以先设置浏览器允许自动播放
          }
        },
        playFun() {
          if (!this.$refs.player) {
            alert('播放资源不存在!');
            return;
          }
          if (this.isPlay === 1) { //暂停
            this.isPlay = 2;
            this.$refs.player.pause();
          } else if (this.isPlay === 0 || this.isPlay === 2) { //播放
            this.$refs.player.play();
          }
        },
        beforeClose(){
          this.isPlay = 2;
          this.$refs.player.pause();
          this.playBox = false;
        }
      }
    }

五.登录、注册、找回密码

 

 登录、注册、找回密码通过参数控制切换页面效果:

<div style="display: flex;width: 100%;height: 100%;overflow: hidden;">
      <div class="name"><span @click="homePage" style="cursor: pointer;">欢迎使用U袋网平台</span></div>
      <div class="login-modal">
        <div class="title">{{modalType === 'login'?'登录':(modalType==='forget'?'找回密码':'注册')}}</div>
        <el-form class="login-form"
                 :rules="loginRules"
                 ref="loginForm"
                 :model="loginForm"
                 label-width="0">

          <el-form-item prop="phone">
            <el-input
              placeholder="请输入手机号"
              prefix-icon="el-icon-mobile-phone"
              v-model="loginForm.phone">
            </el-input>
          </el-form-item>

          <el-form-item v-show="modalType !== 'login'" prop="validCode">
            <el-input placeholder="请输入验证码" v-model="loginForm.validCode">
              <el-button slot="append" @click="handleLogin">发送短信验证码</el-button>
            </el-input>
          </el-form-item>

          <el-form-item prop="password">
            <el-input
              :type="passwordType"
              placeholder="请输入密码"
              prefix-icon="el-icon-lock"
              v-model="loginForm.password">
            </el-input>
          </el-form-item>

          <el-form-item>
            <el-row>
              <el-col :span="12">
                <el-checkbox v-model="loginForm.rememberPwd">30天内免登录</el-checkbox>
              </el-col>
              <el-col :span="12" v-if="modalType !== 'forget'">
                <div style="color: #df1f20;float: right;cursor: pointer;" @click="changeModalType('forget')">忘记密码?</div>
              </el-col>
            </el-row>
          </el-form-item>

          <el-form-item>
            <el-button type="primary"
                       style="width: 100%;"
                       @click.native.prevent="handleLogin"
                       class="login-submit">
              {{modalType === 'login'?'登录':(modalType==='forget'?'重置密码':'注册')}}
            </el-button>
          </el-form-item>
          <div v-if="modalType === 'login'" style="text-align: center;font-size: 14px;">
            没有账号?<span style="cursor: pointer;color: #df1f20;" @click="changeModalType('register')">免费注册</span>
          </div>
          <div v-if="modalType !== 'login'" style="text-align: center;font-size: 14px;">
            已有账号?<span style="cursor: pointer;color: #df1f20;" @click="changeModalType('login')">返回登录</span>
          </div>
        </el-form>
      </div>
    </div>

 

六.其他简单页面

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

编译原理——参数传递—传名、传地址、得结果、传值

1.传名&#xff08;替换操作&#xff09; 把这种方式理解为替换操作&#xff0c;把P函数参数X、Y、Z和P函数内部的Y、Z替换为A、B&#xff0c;然后P函数对Y、Z的操作&#xff0c;其实就是对A、B的操作&#xff1b;需要注意这和传地址一样&#xff0c;上面对A造成的变化&#x…

制品仓库 Nexus 安装、配置、备份、使用

目录 1.1 Nexus 优点 1.2 Nexus 仓库类型 2. 安装 Nexus 2.1 设置持久化目录 2.2 拉取 Nexus docker 镜像 2.3 运行并启动 Nexus 3. 系统配置 3.1 配置管理员密码 3.2 配置 LDAP 3.3 配置 Email 服务器 4. 配置 Repository 4.1 添加 Blob Stores 4.2 添加 Reposit…

软考高级考哪个好?

软考高级一共5个科目&#xff0c;含金量都差不多&#xff0c;每个人考证的需求各不相同&#xff0c;合适自己情况的才是最有用的证书。看你自己的工作、专业与哪个更相近&#xff0c;再来深入学习备考的&#xff0c;当然自己也要对考试取证有一定的信心。 高级科目介绍&#x…

【LeetCode每日一题】——剑指 Offer II 072.求平方根

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【题目注意】九【时间频度】十【代码实现】十一【提交结果】一【题目类别】 二分查找 二【题目难度】 简单 三【题目编号】 剑指 Offer II 072.求平方根 …

《图解TCP/IP》阅读笔记(第七章 7.5)—— OSPF 开放最短路径优先协议

7.5 OSPF OSPF&#xff08;Open Shortest Path First&#xff0c;开放最短路径优先&#xff09;是一种链路状态性的路由协议&#xff0c;即使网络中有环路&#xff0c;也可以进行稳定的路由控制。 另外&#xff0c;OSPF支持子网掩码&#xff0c;使得在RIP中无法实现的可变长度…

在简历上写了“精通自动化测试,阿里面试官跟我死磕后就给我发了高薪 offer

事情是这样的 前段时间面试了阿里&#xff0c;大家也都清楚&#xff0c;如果你在简历上面写着你精通 XX 技术&#xff0c;那面试官就会跟你死磕到底。 我就是在自己的简历上写了精通自动化测试&#xff0c;然后就开启了和阿里面试官的死磕之路&#xff0c;结果就是拿到了一份…

【Lilishop商城】No4-2.业务逻辑的代码开发,涉及到:会员B端第三方登录的开发-平台注册会员接口开发

仅涉及后端&#xff0c;全部目录看顶部专栏&#xff0c;代码、文档、接口路径在&#xff1a; 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑&#xff0c;其中重点包括接口类、业务类&#xff0c;具体的结合源代…

AMQP协议:消费者、生产者与RibbitMQ节点之间的交互流程,RibbitMQ的核心组成部分

原文链接 一、什么是AMQP协议&#xff1f; AMQP全称&#xff1a;Advanced Message Queuing Protocol(高级消息队列协议)。是应用层协议的一个开发标准&#xff0c;为面向消息的中间件设计。 基于此协议的客户端与消息中间件可以传递消息&#xff0c;不受客户端/中间件的不同产品…

小程序之首页搭建——Flex布局

目录 Flex布局简介 什么是flex布局&#xff1f; flex属性 学习地址&#xff1a; 视图层 View WXML 数据绑定 列表渲染 条件渲染 模板 WXSS 尺寸单位 样式导入 内联样式 选择器 全局样式与局部样式 WXS 示例 注意事项 页面渲染 数据处理 会议OA项目-首页 …

Python实现照片、视频一键压缩及备份源代码

代码 完整代码下载地址&#xff1a;Python实现照片、视频一键压缩及备份源代码 第一次运行前先编辑脚本&#xff0c;修改其中的主库位置、随库位置&#xff0c;保存。 此后要更新随库时&#xff0c;只要双击运行脚本即可。 运行结果示例&#xff1a; 主库位置&#xff1a;D…

用了这么多年的 SpringBoot 你知道什么是 SpringBoot 的 Web 类型推断吗?

用了这么多年的 SpringBoot 那么你知道什么是 SpringBoot 的 web 类型推断吗&#xff1f; 估计很多小伙伴都不知道&#xff0c;毕竟平时开发做项目的时候做的都是普通的 web 项目并不需要什么特别的了解&#xff0c;不过抱着学习的心态&#xff0c;阿粉今天带大家看一下什么是 …

jQuery库冲突

文章目录jQuery库冲突原因jQuery.noConflict()如还想使用$可以这么做jQuery库冲突 原因 在某些情况下&#xff0c;可能有必要在同一个页面中使用多个JavaScript库。但是很多库都使用了“$”这个符号&#xff08;因为它简短方便&#xff09;&#xff0c;这时就需要用一种方式来…

Oracle中Null和无值的区别

以Leetcode第176题“第二高的薪水”为例。 首先说一下这道题最容易理解、最容易实现的解法&#xff0c;就是比最大值小的值里最大的值。 SELECT MAX(salary) AS SecondHighestSalary FROM Employee WHERE salary < (SELECT MAX(salary) FROM Employee)通过这道题目&#…

泛型------数据结构

泛型 问题:下面是一个简单的顺序表&#xff0c;我们在这里面实现的一个顺序表&#xff0c;是存放的数据类型只有int类型&#xff0c;这就会很不通用&#xff0c;如果我们想什么样的类型的数据都想要放进去,就要把这个数组的类型设置成Object类型 能不能啥样的类型都可以存放呢&…

ArcGIS中ArcMap栅格重采样操作与算法选择

本文介绍在ArcMap软件中&#xff0c;实现栅格图像重采样的具体操作&#xff0c;以及不同重采样方法的选择依据。 在文章Python中ArcPy实现栅格图像文件批量掩膜与批量重采样&#xff08;https://blog.csdn.net/zhebushibiaoshifu/article/details/124282764&#xff09;中&…

optimization问题的解决

目录 临界点critical point 基本介绍临界点两种情况的区分 g和H的举例介绍根据H区分Saddle Point和local minima 批次Batch batch大小的比较 时间的开销训练集和测试集的效果 训练集效果测试集效果 动量Momentum 一般的Gradient Descent带有动量的Gradient Descent 2021 -…

异步通信技术AJAX | 原理剖析、发送Ajax请求四步

目录 一&#xff1a;快速搞定AJAX&#xff08;第一篇&#xff09; 1、传统请求及缺点 2、AJAX请求原理剖析 3、AJAX概述 4、XMLHttpRequest对象 5、AJAX GET请求 6、AJAX GET请求提交数据 7、AJAX GET请求的缓存问题 8、AJAX POST请求及模拟表单提交数据 9、经典案例…

C语言基础--数组

文章目录一维数组一、一维数组的创建和初始化&#xff08;1&#xff09;一维数组的创建&#xff08;2&#xff09;一维数组的初始化1&#xff09;整形数组初始化2&#xff09;字符数组初始化3&#xff09;sizeof与strlen4&#xff09;总结二、一维数组的使用三、一维数组在内存…

基于C++实现(控制台)职工信息管理系统【100010060】

职工信息管理系统 一、实验内容 ​ 设计一个职工信息管理案例&#xff0c;实现不同类别职工的工资数据。职工的种类包括&#xff1a;正式职工和临时工。定义一个基本的职工类&#xff0c;基本信息包括&#xff1a;编号、姓名、性别、年龄、家庭住址、基本职务工资。派生出正式…

Quarkus实现第一个Hello World

Quarkus介绍 Quarkus 是一个为 Java 虚拟机&#xff08;JVM&#xff09;和原生编译而设计的全堆栈 Kubernetes 原生 Java 框架&#xff0c;用于专门针对容器优化 Java&#xff0c;并使其成为无服务器、云和 Kubernetes 环境的高效平台。 Quarkus 可与常用 Java 标准、框架和库…