讨论区 老师答疑区 主题详情
ykt9158178049589183
老师参与 老师,还有三个问题,解决完,我要好评了, 1,朋友圈好友备注问题 2,我想获取手机本地消息中心数据用于判断是否同一个人发过来的消息,进行同一个人消息覆盖 3.发布朋友圈多图上传 问题2 是我想学 希望老师教一下
课时306

所有回复(14)

朋友圈备注问题  已解决   //朋友圈 控制器 中  

。。。省略 部分代码 。。。

        try {

            let momentTimelineList = await app.model.MomentTimeline.findAll({

                where: { user_id: ctx.authUser.id },

                include: [{

                    model: app.model.Moment,

                    as: 'moment',

                    where: {},

                    exclude: ['updated_time'],

                    include: [{

                        model: app.model.User,

                        as: 'user',

                        attributes: ['id', 'name', 'avatar', 'gender'],

                        include: [{

                            model: app.model.Partner,

                            where: {

                                user_id: ctx.authUser.id

                            },

                            as: "friend",

                            attributes: ['id','user_id','target_id', 'remarks'],

                        }]

                    },

                    { model: app.model.MomentImage, as: 'momentImageList',   },

                    {

                        model: app.model.MomentComment,

                        as: 'momentComment',

                        exclude: ['updated_time'],

                        include: [{

                            model: app.model.User,

                            as: 'momentCommentUser',

                            attributes: ['id', 'name', 'avatar'],

                            include: [{

                            。。。省略 部分代码 同上方 红色部分  。。。

                            }]

                        }, {

                            model: app.model.User,

                            as: 'momentCommentReply',

                            attributes: ['id', 'name', 'avatar'],

                            include: [{

                               。。。省略 部分代码 同上方 红色部分  。。。

                            }]

                        }],

                        order: [['id', 'DESC']],

                    }, {

                        model: app.model.MomentLike,

                        as: 'momentLike',

                        attributes: ['user_id', 'moment_id'],

                        include: [{

                            model: app.model.User,

                            as: 'momentLikeUser',

                            attributes: ['id', 'name'],

                            include: [{

                                  。。。省略 部分代码 同上方 红色部分  。。。

                            }]

                        }]

                    }]

                }],

                offset,  limit,  order: [['id', 'DESC']],

            })

            let rows = momentTimelineList.map(item => {

                let comments = []

                let likes = []

                item.moment.momentComment.forEach(e => {

                    if (targetIdArray.includes(e.momentCommentUser.id) || e.momentCommentUser.id === ctx.authUser.id) {

                        comments.push({

                            create_time: e.created_time,

                            content: e.content,

                            user: {

                                id: e.momentCommentUser.id,

                                name: e.momentCommentUser.friend.remarks || e.momentCommentUser.nickname || e.momentCommentUser.name,

                                avatar: e.momentCommentUser.avatar,

                            },

                            reply: e.momentCommentReply ? {

                                id: e.momentCommentReply.id,

                                name: e.momentCommentReply.friend.remarks || e.momentCommentReply.nickname || e.momentCommentReply.name,

                            } : {},

                        })

                    }

                })

                item.moment.momentLike.forEach(e => {

                    if (targetIdArray.includes(e.momentLikeUser.id) || e.momentLikeUser.id === ctx.authUser.id) {

                        likes.push({

                            id: e.momentLikeUser.id,

                            name: e.momentLikeUser.friend.remarks || e.momentLikeUser.nickname || e.momentLikeUser.name

                        })

                    }

                })

                return {

                。。。省略 部分代码 。。。

                    name: item.moment.user.friend.remarks || item.moment.user.nickname || item.moment.user.name,

               。。。省略 部分代码 。。。

                }

            })

。。。省略 部分代码 。。。

坑爹的网易云  内容过长不让发  导致 大量  省略代码



2021-3-25

发表观点要登录哦!点击登录

//朋友圈备注问题  用户模型中 

 User.hasOne(app.model.Partner, {

      as: "friend",

      foreignKey: 'target_id'

    });


2021-3-25

关于问题1:朋友圈备注的moment.user_id的问题终于找到了,这个问题很不好找,是sequelize的问题


async getDynamicList() {

        const { app, ctx } = this

        let { limit, page } = ctx.request.body

        limit = (limit ? limit : 10)

        page = (page ? page : 1)

        let offset = (page - 1) * limit

        // 当前用户的好友列表

        let partnerList = await app.model.Partner.findAll({

            where: {

                user_id: ctx.authUser.id,

                is_black_list: 0,

            },

            attributes: ['target_id'],

        })

        let targetIdArray = partnerList.map(item => item.target_id)

        let index = targetIdArray.findIndex(item => {

            return item === ctx.authUser.id

        })

        if (index === -1) {

            targetIdArray.push(ctx.authUser.id)

        }

        console.log('当前用户的好友列表')

        console.log(targetIdArray)

        try {

            let momentTimelineList = await app.model.MomentTimeline.findAll({

                where: {

                    user_id: ctx.authUser.id

                },

                include: [{

                    model: app.model.Moment,

                    as: 'moment',

                    exclude: ['updated_time'],

                    where:{}, // 这里需要加多一个空的where条件,不加的话,会默认把其他的where条件认定为查询moment表(已实际测试过)

                    include: [{

                        model: app.model.User,

                        as: 'user',

                        attributes: ['id', 'name', 'avatar', 'gender'],

                        include: [{

                           model: app.model.Partner,

                            where:{

                                user_id:ctx.authUser.id

                            },

                            as: "friends",

                            attributes: ['id', 'remarks'],

                        }]

                    },

                    {

                        model: app.model.MomentComment,

                        as: 'momentComment',

                        exclude: ['updated_time'],

                        include: [{

                            model: app.model.User,

                            as: 'momentCommentUser',

                            attributes: ['id', 'name', 'avatar'],

                        }, {

                            model: app.model.User,

                            as: 'momentCommentReply',

                            attributes: ['id', 'name', 'avatar'],

                        }],

                        order: [['id', 'DESC']],

                    }, {

                        model: app.model.MomentLike,

                        as: 'momentLike',

                        attributes: ['user_id', 'moment_id'],

                        include: [{

                            model: app.model.User,

                            as: 'momentLikeUser',

                            attributes: ['id', 'name'],

                        }]

                    }]

                }],

                offset,

                limit,

                order: [['id', 'DESC']],

            })

            console.log(JSON.parse(JSON.stringify(momentTimelineList)))

            let rows = momentTimelineList.map(item => {

                console.log('item+++++++++++++++++++++++=')

                console.log(JSON.parse(JSON.stringify(item)).moment.user.partner)

                let comments = []

                let likes = []

                // 评论

                item.moment.momentComment.forEach(e => {

                    if (targetIdArray.includes(e.momentCommentUser.id) || e.momentCommentUser.id === ctx.authUser.id) {

                        comments.push({

                            create_time: e.created_time,

                            content: e.content,

                            user: {

                                id: e.momentCommentUser.id,

                                name: e.momentCommentUser.nickname || e.momentCommentUser.name,

                                avatar: e.momentCommentUser.avatar,

                            },

                            reply: e.momentCommentReply ? {

                                id: e.momentCommentReply.id,

                                name: e.momentCommentReply.nickname || e.momentCommentReply.name,

                            } : {},

                        })

                    }

                })

                //点赞

                item.moment.momentLike.forEach(e => {

                    if (targetIdArray.includes(e.momentLikeUser.id) || e.momentLikeUser.id === ctx.authUser.id) {

                        likes.push({

                            id: e.momentLikeUser.id,

                            name: e.momentLikeUser.nickname || e.momentLikeUser.name

                        })

                    }

                })

                return {

                    id: item.id,

                    moment_id: item.moment.id,

                    user_id: item.moment.user_id,

                    name: item.moment.user.friends[0].remarks || item.moment.user.nickname || item.moment.user.name,

                    avatar: item.moment.user.avatar,

                    content: item.moment.content,

                    image: item.moment.image || '',

                    video: item.moment.video || '',

                    location: item.moment.location,

                    remind: item.moment.remind,

                    see: item.moment.see,

                    created_time: item.moment.created_time,

                    comments,

                    likes,

                }

            })


2021-3-24

发表观点要登录哦!点击登录

2021-3-23

老师,朋友圈问题 关联 好友 问题 任然 报 如下错误 

2021-3-23

发表观点要登录哦!点击登录

关于朋友圈图片问题:


你现在是后端这个方法 async releaseDynamic()已经包含了上传一张图片+发布一条朋友圈信息了。


这样就导致你前端如果上传了9张图片,this.sendImage(path, value)就会调用9次,发布了9张图片并且发布了9条朋友圈,所以解决这个问题最好的办法就是把这两个接口分开:


一个是上传图片接口(上传接口在调用uni.chooseImage的回调时调用,我们课程就是这么处理的,包括目前的主流app也都是这么处理的,例如微信,小红书等。

  1.                     // 选择图片
  2.             chooseImage(){
  3.                 uni.chooseImage({
  4.                     count:9 - this.imageList.length,
  5.                     sizeType:['compressed'],
  6.                     success: (res) => {
  7.                         // 选中时上传图片
  8.                         res.tempFilePaths.forEach(path=>{
  9.                             $H.upload('/upload',{
  10.                                 filePath:path
  11.                             },(progress)=>{
  12.                                 console.log('上传进度',progress);
  13.                             }).then(url=>{
  14.                                 // 上传成功后返回线上url
  15.                                 this.imageList.push(url)
  16.                                 this.$emit('update',this.imageList)
  17.                             })
  18.                         })
  19.                     }
  20.                 })
  21.             },


另一个就是发布朋友圈接口(单纯提交发布)


关于图片存储到朋友圈数据表是 数组 还是 字符串。答案是:以逗号分割的字符串


2021-3-22

发表观点要登录哦!点击登录

靓仔,表情包分享不了,网易云课堂不支持。你直接进入到这个网站直接复制就可以了


http://www.megaemoji.com/cn/emoji/

2021-3-22

发表观点要登录哦!点击登录

关于问题1:朋友圈备注问题(靓仔,看下面的红色部分,你先试试,不行的话再跟我反馈,备注错误信息)

第一步:user模型需要定义一个一对多的关系

  1. User.hasMany(app.model.Partner, {
  2.      as: "friends"
  3.      foreignKey: 'target_id'
  4. });


async getDynamicList() {

        const { app, ctx } = this

        let { limit, page } = ctx.request.body

        limit = (limit ? limit : 10)

        page = (page ? page : 1)

        let offset = (page - 1) * limit

        // 当前用户的好友列表

        let partnerList = await app.model.Partner.findAll({

            where: {

                user_id: ctx.authUser.id,

                is_black_list: 0,

            },

            attributes: ['target_id'],

        })

        let targetIdArray = partnerList.map(item => item.target_id)

        let index = targetIdArray.findIndex(item => {

            return item === ctx.authUser.id

        })

        if (index === -1) {

            targetIdArray.push(ctx.authUser.id)

        }

        console.log('当前用户的好友列表')

        console.log(targetIdArray)

        try {

            let momentTimelineList = await app.model.MomentTimeline.findAll({

                where: {

                    user_id: ctx.authUser.id

                },

                include: [{

                    model: app.model.Moment,

                    as: 'moment',

                    exclude: ['updated_time'],

                    include: [{

                        model: app.model.User,

                        as: 'user',

                        attributes: ['id', 'name', 'avatar', 'gender'],

                        include: [{

                           model: app.model.Partner,

                            where:{

                                user_id:ctx.authUser.id

                            },

                            as: "friends",

                            attributes: ['id', 'remarks'],

                        }]

                    },

                    {

                        model: app.model.MomentComment,

                        as: 'momentComment',

                        exclude: ['updated_time'],

                        include: [{

                            model: app.model.User,

                            as: 'momentCommentUser',

                            attributes: ['id', 'name', 'avatar'],

                        }, {

                            model: app.model.User,

                            as: 'momentCommentReply',

                            attributes: ['id', 'name', 'avatar'],

                        }],

                        order: [['id', 'DESC']],

                    }, {

                        model: app.model.MomentLike,

                        as: 'momentLike',

                        attributes: ['user_id', 'moment_id'],

                        include: [{

                            model: app.model.User,

                            as: 'momentLikeUser',

                            attributes: ['id', 'name'],

                        }]

                    }]

                }],

                offset,

                limit,

                order: [['id', 'DESC']],

            })

            console.log(JSON.parse(JSON.stringify(momentTimelineList)))

            let rows = momentTimelineList.map(item => {

                console.log('item+++++++++++++++++++++++=')

                console.log(JSON.parse(JSON.stringify(item)).moment.user.partner)

                let comments = []

                let likes = []

                // 评论

                item.moment.momentComment.forEach(e => {

                    if (targetIdArray.includes(e.momentCommentUser.id) || e.momentCommentUser.id === ctx.authUser.id) {

                        comments.push({

                            create_time: e.created_time,

                            content: e.content,

                            user: {

                                id: e.momentCommentUser.id,

                                name: e.momentCommentUser.nickname || e.momentCommentUser.name,

                                avatar: e.momentCommentUser.avatar,

                            },

                            reply: e.momentCommentReply ? {

                                id: e.momentCommentReply.id,

                                name: e.momentCommentReply.nickname || e.momentCommentReply.name,

                            } : {},

                        })

                    }

                })

                //点赞

                item.moment.momentLike.forEach(e => {

                    if (targetIdArray.includes(e.momentLikeUser.id) || e.momentLikeUser.id === ctx.authUser.id) {

                        likes.push({

                            id: e.momentLikeUser.id,

                            name: e.momentLikeUser.nickname || e.momentLikeUser.name

                        })

                    }

                })

                return {

                    id: item.id,

                    moment_id: item.moment.id,

                    user_id: item.moment.user_id,

                    name: item.moment.user.friends[0].remarks || item.moment.user.nickname || item.moment.user.name,

                    avatar: item.moment.user.avatar,

                    content: item.moment.content,

                    image: item.moment.image || '',

                    video: item.moment.video || '',

                    location: item.moment.location,

                    remind: item.moment.remind,

                    see: item.moment.see,

                    created_time: item.moment.created_time,

                    comments,

                    likes,

                }

            })


2021-3-22

发表观点要登录哦!点击登录

哦对了,老师 解决问题时候顺便 把朋友圈评论的表情 复制一下发给我 谢谢

2021-3-21

此问题是朋友圈的好友备注问题

//获取朋友圈列表

    async getDynamicList() {

        const { app, ctx } = this

        let { limit, page } = ctx.request.body

        limit = (limit ? limit : 10)

        page = (page ? page : 1)

        let offset = (page - 1) * limit

        // 当前用户的好友列表

        let partnerList = await app.model.Partner.findAll({

            where: {

                user_id: ctx.authUser.id,

                is_black_list: 0,

            },

            attributes: ['target_id'],

        })

        let targetIdArray = partnerList.map(item => item.target_id)

        let index = targetIdArray.findIndex(item => {

            return item === ctx.authUser.id

        })

        if (index === -1) {

            targetIdArray.push(ctx.authUser.id)

        }

        console.log('当前用户的好友列表')

        console.log(targetIdArray)

        try {

            let momentTimelineList = await app.model.MomentTimeline.findAll({

                where: {

                    user_id: ctx.authUser.id

                },

                include: [{

                    model: app.model.Moment,

                    as: 'moment',

                    exclude: ['updated_time'],

                    include: [{

                        model: app.model.User,

                        as: 'user',

                        attributes: ['id', 'name', 'avatar', 'gender'],

                        // include: [{

                        //     model: app.model.Partner,

                        //     where:{

                        //         user_id:ctx.authUser.id

                        //     },

                        //     as: 'partner',

                        //     attributes: ['id', 'remarks'],


                        // }]

                    },

                    {

                        model: app.model.MomentComment,

                        as: 'momentComment',

                        exclude: ['updated_time'],

                        include: [{

                            model: app.model.User,

                            as: 'momentCommentUser',

                            attributes: ['id', 'name', 'avatar'],

                        }, {

                            model: app.model.User,

                            as: 'momentCommentReply',

                            attributes: ['id', 'name', 'avatar'],

                        }],

                        order: [['id', 'DESC']],

                    }, {

                        model: app.model.MomentLike,

                        as: 'momentLike',

                        attributes: ['user_id', 'moment_id'],

                        include: [{

                            model: app.model.User,

                            as: 'momentLikeUser',

                            attributes: ['id', 'name'],

                        }]

                    }]

                }],

                offset,

                limit,

                order: [['id', 'DESC']],

            })

            console.log(JSON.parse(JSON.stringify(momentTimelineList)))

            let rows = momentTimelineList.map(item => {

                console.log('item+++++++++++++++++++++++=')

                console.log(JSON.parse(JSON.stringify(item)).moment.user.partner)

                let comments = []

                let likes = []

                // 评论

                item.moment.momentComment.forEach(e => {

                    if (targetIdArray.includes(e.momentCommentUser.id) || e.momentCommentUser.id === ctx.authUser.id) {

                        comments.push({

                            create_time: e.created_time,

                            content: e.content,

                            user: {

                                id: e.momentCommentUser.id,

                                name: e.momentCommentUser.nickname || e.momentCommentUser.name,

                                avatar: e.momentCommentUser.avatar,

                            },

                            reply: e.momentCommentReply ? {

                                id: e.momentCommentReply.id,

                                name: e.momentCommentReply.nickname || e.momentCommentReply.name,

                            } : {},

                        })

                    }

                })

                //点赞

                item.moment.momentLike.forEach(e => {

                    if (targetIdArray.includes(e.momentLikeUser.id) || e.momentLikeUser.id === ctx.authUser.id) {

                        likes.push({

                            id: e.momentLikeUser.id,

                            name: e.momentLikeUser.nickname || e.momentLikeUser.name

                        })

                    }

                })

                return {

                    id: item.id,

                    moment_id: item.moment.id,

                    user_id: item.moment.user_id,

                    name: item.moment.user.nickname || item.moment.user.name,

                    avatar: item.moment.user.avatar,

                    content: item.moment.content,

                    image: item.moment.image || '',

                    video: item.moment.video || '',

                    location: item.moment.location,

                    remind: item.moment.remind,

                    see: item.moment.see,

                    created_time: item.moment.created_time,

                    comments,

                    likes,

                }

            })

//////省略下方代码  ////

上方红色部分  不应该是去好友表中去拿  我给他的备注吗?老师这个只是去拿用户的昵称了  这里没有很懂


2021-3-21

发表观点要登录哦!点击登录

此问题是 发布朋友圈 图片问题  备注:老师写的没有任何问题,只是我使用的方法并不是和老师的一样

//前端 发布动态

/* 发布 */

release() {

    console.log(this.see)

    if ((this.selectedType === 'specifiedPersonVisible' && !this.specifiedPersonVisibleList.length) || (this.selectedType ===

        'specifiedPersonIsNotVisible' && !this.specifiedPersonIsNotVisibleList.length)) {

        return uni.showToast({

            icon: 'none',

            title: '请先选择'

        })

    }

    console.log(this.imgList.length)

    if (this.imgList.length === 0 && this.content.trim() !== '' && this.content.trim() !== null) { //单纯文本

        this.sendText('text')

    } else if (this.content.trim() !== '' && this.content.trim() !== null) {

        this.send('image')

    }


},

/* 上传 */

send(value) {

    switch (value) {

        case 'image':

            { //图片和文本

                console.log(this.imgList)

                this.imgList.forEach(path => {

                    this.sendImage(path, value)

                })

                // this.sendImage("", value)

                this.content = ''

                this.imgList = []

                setTimeout(() => {

                    uni.navigateBack({

                        delta: 1

                    })

                }, 1000)

                break

            }

        case '':

            { //视频和文本

                break

            }

    }

},

/* 上传图片 */

sendImage(path, type) {

    let data = {

        content: this.content,

        location: this.location,

        remind: 'all',

        see: 1,

        fileType: type,

    }

    const uploadTask = uni.uploadFile({

        url: this.$constUtils.webUrl + '/moment/releaseDynamic',

        filePath: path,

        fileType: 'image',

        header: {

            'enctype': 'multipart/form-data',

            'token': this.user.token,

        },

        formData: data,

        success: (uploadFileRes) => {

            console.log(uploadFileRes)

            if (uploadFileRes.statusCode !== 200) {

                return uni.showToast({

                    icon: 'none',

                    title: "上传失败"

                })

            } else {

                let imagePath = JSON.parse(uploadFileRes.data).data

                console.log(imagePath)

                uni.showToast({

                    icon: 'none',

                    title: '发布成功'

                })

            }

        },

        fail: (err) => {

            console.log(err)

        }

    });

    uploadTask.onProgressUpdate((res) => {

        console.log('上传进度' + res.progress)

        // console.log('已经上传的数据长度' + res.totalBytesSent)

        // console.log('预期需要上传的数据总长度' + res.totalBytesExpectedToSend)

    });

},

/* 上传文本 */

sendText(type) {

    let data = {

        content: this.content.trim(),

        location: '北京',

        remind: this.remind,

        see: this.see,

        type,

    }

    this.http('/moment/releaseDynamic', data)

},

http(url, data) {

    return new Promise((resolve, reject) => {

        this.$http.http(url, 'POST', data).then(res => {

            resolve(res)

            this.content = ''

            this.imgList = []

            uni.showToast({

                icon: 'none',

                title: '发布成功'

            })

            this.destroyedVuexStore()

            setTimeout(() => {

                uni.navigateBack({

                    delta: 1

                })

            }, 1000)

        }).catch(err => {

            reject(err)

            this.content = ''

            this.imgList = []

        })

    })

}




2021-3-21

发表观点要登录哦!点击登录

此问题是 发布朋友圈 图片问题  备注:老师写的没有任何问题,只是我使用的方法并不是和老师的一样

// 发布动态  控制器   

    async releaseDynamic() {

        const { app, ctx } = this

        const { protocol, host } = ctx.request;

        let { type } = ctx.request.body

        console.log(type)

        if (type) {   //不是流文件上传

            try {

                let { content, image, video, location, remind, see } = ctx.request.body

                let moment = await app.model.Moment.create({

                    content, image, video, location, remind, see,

                    user_id: ctx.authUser.id, created_time: new Date().getTime(),

                })

                if (!moment) {

                    return ctx.fail(400, '操作失败');

                }

                this.pushTimeLine(moment)

                return ctx.success({}, '操作成功');

            } catch (error) {

                console.log(error)

                return ctx.fail(400, '操作失败');

            }

        } else {  //是流文件上传

            const stream = await ctx.getFileStream()

            let { content, image, video, location, remind, see, fileType } = stream.fields

            try {

                let momentFilePath = ''

                let uploadBasePath = ''

                switch (fileType) {

                    case 'image': {

                        momentFilePath = '/public/uploads/moment/momentImage'

                        uploadBasePath = 'app/public/uploads/moment/momentImage'

                        break

                    }

                    case 'video': {

                        momentFilePath = '/public/uploads/moment/momentImageVideo'

                        uploadBasePath = 'app/public/uploads/moment/momentImageVideo'

                        break

                    }

                }

                // 生成文件名

                const filename = `${Date.now()}${Number.parseInt(Math.random() * 1000)}${path.extname(stream.filename).toLocaleLowerCase()}`;

                // 生成文件夹

                const dirname = dayjs(Date.now()).format('YYYY/MM/DD');

                function mkdirsSync(dirname) {

                    if (fs.existsSync(dirname)) {

                        return true;

                    } else {

                        if (mkdirsSync(path.dirname(dirname))) {

                            fs.mkdirSync(dirname);

                            return true;

                        }

                    }

                }

                mkdirsSync(path.join(uploadBasePath, dirname));        // 生成写入路径

                const target = path.join(uploadBasePath, dirname, filename);        // 写入流

                const writeStream = fs.createWriteStream(target);

                //异步把文件流 写入

                await awaitWriteStream(stream.pipe(writeStream));

                let filePath = path.join(momentFilePath, dirname, filename).replace(/\\|\//g, '/');

                filePath = protocol + '://' + ctx.getLocalHostUrl() + filePath

                console.log('上传文件路径:')

                console.log(filePath)

                // await app.model.MomentImage.create({

                //     image:filePath,

                //     // moment_id:

                // })

                let momentObj = {

                    content, image, video, location, remind, see, created_time: new Date().getTime(),

                    user_id: ctx.authUser.id,

                }

                switch (fileType) {

                    case 'image': {

                        momentObj.image = filePath

                        break

                    }

                    case 'video': {

                        momentObj.video = filePath

                        break

                    }

                }

                let moment = await app.model.Moment.create(momentObj)

                if (!moment) {

                    return ctx.fail(400, '操作失败');

                }

                this.pushTimeLine(moment)

                await sendToWormhole(stream);

                return ctx.success({}, '操作成功');

            } catch (error) {

                //如果出现错误,关闭管道

                await sendToWormhole(stream);

                console.log(error)

                ctx.fail(400, error)

            }

        }



2021-3-21

2。 问题我解决了  谢谢老师

2021-3-20

靓仔,1和3已经在其他地方作答了,问题2有点听不大明白,你可以描述具体一些

2021-3-19

回复

代码语言
字号
发布

发表观点要登录哦!

最近活动:2021-3-25
创建时间:2021-3-18
浏览次数:149
关注人数:0

使用协议与隐私政策

感谢您使用网易云课堂!

为了更好地保障您的个人权益,请认真阅读《使用协议》《隐私政策》《服务条款》的全部内容,同意并接受全部条款后开始使用我们的产品和服务。若不同意,将无法使用我们的产品和服务。

同意
手机课堂
下载App
返回顶部