【微信小程序开发实战项目】——花店微信小程序实战项目(4)

news2024/11/18 2:29:54

在这里插入图片描述


👨‍💻个人主页:@开发者-曼亿点

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 曼亿点 原创

👨‍💻 收录于专栏:微信小程序开发

🅰


花店小程序


文章目录

    • 🅰
    • 前言
    • 🎶 一、鲜花的购物车模块
      • (1)gou.wxml
      • (2)gou.wxss
      • (3)gou.js
    • 🎶 二、鲜花的个人中心模块
      • (1)own.wxml
      • (2)own.wxss
      • (3)own.js
        • 结束语🥇


前言

  在这个数字化的时代,鲜花不仅仅是情感的传递者,更是美好生活的点缀。为了让您能更便捷地选购心仪的花束,我们精心打造了这款网上花店微信小程序。
  鲜花,承载着爱与祝福,是浪漫与温馨的象征。然而,传统的花店购买方式往往受到时间和空间的限制,让您无法在第一时间将这份美好传递给重要的人。我们深知您对鲜花的热爱和对便捷服务的需求,因此致力于通过技术的力量,为您创造一个全新的购花体验。
  这个网上花店微信小程序,将汇聚来自世界各地的优质鲜花品种,以精美的图片和详细的介绍呈现在您眼前。无论您是为了庆祝生日、表达爱意,还是为了装饰家居,只需轻点屏幕,就能轻松挑选到最适合您的那束花。
  同时,我们还提供贴心的配送服务,确保每一朵鲜花都能以最鲜活的姿态送达您指定的地点。在这里,您不仅能享受到便捷的购物流程,还能感受到我们对品质和服务的执着追求。
  让我们一同开启这充满花香的数字之旅,让鲜花的美丽与温暖,随时伴您左右。

在这里插入图片描述


🎶 一、鲜花的购物车模块


  在探寻鲜花之美的旅程中,购物车宛如您贴心的花束收纳篮,承载着您精心挑选的每一份美好期许。
  当您漫步于我们的花店小程序,被那一朵朵娇艳欲滴、芬芳四溢的鲜花所吸引时,购物车便是您的私人珍藏空间。它让您能够随心收集心仪的花朵,无论是象征爱情的玫瑰,还是代表友情的向日葵,亦或是寓意祝福的百合。
  购物车不仅是一个存放商品的地方,更是您规划美丽与情感的角落。您可以在这里对比不同鲜花的搭配,调整数量,斟酌预算,精心打造属于您的专属花礼。
  它简单易用,却又功能强大,随时陪伴您在花的海洋中畅游,确保您不会错过任何一朵让您心动的鲜花。有了购物车,您的鲜花选购之旅将更加轻松、有序、充满乐趣。

(1)gou.wxml

<!--pages/gou/gou.wxml-->
<view class="bg-color"></view>
<view class="car-box">
  <checkbox-group bindchange="checkboxChange">
    <view class="row-data" wx:for="{{dataList}}" wx:for-index="index" wx:key="item">
      <view class="row-btn">
        <checkbox value="{{item.id}}" checked="{{checked}}" />
      </view>
      <view class="row-list" bind:tap="detailClick" data-item="{{item}}">
        <view class="row-img">
          <image src="{{item.img}}" mode="aspectFill" />
        </view>
        <view class="row-info">
          <view class="row-text">{{item.content}}</view>
          <view class="row-price">
            <view>
              <text class="row-icon"></text>
              <text class="row-money">{{item.showPrice}}</text>
            </view>
            <view>
              <text class="btn">x{{item.number}}</text>
            </view>
          </view>
        </view>
      </view>
    </view>
  </checkbox-group>
</view>
<!-- 结算 -->
<view class="footer-box">
  <view>
    <checkbox-group bindchange="checkboxChangeAll">
      <label class="level">
        <checkbox value="all" checked="{{checkAll}}" />全选
      </label>
    </checkbox-group>
  </view>
  <view class="level">
    <view>
      <text>合计:</text>
      <text class="total-btn row-icon"></text>
      <text class="total-btn row-money">{{totalMoney}}</text>
    </view>
    <view class="total-end" bind:tap="totalClick">结 算</view>
  </view>
