基于微信小程序的博物馆预约系统的设计与实现
hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
🦁作者简介:一名喜欢分享和记录学习的在校大学生
💥个人主页:code袁的博客
💥 个人QQ:2647996100
🐯 个人wechat:code8896
code袁系列专栏导航
1.《毕业设计与课程设计》本专栏分享一些毕业设计的源码以及项目成果。🥰🥰🥰
2.《微信小程序开发》本专栏从基础到入门的一系开发流程,并且分享了自己在开发中遇到的一系列问题。🤹🤹🤹
3.《vue开发系列全程线路》本专栏分享自己的vue的学习历程。非常期待和您一起在这个小小的互联网世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
文章目录
- 1.前言介绍
- 2.功能设计
- 3、功能实现
- 4、开发技术简介
- 5、系统物理架构
- 6、库表设计
- 7、关键代码
- 相关选题
- 8、源码获取
博物馆预约小程序
1.前言介绍
一、 行业背景
政策利好: 近年来,国家大力推动文化产业发展,鼓励博物馆、美术馆等文化场馆免费开放,并积极推进“互联网+文化”战略,为博物馆数字化发展提供了政策支持。
市场需求: 随着人们生活水平的提高和精神文化需求的增长,参观博物馆、美术馆等文化场馆逐渐成为一种新的生活方式。然而,传统的线下预约方式存在信息不对称、预约流程繁琐等问题,无法满足用户日益增长的便捷化需求。
技术发展: 移动互联网、大数据、人工智能等技术的快速发展,为博物馆数字化、智能化转型提供了技术支撑,也为博物预约小程序的开发和应用创造了条件。
二、 用户痛点
信息获取不便: 用户难以全面、及时地获取博物馆开放时间、展览信息、活动预告等信息。
预约流程繁琐: 传统的线下预约方式需要用户亲自到馆或拨打电话,流程繁琐,效率低下。
参观体验不佳: 高峰期排队时间长,观展体验差;缺乏个性化的导览服务,难以深入了解展品背后的故事。
三、 小程序优势
便捷高效: 用户可通过小程序随时随地查询博物馆信息、预约参观时间,无需排队,节省时间。
信息全面: 小程序可整合博物馆的开放时间、展览信息、活动预告、交通指南等信息,为用户提供一站式服务。
功能丰富: 除了预约功能,小程序还可以提供在线购票、语音导览、AR互动、文创商城等功能,提升用户参观体验。
数据赋能: 小程序可以收集用户行为数据,为博物馆运营决策提供数据支持,例如优化展览内容、调整开放时间等。
四、 发展趋势
个性化服务: 利用大数据和人工智能技术,为用户提供个性化的展览推荐、路线规划等服务。
线上线下融合: 将线上预约与线下参观体验深度融合,例如线上预约线下取票、线上导览线下互动等。
跨界合作: 与旅游、教育、文创等产业进行跨界合作,打造多元化的文化消费场景。
2.功能设计
一、用户端
场馆展示:展示各个博物馆的高清图片、基本介绍、特色展览等信息,使用户快速了解场馆概况。
预约功能:用户可选择参观日期、时间段,输入参观人数进行预约,系统实时显示剩余可预约名额。
个人中心:用户能查看个人信息、预约记录、收藏的场馆等内容,也可对预约进行取消或改签操作。
推送通知:预约成功、临近参观日期、展览变更等信息,通过小程序推送及时告知用户。
评价与反馈:参观结束后,用户可对场馆服务、展览内容等进行评价和反馈,方便场馆改进优化。
二、管理端
预约管理:查看所有预约信息,包括预约用户、时间、人数等,可进行订单审核、修改和删除。
场馆管理:对场馆的基本信息、展览安排、开放时间等进行更新和维护。
数据分析:统计预约数据,如不同时间段预约人数、热门展览等,为场馆运营提供数据支持。
系统设置:设置小程序的基本参数、推送通知内容等,保障小程序正常运行。
3、功能实现
系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。下图就是管理员登录页面。
小程端部分页面展示
4、开发技术简介
本节介绍场馆预约平台用到的一些技术和开发环境的简介,用到开发技术主要包括:
(1)前端用到Element UI组件库和Vue框架
(2)后端用到Node
(3)包管理器Npm
(4)中间件Express
(5)数据库MySQL
系统开发环境主要是:前端开发工具Vscode,Hbuilder、操作系统Win10、CPU i5-9300H、内存8G。
5、系统物理架构
自习室系统的物理架构主要有:管理端和用户端,其中管理端主要是基于Vue和Element UI,用户端主要基于安卓、微信小程序和H5自习室系统的物理建构图
1. 客户端:
微信小程序: 用户通过微信小程序访问博物预约服务,小程序运行在用户的微信客户端上。
Web 端 (可选): 部分功能可以通过 Web 端实现,例如后台管理系统。
2. 网络层:
CDN (内容分发网络): 用于加速静态资源的访问,例如图片、视频等。
负载均衡: 用于将用户请求分发到不同的应用服务器,避免单点故障。
3. 应用层:
API 网关: 负责接收和处理来自客户端的请求,并进行身份验证、流量控制等操作。
应用服务器: 运行小程序的后端服务,处理业务逻辑,例如用户管理、预约管理、订单管理等。
缓存服务器: 用于缓存热点数据,例如博物馆信息、展览信息等,提高系统性能。
6、库表设计
7、关键代码
<!--pages/reservation/reservation.wxml-->
<!-- index.wxml -->
<view class="nav-bar"><viewclass="nav-item {{currentTab === index ? 'active' : ''}}"wx:for="{{tabs}}"wx:key="index"bindtap="switchTab"data-index="{{index}}">{{item.name}}</view>
</view>
<!-- 内容区域 -->
<view class="content"><view wx:if="{{currentTab === 0}}" class="top" wx:for="{{list}}" bind:tap="goReservation" data-value="{{item}}"><view><view class="data">参观日期:{{item.data}}</view><view class="time">参观时间:{{item.time}}</view><view class="peopleNum">参观人数:{{item.peopleNum}}</view></view><view wx:if="{{item.iscancle==0}}"><image src="../image/index/iconsuccess.png" mode=""/></view><view wx:else><image src="../image/index/fail.png" mode=""/></view></view><view wx:if="{{currentTab === 1}}" class="top" wx:for="{{activeList}}" bind:tap="goReservation" data-value="{{item}}"><view class="img"><image src="{{item.AimgUrl}}" mode=""/></view><view><view class="title">活动名称:{{item.title}}</view><view class="time">活动地点:{{item.address}}</view><view class="peopleNum">开始时间:{{item.startTime}}</view></view></view>
</view>
<template><div class="messge"><el-dialog title="提示" :visible.sync="dialogVisible" width="40%"><!-- 弹窗信息 --><el-formref="form":model="form":rules="rules":inline="true":before-close="handleClose"label-width="100px"><el-form-item label="名称" prop="title"><el-input v-model="form.title" placeholder="请输入名称"></el-input></el-form-item><el-form-item label="地点" prop="address"><el-input v-model="form.address" placeholder="请输入名称"></el-input></el-form-item><el-form-item label="时间" prop="startTime"><el-date-pickerv-model="form.startTime"type="date"placeholder="选择日期"></el-date-picker></el-form-item><el-form-item label="名额" prop="number"><el-input-numberv-model="value"@change="handleChange":min="1":max="50"label="描述文字"></el-input-number></el-form-item><el-form-item label="年龄" prop="number"><el-select v-model="yearvalue" placeholder="请选择"><el-optionv-for="item in options1":key="item.value":label="item.label":value="item.value"></el-option></el-select></el-form-item><el-form-item label="简介" class="content" prop="desc"><quill-editorref="myQuillEditor"v-model="form.desc"class="editor"/></el-form-item><el-form-item label="详情" class="content" prop="detail"><quill-editorref="myQuillEditor"v-model="form.detail"class="editor"/></el-form-item><el-form-item label="图片"><commonUpload></commonUpload></el-form-item></el-form><!-- 表单提交 --><span slot="footer" class="dialog-footer"><el-button @click="cancle">取 消</el-button><el-button type="primary" @click="submit">确 定</el-button></span></el-dialog><div class="manage-hander"><!-- 添加按钮 --><el-button type="primary" @click="handleAdd">+ 新增</el-button></div><!-- 表格 --><div class="common-table"><el-table:data="tableData"borderstripeheight="90%"style="width: 100%"><el-table-column prop="title" label="活动名称"> </el-table-column><el-table-column prop="address" label="地址"> </el-table-column><el-table-column prop="startTime" label="开始时间"> </el-table-column><el-table-column prop="number" label="人员名额"> </el-table-column><el-table-column prop="desc" label="简介"><template slot-scope="scope"><el-tooltip placement="top" effect="light"><div slot="content"><div class="text" v-html="scope.row.desc"></div></div><div class="text" v-html="scope.row.desc"></div></el-tooltip></template></el-table-column><el-table-column prop="detail" label="详情"><template slot-scope="scope"><el-tooltip placement="top" effect="light"><div slot="content"><div class="text" v-html="scope.row.detail"></div></div><div class="text" v-html="scope.row.detail"></div></el-tooltip></template></el-table-column><el-table-column label="状态" prop="isStart"><template slot-scope="scope"><span v-for="item in options" :key="item.id"><span v-if="scope.row.isStart === item.id">{{ item.name }}</span></span></template></el-table-column><el-table-column prop="imgUrl" label="图片"><template slot-scope="scope"><el-imagestyle="width: 150px; height: 100px":src="scope.row.AimgUrl":preview-src-list="[scope.row.AimgUrl]"></el-image></template></el-table-column><el-table-column prop="uploadTime" label="发布时间"> </el-table-column><el-table-column prop="addr" label="操作"><template slot-scope="scope"><el-buttontype="primary "size="mini"@click="handleOver(scope.row)">结束活动</el-button><el-buttontype="danger"size="mini"@click="handleDelete(scope.row)">删除</el-button></template></el-table-column></el-table><!-- 分页组件 --><el-paginationclass="page"layout="prev, pager, next":total="total"@current-change="handlePage"></el-pagination></div></div>
</template><script>
const moment = require("moment");
import commonUpload from "@/components/commonUpload.vue";
import { addActive, getActive, updateActive } from "@/api/index";
import {deleteUser,addCulture,getCulture,searchUser,getUser,privalUser,updateUser,
} from "@/api/index";
export default {name: "User",data() {return {dialogVisible: false,// 表单字段form: {title: "",desc: "",address: "",detail: "",startTime: "",price: " ",uploadTime: "",number: "",AimgUrl: "",isStart: " ",year: "",},value: 1,// 表單校驗rules: {address: [{ required: true, message: "请输入地址" }],title: [{ required: true, message: "请输入名称" }],desc: [{ required: true, message: "请输入简介" }],detail: [{ required: true, message: "请输入详情" }],},options1: [{value: "0",label: "6-12",},{value: "1",label: "18+",},{value: "2",label: "无限制",},],yearvalue: "",options: [{id: "0",name: "未开始",},{id: "1",name: "已结束",},],// 表单数据tableData: [],total: 0, //页面的总条数modelType: 0, //0表示是新增的弹窗 ,1表示的是编辑userFrom: {username: "",},};},components: {commonUpload,},methods: {// 提交submit() {if (this.modelType == 0) {this.$refs.form.validate((value) => {// 校验为真if (value) {this.form.year = this.options[this.yearvalue].label;this.form.AimgUrl = this.$store.state.upload.imgUrl;this.form.uploadTime = moment().format("YYYY-MM-DD");addActive(this.form).then((res) => {this.$message.success("添加成功");});this.$refs.form.resetFields();this.dialogVisible = false;this.getList();}});} else {this.$refs.form.validate((value) => {// 校验为真if (value) {console.log("value", this.form);updateUser(this.form).then((res) => {// console.log(res);this.$message.success("修改成功");});this.$refs.form.resetFields();this.dialogVisible = false;}});}this.getList();},handleChange(value) {console.log(value);this.form.number = value;},handleOver(e) {let data = {id: e.id,isStart: "1",};// let id = res.id;this.$confirm("确定要结束活动吗?", "提示", {confirmButtonText: "确定",cancelButtonText: "取消",type: "warning",}).then((res) => {updateActive(data).then((res1) => {console.log(res1);this.$message.success(res1.data.msg);this.getList();});});},// 关闭弹窗handleClose() {this.$refs.form.resetFields();this.dialogVisible = false;this.form = {};},// 点击取消按钮cancle() {this.handleClose();},// 表单的编辑handleEdit(res) {this.modelType = 1;this.dialogVisible = true;// 注意到对当前的数据进行深度拷贝this.form = JSON.parse(JSON.stringify(res));console.log(this.form);},//表单的删除handleDelete(res) {// let id = res.id;this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {confirmButtonText: "确定",cancelButtonText: "取消",type: "warning",}).then(() => {// 调用删除接口var that = this;deleteUser(res).then((res) => {that.$message({type: "success",message: res.data.data.msg,});});this.getList();}).catch(() => {this.$message({type: "info",message: "已取消删除",});});},// 新增数handleAdd() {(this.modelType = 0), (this.dialogVisible = true);this.form = {};},// 查询数据handleSearch() {searchUser(this.userFrom).then((res) => {console.log(res.data.data);this.tableData = res.data.data.data;// this.getList();});},//分页handlePage(val) {console.log(val);},// 获取数据getList() {getActive().then((res) => {this.tableData = res.data.data;});},},// 挂载mounted() {this.getList();},
};
</script><style lang="less">
.messge {height: 90%;.common-table {position: relative;height: calc(100% - 62px);.page {position: absolute;bottom: 0;right: 20px;}}.text {overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 3;-webkit-box-orient: vertical;}.content {margin-left: 40px;display: flex;}.editor {width: 95%;}.manage-hander {display: flex;justify-content: space-between;align-items: center;}
}
.el-table .cell {img {height: 50rpx;}
}
</style>
相关选题
1.基于微信小程序的图书馆预约系统的设计与实现
2.基于微信小程序的实验室预约系统的设计与开发
3.基于微信小程序的番茄时钟的设计与实现(课设&毕设)
4.基于微信小程序的自习室预约系统的设计与实现
5.基于Uni-app的体育场馆预约系统的设计与实现
6.基于微信小程序的在线答题小程序设计与实现
7.基于微信小程序的医院预约挂号系统的设计与实现
8、源码获取
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻
相关文章:

基于微信小程序的博物馆预约系统的设计与实现
hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的在校大学生…...

使用NPOI自定义导出excel文件
说明 1、自定义列名,将从数据库查询到的数据赋值到对应的单元格上。 2、excel文件默认导出到桌面。 3、支持进度条显示。 界面 功能实现 public void TaskTest(){Task task new Task(ExportExcel);task.Start(); }/// <summary>/// 查询数据/// </summa…...

基于vue2 的 vueDraggable 示例,包括组件区、组件放置区、组件参数设置区 在同一个文件中实现
为了在Vue 2中实现一个包含组件区、组件放置区以及组件参数设置区的界面,我们可以使用vue-draggable库来处理拖拽功能,并结合其他UI组件库如Element UI来构建界面。下面是一个基本的示例,展示如何实现这样的布局。 第一步:安装必…...

使用rknn进行facenet部署
文章目录 开源仓库pth转onnxnetron可视化onnx转rknnC++实现开源仓库 https://github.com/bubbliiiing/facenet-pytorch pth转onnx 修改facenet网络的forward函数代码 修改前 def forward(self, x, mode = "predict"):if mode ==...

#渗透测试#批量漏洞挖掘#29网课交单平台 SQL注入
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。 目录 1. 漏洞原理 2. 漏洞定位 3. 攻击验证示…...

百问网imx6ullpro调试记录(linux+qt)
调试记录 文章目录 调试记录进展1.开发板相关1.1百问网乌班图密码 1.2 换设备开发环境搭建串口调试网络互通nfs文件系统挂载 1.3网络问题1.4系统启动1.5进程操作 2.QT2.1tslib1.获取源码2.安装依赖文件3.编译 2.2qt移植1.获取qt源码2.配置编译器3.编译 2.3拷贝到开发板1.拷贝2.…...

【python】3_容器
目录 一、列表 list 1.1基本语法 1.2 常用操作方法 1.3 列表的遍历 二、元组 tuple 特点: 三、字符串 常用操作方法: 四、序列 操作方法:切片 五、元素 特点: 基本语法: 集合常用功能: 六、字…...

数据结构与算法:动态规划dp:背包问题:理论基础(状态压缩/滚动数组)和相关力扣题(416. 分割等和子集、1049.最后一块石头的重量Ⅱ、494.目标和)
背包问题 01背包理论基础 对于01背包问题,物品下标为0到i,对应的重量为weight[0]到weight[i],价值为value[0]到value[i],每个物品只可以取或不取,背包最大容量为j的场景。 常见的状态转移方程如下: dp[i…...

数字游牧时代:IT人力外包的范式革命与文明重构
当英国工业革命时期的企业主们将生产环节外包给家庭作坊时,他们不会想到这种生产组织方式会演变为21世纪最复杂的商业形态。IT人力外包行业在经历三十年爆炸式增长后,正在经历一场静默的范式革命。这场革命不仅重构着全球IT产业链的拓扑结构,…...

Qt - 地图相关 —— 3、Qt调用高德在线地图功能示例(附源码)
效果 作者其他相关文章链接: Qt - 地图相关 —— 1、加载百度在线地图(附源码) Qt - 地图相关 —— 2、Qt调用百度在线地图功能示例全集,包含线路规划、地铁线路查询等(附源码) Qt - 地图相关 —— 3、Qt调用…...

cloudberry测试
一、引言 在当今大数据和 AI 飞速发展的时代,数据如同企业的核心资产,其价值不言而喻。数据库作为数据存储、管理和处理的关键工具,更是成为了各个领域的技术基石。无论是金融行业的交易记录处理,还是医疗领域的患者信息管理&…...

RocketMQ、RabbitMQ、Kafka 的底层实现、功能异同、应用场景及技术选型分析
1️⃣ 引言 在现代分布式系统架构中,📩消息队列(MQ)是不可或缺的组件。它在系统🔗解耦、📉流量削峰、⏳异步处理等方面发挥着重要作用。目前,主流的消息队列系统包括 🚀RocketMQ、&…...

UWB功耗大数据插桩调研
一、摘要 UWB功耗点 插桩点 日志关键字 电流 蓝牙持锁 BatteryStats的锁统计 vendor_bluetooth_lock 30~40mA 测距 UwbSessionManager.startRanging UwbSessionManager.stoptRanging 或接入fadiKey Uwb状态广播 "com.fadiui.dkservice.action.uwb.state.change&q…...

郭羽冲IOI2024参赛总结
非常荣幸能代表中国参加第 36 36 36 届国际信息学奥林匹克竞赛( I O I 2024 IOI2024 IOI2024)。感谢 C C F CCF CCF 为我们提供竞赛的平台,感谢随行的老师们一路上为我们提供的帮助与支持。 在每场比赛的前一个晚上,领队、副领…...

03:Spring之Web
一:Spring整合web环境 1:web的三大组件 Servlet:核心组件,负责处理请求和生成响应。 Filter:用于请求和响应的预处理和后处理,增强功能。 Listener:用于监听 Web 应用中的事件,实…...

lx-music落雪音乐-开源免费听歌软件[提供最新音源使用, 支持全网平台, 支持无损音乐下载]
lx-music_落雪音乐 链接:https://pan.xunlei.com/s/VOIpEt1xqf0un-vEQilidhjIA1?pwdgcux#...

129,【2】buuctf [BJDCTF2020]EzPHP
进入靶场 查看源代码 看到红框就知道对了 她下面那句话是编码后的,解码 1nD3x.php <?php // 高亮显示当前 PHP 文件的源代码,通常用于调试和展示代码结构 highlight_file(__FILE__); // 设置错误报告级别为 0,即不显示任何 PHP 错误信息…...

Python 面向对象(类,对象,方法,属性,魔术方法)
前言:在讲面向对象之前,我们先将面向过程和面向对象进行一个简单的分析比较,这样我们可以更好的理解与区分,然后我们在详细的讲解面向对象的优势。 面向过程(Procedure-Oriented Programming,POP࿰…...

C语言之扫雷
C语言之扫雷 game.hgame.ctest.c 参考 https://blog.csdn.net/m0_62391199/article/details/124694375 game.h #pragma once #include <stdio.h> #include <time.h> #include <stdlib.h>#define ROW 9 #define COL 9#define ROWS ROW2 #define COLS COL2#de…...

半导体制造工艺讲解
目录 一、半导体制造工艺的概述 二、单晶硅片的制造 1.单晶硅的制造 2.晶棒的切割、研磨 3.晶棒的切片、倒角和打磨 4.晶圆的检测和清洗 三、晶圆制造 1.氧化与涂胶 2.光刻与显影 3.刻蚀与脱胶 4.掺杂与退火 5.薄膜沉积、金属化和晶圆减薄 6.MOSFET在晶圆表面的形…...

Ollama+DeepSeek R1+AnythingLLM训练自己的AI智能助手
1.下载Ollama安装 1.1.安装Ollama Ollama官网:Ollama 下载Ollama,点击“Download”按钮。 根据电脑操作系统,下载合适的版本即可。 下载完成后点击安装,完成后安装窗口会自动关闭,你的系统托盘图标会出现一个Ollama图标。 1.2.…...

基于java手机销售网站设计和实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

5-R循环
R 循环 有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 编程语言提供了更为复杂执行路径的多种控制结构。 循环语句允许我们多…...

Qlabel 每五个一换行 并、号分割
学习点 Qlabel 每五个一换行 并、号分割 QString MainWindow::formatHobbies(const std::set<QString>& hobbies) {QString formattedHobbies;int count 0;for (const QString& hobby : hobbies) {if (count > 0 && count % 5 0)formattedHobbies…...

加速PyTorch模型训练:自动混合精度(AMP)
在深度学习领域,模型训练的速度和效率尤为重要。为了提升训练速度并减少显存占用(较复杂的模型中),PyTorch自1.6版本起引入了自动混合精度(Automatic Mixed Precision, AMP)功能。 AMP简单介绍 是一种训练…...

【py】python安装教程(Windows系统,python3.13.2版本为例)
1.下载地址 官网:https://www.python.org/ 官网下载地址:https://www.python.org/downloads/ 2.64版本或者32位选择 【Stable Releases】:稳定发布版本,指的是已经测试过的版本,相对稳定。 【Pre-releases】&#…...

Django REST Framework:如何获取序列化后的ID
Django REST Framework:如何获取序列化后的ID 😄 嗨,小伙伴们!今天我们来聊一聊Django REST Framework(简称DRF)中一个非常常见的操作:如何获取序列化后的ID。对于那些刚入门的朋友们ÿ…...

QT修仙笔记 事件大圆满 闹钟大成
学习笔记 牛客刷题 闹钟 时钟显示 通过 QTimer 每秒更新一次 QLCDNumber 显示的当前时间,格式为 hh:mm:ss,实现实时时钟显示。 闹钟设置 使用 QDateTimeEdit 让用户设置闹钟时间,可通过日历选择日期,设置范围为当前时间到未来 …...

Leetcode - 149双周赛
目录 一、3438. 找到字符串中合法的相邻数字二、3439. 重新安排会议得到最多空余时间 I三、3440. 重新安排会议得到最多空余时间 II四、3441. 变成好标题的最少代价 一、3438. 找到字符串中合法的相邻数字 题目链接 本题有两个条件: 相邻数字互不相同两个数字的的…...

解决 ComfyUI-Impact-Pack 中缺少 UltralyticsDetectorProvider 节点的问题
解决 ComfyUI-Impact-Pack 中缺少 UltralyticsDetectorProvider 节点的问题 1. 安装ComfyUI-Impact-Pack 首先确保ComfyUI-Impact-Pack 已经下载 地址: https://github.com/ltdrdata/ComfyUI-Impact-Pack 2. 安装ComfyUI-Impact-Subpack 由于新版本的Impact Pack 不再提供这…...