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

学习: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.dtcms.com/a/343929.html

相关文章:

  • 嵌入式Linux学习 -- 网络1
  • StarRocks启动失败——修复全流程
  • 姓名重名查询抖音快手微信小程序看广告流量主开源
  • 恢复性测试:定义、重要性及实施方法
  • Linux设备模型交互机制详细分析
  • 分段渲染加载页面
  • 第9课:本地功能集成
  • 宋红康 JVM 笔记 Day06|虚拟机栈
  • Seaborn数据可视化实战:Seaborn数据可视化基础-从内置数据集到外部数据集的应用
  • 学习游戏制作记录(合成表UI和技能树的UI)8.22
  • Python打卡Day49 CBAM注意力
  • 小迪安全v2023学习笔记(六十九讲)—— Java安全JWT攻防监控组件泄露接口
  • 北斗导航 | 基于MCMC粒子滤波的接收机自主完好性监测(RAIM)算法(附matlab代码)
  • 【C++组件】Elasticsearch 安装及使用
  • ODYSSEY:开放世界四足机器人的探索与操控,助力长范围任务
  • ref 简单讲解
  • 【前端教程】从基础到进阶:淘宝 HTML 界面“回到顶部”功能的交互升级实战
  • 刷题日记0822
  • Git 版本管理各模块知识点梳理
  • Logstash_Input插件
  • Chrome和Edge如何开启暗黑模式
  • 浏览器插件优化工具:bypass paywalls chrome
  • 【TrOCR】根据任务特性设计词表vocab.json
  • 今日科技热点 | NVIDIA AI芯片、5G加速与大数据平台演进——技术驱动未来
  • ESP32C5在espidf环境下报错5g bitmap contains only invalid channels= @xff
  • 龙虎榜——20250822
  • 线上日志排查问题
  • docker 查看容器 docker 筛选容器
  • 使用 Ragas 评估你的 Elasticsearch LLM 应用
  • 基于Python的伊人酒店管理系统 Python+Django+Vue.js