</view>

(2)gou.wxss

/* pages/gou/gou.wxss */
page {
  font-size: 32rpx;
  background-color: #f1f1f1;
}

.bg-color {
  background-color: #FF0000;
  height: 200rpx;
  width: 100%;
}

.car-box {
  min-height: 300rpx;
  border-radius: 20rpx;
  background-color: white;
  margin: -190rpx 20rpx 20rpx 20rpx;
  padding: 20rpx 10rpx;
}

.row-data {
  display: flex;
  flex-direction: row;
  align-items: center;
  margin-top: 20rpx;
}

.row-btn {
  width: 10%;
  text-align: center;
}

.row-list {
  width: 90%;
  display: flex;
  flex-direction: row;
}

.row-img {
  width: 30%;
  background-color: #f1f1f1;
}

.row-info {
  width: 70%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-left: 20rpx;
}

.row-img image {
  width: 100%;
  height: 200rpx;
}

.row-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  text-overflow: ellipsis;
  overflow: hidden;
  font-size: 30rpx;
}

.row-price {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.row-price view:first-child {
  color: #FA5422;
}

.row-icon {
  font-size: 26rpx;
}

.row-money {
  font-weight: bold;
}

.btn {
  padding: 5rpx 20rpx;
  font-size: 28rpx;
  color: rgb(230, 204, 231);
}

checkbox {
  zoom: .8;
}

.footer-box {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 999;
  height: 100rpx;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  background-color: white;
  padding: 0 20rpx;
}

.level {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.total-btn {
  color: #FA5422;
}

.total-end {
  background-color: #FF0000;
  margin-left: 20rpx;
  padding: 15rpx 50rpx;
  border-radius: 50rpx;
  font-size: 30rpx;
  color: white;
}

(3)gou.js

// pages/gou/gou.js

Page({
  

  /**
   * 页面的初始数据
   */
  data: {
    checked: false,
    checkAll: false,
    dataList: [{
        id: '000',
        img: '/images/hua/12.jpg',
        content: '香槟玫瑰',
        price: 7800,
        showPrice: '78.00',
        number: 1
      },
      {
        id: '111',
        img: '/images/hua/hau6.jpg',
        content: '昆明桃红金芍',
        price: 11200,
        showPrice: '112.00',
        number: 2
      }, {
        id: '222',
        img: '/images/hua/hua7.jpg',
        content: '昆明金丝竹桃',
        price: 12900,
        showPrice: '129.00',
        number: 1
      },
    ],
    totalMoney: '0.00',
    selectDatas: []
  },
  // 查看详情
  detailClick(e) {
    let data = e.currentTarget.dataset.item;
    wx.showToast({
      title: '点击了查看详情',
      icon: 'none'
    })
    console.log('详情数据:', data)
  },
  // 单选
  checkboxChange(e) {
    let money = 0,
      str = [];
    let attr = e.detail.value;
    let list = this.data.dataList;
    for (let i = 0; i < list.length; i++) {
      for (let k = 0; k < attr.length; k++) {
        if (list[i].id === attr[k]) {
          money += list[i].price * list[i].number;
          str.push(list[i]);
        }
      }
    }
    this.setData({
      selectDatas: str,
      totalMoney: (money / 100).toFixed(2),
      checkAll: (list.length == attr.length && list.length > 0) ? true : false
    })
  },
  // 全选
  checkboxChangeAll(e) {
    let money = 0,
      str = [];
    let val = e.detail.value;
    let list = this.data.dataList;
    if (val.length > 0) {
      for (let i = 0; i < list.length; i++) {
        money += list[i].price * list[i].number;
        str.push(list[i]);
      }
      this.setData({
        checked: true,
        selectDatas: str,
        totalMoney: (money / 100).toFixed(2)
      })
    } else {
      this.setData({
        checked: false,
        selectDatas: [],
        totalMoney: '0.00'
      })
    }
  },
  // 结算
  totalClick() {
    let list = this.data.selectDatas;
    if (list.length < 1) {
      wx.showToast({
        title: '无结算订单',
        icon: 'error'
      })
      return false;
    }
    wx.showModal({
      title: '提示',
      content: '确定结算当前订单吗?',
      complete: (res) => {
        if (res.confirm) {
          wx.showToast({
            title: '结算完成',
          })
        }
      }
    })
  },
})



结果展示:
在这里插入图片描述


🎶 二、鲜花的个人中心模块


  在这繁花似锦的数字花园中,个人用户中心是独属于您的温馨角落。
它如同您与鲜花世界之间的专属纽带,精心记录着您每一次与美丽邂逅的点点滴滴。在这里,您的喜好、您的选择、您的每一次心动都被悉心珍藏。
  个人用户中心是您个性化体验的集中展现,它清晰呈现您的订单历史,让您随时回顾那些充满温馨与惊喜的时刻。您的收货地址被安全保管,确保每一束鲜花都能准确无误地送达您的怀抱。
  这里也是您与我们互动交流的窗口,您的建议和反馈如同璀璨星光,指引着我们不断改进与提升,为您创造更优质的服务。
它不仅是一个功能区域,更是您在鲜花之旅中的贴心伙伴,陪伴您走过每一个与花相伴的美好瞬间。

(1)own.wxml

<!-- 用户列表选项 -->
<scroll-view class='scbg' scroll-y='true'>
  <view class="parent_catainer">
    <!-- 头部 -->
    <!-- style="background-image: url('/images/persons/mind_head_bg.jpg');" -->
    <view class="container_head">
      <image class="head_img" src="/images/bar/back.jpg"></image>
      <view class="head_pers_info" bindtap="head_pers_info">
        <view class="head_pic">
          <image class="head_pic_content" mode="aspectFit" src="/images/bar/lemon.jpg" bindtap="user"></image>
        </view>
        <view class="inf_content">
          <text class="user_info" value="{{value}}"></text>
          <text class="family_info_ct_phone">花坊会员</text>
        </view>
      </view>
    </view>
    <view class="userItemListView">
    </view>
    <view class="userItemListView">
      <view class="my_priview_md" bindtap="openmyorder">
        <image class="my_priview" src="/images/bar/a.png"></image>
        <text>我的订单</text>
        <view class="arrow"></view> 
      </view>
      <view class="my_priview_md" bindtap="myaid">
        <image class="my_priview" src="/images/bar/b.png"></image>
        <text>我的收藏</text>
        <view class="arrow"></view>
      </view>
      
      <view class="my_priview_md" bindtap="mycollection">
        <image class="my_priview" src="/images/bar/c.png" ></image>
        <text>我的地址</text>
        <view class="arrow"></view>
      </view>
      <view class="my_priview_md" bindtap="contact">
        <image class="my_priview" src="/images/bar/d.png" ></image>
        <text>联系客服</text>
        <view class="arrow"></view>
      </view>
      <view class="my_priview_md" bindtap="myfriend">
        <image class="my_priview" src="/images/bar/e.png" ></image>
        <text> 关于版本号</text>
        <view class="arrow"></view>
      </view>
    </view>
 
   
  </view>
</scroll-view>

(2)own.wxss

/* 用户列表选项样式 */
page {
  width: 100%;
  height: 100%;
  background:#f0f0f0;
}
.parent_catainer{
  background:#f0f0f0;
}
 
/* 头部背景图片 */
.container_head{
  height: 370rpx;
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}
 
.head_img {
  position: absolute;
  width: 100%;
  height: 370rpx;
}
 
.head_pers_info{
   height: 200rpx;
   width: 100%;
   margin-bottom: 50rpx;
   justify-content: left;
   display: flex;
   align-items: center;
   flex-direction: row;
   position: absolute;
}
 
.head_pic{
  width: 120rpx;
  height: 120rpx;
  border-radius: 60rpx;
  color: #ffffff;
  align-items: center;
  display: flex;
  justify-content: center;
}
.head_pic_content{
  position: absolute;
  width: 110rpx;
  height: 110rpx;
  border-radius: 55rpx;
  background-color: white;
}
 
.head_pic{
  margin-left: 5%;
}
 
.inf_content{
  display: flex;
  flex-direction: column;
  margin-left: 10rpx;
  align-items: flex-start;
  justify-content: center;
   color: #ffffff;
   padding-bottom: 5rpx;
}
 
.user_info{
  text-align: left;
  font-size: 32rpx;
  font-weight: bold;
  margin-bottom: 8rpx;
}
 
.family_info_ct_phone{
  text-align: center;
  justify-content: center;
  font-size: 28rpx;
  margin-bottom: 2rpx;
}
 
.family_info_ct{
  text-align: center;
  justify-content: center;
  font-size: 28rpx;
  margin-bottom: 2rpx;
  width: 500rpx;
  overflow: hidden;
  white-space: nowrap;
  text-align: left;
  text-overflow: ellipsis;
}
 
.userItemListView{
  background: #fff;
  padding: 0 0rpx;
  margin: 24rpx 0;
}
 
.userItemListView > view{
  height: 94rpx;
  line-height: 94rpx;
  padding-left: 50rpx;
  border-bottom: 1rpx solid #F1F1F1;
  position: relative;
}
 
/* 移除最后一个元素的下边框 */
.userItemListView > view:last-child{
  border: none;
}
 
.my_priview_md{
  display: flex;
  align-items: center;
}
 
.my_priview{
  width: 50rpx;
  height: 50rpx;
  margin-right: 10rpx;
}
 
.arrow{
  width: 16rpx;
  height: 16rpx;
  border-top: 4rpx solid #999;
  border-right: 4rpx solid #999;
  /* 旋转45度 */
  transform: rotate(45deg);
  /* 调整位置 */
  position: absolute;
  right: 30rpx;
  top: 38rpx;
}
 
.userItemListView text{
  font-size: 30rpx;
}
 
.last_view{
   background:#f0f0f0;
   width: 100%;
   height:1200rpx;
}

(3)own.js

Page({
  contact:function(e){
wx.makePhoneCall({
  phoneNumber: '18478292935',
})
  },
  myaid:function(e){
wx.navigateTo({
  url: '/pages/collection/collection',
})
  },
  myfriend:function(e){
    wx.navigateTo({
      url: '/pages/won/won',
    })
      },
      user:function(e){
        wx.navigateTo({
          url: '/pages/users/users',
        })
          },
          openmyorder:function(e){
            wx.navigateTo({
              url: '/pages/order/order',
            })
          },
  
  /**
   * 页面的初始数据
   */
  data: {
    value:'陶继昌'
  },
  mycollection(){
    wx.navigateTo({
      url: '/pages/address/address',
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
 
    var that = this;
  },
 
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
 
  },
 
  // 退出登录
  logout: function () {
 
    wx.showModal({
      content: '确定退出登录吗?',
      cancelColor: '#666666',//666666
      confirmColor: '#666666',
      success(res) {
        if (res.confirm) {
          wx.reLaunch({
            url: '/pages/login/login'
          })
          console.log('用户点击确定')
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      },
      fail: function (res) { },//接口调用失败的回调函数
      complete: function (res) { },//接口调用结束的回调函数(调用成功、失败都会执行
    })
 
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    wx.hideHomeButton();
    wx.hideShareMenu();
  },
 
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
 
  },
 
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
 
  },
 
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
 
  },
 
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
 
  },
 
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
 
  }
})

