vue+element纯手工完美模拟实现小米有品网站

news2024/10/5 14:17:13

一、预览

小米有品官网:小米有品

 本作品demo预览地址:点击预览

二、效果图对比

 

1.官方效果截图:

 2.作者实现的demo效果图:

首页:

 上新精选:

商品详情:

 

 购物车:

登录:

 

 

三、项目细节说明

1.项目结构、设计说明

项目以vue项目创建,前端某些元素使用element,项目启动执行的命令为:

npm install
npm run dev(当然命令可以修改为npm run serve,没啥区别)
结构如下截图,项目已经集成和实现了需要请求后端接口的一切功能,所以无须花费精力去考虑前端如何去对接后端和接口,可以把一切精力放在实现前端界面设计上来。

这样不懂后端的伙伴也省心省力,接口请求只需按照模板去copy就好,无非就是get/post/delete/put等请求方式和参数传递的差别,当然不明白的可以细问作者。

项目结构还是分为:顶部+具体功能显示容器+底部,页面存放于src/page目录下,看目录命名就能明白其含义,具体功能页面在views目录下。

路由在router目录中,全局布局公用样式在styles,比如整个项目框架左右空间布局,最小宽度等。

路由权限也是很重要的一个功能,为permission.js,所有页面跳转都会经过其拦截,有人问,路由权限有什么用,好说,比如订单页面或个人中心页面吧,肯定是需要登录才能访问的,首页却是无需登录即可访问的,那么就可以在permission.js里面获取登录token,有token即表示已经登录,可以访问订单或个人中心页面,否则跳转登录页等。
 

 项目数据已经分离出来,作为单独json文件单独存放,每个商品id唯一。

如图所示:

原始数据代码:

