开源软件企业

简明优雅一步一步搞GOframe第五天 完整的更新记录方案

2024/3/15 23:50:00

1 未了在端口中看到生成的sql 需要更新配置文件(manifest\config\config.yaml)

database:
  logger:
    path:    "/log/sql"
    level:   "all"
    stdout:  true
  default:
    link: "sqlite::@file(hack/lncms.db)"
    debug:   true



一、list 页面 


   function edit(obj) {
      layer.open({
        title: '编辑 - id:' + obj,
        type: 2,
        area: ['80%', '90%'],
        content: 'news/edit?nid='+ + obj,

      });
    }


如果非   "openType": "_component",  页面 要如下写

    <script type="text/javascript" src="component/layui/layui.js"></script>
    <script>

        
        layui.use(['layer', 'element'], function() {   
        var $ = layui.jquery;
        var layer = layui.layer;
               window.edit = function(obj) {
                    layer.open({
                    type: 2,
                    title: '修改',
                    shade: 0.1,
                    area: ['90%' , '600px'],
                    content: '/news/classedit?nid='+obj 
                  });
                }

        })
            
    </script>


二、对应的 edit.html 写好form 后

user-save


                <button class="layui-btn" lay-submit  lay-filter="user-save">提交</button>
news_edit



<form class="layui-form" action="" id="news_edit">


        form.on('submit(user-save)', function(data){
            layer.load(2, { shade: [0.35, '#ccc'] });
            $.ajax({
                url:'/news/editjson',
                data: $('#news_edit').serialize(),
                dataType:'json',
                type:'post',
                success:function(result){
                    layer.closeAll('loading');
                    if(result.code == 200){
                        layer.msg(result.msg,{icon:1,time:1000},function(){
                            parent.layer.close(parent.layer.getFrameIndex(window.name));//关闭当前页
                            parent.layui.table.reload("role-table");
                        });
                    }else{
                        layer.msg(result.msg,{icon:2,time:1000});
                    }
                }
            })
            return false;
        });


三 controller  对应2个页面二个方法


 


      //混编一体list     

  s.BindHandler("/news/class", func(r *ghttp.Request) {

                md := dao.LClasss.Ctx(r.Context())
                classs, err := md.All()
                if err == nil {
                    r.Response.WriteTpl("news/class.html", g.Map{
                        "header": "This is header",
                        "data":   classs,
                    })
                }

            })


      //混编一体编辑 修改   
            s.BindHandler("/news/classedit", func(r *ghttp.Request) {
                md := dao.LClasss.Ctx(r.Context())
                // news, err := md.One()

                if r.Request.Method == "GET" { //加载使用赋值用
                    cid := r.Get("id")
                    news, err := md.Where("CID", cid).One()
                    if err == nil {
                        r.Response.Write(r.Get("id"))

                        r.Response.WriteTpl("news/classedit.html", g.Map{
                            "header": "This is header",
                            "news":   news,
                        })
                    }

                } else { //提交表单用
                    cid := r.GetForm("CID")
                    mform := r.GetFormMap(map[string]interface{}{"CNmae": ""})
                    result, err := md.Where("cid", cid).Update(mform)

                    if err == nil {
                        r.Response.WriteJsonExit(common.JsonResult{
                            Code: 200,
                            Msg:  "查询成功",
                            Data: result,
                        })
                    }

                }

            })




更新成功