运行结果:
在这里插入图片描述

结束语🥇

以上就是微信小程序之列表渲染
持续更新微信小程序教程,欢迎大家订阅系列专栏🔥微信小程序
你们的支持就是曼亿点创作的动力💖💖💖
请添加图片描述

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

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

相关文章

创新引领,构筑产业新高地

在数字经济的浪潮中&#xff0c;成都树莓集团以创新驱动为核心&#xff0c;通过整合行业资源、优化服务、培养数字产业人才等措施&#xff0c;致力于打造产业高地&#xff0c;推动地方经济的高质量发展。 一、创新驱动&#xff0c;引领产业发展 1、引入新技术、新模式&#xf…

作为图形渲染API,OpenGL和Direct3D的全方位对比。

当你在网页看到很多美轮美奂的图形效果&#xff0c;3D交互效果&#xff0c;你知道是如何实现的吗&#xff1f;当然是借助图形渲染API了&#xff0c;说起这个不就不得说两大阵营&#xff0c;OpenGL和Direct3D&#xff0c;贝格前端工场在本文对二者做个详细对比。 一、什么是图形…

05-《猪笼草》

猪笼草 猪笼草是猪笼草属全体物种的总称。属于热带食虫植物&#xff0c;原产地主要为旧大陆热带地区。其拥有一个独特的吸取营养的器官——捕虫笼&#xff0c;捕虫笼呈圆筒形&#xff0c;下半部稍膨大&#xff0c;笼口上具有盖子&#xff0c;因其形状像猪笼而得名。 猪笼草 形…