{
  "goodsListNew-des":"注释-以下是:上新精选",
  "goodsListNew":[
    {
      "id":1,
      "name":"小米13 Pro",
      "title":"Xiaomi 13 Pro 陶瓷黑 8GB+128GB',subTitle:'徕卡专业光学镜头|徕卡原生双画质",
      "price":4999,
      "originalPrice":5999,
      "count":0,
      "img":"/img/product1.jpeg",
      "imgList":[
        "/img/product1_1.jpg",
        "/img/product1_2.jpg",
        "/img/product1_3.jpg",
        "/img/product1_4.jpg"
      ],
      "detailImgList":[
        "/img/product1_detail1.jpeg",
        "/img/product1_detail2.jpeg",
        "/img/product1_detail3.jpeg",
        "/img/product1_detail4.jpeg"
      ]
    },
    {
      "id":2,
      "name":"Xiaomi 13",
      "title":"Xiaomi 13 黑色 8GB+128GB",
      "subTitle":"徕卡75mm长焦镜头|第二代 骁龙8旗舰处理器",
      "price":3999,
      "originalPrice":4999,
      "count":0,
      "img":"/img/product2.jpeg",
      "imgList":[
        "/img/product2_1.jpg",
        "/img/product2_2.jpg",
        "/img/product2_3.jpg",
        "/img/product2_4.jpg"
      ],
      "detailImgList":[
        "/img/product2_detail1.jpeg",
        "/img/product2_detail2.jpeg",
        "/img/product2_detail3.jpeg",
        "/img/product2_detail4.jpeg"
      ]
    },
    {
      "id":3,
      "name":"Redmi Watch 3",
      "title":"Redmi Watch 3 典雅黑",
      "subTitle":"1.75 AMOLED彩显大屏 ,蓝牙语音通话",
      "price":479,
      "originalPrice":579,
      "count":0,
      "img":"/img/product3.jpeg",
      "imgList":[
        "/img/product3_1.jpg",
        "/img/product3_2.jpg",
        "/img/product3_3.jpg",
        "/img/product3_4.jpg"
      ],
      "detailImgList":[
        "/img/product3_detail1.jpeg",
        "/img/product3_detail2.jpeg",
        "/img/product3_detail3.jpeg",
        "/img/product3_detail4.jpeg"
      ]
    },
    {
      "id":4,
      "name":"智能门锁E10",
      "title":"Xiaomi智能门锁 E10 黑色",
      "subTitle":"告别钥匙,多种开锁方式,直插式C级锁芯,三防智能锁体",
      "price":799,
      "originalPrice":999,
      "count":0,
      "img":"/img/product4.jpeg",
      "imgList":[
        "/img/product4_1.jpg",
        "/img/product4_2.jpg",
        "/img/product4_3.jpg",
        "/img/product4_4.jpg"
      ],
      "detailImgList":[
        "/img/product4_detail1.jpeg",
        "/img/product4_detail2.jpeg",
        "/img/product4_detail3.jpeg",
        "/img/product4_detail4.jpeg"
      ]
    },
    {
      "id":5,
      "name":"小米13 Pro",
      "title":"Xiaomi 13 Pro 陶瓷黑 8GB+128GB',subTitle:'徕卡专业光学镜头|徕卡原生双画质",
      "price":4999,
      "originalPrice":5999,
      "count":0,
      "img":"/img/product1.jpeg",
      "imgList":[
        "/img/product1_1.jpg",
        "/img/product1_2.jpg",
        "/img/product1_3.jpg",
        "/img/product1_4.jpg"
      ],
      "detailImgList":[
        "/img/product1_detail1.jpeg",
        "/img/product1_detail2.jpeg",
        "/img/product1_detail3.jpeg",
        "/img/product1_detail4.jpeg"
      ]
    },
    {
      "id":6,
      "name":"Xiaomi 13",
      "title":"Xiaomi 13 黑色 8GB+128GB",
      "subTitle":"徕卡75mm长焦镜头|第二代 骁龙8旗舰处理器",
      "price":3999,
      "originalPrice":4999,
      "count":0,
      "img":"/img/product2.jpeg",
      "imgList":[
        "/img/product2_1.jpg",
        "/img/product2_2.jpg",
        "/img/product2_3.jpg",
        "/img/product2_4.jpg"
      ],
      "detailImgList":[
        "/img/product2_detail1.jpeg",
        "/img/product2_detail2.jpeg",
        "/img/product2_detail3.jpeg",
        "/img/product2_detail4.jpeg"
      ]
    },
    {
      "id":7,
      "name":"Redmi Watch 3",
      "title":"Redmi Watch 3 典雅黑",
      "subTitle":"1.75 AMOLED彩显大屏 ,蓝牙语音通话",
      "price":479,
      "originalPrice":579,
      "count":0,
      "img":"/img/product3.jpeg",
      "imgList":[
        "/img/product3_1.jpg",
        "/img/product3_2.jpg",
        "/img/product3_3.jpg",
        "/img/product3_4.jpg"
      ],
      "detailImgList":[
        "/img/product3_detail1.jpeg",
        "/img/product3_detail2.jpeg",
        "/img/product3_detail3.jpeg",
        "/img/product3_detail4.jpeg"
      ]
    },
    {
      "id":8,
      "name":"智能门锁E10",
      "title":"Xiaomi智能门锁 E10 黑色",
      "subTitle":"告别钥匙,多种开锁方式,直插式C级锁芯,三防智能锁体",
      "price":799,
      "originalPrice":999,
      "count":0,
      "img":"/img/product4.jpeg",
      "imgList":[
        "/img/product4_1.jpg",
        "/img/product4_2.jpg",
        "/img/product4_3.jpg",
        "/img/product4_4.jpg"
      ],
      "detailImgList":[
        "/img/product4_detail1.jpeg",
        "/img/product4_detail2.jpeg",
        "/img/product4_detail3.jpeg",
        "/img/product4_detail4.jpeg"
      ]
    }
  ],
  "goodsListKill-des":"注释-以下是:有品秒杀",
  "goodsListKill":[
    {
      "id":1005,
      "name":"小米13 Pro",
      "title":"Xiaomi 13 Pro 陶瓷黑 8GB+128GB',subTitle:'徕卡专业光学镜头|徕卡原生双画质",
      "price":4999,
      "originalPrice":5999,
      "count":0,
      "img":"/img/product1.jpeg",
      "imgList":[
        "/img/product1_1.jpg",
        "/img/product1_2.jpg",
        "/img/product1_3.jpg",
        "/img/product1_4.jpg"
      ],
      "detailImgList":[
        "/img/product1_detail1.jpeg",
        "/img/product1_detail2.jpeg",
        "/img/product1_detail3.jpeg",
        "/img/product1_detail4.jpeg"
      ]
    },
    {
      "id":1006,
      "name":"Xiaomi 13",
      "title":"Xiaomi 13 黑色 8GB+128GB",
      "subTitle":"徕卡75mm长焦镜头|第二代 骁龙8旗舰处理器",
      "price":3999,
      "originalPrice":4999,
      "count":0,
      "img":"/img/product2.jpeg",
      "imgList":[
        "/img/product2_1.jpg",
        "/img/product2_2.jpg",
        "/img/product2_3.jpg",
        "/img/product2_4.jpg"
      ],
      "detailImgList":[
        "/img/product2_detail1.jpeg",
        "/img/product2_detail2.jpeg",
        "/img/product2_detail3.jpeg",
        "/img/product2_detail4.jpeg"
      ]
    },
    {
      "id":1007,
      "name":"Redmi Watch 3",
      "title":"Redmi Watch 3 典雅黑",
      "subTitle":"1.75 AMOLED彩显大屏 ,蓝牙语音通话",
      "price":479,
      "originalPrice":579,
      "count":0,
      "img":"/img/product3.jpeg",
      "imgList":[
        "/img/product3_1.jpg",
        "/img/product3_2.jpg",
        "/img/product3_3.jpg",
        "/img/product3_4.jpg"
      ],
      "detailImgList":[
        "/img/product3_detail1.jpeg",
        "/img/product3_detail2.jpeg",
        "/img/product3_detail3.jpeg",
        "/img/product3_detail4.jpeg"
      ]
    },
    {
      "id":1008,
      "name":"智能门锁E10",
      "title":"Xiaomi智能门锁 E10 黑色",
      "subTitle":"告别钥匙,多种开锁方式,直插式C级锁芯,三防智能锁体",
      "price":799,
      "originalPrice":999,
      "count":0,
      "img":"/img/product4.jpeg",
      "imgList":[
        "/img/product4_1.jpg",
        "/img/product4_2.jpg",
        "/img/product4_3.jpg",
        "/img/product4_4.jpg"
      ],
      "detailImgList":[
        "/img/product4_detail1.jpeg",
        "/img/product4_detail2.jpeg",
        "/img/product4_detail3.jpeg",
        "/img/product4_detail4.jpeg"
      ]
    },
    {
      "id":1009,
      "name":"小米13 Pro",
      "title":"Xiaomi 13 Pro 陶瓷黑 8GB+128GB',subTitle:'徕卡专业光学镜头|徕卡原生双画质",
      "price":4999,
      "originalPrice":5999,
      "count":0,
      "img":"/img/product1.jpeg",
      "imgList":[
        "/img/product1_1.jpg",
        "/img/product1_2.jpg",
        "/img/product1_3.jpg",
        "/img/product1_4.jpg"
      ],
      "detailImgList":[
        "/img/product1_detail1.jpeg",
        "/img/product1_detail2.jpeg",
        "/img/product1_detail3.jpeg",
        "/img/product1_detail4.jpeg"
      ]
    },
    {
      "id":1010,
      "name":"Xiaomi 13",
      "title":"Xiaomi 13 黑色 8GB+128GB",
      "subTitle":"徕卡75mm长焦镜头|第二代 骁龙8旗舰处理器",
      "price":3999,
      "originalPrice":4999,
      "count":0,
      "img":"/img/product2.jpeg",
      "imgList":[
        "/img/product2_1.jpg",
        "/img/product2_2.jpg",
        "/img/product2_3.jpg",
        "/img/product2_4.jpg"
      ],
      "detailImgList":[
        "/img/product2_detail1.jpeg",
        "/img/product2_detail2.jpeg",
        "/img/product2_detail3.jpeg",
        "/img/product2_detail4.jpeg"
      ]
    },
    {
      "id":1011,
      "name":"Redmi Watch 3",
      "title":"Redmi Watch 3 典雅黑",
      "subTitle":"1.75 AMOLED彩显大屏 ,蓝牙语音通话",
      "price":479,
      "originalPrice":579,
      "count":0,
      "img":"/img/product3.jpeg",
      "imgList":[
        "/img/product3_1.jpg",
        "/img/product3_2.jpg",
        "/img/product3_3.jpg",
        "/img/product3_4.jpg"
      ],
      "detailImgList":[
        "/img/product3_detail1.jpeg",
        "/img/product3_detail2.jpeg",
        "/img/product3_detail3.jpeg",
        "/img/product3_detail4.jpeg"
      ]
    },
    {
      "id":1012,
      "name":"智能门锁E10",
      "title":"Xiaomi智能门锁 E10 黑色",
      "subTitle":"告别钥匙,多种开锁方式,直插式C级锁芯,三防智能锁体",
      "price":799,
      "originalPrice":999,
      "count":0,
      "img":"/img/product4.jpeg",
      "imgList":[
        "/img/product4_1.jpg",
        "/img/product4_2.jpg",
        "/img/product4_3.jpg",
        "/img/product4_4.jpg"
      ],
      "detailImgList":[
        "/img/product4_detail1.jpeg",
        "/img/product4_detail2.jpeg",
        "/img/product4_detail3.jpeg",
        "/img/product4_detail4.jpeg"
      ]
    }
  ]
}

 2.路由配置源码:

