unicloud云开发进阶51-项目35 schema2code代码生成的使用

245 阅读1分钟

我的发布文章模块

在这个模块中,需要用到schema2code

uniapp.dcloud.net.cn/uniCloud/sc…

在我的页面点击我的长文,把自己的发文全部列出来,现在只有样式,没有内容,点了是没有任何效果的,还没有写代码

image.png

我的长文也是基于文章列表的 之前文章列表的schemaquanzi_article.schema,右键这个schema,选scheam2code

创建方法有两种: 一是在服务空间创建表,使用预置的表,然后根据表结构创建出schema2code

二是在编辑器中将云端的schema下载到编辑器,然后右键创建

会自动创建出一个以表名做名字的文件夹,四个页面就在里面,创建完成后需要重启项目,否则报找不到文件 image.png

创建完成后进入列表页面 数据是用unicloud-db组件获取的 collectionList是定义在data中的属性,值就是quanzi_article,就是表名

<template>
  <view class="container">
    <unicloud-db ref="udb" v-slot:default="{data, pagination, loading, hasMore, error}" :collection="collectionList" field="user_id,title,description,province,content,article_status,last_comment_user_id,picurls,publish_date,last_modify_date">

DOM结构

<template>
  <view class="container">
    <unicloud-db ref="udb" v-slot:default="{data, pagination, loading, hasMore, error}" :collection="collectionList" field="user_id,title,description,province,content,article_status,last_comment_user_id,picurls,publish_date,last_modify_date">
      <view v-if="error">{{error.message}}</view>
      <view v-else-if="data">
        <uni-list>
          <uni-list-item v-for="(item, index) in data" :key="index" showArrow :clickable="true" @click="handleItemClick(item._id)">
            <template v-slot:body>
              <text>
                <!-- 此处默认显示为_id,请根据需要自行修改为其他字段 -->
                <!-- 如果使用了联表查询,请参考生成的 admin 项目中 list.vue 页面 -->
                {{item.title}}
              </text>
            </template>
          </uni-list-item>
        </uni-list>
      </view>
      <uni-load-more :status="loading?'loading':(hasMore ? 'more' : 'noMore')"></uni-load-more>
    </unicloud-db>
    <uni-fab ref="fab" horizontal="right" vertical="bottom" :pop-menu="false" @fabClick="fabClick" />
  </view>
</template>

image.png

这里需要对作者信息进行筛选,只要当前登录的用户文章,并根据时间进行倒序排列

<unicloud-db ref="udb" 
:where="`user_id==$cloudEnv_uid`"
orderby="publish_date desc"
v-slot:default="{data, pagination, loading, hasMore, error}" 
:collection="collectionList" 
field="user_id,title,description,province,content,article_status,last_comment_user_id,picurls,publish_date,last_modify_date">

点击一条数据会进入详情页,可以让他跳转到之前自己写的详情页 image.png

这是add页面

image.png

编辑页面和新增页面一样

image.png

现在只需要列表页面,把列表页面的添加文章按钮删掉

    <uni-fab ref="fab" horizontal="right" vertical="bottom" :pop-menu="false" @fabClick="fabClick" />

前面创建了四个页面,在pages.json中只留list列表页就行了

接下来在self页面,点击跳转到list页面,在我的页面点击我的长文,就跳转到列表页了

<view class="item" @click="myArticle">
    <view class="left"><text class="iconfont icon-a-24-bianji"></text><text class="text">我的长文</text></view>
<view class="right"><text class="iconfont icon-a-10-you"></text></view>
                                                
      // 跳转到我的长文
      myArticle(){
        uni.navigateTo({
          url:"/pages/quanzi_article/list"
        })
      },