egg(67)--商品curd之商品属性与颜色关联,商品与商品类型相关联

商品属性与颜色关联

model

app/model/goods_color.js

module.exports = app => {
    const mongoose = app.mongoose;
    const Schema = mongoose.Schema;

    const GoodsColorSchema = new Schema({
      color_name:{ type:String },
      color_value: { type: String  },
      status: { type: Number,default:1  },    
    }); 
    return mongoose.model('GoodsColor', GoodsColorSchema,'goods_color');
  }

controller

app/controller/admin/goods.js
    async add() {
        //获取所有的颜色值
      var colorResult = await this.ctx.model.GoodsColor.find({});
      await this.ctx.render('admin/goods/add',{
        colorResult:colorResult,
      });
      
    } 

view

app/view/admin/goods/add.html
                                        <li> <span>商品颜色:</span>
                                           
                                            <% for(var i =0;i<colorResult.length;i++){ %>
                                                <input type="checkbox" name="colors[]" value="<%=colorResult[i]._id%>" id="color_<%=colorResult[i]._id%>" /> <label for="color_<%=colorResult[i]._id%>"><%=colorResult[i].color_name%></label>
                                            <%}%>
        
                                         </li>

效果

在增加商品属性的时候,查找到所有的商品颜色

clipboard.png

商品与商品类型相关联

router.js

      router.get('/admin/goods', controller.admin.goods.index);
      router.get('/admin/goods/add', controller.admin.goods.add);
      router.get('/admin/goods/goodsTypeAttribute', controller.admin.goods.goodsTypeAttribute);  
      router.post('/admin/goods/doAdd', controller.admin.goods.doAdd);

controller

app/controller/admin/goods.js
    async add() {
        //获取所有的商品类型,对应包装与规格
        var goodsType = await this.ctx.model.GoodsType.find({});
        await this.ctx.render('admin/goods/add',{
        goodsType:goodsType
      });
      
    } 

view

app/view/admin/goods/add.html
  1. 根据attr_type显示同的展示形式
  2. attr_type== 1 蓝色 input
  3. attr_type== 2 红色 textarea
  4. attr_type== 3 绿色 select

html

                        <div role="tabpanel" class="tab-pane" id="attribute">
                            <ul class="form_input">
                                <li> <span>商品类型: </span>
                                    <select name="goods_type_id" id="goods_type_id">
                                        <option value="0">--请选择商品类型--</option>
                                        <%for(var i=0;i<goodsType.length;i++){%>
                                            <option value="<%=goodsType[i]._id%>"><%=goodsType[i].title%></option>
                                        <%}%>
                                    </select>
                                 </li>
                            </ul>
                            <ul class="form_input" id="goods_type_attribute">

                            </ul>
                        </div>

js

$(function(){
    $('#goods_type_id').change(function(){
        // alert($(this).val());
        var cate_id=$(this).val();
        var data='';
        $.get('/admin/goods/goodsTypeAttribute?cate_id='+cate_id,function(response){
            console.log(response.result);
            data=response.result;
            console.log(data.length);
            var str="";
            for(var i=0;i<data.length;i++){
                if(data[i].attr_type==1){
                   str+='<li><span>'+data[i].title+':  </span><input type="hidden" name="attr_id_list[]" value="'+data[i]._id+'" />  <input type="text" name="attr_value_list[]" /></li>' 
                }else if(data[i].attr_type==2){
                    str+='<li><span>'+data[i].title+':  </span> <input type="hidden" name="attr_id_list[]" value="'+data[i]._id+'">  <textarea cols="50" rows="3" name="attr_value_list[]"></textarea></li>'                            
                 }else{
                    var arr=data[i].attr_value.split('\n');
                    str+='<li><span>'+data[i].title+':  </span><input type="hidden" name="attr_id_list[]" value="'+data[i]._id+'">';
                        str+='<select name="attr_value_list[]">';                            
                            for(var j=0;j<arr.length;j++){                               
                                str+='<option value="'+arr[j]+'">'+arr[j]+'</option>';
                            }
                        str+='</select>';
                    str+='</li>';
                }
            }
            $('#goods_type_attribute').html(str);
        })
    })
})

效果

clipboard.png

clipboard.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列,管理员可以进行查看列、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值