import Vue from 'vue'
import Router from 'vue-router'
import Layout from '@/page/index/index'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/index',
      component: Layout,
      children: [{
        path: '',
        name: '主页',
        component: () =>
          import( /* webpackChunkName: "views" */ '@/views/home/index')
      }]
    },
    {
      path: '/',
      name: '主页',
      redirect: '/index'
    },
    {
      path: '/newSelection',
      component: Layout,
      children: [{
        path: '',
        name: '上新精选',
        component: () =>
          import( /* webpackChunkName: "views" */ '@/views/new_selection/index')
      }]
    },
    {
      path: '/goodsDetails',
      component: Layout,
      children: [{
        path: '',
        name: '商品详情',
        component: () =>
          import( /* webpackChunkName: "views" */ '@/views/product_detail/index')
      }]
    },
    {
      path: '/myCar',
      component: Layout,
      children: [{
        path: '',
        name: '我的购物车',
        component: () =>
          import( /* webpackChunkName: "views" */ '@/views/car/index')
      }]
    },
    {
      path: '/login',
      name: '登录页',
      component: () =>
        import( /* webpackChunkName: "page" */ '@/page/login/index'),
    },
  ]
})

3.详情、购物车等模拟数据交互

 

购物车 脚本事件处理源码:

<script>
  import product from "@/data/product.json";
  import {getStore,setStore,removeStore} from "@/utils/store.js";
  export default {
    data() {
      return {
        data:[],//购物车商品数据
        total:0,//总计数量
        sum:0,//总计金额
      };
    },
    mounted() {
      this.getCarData();
    },
    methods: {
      getCarData(){//获取购物车商品数据
        //缓存获取
        let carList = getStore({name:'carList'});
        if(!carList){
          carList = [];
        }
         this.data = [];
        //获取商品
        carList.forEach((item1,index)=>{
          product.goodsListNew.forEach(item2=>{
            if(item1.goodsId === item2.id){
              item2.count = item1.count;
              this.data.push(item2);
            }
          })
          //有品秒杀-循环
          product.goodsListKill.forEach(item2=>{
            if(item1.goodsId === item2.id){
              item2.count = item1.count;
              this.data.push(item2);
            }
          })
        })
        this.totalFun();
      },
      goHome(){//首页
        this.$router.push({path:'/'})
      },
      goGoodsDetails(item){//跳转商品详情
        //浏览器缓存 商品详情id
        setStore({name:'goodsId',content: item.id});
        this.$router.push({path:'/goodsDetails'});
      },
      addNum(item){//数量+
        item.count++;
        //缓存获取数据
        let carList = getStore({name:'carList'});
        if(!carList){
          carList = [];
        }
        carList.forEach(item2=>{
          if(item2.goodsId === item.id){
            item2.count = item.count;
            //存到缓存
            setStore({name:'carList',content: carList});
          }
        })
        this.totalFun();
      },
      subNum(item){//数量-
        if(item.count > 1){
          item.count--;
          //缓存获取数据
          let carList = getStore({name:'carList'});
          if(!carList){
            carList = [];
          }
          carList.forEach(item2=>{
            if(item2.goodsId === item.id){
              item2.count = item.count;
              //存到缓存
              setStore({name:'carList',content: carList});
            }
          })
          this.totalFun();
        }
      },
      totalFun(){//统计 计算
        this.sum = 0;
        this.total = 0;
        this.data.forEach(item=>{
          this.sum += item.price*item.count;
          this.total += item.count;
        });
      },
      delSingle(item){//删除
        this.$confirm("确定删除?", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        })
          .then(() => {
            //缓存获取数据
            let carList = getStore({name:'carList'});
            if(!carList){
              carList = [];
            }
            carList.forEach((item2,index2)=>{
              if(item2.goodsId === item.id){
                //删除
                carList.splice(index2,1);
                //存到缓存
                setStore({name:'carList',content: carList});
              }
            })
          })
          .then(() => {
            this.getCarData();
            this.$message({
              type: 'success',
              message: '删除成功'
            });
          })
      },
      delCart(){//清空购物车
        this.$confirm("确定清空购物车?", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        })
          .then(() => {
            removeStore({name:'carList'});
          })
          .then(() => {
            this.getCarData();
            this.$message({
              type: 'success',
              message: '已清空购物车'
            });
          })
      },
      toPay(){//去结算
        console.info('点击去结算');
      }
    }
  };