【MySQL】事务实现原理

目录 事务 如何使用 ACID 原子性(Atomicity) 原子性实现原理 持久性(Durability) 持久性实现原理 隔离性 隔离级别 读未提交 读已提交 可重复读 串行化 隔离级别原理 锁 共享锁&独占锁 意向锁 索引记录锁 间隙锁 临键锁 插入意向锁 自增锁 MVCC 实现…

【杂交版】植物大战僵尸杂交版v2.1最新版本下载链接

B站游戏作者潜艇伟伟迷于6月13日中午更新了植物大战僵尸杂交版2.1版本&#xff0c;有老版本的也可以完美继承存档数据。 不多废话下载链接放上&#xff1a; 夸克网盘链接&#xff1a;https://pan.quark.cn/s/095de551d1d1 UC网盘链接&#xff1a;https://drive.uc.cn/s/86debb3…

pdf压缩教程:pdf怎么压缩的小一点?6个方法轻松搞定!

大多数用户在上传PDF文件到网站时&#xff0c;常常遇到文件大小限制的问题。当PDF文件含有大量图片、图形和内容时&#xff0c;文件大小会变得过大&#xff0c;因此我们需要将其压缩至网站所要求的大小&#xff0c;才能成功上传。那么&#xff0c;pdf怎么压缩的小一点 呢&#…

