当前位置: 首页 > backend >正文

学习:uniapp全栈微信小程序vue3后台(3)

11.创建分类schema表结构和云对象

创建DB Schema

修改表结构

{"bsonType": "object","required": ["name"],"permission": {"read": true,"create": false,"update": false,"delete": false},"properties": {"_id": {"description": "存储文档 ID,系统自动生成"},"name": {"bsonType": "string","description": "分类名称","label": "名称","trim": "both","minLength": 2,"maxLength": 8},"select": {"bsonType": "bool","description": "是否精选 默认false,true是精选","defaultValue": false},"enable": {"bsonType": "bool","description": "是否启用 默认false,true是启用","defaultValue": false},"sort": {"bsonType": "int","description": "类别显示顺序","label": "排序"},"picurl": {"bsonType": "string","description": "缩略图地址"},"createTime": {"bsonType": "timestamp","description": "创建时间","forceDefaultValue": {"$env": "now"}}},"version": "0.0.1"
}

新建云对象

/uniCloud-alipay/cloudfunctions/admin-wallpaper-classify/index.obj.js

// 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
// jsdoc语法提示教程:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129
module.exports = {_before: function() { // 通用预处理器},add(params = {}) {return params;}
}

/pages/wallpaper/children/classifyPopup

<script setup>import {ref} from 'vue';import dayjs from "dayjs"import {cloudToHttps} from '@/utils/tools.js';import {compressAndConvertTowebP} from '@/utils/tools.js';import classifyCloudObj = uniCloud.importObject("wallpaper-classify")const classifyPopup = ref(null)// 表单的ref默认为nullconst formRef = ref(null)// 表单的ref默认为nullconst formDate = ref({name: "",sort: 0,select: false,enable: false,picurl: "",// 临时地址tempurl: ""})const rules = ref({name: {rules: [{required: true,errmessage: '分类名不能为空',},{minLength: 2,maxLength: 8,erroeMessage: '{label}长度{minLength} 到{maxLength}个字符',}],// 当前表单域的字段中文名,可不填写label: "分类名称"},})const open = () => classifyPopup.value.open()//关闭const close = () => classifyPopup.value.close()//提交const submit = async () => {try {await formRef.value.validate();// 判断if (formDate.value.tempurl) {// 上传图片,file是上传结果let file = await uploadFile();// 转换formDate.value.picurl = cloudToHttps(file.fileID)}// // 解构赋值,删除临时地址// let parms = {// 	...formDate.value// }// delete parms.tempurl// 解构,除了tempurl其他数据放入parmslet {tempurl,...parms} = formDate.value// 传到云端let res = await classifyCloudObj.add(parms)console.log(res)}.catch(err) {}}//长传图片到云存储const uploadFile = async () => {// 上传前压缩let tempurl = await compressAndConvertTowebP(formDate.value.tempurl)return await uniCloud.uploadFile({filePath: tempurl,cloudPath: "wallpaper/" + dayjs().format("YYYMMMDD") + "/" + Date.now() + ".webp"})}const selectChange = (e) => {formDate.value.select = e.detail.value}const enableChange = () => {formDate.value.enable = e.detail.value}const selectPicurl = (e) => {uni.chooseImage({count: 1,success: res => {formDate.value.tempurl = res.tempFilePaths[0]}})}const delImg = () => {formDate.value.tempurl = ''}// 向外导出defineExpose({open,close,})
</script>
<template><uni-popup ref="classifyPopup" type="center" @click="handleAdd" :is-mask-click="false"><view class="classifyPopup"><uni-forms ref="formRef" :modelValue="formData" :rules="rules" label-align="right" :label-width="100"><!-- 用了:rules="rules"验证规则,需要声明哪个字段, name:表单域的属性名,在使用校验规则时必填 --><uni-forms-item label="分类名称" name="name" required><uni-easyinput type="text" v-model="formDate.name" placeholder="请输入分类名称" /></uni-forms-item><uni-forms-item label="排序" name="sort"><uni-easyinput type="number" v-model="formDate.sort" placeholder="请输入排序" /></uni-forms-item><uni-forms-item label="缩略图"><view cl
http://www.xdnf.cn/news/18380.html

相关文章:

  • SprintBoot 2 源码阅读
  • Thunderbird 将推出在德国托管的加密电子邮件服务
  • 浏览器插件优化工具:bypass paywalls chrome
  • 力扣热题之贪心算法
  • Python 办公自动化实战:Excel 批量处理 + 自动发邮件
  • VsCode 上的Opencv(C++)环境配置(Linux)
  • 51单片机-中断系统
  • Ansys Motor-CAD:概述(EMag、THERM、LAB、MECH)
  • 171-基于Flask的笔记本电脑数据可视化分析系统
  • Linux数字列排序命令
  • Apache Ozone 介绍与部署使用(最新版2.0.0)
  • 大数据毕业设计推荐:基于Hadoop+Spark的手机信息分析系统完整方案
  • Matrix-Zero:昆仑万维发布的AI世界模型,支持单张图生成3D世界
  • 微信小程序,事件总线(Event Bus) 实现
  • 不同类型代理 IP 在爬虫场景下的表现对比
  • 05 ODS层(Operation Data Store)
  • 集成电路学习:什么是Camera Calibration相机标定
  • 【自用】JavaSE--网络通信
  • 电脑芯片其实更偏向MPU不是CPU,GPU CPU NPU MPU MCU的区别
  • 近端策略优化算法PPO的核心概念和PyTorch实现详解
  • ElasticSearch——常用命令
  • 数据结构-HashSet
  • Android auncher3实现简单的负一屏功能
  • 基于SpringBoot的宠物用品系统【2026最新】
  • Android面试指南(四)
  • AI研究引擎的简单技术实现步骤
  • [软件开发技术栈]从MVVM到MVC
  • 机器学习5
  • Linux入门DAY29
  • (19)python复杂度计算:在线AI(时间复杂)和本地工具(圈复杂度)