</script>

四、总结

 后续不定期将不断完善和增加功能页面,敬请期待。

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

作者主页也有更多好项目分享!

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

其他作品集合:

  1.    《vue+element实现美观大方好看的音乐网站,仿照咪咕音乐网》     
  2. 《vue实现功能完整的购物商城,商品零食、电商通用商城》
  3. 《vue+element实现蔬菜、水果、电商商城》
  4. 《vue+element简单实现电商商城网站,模仿小米电商商城》
  5. 《vue实现美观大方的动漫、cos、帖子类型网站》
  6. 《vue实现好看的相册、图片网站》
  7. 《高度仿PC版《微信读书》,好看的小说、读书网站》
  8. 《vue+element实现非常好看的鲜花网站商城,页面完整,样式美观》
  9. 《vue+elementui+springboot前后端分离实现通用商城管理后台》
  10. 《微信小程序日记、微信小程序个人空间、个人日记》
  11. 《vue+element模仿腾讯视频电影网站》
  12. 《vue+element高度仿照QQ音乐,完美实现PC端QQ音乐》
  13. 《vue+element详细完整实现个人博客、个人网站》
  14. 《vue+elementui+springboot前后端分离实现学校帖子网站,学校大作业》
  15. 《vue+elementui实现U袋网-完整版》
  16. 《vue+element+electron仿微信实现》
  17. 《vue+element模仿电商商城,前后端分离实现,下单微信扫码支付》
  18. 《electron+vue+elementui实现类似QQ窗口靠边自动边缘隐藏》
  19. 《微信小程序仿唯聚时代,微信小程序商城》
  20. 《jquery+bootstrap完整丰富样式开发框架源码,各种现成样式简单易用》
  21. 《html+css响应式旅游主题网站模板,旅游网站,企业文化新闻类网站》
  22. 《css+html各种动态、动画、3D相册等7件套》
  23. 《仿华为电商商城,官网,华为超级新品日demo,大屏霸气且简洁》
  24. 《vue+element简单实现商城网站首页,模仿电商商城》
  25. 《vue+elementui实现非常好看的博客、网站首页,网站模板》
  26. 《elementui+vue实现经典管理系统布局框架,拿来即用》
  27. 《简系统登录页模板html+vue+elementui》
  28. 《vue+elementui完美实现博客、网站、个人网站,高仿“张凯博客”》
  29. 《vue+elementui完美实现后台管理系统的左、右、顶部菜单布局》
  30. 《html5+css3实现3D正方体动画相册2种+3D旋转木马立体动画相册+表白文字加动画爱心+炫酷万花筒五件套含音乐》
  31. 《后端使用springboot+maven+shiro+mybatis+mysql,前端使用H-ui.admin_v3.1.3.1,快速实现管理后台功能》
  32. 《springboot+thymeleaf+maven+html+css实现精美大方好看官网模板完整源码》
  33. 《html+css实现好友列表,类似QQ群聊成员列表》

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

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