微信扫普通二维码打开小程序-详细实现

微信扫普通二维码链接打开小程序的官方文档地址&#xff1a;扫普通链接二维码打开小程序 | 微信开放文档 我们讲一下开发中的避坑点。 获取链接参数 本人项目采用UNIAPP&#xff0c;所以在开发的时候&#xff0c;牵扯打开页面的特殊性&#xff0c;在onLoad生命周期不执行。在…

华为OD机试2024年最新题库 JAVA C卷+D卷

目录 专栏导读华为OD机试算法题太多了&#xff0c;知识点繁杂&#xff0c;如何刷题更有效率呢&#xff1f; 一、逻辑分析二、数据结构1、线性表① 数组② 双指针 2、map与list3、队列4、链表5、栈6、滑动窗口7、二叉树8、并查集9、矩阵 三、算法1、基础算法① 贪心思维② 二分查…

#招聘数据分析#2024年6月前程无忧招聘北上广深成渝对比情况

#招聘数据分析#2024年6月前程无忧招聘北上广深成渝对比情况 0、根据前程无忧不完全样本统计&#xff0c;北上广深成都重庆平均月工资从高到低依次为 北京15441元、上海14425元、深圳13310元、广州11192元、成都10539元、重庆10290。 1、成都招聘样本数全量35228个&#xff0c…

for nested data item, row-key is required.报错解决

今天差点被一个不起眼的bug搞到吐&#xff0c;就是在给表格设置row-key的时候&#xff0c;一直设置不成功&#xff0c;一直报错缺少row-key&#xff0c;一共就那两行代码 实在是找不到还存在什么问题... 先看下报错截图... 看下代码 我在展开行里面用到了一个表格 并且存放表格…

