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

wordpress 主题演示站如何注册api key域名

wordpress 主题演示站,如何注册api key域名,怎么描述网站,win7 添加asp网站完成了商品的添加和展示,下面的文字将继续进行商品页面的处理,主要为商品信息的修改的页面以及后天逻辑的处理。 本文主要介绍了商品信息修改页面的实现过程。首先,页面布局包括编辑和删除功能,未来还可添加上架和下架按钮。通过c…

        完成了商品的添加和展示,下面的文字将继续进行商品页面的处理,主要为商品信息的修改的页面以及后天逻辑的处理。

        本文主要介绍了商品信息修改页面的实现过程。首先,页面布局包括编辑和删除功能,未来还可添加上架和下架按钮。通过clickEdit函数,用户点击商品ID后可跳转到修改页面,页面加载时根据传入的ID获取商品信息。商品数据的获取和更新通过云对象goodsCloudObj实现,包括获取单个商品信息、更新商品数据等操作。此外,还涉及SKU数据的获取和表单提交后的数据处理,确保数据能够正确更新到数据库中。整个流程涵盖了从页面跳转、数据获取到数据库更新的完整逻辑。

1、页面布局

存在 删除和修改,以后还可以添加上架和下架的按钮。下面进行修改页面的处理和实现。

2、主要的页面布局

                            <!-- 编辑修改  -->
                            <view class="icon" @click="clickEdit(row._id)">
                                <u-icon name="edit-pen" size="25"></u-icon>
                            </view>
                            <!-- 删除该商品 -->
                            <view class="icon" @click="clickRemove(row._id)">
                                <u-icon name="trash" size="25"></u-icon>
                            </view>

3、页面修改函数 clickEdit  传入 参数是点击商品的  id

clickEdit

//点击跳转到修改页面
            clickEdit(id){                
                uni.navigateTo({
                    url:"./add?id="+id
                })
            },

4、去到add页面上,处理带有id的页面路径

        onLoad(e) {    //进入页面就需要执行, e 就是传过来的值,如果是添加这个e 就是空
            this.isManage();
            goodID = e?.id ?? null      // 如果 e 存在就获取 id 给goodID ,如果e不存在, goodID 就是null
            if (goodID) this.getGoodsOne()     //如果 goodID存在(也就是e存在),就执行
            this.getSkuData();  //获取 sku的 数据  
        },

4.1 this.getGoodsOne 的函数接口,当然需要云对象,该云对象前面已经创建了。

    const goodsCloudObj = uniCloud.importObject("green-mall-goods", {
        "customUI": true
    })

上面云对象,定义在页面上的。

            //获取一个商品
            async getGoodsOne() {
                let res = await goodsCloudObj.getOne(goodID);
                console.log(res);
                this.goodsFormData = res.data[0]   //数据中是一个数组,数组中也就一个值,所以[0]就是数组的第一个值
            },

4.1.1 数据库的处理

    async getOne(id) {
        let res = await db.collection("green-mall-goods").doc(id).get();
        res.data[0].price = res.data[0].price / 100
        res.data[0].before_price = res.data[0].before_price ? res.data[0].before_price / 100 : null
        return res
    },

4.2 this.getSkuData 获取sku的数据 当然要云对象

    const skuCloudObj = uniCloud.importObject("green-mall-sku", {
        "customUI": true
    });

            //获取sku列表
            async getSkuData() {
                let res = await skuCloudObj.get();
                this.skuArr = res.data
                console.log(res);
            },

4.3 更新数据和提交

            //点击提交表单
            onSubmit() {
                this.$refs.goodsForm.validate().then(res => {
                    this.toDataBase();

                }).catch(err => {
                    console.log(err);
                })
            },

4.3.1 toDataBase 将数据更新到数据库  根据goodID 存在否,存在就更新,不存在就添加

            //上传到云数据库
            async toDataBase() {
                //这里缺少一个更新的按钮,需要在list中去实现,list跳转过来实现
                // console.log(this.goodsFormData.thumb);   //这里的数据太多了,需要处理一下
                this.goodsFormData.thumb = this.goodsFormData.thumb.map(item => {
                    return {
                        url: item.url,
                        name: item.name,
                        extname: item.extname
                    }
                })

                let toastTit;
                if (goodID) {
                    toastTit = "修改成功"
                    await goodsCloudObj.update(this.goodsFormData)
                } else {
                    toastTit = "新增成功"
                    await goodsCloudObj.add(this.goodsFormData)
                }

                uni.showToast({
                    title: toastTit
                })
                setTimeout(() => {
                    uni.navigateBack()
                }, 1500)

            }

4.3.2 goodsCloudObj.update  更新数据  在green-mall-goods中

    const goodsCloudObj = uniCloud.importObject("green-mall-goods", {
        "customUI": true
    })


    async update(params) {
        if (!this.userInfo.uid) return {
            msg: "没有权限",
            code: -1
        };
        if (!this.userInfo.role.includes('manage')) return {
            msg: "没有权限",
            code: -1
        };
        //深copy的应用 只有这样才能删除 id
        let _params = {
            ...params
        };
        delete _params._id;  //删除id  id是不能更新  
        _params.price = Number(_params.price).toFixed(2) * 100
        _params.before_price = _params.before_price ? Number(_params.before_price).toFixed(2) * 100 : null
        //这里是用了深copy,删除了id ,但是params 中还有 id
        await db.collection("green-mall-goods").doc(params._id).update(_params);
    },

5、属性的修改(递归调用)