相关文章

【论文阅读】23_SIGIR_Disentangled Contrastive Collaborative Filtering(分离对比协同过滤)

【论文阅读】23_SIGIR_Disentangled Contrastive Collaborative Filtering&#xff08;分离对比协同过滤&#xff09; 文章目录 【论文阅读】23_SIGIR_Disentangled Contrastive Collaborative Filtering&#xff08;分离对比协同过滤&#xff09;1. 来源2. 介绍3. 模型方法3.1…

最小生成树 Prim算法实现(c语言代码)

【问题描述】 城市之间的公路交通可以用一个无向图表示。如下图所示&#xff1a; 顶点表示城市、边表示城市之间有公路相连&#xff0c;边上的权值表示城市之间的公路长度。 编程解决以下问题&#xff1a; &#xff08;1&#xff09;输入城市信息和城市之间公路的信息&…

2023最新SRC漏洞挖掘快速上手攻略!

前言 随着网络安全的快速发展&#xff0c;黑客攻击的手段也越来越多样化&#xff0c;因此SRC漏洞挖掘作为一种新的网络安全技术&#xff0c;也在不断发展和完善。那么&#xff0c;作为一个网安小白如果想要入门SRC漏洞挖掘&#xff0c;需要掌握哪些知识呢&#xff1f;以下是本…