Java面试八股之MySQL数据库每天5万以上的增量数据,预计运维5年怎么优化

面对每天5万以上的增量数据&#xff0c;且需运维5年的MySQL数据库&#xff0c;优化策略应该围绕提升性能、可扩展性、数据管理以及成本效益。以下是一些具体的优化措施&#xff1a; 1. 数据库架构优化 分表: 可以根据时间或者业务逻辑将数据分散到多个物理表中&#xff0c;比…

智能运维场景探索 | 运营分析

【本场景来源于 擎创科技《一体化数智运维AIOps解决方案》白皮书&#xff0c;经过重新编写】 该场景主要围绕生产运行、运营决策两个维度进行展开&#xff0c;通过对配置、性能、业务等运行数据的加工计算&#xff0c;形成可量化运营效果、可衡量发展方向的运营数据。整体以低…

一文读懂轻量日志收集系统Loki工作原理

Loki 是由 Grafana Labs 开发的日志聚合系统&#xff0c;设计目标是提供一种高效、低成本的日志收集和查询解决方案。与传统的日志系统&#xff08;如 ELK Stack&#xff09;不同&#xff0c;Loki 不会对日志内容进行索引&#xff0c;而是仅对日志的元数据进行索引&#xff0c;…

都有哪些离线翻译器软件?没网就用这4个

经历完痛苦的期末考&#xff0c;可算是千盼万盼等来了日思夜想的暑假&#xff01;趁着这大好时光&#xff0c;怎么能不来一场出国游呢~ 不知道有多少小伙伴和我一样&#xff0c;出国玩最怕的就是语言不通&#xff0c;不管是吃饭还是游玩体验感都会大受影响~好在多出国玩了几趟…

产品经理技能揭秘:需求启发流程

文章目录 引言一、制定启发计划1.1 优点&#xff08;目的&#xff09;1.2 发现信息1.3 启发信息技术1.4 启发的元素 二、做好启发准备三、实施启发活动3.1 确认主体&#xff08;主题&#xff09;3.2 结尾三问3.3 后续跟进3.4 启发技术 四、启发活动的文档输出五、完成启发 引言…

【深度学习】第3章实验——回归模型

根据相关数据集进行回归分析 1. import statsmodels.api as sm # df.loc[:, ...] 表示选择所有行。 # df.columns != mpg 创建一个布尔数组,指示哪些列不等于 mpg。 # df.loc[:, df.columns != mpg] 选择 df 中所有行和列名不等于 mpg 的所有列。 x =df.loc[:,df.columns!=m…

Windows中Git的使用(2024最新版)

Windows中Git的使用 获取ssh keys本地绑定邮箱初始化本地仓库添加到本地缓存区提交到本地缓存区切换本地分支为main关联远程分支推送到GitHub查看推送日志 Git 2020年发布了新的默认分支名称"main"&#xff0c;取代了"master"作为主分支的名称。操作有了些…

【TS】TypeScript 联合类型详解:解锁更灵活的类型系统

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 TypeScript 联合类型详解&#xff1a;解锁更灵活的类型系统一、联合类型的定义二…

2025深圳国际人工智能展览会

2025深圳国际人工智能展览会 Shenzhen International Artificial Intelligence Exhibition 2025 时间&#xff1a;2025年6月25-27日 地点&#xff1a;深圳国际会展中心&#xff08;宝安新馆&#xff09; 详询主办方陆先生 I38&#xff08;前三位&#xff09; I82I&#…

Docker 安装迅雷NAS

一、前言 在本文之前&#xff0c;博主在家用服务器 CentOS 上使用的下载方案是 Aria2 和其前端面板 Ariang. 所下载的资源大多数是 BT 资源&#xff0c;奈何 Aria2 对 BT 资源的下载速度实在堪忧&#xff0c;配置 BT 服务器效果不佳且费时。每次都将 BT 资源云添加至迅雷云盘&…