clllll  

修修改改成为自己想要的

七米老师的 :https://github.com/Q1mi/bubble

gifts_for_you

就是送的礼物的 记录
字段包括 时间、礼物、文字

先运行起来

1、创建数据库 配置连接数据的用户密码

CREATE DATABASE bubble DEFAULT CHARSET=utf8mb4;

conf/config.ini

port = 9000
release = false

[mysql]
user = root
password = root
host = 127.0.0.1
port = 3306
db = bubble

2、编译运行

go build
.\bubble.exe conf/config.ini
image

表自动就创建好了
image

3、访问

image
image

可以访问,说明环境没问题。改一下model成为咱要的字段就可以了。

阅读源代码

1、从main.go开始

package main

import (
	"fmt"
	"gifts_for_you/dao"  
	"gifts_for_you/models"
	"gifts_for_you/routers"
	"gifts_for_you/setting"
	"os"
)

func main() {
	if len(os.Args) < 2 {
		fmt.Println("Usage: ./gifts_for_you conf/config.ini")
		return
	}
	// 加载配置文件
	if err := setting.Init(os.Args[1]); err != nil {
		fmt.Printf("load config from file failed, err:%v\n", err)
		return
	}
	// 创建数据库
	// sql: CREATE DATABASE bubble;
	// 连接数据库
	err := dao.InitMySQL(setting.Conf.MySQLConfig)
	if err != nil {
		fmt.Printf("init mysql failed, err:%v\n", err)
		return
	}
	defer dao.Close() // 程序退出关闭数据库连接
	// 模型绑定
	dao.DB.AutoMigrate(&models.Todo{})
	// 注册路由
	r := routers.SetupRouter()
	if err := r.Run(fmt.Sprintf(":%d", setting.Conf.Port)); err != nil {
		fmt.Printf("server startup failed, err:%v\n", err)
	}
}

整个流程就是 执行启动需要一个ini配置文件(数据库的信息),然后会连接数据库,然后创建表。然后配置 url和函数的映射。

2、要修改前台。还是要用vue. 不然不好改。

image

https://github.com/Q1mi/bubble_frontend
先把前台运行起来。
image

image

连不上后台。报错
Proxy error: Could not proxy request /v1/todo from localhost:8080 to http://127.0.0.1:9000.

破案了,打开前台代码把后台的窗口关了。

image

现在好了。可以正常访问。
image

开始修改

model改成咱要用的字段。类名先不改。

type Todo struct {
	ID     int       `json:"id"`
	Title  string    `json:"title"`
	Status bool      `json:"status"`
	Type   string    `json:"type"`
	Text   string    `json:"text"`
	Date   time.Time `json:"date"`
	To     string    `json:"to"`
}

修改之后启动。表自动创建好了
image

修改前台 界面,基本的

image

bug1,除了原来的待办事项能输入,其他的都输入不了。

image

先用postman测试后端

image

时间不对。修改为 sql.NullTime
image

数据库的数据不太对。
image

form表单格式不对。应该是json。哈哈
image

image

查询

时间不对,还得改一下。
image

修改

image

删

image

日期格式

我只要想要 年月日,需要格式化啥的。咱简单点。搞成字符串。
image

image

至此 后端没啥问题了。

前端

1、从element ui 挑一个模板,表格类型,

image

mounted来获取数据

mounted() {
    this.axios
      .get("/v1/todo")
      .then(response => (this.tableData = response.data));
  },

2、添加礼物表单

image

bug:select value 为汉字不行。得用英文,简单点,改成 用户自己输入把。不选择了。
image

image

能正确显示,就这样吧
image

<template>
    <el-form ref="form" :model="sizeForm" label-width="80px" size="mini">
    <el-form-item label="送礼人">
      <el-input v-model="sizeForm.from"></el-input>
    </el-form-item>

    <el-form-item label="收礼人">
      <el-input v-model="sizeForm.to"></el-input>
    </el-form-item>

    <el-form-item label="送礼时间">
      <el-col :span="11">
        <el-date-picker type="date" value-format="yyyy-MM-dd" placeholder="选择日期" v-model="sizeForm.date" style="width: 100%;"></el-date-picker>
      </el-col>
    </el-form-item>
    
    <el-form-item label="礼物类型">
      <el-input v-model="sizeForm.type" placeholder="父亲节、母亲节、情人节等等"></el-input>
    </el-form-item>
    
    <el-form-item label="礼物">
      <el-input v-model="sizeForm.gift"></el-input>
    </el-form-item>

    <el-form-item label="留言">
    <el-input type="textarea" v-model="sizeForm.text"></el-input>
    </el-form-item>
    <el-form-item size="large">
      <el-button type="primary" @click="onSubmit">添加</el-button>
    </el-form-item>
  </el-form>
</template>
  
  <script>
    export default {
      data() {
        return {
          sizeForm: {
            from: this.from,
            to: this.to,
            date: this.date,
            type: this.type,
            gift: this.gift,
            text: this.text
          }
        };
      },
      methods: {
        onSubmit() {
        this.axios
          .post("/v1/todo", {
            from: this.sizeForm.from,
            to: this.sizeForm.to,
            date: this.sizeForm.date,
            type: this.sizeForm.type,
            gift: this.sizeForm.gift,
            text: this.sizeForm.text
          })
          .then(() => {
            this.$message({
              showClose: true,
              duration: 1500,
              message: "添加礼物成功",
              type: "success"
            });
          });
        }
      }
    };
  </script>
<template>
  
  <el-table
    :data="tableData"
    style="width: 100%">
    <el-table-column
      label="送礼人"
      prop="from">
    </el-table-column>
    <el-table-column
      label="接收者"
      prop="to">
    </el-table-column>
    <el-table-column
      label="送礼时间"
      prop="date">
    </el-table-column>
    <el-table-column
      label="礼物类型"
      prop="type">
    </el-table-column>
    <el-table-column
      label="礼物"
      prop="gift">
    </el-table-column>
    <el-table-column
      label="留言"
      prop="text">
    </el-table-column>
  </el-table>
</template>

<script>
  export default {
    data() {
      return {
        tableData: [{
          "id": 1,
          "title": "title1",
          "status": false,
          "type": "父亲节",
          "text": "happy Day",
          "date": "2023-04-09",
          "from": "lzl",
          "to": "mother",
          "gift": "围巾"
        }],
        search: ''
      }
    },
    mounted() {
    this.axios
      .get("/v1/todo")
      .then(response => (this.tableData = response.data));
    },
    methods: {
      handleEdit() {
       
      },
      handleDelete() {
        
      }
    },
  }
</script>
礼物后期有时间改成上传图片的。
posted on 2023-04-09 19:02  llcl  阅读(120)  评论(0)    收藏  举报