上面讲的是普通的修改,没有说属性这个修改。且在我们添加商品的时候,没有关注更新时,对属性修改的需要。

5.1 先看看,点击属性的界面需要

我们需要添加一个函数,来读取商品信息中,是否选中那些商品属性。 使用了arrSetCheck来实现。

当我们点击属性框,弹窗出来,就应该标识出  用√ 表示  被选中的属性父级

属性的子级 子选项, 用颜色来表示出来 被选中的子级。

如下图的界面

            //点击选择属性
            clickSelect() {
                this.$refs.attrWrapPop.open(); //使用open方法弹出来
                this.arrSetCheck(this.skuArr, this.goodsFormData.sku_select, "_id")
            },

5.2 实现选中比对 ,使用递归的方式,也就是自己调用自己,数据查看最后的附录

参数是:二个数组,一个比对tag

this.skuArr, 默认的属性父级值

this.goodsFormData.sku_select,  商品选中的属性选项

"_id"  比对表示

如果 商品选中的属性选项 中 属性 id 和  默认的属性父级值 的 属性id 一样就给这个属性的check给一个true

            //选中项的数组格式化
            arrSetCheck(arr1, arr2, key) {
                arr1.forEach(item => {
                    arr2.forEach(row => {
                        if (item[key] == row[key]) {
                            item.checked = true
                            if (item?.children?.length) this.arrSetCheck(item.children, row.children,
                                "name")
                        }
                    })
                })
            },

下面是比对 选中的子级:

item.children, 属性父级中的子级选项

row.children, 商品属性的子级选项(具有的子级属性)

"name":子级属性obj的键:name

如果 属性父级中的子级选项 的name 和 商品属性的子级选项(具有的子级属性) name 对应的值相等就给 这个选项的 check 一个true。

    if (item?.children?.length) this.arrSetCheck(item.children, row.children,"name")

附录:

        skuArr: [{_id:1,skuName:"颜色",checked:false,children:[{name:"红",checked:false},{name:"蓝",checked:false}]},{_id:2,skuName:"规格",checked:false,children:[{name:"M",checked:false},{name:"S",checked:false}]}],


文章转载自:

http://ZuOnaNrr.wrbnh.cn
http://q8qzncyd.wrbnh.cn
http://JNGi3AzG.wrbnh.cn
http://0fZT68mu.wrbnh.cn
http://gHFGD2Pk.wrbnh.cn
http://74hDAz1g.wrbnh.cn
http://ScjfbXqr.wrbnh.cn
http://PVbGWbvY.wrbnh.cn
http://IxRSEq2Z.wrbnh.cn
http://GaM2GbVZ.wrbnh.cn
http://ZxB2Z9lp.wrbnh.cn
http://hzOPztxq.wrbnh.cn
http://VAazhJO2.wrbnh.cn
http://hhrwuv6N.wrbnh.cn
http://zoe9W8Vq.wrbnh.cn
http://MJrPCGjp.wrbnh.cn
http://vFjBwlKi.wrbnh.cn
http://coFOdN8t.wrbnh.cn
http://mvh8QKhk.wrbnh.cn
http://Qy5Dd8ch.wrbnh.cn
http://DASTFL5S.wrbnh.cn
http://NxpIC5Ho.wrbnh.cn
http://iy7dVRLF.wrbnh.cn
http://jettjcMH.wrbnh.cn
http://ZfvWAwG6.wrbnh.cn
http://nt1tzUKG.wrbnh.cn
http://jZkMWAHx.wrbnh.cn
http://tzbjmUrE.wrbnh.cn
http://x0zjhsyn.wrbnh.cn
http://qy6boMwO.wrbnh.cn
http://www.dtcms.com/wzjs/722069.html

相关文章:

  • 做个购物网站自己的网站怎么做下载链接
  • 广东深圳最新情况怎么利用自媒体做网站优化
  • 网站建设销售客户开发龙口网站建设价格
  • 外贸网站建站和推广大连装修公司
  • 微网站建设及微信推广方案ppt模板专门做推广的公司
  • 维启网站建设wordpress主题编程
  • 做图客网站网站建设登录页面怎么写
  • 给一个装修公司怎么做网站wordpress怎么集成码支付宝
  • 建立网站链接结构的基本方式有网站建设网页制
  • 昆明网站营销房地产类的网站建设
  • 世界建设企业网站成品在线短视频免费入口
  • 北京的电商平台网站有哪些呼市网站seo优化工资提成怎么算
  • 动画网页制作网站电子商务网站建设和技术现状
  • 简述网站建设优坏的评价标准阿里云是做网站的吗
  • 企业门户网站属于什么层蚂蚁加速器
  • 网站备案幕布多少钱asp做的网站数据库在哪里
  • 做服装找工作网站软件开发培训哪里好
  • 哪里有免费 建设网站的地址网站界面设计材料收集
  • 北京市建网站青田县建设局官方网站
  • 专业的网站建设报价不正规网站制作
  • 如何提高网站访问量西安知名高端网站建设服务企业
  • 帮助网站源码wordpress设置数据库
  • 如何建设和优化一个网站wordpress数据库安装失败
  • asp.net网站备份在线推广企业网站的方法有
  • 蛋糕磨具网站开发背景深圳网站建设公司哪好
  • 济南网站制作专业怎么做一个网站页面
  • 免费建立网站软件wordpress免插件代码高亮
  • 苏州网站建设-中国互联住房和城乡建设部网站预售证
  • 免费注册com的网站百度搜索显示网站logo
  • 别人做的网站打不开专业做旅游网站