微信小程序+Springboot实现宠物医院管理系统

简介: 本项目基于微信小程序开发实现了宠物医院管理系统的前端页面,基于Springboot+Mybatis实现了宠物医院管理系统的后台系统,采用前后端分离开发的模式来开发实现。功能齐全,操作简洁,技术性完整,页面简洁大方。其中后台管理模块主要包含有: 资料管理:个人资料管理、宠物资料管理、公告管理、医院资料管理、职工资料管理、住院资料管理、病历资料管理 预约管理:挂号预约、洗美预约、挂号预约、洗美预约 记录管理:诊断记录、洗美记录、支付记录 登陆、退出、个人信息修改、修改密码等功能前端主要包含的功能模块有: 用户在线预约挂号等 查看医院公告信息

作者主页:编程千纸鹤

作者简介:Java、前端、Pythone开发多年,做过高程,项目经理,架构师

主要内容:Java项目开发、毕业设计开发、面试技术整理、最新技术分享

项目编号:BS-XCX-004
一,项目简介

在信息技术高速发展的今天,新知识、新技术层出不穷,计算机技术早已广泛的应用于各行各业之中,利用计算机的强大数据处理能力和辅助决策能力叫,实现行业管理的规范化、标准化、效率化。

管理信息系统(Management Information System,简称MIS〉是一个以人为主导,利用计算机软硬件技术以及网络通信技术,实现对信息的收集、传输、储存、更新。

目前,管理信息系统广泛采用WEB技术作为开发的主要技术。在经过多年的技术积累与更新,WEB技术已经从一种简单的信息浏览和信息交互平台发展为复杂的企业级应用。

目前宠物宠物医院一直以来都是使用传统的人工方式管理各种文件档案,对宠物诊疗等重要信息进行人工手写记录,工作效率低,且时间一长,将产生大量文件,这对于文件的查找、信息查询造成很多困难,存在着许多缺点。随着社区越来越多的家庭开始饲养宠物,宠物宠物医院管理方法落后的问题越来越明显,管理上面临的问题越来越突出。

为了能够方便宠物医院的管理,一套完善的管理机制是必不可少的,也是宠物医院提供良好服务质量的一个前提,而应用信息技术的现代化宠物宠物医院管理系统已成为宠物宠物医院运营必不可少的基础设施与技术支撑。

宠物宠物医院管理系统的应用,不仅可以实现将宠物宠物医院工作中的挂号业务、诊疗业务、收费业务、宠物住院业务、宠物美容业务等有机的结合起来;还可以通过建立宠物档案,帮助医生更好更及时的了解宠物病情,制定宠物治疗计划,满足宠物主人的治疗需求,同时宠物档案的建立也有利于宠物的防疫工作。除此之外,管理系统对用户权限划分,帮助宠物医院规范化工作流程,提高工作效率,全面提高宠物宠物医院的管理水平。

因此如何利用计算机技术实现宠物宠物医院信息化管理是一个值得研究的问题。基于这个背景,本组决定开发一套适合宠物宠物医院的信息管理系统。

本项目基于微信小程序开发实现了宠物医院管理系统的前端页面,基于Springboot+Mybatis实现了宠物医院管理系统的后台系统,采用前后端分离开发的模式来开发实现。功能齐全,操作简洁,技术性完整,页面简洁大方。其中后台管理模块主要包含有:

资料管理:个人资料管理、宠物资料管理、公告管理、医院资料管理、职工资料管理、住院资料管理、病历资料管理
预约管理:挂号预约、洗美预约、挂号预约、洗美预约
记录管理:诊断记录、洗美记录、支付记录
登陆、退出、个人信息修改、修改密码等功能

前端主要包含的功能模块有:

用户在线预约挂号等
查看医院公告信息
查看宠物病历信息、查看预约信息、查看我的消息、查看我的资料、查看宠物资料等

二,环境介绍

语言环境:Java: jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat: tomcat8.5.31

开发工具:IDEA或eclipse

后台开发技术:Springboot+Mybatis+Mybatis-plus+Shiro

前端开发技术:微信小程序

三,系统展示

后端管理功能展示:

用户登陆

资料管理模块

预约管理相关模块

记录管理

个人资料管理

微信小程序前端

微信前端登陆

门诊预约

四,核心代码展示

package com.example.bus.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**

  • 业务管理的路由器
  • @author ZNZ

*
*/
@Controller
@RequestMapping("/bus")
public class BusinessController {

/**
 * 跳转到客户管理
 */
@RequestMapping("toCustomerManager")
public String toCustomerManager() {
    return "business/customer/customerManager";
}
/**
 * 跳转到供应商管理
 */
@RequestMapping("toProviderManager")
public String toProviderManager() {
    return "business/provider/providerManager";
}
/**
 * 跳转到商品管理
 */
@RequestMapping("toGoodsManager")
public String toGoodsManager() {
    return "business/goods/goodsManager";
}
/**
 * 跳转到进货管理
 */
@RequestMapping("toInportManager")
public String toInportManager() {
    return "business/inport/inportManager";
}
/**
 * 跳转到退货查询管理
 */
@RequestMapping("toOutportManager")
public String toOutportManager() {
    return "business/outport/outportManager";
}

/**
 * 跳转到宠物资料管理
 *
 * @return
 */
@RequestMapping("toPetInfoManager")
public String toPetInfoManager() {
    return "business/pet/petManager";
}

}

package com.example.bus.controller;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.bus.domain.Customer;
import com.example.bus.service.CustomerService;
import com.example.bus.vo.CustomerVo;
import com.example.sys.common.DataGridView;
import com.example.sys.common.ResultObj;

@RestController
@RequestMapping("/customer")
public class CustomerController {

@Autowired
private CustomerService customerService;

/**
 * 查询
 */
@RequestMapping("loadAllCustomer")
public DataGridView loadAllCustomer(CustomerVo customerVo) {
    IPage<Customer> page = new Page<>(customerVo.getPage(), customerVo.getLimit());
    QueryWrapper<Customer> queryWrapper = new QueryWrapper<>();
    queryWrapper.like(StringUtils.isNotBlank(customerVo.getCustomername()), "customername",
            customerVo.getCustomername());
    queryWrapper.like(StringUtils.isNotBlank(customerVo.getPhone()), "phone", customerVo.getPhone());
    queryWrapper.like(StringUtils.isNotBlank(customerVo.getConnectionperson()), "connectionperson",
            customerVo.getConnectionperson());
    this.customerService.page(page, queryWrapper);
    return new DataGridView(page.getTotal(), page.getRecords());
}

/**
 * 添加
 */
@RequestMapping("addCustomer")
public ResultObj addCustomer(CustomerVo customerVo) {
    try {
        this.customerService.save(customerVo);
        return ResultObj.ADD_SUCCESS;
    } catch (Exception e) {
        e.printStackTrace();
        return ResultObj.ADD_ERROR;
    }
}

/**
 * 修改
 */
@RequestMapping("updateCustomer")
public ResultObj updateCustomer(CustomerVo customerVo) {
    try {
        this.customerService.updateById(customerVo);
        return ResultObj.UPDATE_SUCCESS;
    } catch (Exception e) {
        e.printStackTrace();
        return ResultObj.UPDATE_ERROR;
    }
}

/**
 * 删除
 */
@RequestMapping("deleteCustomer")
public ResultObj deleteCustomer(Integer id) {
    try {
        this.customerService.removeById(id);
        return ResultObj.DELETE_SUCCESS;
    } catch (Exception e) {
        e.printStackTrace();
        return ResultObj.DELETE_ERROR;
    }
}

/**
 * 批量删除
 */
@RequestMapping("batchDeleteCustomer")
public ResultObj batchDeleteCustomer(CustomerVo customerVo) {
    try {
        Collection<Serializable> idList = new ArrayList<Serializable>();
        for (Integer id : customerVo.getIds()) {
            idList.add(id);
        }
        this.customerService.removeByIds(idList);
        return ResultObj.DELETE_SUCCESS;
    } catch (Exception e) {
        e.printStackTrace();
        return ResultObj.DELETE_ERROR;
    }
}

}

package com.example.bus.controller;

import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.bus.domain.Goods;
import com.example.bus.domain.Provider;
import com.example.bus.service.GoodsService;
import com.example.bus.service.ProviderService;
import com.example.bus.vo.GoodsVo;
import com.example.sys.common.AppFileUtils;
import com.example.sys.common.Constant;
import com.example.sys.common.DataGridView;
import com.example.sys.common.ResultObj;

@RestController
@RequestMapping("/goods")
public class GoodsController {

@Autowired
private GoodsService goodsService;

@Autowired
private ProviderService providerService;

/**
 * 查询
 */
@RequestMapping("loadAllGoods")
public DataGridView loadAllGoods(GoodsVo goodsVo) {
    IPage<Goods> page = new Page<>(goodsVo.getPage(), goodsVo.getLimit());
    QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq(goodsVo.getProviderid() != null && goodsVo.getProviderid() != 0, "providerid", goodsVo.getProviderid());
    queryWrapper.like(StringUtils.isNotBlank(goodsVo.getGoodsname()), "goodsname", goodsVo.getGoodsname());
    queryWrapper.like(StringUtils.isNotBlank(goodsVo.getProductcode()), "productcode", goodsVo.getProductcode());
    queryWrapper.like(StringUtils.isNotBlank(goodsVo.getPromitcode()), "promitcode", goodsVo.getPromitcode());
    queryWrapper.like(StringUtils.isNotBlank(goodsVo.getDescription()), "description", goodsVo.getDescription());
    queryWrapper.like(StringUtils.isNotBlank(goodsVo.getSize()), "size", goodsVo.getSize());
    this.goodsService.page(page, queryWrapper);
    List<Goods> records = page.getRecords();
    for (Goods goods : records) {
        Provider provider = this.providerService.getById(goods.getProviderid());
        if (null != provider) {
            goods.setProvidername(provider.getProvidername());
        }
    }
    return new DataGridView(page.getTotal(), records);
}

/**
 * 添加
 */
@RequestMapping("addGoods")
public ResultObj addGoods(GoodsVo goodsVo) {
    try {
        if (goodsVo.getGoodsimg() != null && goodsVo.getGoodsimg().endsWith("_temp")) {
            String newName = AppFileUtils.renameFile(goodsVo.getGoodsimg());
            goodsVo.setGoodsimg(newName);
        }
        this.goodsService.save(goodsVo);
        return ResultObj.ADD_SUCCESS;
    } catch (Exception e) {
        e.printStackTrace();
        return ResultObj.ADD_ERROR;
    }
}

/**
 * 修改
 */
@RequestMapping("updateGoods")
public ResultObj updateGoods(GoodsVo goodsVo) {
    try {
        //说明是不默认图片
        if (!(goodsVo.getGoodsimg() != null && goodsVo.getGoodsimg().equals(Constant.IMAGES_DEFAULTGOODSIMG_PNG))) {
            if (goodsVo.getGoodsimg().endsWith("_temp")) {
                String newName = AppFileUtils.renameFile(goodsVo.getGoodsimg());
                goodsVo.setGoodsimg(newName);
                //删除原先的图片
                String oldPath = this.goodsService.getById(goodsVo.getId()).getGoodsimg();
                AppFileUtils.removeFileByPath(oldPath);
            }
        }
        this.goodsService.updateById(goodsVo);
        return ResultObj.UPDATE_SUCCESS;
    } catch (Exception e) {
        e.printStackTrace();
        return ResultObj.UPDATE_ERROR;
    }
}

/**
 * 删除
 */
@RequestMapping("deleteGoods")
public ResultObj deleteGoods(Integer id, String goodsimg) {
    try {
        //删除原文件
        AppFileUtils.removeFileByPath(goodsimg);
        this.goodsService.removeById(id);
        return ResultObj.DELETE_SUCCESS;
    } catch (Exception e) {
        e.printStackTrace();
        return ResultObj.DELETE_ERROR;
    }
}

/**
 * 加载所有可用的供应商
 */
@RequestMapping("loadAllGoodsForSelect")
public DataGridView loadAllGoodsForSelect() {
    QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("available", Constant.AVAILABLE_TRUE);
    List<Goods> list = this.goodsService.list(queryWrapper);
    for (Goods goods : list) {
        Provider provider = this.providerService.getById(goods.getProviderid());
        if (null != provider) {
            goods.setProvidername(provider.getProvidername());
        }
    }
    return new DataGridView(list);
}

/**
 * 根据供应商ID查询商品信息
 */
@RequestMapping("loadGoodsByProviderId")
public DataGridView loadGoodsByProviderId(Integer providerid) {
    QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("available", Constant.AVAILABLE_TRUE);
    queryWrapper.eq(providerid != null, "providerid", providerid);
    List<Goods> list = this.goodsService.list(queryWrapper);
    for (Goods goods : list) {
        Provider provider = this.providerService.getById(goods.getProviderid());
        if (null != provider) {
            goods.setProvidername(provider.getProvidername());
        }
    }
    return new DataGridView(list);
}

}

package com.example.bus.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.bus.domain.Goods;
import com.example.bus.domain.Inport;
import com.example.bus.domain.Pet;
import com.example.bus.domain.Provider;
import com.example.bus.service.PetService;
import com.example.bus.vo.PetVo;
import com.example.bus.vo.PetVo;
import com.example.sys.common.Constant;
import com.example.sys.common.DataGridView;
import com.example.sys.common.ResultObj;
import com.example.sys.common.WebUtils;
import com.example.sys.domain.User;
import com.example.sys.service.UserService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

@RestController
@RequestMapping("/pet")
public class PetController {

@Autowired
private PetService petService;

@Autowired
private UserService userService;

@RequestMapping("loadAllPet")
public DataGridView loadAllPet(PetVo petVo) {
    IPage<Pet> page = new Page<>(petVo.getPage(), petVo.getLimit());
    QueryWrapper<Pet> queryWrapper = new QueryWrapper<>();
    queryWrapper.like(StringUtils.isNotBlank(petVo.getName()), "name", petVo.getName());
    queryWrapper.eq(null != petVo.getPetType(), "type", null != petVo.getPetType());
    this.petService.page(page, queryWrapper);
    List<Pet> records = page.getRecords();
    for (Pet pet : records) {
        User owner = this.userService.getById(pet.getOwnerId());
        StringBuilder builder = new StringBuilder();
        String fullAddress = builder.append(pet.getProvince()).append(pet.getCity())
                .append(pet.getCounty()).append(pet.getDetailAddress()).toString();

        pet.setFullAddress(fullAddress);
        if (null != owner) {
            pet.setOwnerName(owner.getName());
            pet.setOwnerSex(owner.getSex());
            pet.setPhone(owner.getPhone());
        }
    }
    return new DataGridView(page.getTotal(), records);
}

@RequestMapping("addPet")
public ResultObj addPet(PetVo petVo) {
    try {
        this.petService.save(petVo);
        return ResultObj.ADD_SUCCESS;
    } catch (Exception e) {
        e.printStackTrace();
        return ResultObj.ADD_ERROR;
    }
}

/**
 * 修改
 */
@RequestMapping("updatePet")
public ResultObj updatePet(PetVo petVo) {
    try {
        this.petService.updateById(petVo);
        return ResultObj.UPDATE_SUCCESS;
    } catch (Exception e) {
        e.printStackTrace();
        return ResultObj.UPDATE_ERROR;
    }
}

/**
 * 删除
 */
@RequestMapping("deletePet")
public ResultObj deletePet(Integer id) {
    try {
        this.petService.removeById(id);
        return ResultObj.DELETE_SUCCESS;
    } catch (Exception e) {
        e.printStackTrace();
        return ResultObj.DELETE_ERROR;
    }
}

/**
 * 批量删除
 */
@RequestMapping("batchDeletePet")
public ResultObj batchDeletePet(PetVo petVo) {
    try {
        Collection<Serializable> idList = new ArrayList<Serializable>();
        for (Integer id : petVo.getIds()) {
            idList.add(id);
        }
        this.petService.removeByIds(idList);
        return ResultObj.DELETE_SUCCESS;
    } catch (Exception e) {
        e.printStackTrace();
        return ResultObj.DELETE_ERROR;
    }
}

@RequestMapping("loadAllPetForSelect")
public DataGridView loadAllPetForSelect() {
    QueryWrapper<Pet> queryWrapper = new QueryWrapper<>();
    List<Pet> list = this.petService.list(queryWrapper);
    System.out.println(list);
    return new DataGridView(list);
}

@RequestMapping("loadAllPetByOwnerIdForSelect")
public DataGridView loadAllPetByOwnerIdForSelect() {
    QueryWrapper<Pet> queryWrapper = new QueryWrapper<>();
    User user = (User) WebUtils.getSession().getAttribute("user");
    queryWrapper.eq("owner_id",user.getId());
    List<Pet> list = this.petService.list(queryWrapper);
    System.out.println(list);
    return new DataGridView(list);
}

}

五,项目总结

随着经济的发展,人们生活水平不断地进步和提高,越来越多的家庭开始饲养宠物,与此同时,宠物的卫生、防疫、诊疗也得到了人们越来越多的关注,由此派生出的宠物宠物医院在发展上也越来越迅猛[l5]。

宠物宠物医院在欧美发达国家作为产业早已经形成了国民经济的一部分,由于欧美发达国家的信息化程度高,信息技术、各种研究成果较早的应用于各行各业,宠物宠物医院在管理上早已实现了信息化建设。

当前,信息化已成为全球发展的主题,世界各国对信息的需求快速增长,信息产品和信息服务广泛的应用于各个国家、地区、企业、单位、家庭、个人。

早在20世纪8O年代,发达国家就已经开始信息化建设的工作。目前,欧美发达国家早已为宠物建立了宠物电子档案,这对于宠物的防疫、卫生、安全等起到了重要的管理作用,同时各种新技术不断应用于宠物宠物医院的日常管理工作中,宠物宠物医院在管理上早己实现了规范化、标准化。

相对于欧美发达国家,我国信息化建设从20世纪90年代初开始,信息化程度还处于较低水平,且发展很不平衡,大部分宠物宠物医院的信息化建设还处于以划价收费为中心的信息管理系统,缺少其他业务的信息化管理,造成很多工作还停留在人工操作上,这就对当前宠物宠物医院的信息化管理造成了很多问题。

随着我国信息技术在宠物宠物医院行业应用程度的不断提高,东南沿海较发达城市已经实现了宠物宠物医院管理的信息化,但是并没有完全普遍,大部分欠发达地区,尤其是小型的社区宠物宠物医院,还是处于传统的管理方式。

虽然目前仍与欧美发达国家存在较大差距,但“十二五”规划,我国提出了信息化建设的“3521工程”,我国宠物宠物医院的信息化建设迎来了发展的好时机。

宠物宠物医院信息化建设的不断进行对宠物医疗卫生行业的发展具有重要的意义,既能提高宠物医院的服务质量,又能方便宠物医院的管理,更为重要的是对于保障宠物防疫、·卫生、安全具有重要意义。

相关文章
|
10天前
|
小程序 数据挖掘 UED
开发1个上门家政小程序APP系统,都有哪些功能?
在快节奏的现代生活中,家政服务已成为许多家庭的必需品。针对传统家政服务存在的问题,如服务质量不稳定、价格不透明等,我们历时两年开发了一套全新的上门家政系统。该系统通过完善信用体系、提供奖励机制、优化复购体验、多渠道推广和多样化盈利模式,解决了私单、复购、推广和盈利四大痛点,全面提升了服务质量和用户体验,旨在成为家政行业的领导者。
|
12天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
20天前
|
存储 传感器 小程序
跳绳计数小程序开发系统
首先,我们需要明确跳绳计数小程序的核心功能:为用户提供跳绳计数的便捷方式。这意味着小程序需要能够准确地记录用户的跳绳次数,并为用户提供清晰、直观的计数展示。
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的医院门诊预约挂号系统
基于Java+Springboot+Vue开发的医院门诊预约挂号系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的门诊预约挂号管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
130 2
基于Java+Springboot+Vue开发的医院门诊预约挂号系统
|
3月前
|
移动开发 安全 JavaScript
SpringBoot接入微信JSSDK,看这篇妥妥的
这篇教程详细介绍了如何在Spring Boot项目中接入微信JSSDK,实现H5页面的自定义分享和调用相册选取图片等功能。文章首先通过对比理想与现实的分享效果,引出了接入微信JSSDK的必要性。接着,作者提供了GitHub和Gitee上的项目源码链接,并逐步讲解了整个接入过程的关键步骤,包括配置文件、主要类和方法的实现细节,以及必要的微信公众号设置。此外,还特别强调了几个常见问题及其解决方案,如域名绑定、IP白名单设置和签名验证等。最后,通过实际测试验证了功能的正确性。适合初学者快速上手微信JSSDK接入。
53 8
SpringBoot接入微信JSSDK,看这篇妥妥的
|
3月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
102 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
3月前
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
95 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
|
3月前
|
小程序
Taro@3.x+Vue@3.x+TS开发微信小程序,根据系统主题展示不同样式(darkMode)
本文介绍如何在Taro项目中配置深色模式。通过在`src/app.config.ts`设置`darkmode`选项和在`theme.json`中定义主题变量,可以实现跟随系统主题的界面风格切换。
Taro@3.x+Vue@3.x+TS开发微信小程序,根据系统主题展示不同样式(darkMode)
|
3月前
|
小程序 JavaScript Java
微信小程序+SpringBoot接入后台服务,接口数据来自后端
这篇文章介绍了如何将微信小程序与SpringBoot后端服务进行数据交互,包括后端接口的编写、小程序获取接口数据的方法,以及数据在小程序中的展示。同时,还涉及到了使用Vue搭建后台管理系统,方便数据的查看和管理。
微信小程序+SpringBoot接入后台服务,接口数据来自后端
|
3月前
|
小程序
关于我花了一个星期学习微信小程序开发、并且成功开发出一个商城项目系统的心得体会
这篇文章是作者关于学习微信小程序开发并在一周内成功开发出一个商城项目系统的心得体会,分享了学习基础知识、实战项目开发的过程,以及小程序开发的易上手性和开发周期的简短。
关于我花了一个星期学习微信小程序开发、并且成功开发出一个商城项目系统的心得体会
下一篇
无影云桌面