Vue3入门

前言 在Vue 3提供的丰富的基础配置和插件生态系统之下&#xff0c;它是一种适用于多场景开发的前端框架&#xff0c;包括web应用程序、移动应用和桌面应用。使用Vue 3&#xff0c;您可以快速高效构建出具有优秀用户体验的应用程序。 准备工作 首先&#xff0c;我们需要安装V…

运营-15.涉及促销活动的计算原则

1.是否 参与促销活动 如果商品参加促销活动&#xff0c;则在订单结算的时候显示已经参加的活动&#xff0c;否 则不显示&#xff1b; 2.是否 满足促销条件 如果有参加某个活动&#xff0c;则还要判断是否满足活动的条件&#xff0c;比如满200减 10&#xff0c;但是商品价格不足…

spring-cloud-alibaba-seata分布式事务实例

第一步: 首先访问: https://seata.io/zh-cn/blog/download.html 下载我们需要使用的seata1.6.0服务 第二步: 1.在你的参与全局事务的数据库中加入undo_log这张表 -- for AT mode you must to init this sql for you business database. the seata server not need it. CRE…

关于档案室十防环境监控的一些关键内容

档案库房十防监控系统 智慧档案平台/温湿度/空气质量/漏水/视频/门禁/一体化管控平台 HONSOR多维空间可视化智慧档案库房建设一体化平台分享 三维可视化智慧档案馆库房一体化环境安全管控系统平台【相关项目经验图片/相关系统拓展图】【鉴赏】 1、智慧档案馆 2、智慧档案库房…

从零开始之电机FOC控制

我们将撕开FOC神秘而虚伪的面纱&#xff0c;以说人话的方式讲述它。真正的做到从零开始&#xff0c;小白一看就会&#xff0c;一学就废。 如果觉得有用的话&#xff0c;就点个赞呗&#xff0c;纯手码。 一、什么是FOC&#xff1f; FOC是Field Orientation Control的缩写&#…

2023年,千万别裸辞....

作为IT行业的大热岗位——软件测试&#xff0c;只要你付出了&#xff0c;就会有回报。说它作为IT热门岗位之一是完全不虚的。可能很多人回说软件测试是吃青春饭的&#xff0c;但放眼望去&#xff0c;哪个工作不是这样的呢&#xff1f;会有哪家公司愿意养一些闲人呢&#xff1f;…

GaussDB云数据库SQL应用系列-基础使用

