egg(72,73)--egg之商品curd的编辑

controller

app/controller/admin/goods.js

edit

      async edit() {


        //获取修改数据的id

        var id=this.ctx.request.query.id;

        //获取所有的颜色值
        var colorResult=await this.ctx.model.GoodsColor.find({});

        //获取所有的商品类型
        var goodsType=await this.ctx.model.GoodsType.find({});

        //获取商品分类

        var goodsCate=await this.ctx.model.GoodsCate.aggregate([
        
            {
              $lookup:{
                from:'goods_cate',
                localField:'_id',
                foreignField:'pid',
                as:'items'      
              }      
          },
          {
              $match:{
                "pid":'0'
              }
          }
        
        ])


        //获取修改的商品

        var goodsResult=await this.ctx.model.Goods.find({'_id':id});

       

        //获取当前商品的颜色
        // 5bbb68dcfe498e2346af9e4a,5bbb68effe498e2346af9e4b,5bc067d92e5f889dc864aa96


        var colorArrTemp=goodsResult[0].goods_color.split(',');

        // console.log(colorArrTemp);

        var goodsColorArr=[];

        colorArrTemp.forEach((value)=>{
          goodsColorArr.push({"_id":value})
        })
        var goodsColorReulst=await this.ctx.model.GoodsColor.find({
          $or:goodsColorArr
        })


        // console.log(colorReulst);

        //获取规格信息 

        var goodsAttsResult=await this.ctx.model.GoodsAttr.find({"goods_id":goodsResult[0]._id}); 

        var goodsAttsStr='';

        goodsAttsResult.forEach(async (val)=>{

            if(val.attribute_type==1){    

              goodsAttsStr+=`
  • ${val.attribute_title}:  
  • `; }else if(val.attribute_type==2){ goodsAttsStr+=`
  • ${val.attribute_title}:  
  • `; }else{ //获取 attr_value 获取可选值列表 var oneGoodsTypeAttributeResult=await this.ctx.model.GoodsTypeAttribute.find({ _id:val.attribute_id }) var arr=oneGoodsTypeAttributeResult[0].attr_value.split('\n'); goodsAttsStr+=`
  • ${val.attribute_title}:  `; goodsAttsStr+=``; goodsAttsStr+=`
  • `; } }) //商品的图库信息 var goodsImageResult=await this.ctx.model.GoodsImage.find({"goods_id":goodsResult[0]._id}); console.log(goodsImageResult); await this.ctx.render('admin/goods/edit',{ colorResult:colorResult, goodsType:goodsType, goodsCate:goodsCate, goods:goodsResult[0], goodsAtts:goodsAttsStr, goodsImage:goodsImageResult, goodsColor:goodsColorReulst }); }

    doEdit

          async doEdit() {
            let parts = this.ctx.multipart({ autoFields: true });
            let files = {};               
            let stream;
            while ((stream = await parts()) != null) {
                if (!stream.filename) {          
                  break;
                }       
                let fieldname = stream.fieldname;  //file表单的名字
      
                //上传图片的目录
                let dir=await this.service.tools.getUploadFile(stream.filename);
                let target = dir.uploadDir;
                let writeStream = fs.createWriteStream(target);
      
                await pump(stream, writeStream);  
      
                files=Object.assign(files,{
                  [fieldname]:dir.saveDir    
                })
                
            }      
    
            var formFields=Object.assign(files,parts.field);
    
            //修改商品的id
            var goods_id=parts.field.id;        
            //修改商品信息
            await this.ctx.model.Goods.updateOne({"_id":goods_id},formFields);
      
            //修改图库信息  (增加)
    
            var  goods_image_list=formFields.goods_image_list;
            if(goods_id && goods_image_list){            
              if(typeof(goods_image_list)=='string'){
    
                goods_image_list=new Array(goods_image_list);
              }
                        
              for(var i=0;i

    view

    app/view/admin/goods/edit.html
    <%- include ../public/page_header.html %>
    
    
    
    
    
        
        
    
        
        
        
    
        
        
        
    
        
    
    
        
    
        
        
        
        
    
              
    
    
        
    • 商品标题:
    • 附属标题:
    • 商品版本:
    • 所属分类:
    • 商品图片:
    • 商品价格:
    • 商品原价:
    • 商品状态:  checked <%}%> value="1" id="a"/> checked <%}%> value="0" id="b"/>
    • 加入推荐:  checked <%}%> name="is_best"/> 精品 checked <%}%> /> 热销 checked <%}%> /> 新品
    • 商品颜色: <%for(var i=0;i <%if(goods.goods_color.indexOf(colorResult[i]._id.toString())!=-1){%> <%}else{%> <%}%> <%}%>
    • 关联商品: 填写关联商品的id 多个以逗号隔开 格式:23,24,39
    • 关联赠品: 可为空 格式:23-2,39-5 说明:例如23-2 中的23表示商品id,2表示商品数量
    • 关联配件: 可为空 格式:23-2,39-5 说明:例如23-2 中的23表示商品id,2表示商品数量
    • 更多属性: 格式: 颜色:红色,白色,黄色 | 尺寸:41,42,43
    • Seo关键词:
    • Seo描述:
    • 商品类型: 
      <%-goodsAtts%>
      <%for(var i=0;i
    • <%}%>

    效果

    你可能感兴趣的:(eggjs)