目录 一、前言 二、前提条件 1、连接数据库实例 2、GaussDB实例正常运行 三、操作示例 1、选择实例并进入SQL执行界面 2、创建数据库用户 3、创建数据库 4、创建SCHEMA 5、创建表&#xff08;增删改查&#xff09; 1&#xff09;创建3张表&#xff0c;并初始化一些数…

Revit技巧 | 楼梯总画不好?原来是这些技巧你没有掌握

Revit技巧 | 楼梯总画不好&#xff1f;原来是这些技巧你没有掌握 楼梯在我们BIM考试中是重点和难点&#xff0c;根据我们对历年考考题的分析&#xff0c;楼梯部分涉及到的考点为&#xff1a; 栏杆扶手样式的设置&#xff1b; 楼梯踏步数的设置&#xff1b; 楼梯踏板宽度的设…

Adapt Learning使用教程(Adapt Framework/Adapt Authoring)(二)

此文章在上一章的环境配置下操作的&#xff0c;如果还没配置参考我的上一篇文章&#xff1a;Adapt Learning使用教程&#xff08;Adapt Framework/Adapt Authoring&#xff09;&#xff08;一&#xff09; 。环境配置好了之后&#xff0c;就该从GitHub上拉取代码啦&#xff0c…

如何入门Python——学习Python的指南针

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

【JOSEF约瑟 应用于输配电路、变压器 JDP-1004双位置继电器 端子排】

名称&#xff1a;双位置继电器&#xff1b;品牌&#xff1a;JOSEF约瑟&#xff1b;型号&#xff1a;JDP-1440&#xff1b;触点容量&#xff1a;250V2A&#xff1b;功率消耗&#xff1a;≤5W&#xff1b;额定电压&#xff1a;220V/110V&#xff1b;外形尺寸&#xff1a;868573特…

LeetCode——矩阵中移动的最大次数

目录 1、题目 2、题目解读 3、代码 1、题目 2684. 矩阵中移动的最大次数 - 力扣&#xff08;Leetcode&#xff09; 给你一个下标从 0 开始、大小为 m x n 的矩阵 grid &#xff0c;矩阵由若干 正 整数组成。 你可以从矩阵第一列中的 任一 单元格出发&#xff0c;按以下方式遍…

面了一个00后测试工程师,问啥啥不会开口就要15k,我也是麻了····

在深圳这家金融公司也待了几年&#xff0c;被别人面试过也面试过别人&#xff0c;大大小小的事情也见识不少&#xff0c;今天又是团面的一天&#xff0c; 一百多个人都聚集在一起&#xff0c;因为公司最近在谈项目出来面试就2个人&#xff0c;无奈又被叫到面试房间。 整个过程我…

一体化医学影像平台PACS源码,影像存档与传输系统源码

PACS影像存档与传输系统源码 PACS即影像存档与传输系统&#xff0c;是医学影像、数字化图像技术、计算机技术和网络通讯技术相结合的产物&#xff0c;是处理各种医学影像信息的采集、存储、报告、输出、管理、查询的计算机应用程序。 是基于DICOM标准的医学影像管理系统&…

分布式锁-Redis

一、为什么要有锁的概念 1.假如现在我们有这么一个场景&#xff1a; 用户在淘宝app上购买商品,用户提交订单的时候提交了,多点击了几次。 不管用户点击几次,只要用户一直停留在一个页面&#xff0c;那么就必须生成一个订单。 1.1 如果我们的服务是单体服务的话 比如现在我们的…

单片机中GPIO八种工作模式详细分析

今天给大家讲解一下 GPIO 基础&#xff0c;参考资料&#xff1a; STM32F1xx 官方资料&#xff1a; 《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO) GPIO 是通用输入/输出端口的简称&#xff0c;是 STM32 可控制的引脚。GPIO 的引脚与外部硬件设备连接&#xff…

2023护网蓝初面试题汇总

一、描述外网打点的流程&#xff1f; 二、举几个 FOFA 在外网打点过程中的使用小技巧&#xff1f; 三、如何识别 CND &#xff1f; 四、邮件钓鱼的准备工作有哪些&#xff1f; 五、判断出靶标的 CMS &#xff0c;对外网打点有什么意义&#xff1f; 六、 Apache Log4j2…