[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-public-F8DqfdBe":3,"public-project-articles-F8DqfdBe":17},{"id":4,"uuid":5,"project_id":6,"title":7,"content":8,"type":9,"status":10,"public_enabled":10,"views":11,"sort":12,"created_at":13,"updated_at":14,"project_title":15,"project_slug":16},254,"F8DqfdBe",38,"13. 开发餐品管理功能.","效果图\n![image.png](https:\u002F\u002Fcdn.nlark.com\u002Fyuque\u002F0\u002F2024\u002Fpng\u002F751015\u002F1709000337407-59b3089d-3e21-4d2b-b98a-89563fb188dc.png#averageHue=%23fbf8f6&clientId=ufcd6fe79-0021-4&from=paste&height=705&id=F7p6G&originHeight=881&originWidth=1920&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=217922&status=done&style=none&taskId=udf625ad8-8f11-4830-9c6f-5e57699dd31&title=&width=1536)\n\n## SQL\n\n```sql\nCREATE TABLE `foods` (\n  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',\n  `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '名称',\n  `descr` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '餐品简介',\n  `price` decimal(10,2) DEFAULT NULL COMMENT '价格',\n  `img` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '图片',\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n```\n\n## 开发餐品信息后台管理\n\nFoodsMapper.xml\n\n```java\n\u003C?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\u003C!DOCTYPE mapper\n        PUBLIC \"-\u002F\u002Fmybatis.org\u002F\u002FDTD Mapper 3.0\u002F\u002FEN\"\n        \"http:\u002F\u002Fmybatis.org\u002Fdtd\u002Fmybatis-3-mapper.dtd\">\n\u003Cmapper namespace=\"com.example.mapper.FoodsMapper\">\n\n    \u003Cinsert id=\"insert\">\n        insert into foods (name, descr, price, img)\n        values (#{name}, #{descr}, #{price}, #{img})\n    \u003C\u002Finsert>\n\n\n    \u003Cupdate id=\"updateById\">\n        update foods\n        \u003Cset>\n            \u003Cif test=\"name != null\">name = #{name},\u003C\u002Fif>\n            \u003Cif test=\"descr != null\">descr = #{descr},\u003C\u002Fif>\n            \u003Cif test=\"price != null\">price = #{price},\u003C\u002Fif>\n            \u003Cif test=\"img != null\">img = #{img},\u003C\u002Fif>\n        \u003C\u002Fset>\n        where id = #{id}\n    \u003C\u002Fupdate>\n\n    \u003Cdelete id=\"deleteById\">\n        delete\n        from foods\n        where id = #{id}\n    \u003C\u002Fdelete>\n\n    \u003Cselect id=\"selectAll\" resultType=\"com.example.entity.Foods\">\n        select foods.* from foods\n        \u003Cwhere>\n            \u003Cif test=\"name != null\">\n                foods.name like concat('%', #{name}, '%')\n            \u003C\u002Fif>\n        \u003C\u002Fwhere>\n        order by id desc\n    \u003C\u002Fselect>\n\n\n\u003C\u002Fmapper>\n```\n\nFoodsController\n\n```java\npackage com.example.controller;\n\nimport com.example.common.Result;\nimport com.example.entity.Foods;\nimport com.example.service.FoodsService;\nimport com.github.pagehelper.PageInfo;\nimport jakarta.annotation.Resource;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n@RestController\n@RequestMapping(\"\u002Ffoods\")\npublic class FoodsController {\n\n    @Resource\n    FoodsService foodsService;\n\n    \u002F**\n     * 新增\n     *\u002F\n    @PostMapping(\"\u002Fadd\")\n    public Result add(@RequestBody Foods foods) {\n        foodsService.add(foods);\n        return Result.success();\n    }\n\n    \u002F**\n     * 删除\n     *\u002F\n    @DeleteMapping(\"\u002Fdelete\u002F{id}\")\n    public Result delete(@PathVariable Integer id) {\n        foodsService.deleteById(id);\n        return Result.success();\n    }\n\n    \u002F**\n     * 批量删除\n     *\u002F\n    @DeleteMapping(\"\u002Fdelete\u002Fbatch\")\n    public Result delete(@RequestBody List\u003CInteger> ids) {\n        foodsService.deleteBatch(ids);\n        return Result.success();\n    }\n\n    \u002F**\n     * 更新\n     *\u002F\n    @PutMapping(\"\u002Fupdate\")\n    public Result update(@RequestBody Foods foods) {\n        foodsService.updateById(foods);\n        return Result.success();\n    }\n\n    \u002F**\n     * 查询单个\n     *\u002F\n    @GetMapping(\"\u002FselectById\u002F{id}\")\n    public Result selectById(@PathVariable Integer id) {\n        Foods foods = foodsService.selectById(id);\n        return Result.success(foods);\n    }\n\n    \u002F**\n     * 查询所有\n     *\u002F\n    @GetMapping(\"\u002FselectAll\")\n    public Result selectAll(String name) {\n        List\u003CFoods> list = foodsService.selectAll(name);\n        return Result.success(list);\n    }\n\n    \u002F**\n     * 查询所有\n     *\u002F\n    @GetMapping(\"\u002FselectPage\")\n    public Result selectPage(\n            String name,\n            @RequestParam(defaultValue = \"1\") Integer pageNum,\n            @RequestParam(defaultValue = \"10\") Integer pageSize) {\n        PageInfo\u003CFoods> pageInfo = foodsService.selectPage(name, pageNum, pageSize);\n        return Result.success(pageInfo);\n    }\n\n}\n\n```\n\n## 开发前台Vue\n\ntable\n\n```vue\n\u003Cel-table :data=\"data.tableData\">\n  \u003Cel-table-column prop=\"id\" label=\"序号\" width=\"70\"\u002F>\n  \u003Cel-table-column prop=\"name\" label=\"名称\"\u002F>\n  \u003Cel-table-column prop=\"descr\" label=\"简介\"\u002F>\n  \u003Cel-table-column prop=\"price\" label=\"价格\"\u002F>\n  \u003Cel-table-column label=\"图片\">\n    \u003Ctemplate v-slot=\"scope\">\n      \u003Cel-image style=\"width: 100px; height: 100px; display: block\" v-if=\"scope.row.img\" :src=\"scope.row.img\" :preview-src-list=\"[scope.row.img]\" preview-teleported>\u003C\u002Fel-image>\n    \u003C\u002Ftemplate>\n  \u003C\u002Fel-table-column>\n  \u003Cel-table-column label=\"操作\" width=\"180\">\n    \u003Ctemplate #default=\"scope\">\n      \u003Cel-button type=\"primary\" @click=\"handleEdit(scope.row)\">编辑\u003C\u002Fel-button>\n      \u003Cel-button type=\"danger\" @click=\"del(scope.row.id)\">删除\u003C\u002Fel-button>\n    \u003C\u002Ftemplate>\n  \u003C\u002Fel-table-column>\n\u003C\u002Fel-table>\n```\n\nform\n\n```vue\n\u003Cel-form :model=\"data.form\" label-width=\"100px\" style=\"padding-right: 50px\">\n  \u003Cel-form-item label=\"名称\">\n    \u003Cel-input v-model=\"data.form.name\" autocomplete=\"off\" \u002F>\n  \u003C\u002Fel-form-item>\n  \u003Cel-form-item label=\"简介\">\n    \u003Cel-input type=\"textarea\" v-model=\"data.form.descr\" autocomplete=\"off\" \u002F>\n  \u003C\u002Fel-form-item>\n  \u003Cel-form-item label=\"价格\">\n    \u003Cel-input v-model=\"data.form.price\" autocomplete=\"off\" \u002F>\n  \u003C\u002Fel-form-item>\n  \u003Cel-form-item label=\"图片\">\n    \u003Cel-upload action=\"http:\u002F\u002Flocalhost:9090\u002Ffiles\u002Fupload\" :on-success=\"handleFileUpload\">\n      \u003Cel-button type=\"primary\">点击上传\u003C\u002Fel-button>\n    \u003C\u002Fel-upload>\n  \u003C\u002Fel-form-item>\n\u003C\u002Fel-form>\n```","coding",1,731,433,"2024-06-03 22:12:43","2026-05-03 22:49:02","SpringBoot3+Vue3的在线点餐系统","online-ordering",{"project":18,"items":19},{"id":6,"title":15,"slug":16},[20,27,34,41,48,55,62,69,76,83,90,97,104,105,112,119],{"id":21,"uuid":22,"project_id":6,"title":23,"type":9,"status":10,"public_enabled":10,"views":24,"sort":25,"created_at":26,"updated_at":14,"project_title":15,"project_slug":16},58,"JOJVoOQd","01. 在线点餐系统介绍",2745,102,"2025-01-09 09:49:39",{"id":28,"uuid":29,"project_id":6,"title":30,"type":9,"status":10,"public_enabled":10,"views":31,"sort":32,"created_at":33,"updated_at":14,"project_title":15,"project_slug":16},59,"Tt7tzqbb","02. 脚手架介绍",2364,103,"2025-01-09 09:54:51",{"id":35,"uuid":36,"project_id":6,"title":37,"type":9,"status":10,"public_enabled":10,"views":38,"sort":39,"created_at":40,"updated_at":14,"project_title":15,"project_slug":16},60,"h74qSg8n","03. 开发登录功能",1974,104,"2024-04-16 02:30:00",{"id":42,"uuid":43,"project_id":6,"title":44,"type":9,"status":10,"public_enabled":10,"views":45,"sort":46,"created_at":47,"updated_at":14,"project_title":15,"project_slug":16},61,"uv8MFWZg","04. 开发后台登录接口",1729,105,"2024-04-16 02:29:56",{"id":49,"uuid":50,"project_id":6,"title":51,"type":9,"status":10,"public_enabled":10,"views":52,"sort":53,"created_at":54,"updated_at":14,"project_title":15,"project_slug":16},62,"jd2xjxUG","05. 开发普通用户登录功能",1145,106,"2024-04-16 02:29:27",{"id":56,"uuid":57,"project_id":6,"title":58,"type":9,"status":10,"public_enabled":10,"views":59,"sort":60,"created_at":61,"updated_at":14,"project_title":15,"project_slug":16},63,"TnvWfP4t","06. 开发普通用户注册功能",861,107,"2024-04-16 02:29:23",{"id":63,"uuid":64,"project_id":6,"title":65,"type":9,"status":10,"public_enabled":10,"views":66,"sort":67,"created_at":68,"updated_at":14,"project_title":15,"project_slug":16},64,"j9QNZGZU","07. 开发管理员后台接口",873,108,"2024-04-16 02:29:17",{"id":70,"uuid":71,"project_id":6,"title":72,"type":9,"status":10,"public_enabled":10,"views":73,"sort":74,"created_at":75,"updated_at":14,"project_title":15,"project_slug":16},65,"Sle0aiDs","08. 开发管理员管理页面并对接后台接口",821,109,"2024-04-16 02:29:13",{"id":77,"uuid":78,"project_id":6,"title":79,"type":9,"status":10,"public_enabled":10,"views":80,"sort":81,"created_at":82,"updated_at":14,"project_title":15,"project_slug":16},66,"msAf9SFh","09. 开发文件上传功能",659,110,"2024-04-16 02:29:09",{"id":84,"uuid":85,"project_id":6,"title":86,"type":9,"status":10,"public_enabled":10,"views":87,"sort":88,"created_at":89,"updated_at":14,"project_title":15,"project_slug":16},67,"8FBiQ4ue","10. 个人资料管理",736,111,"2024-04-16 02:29:06",{"id":91,"uuid":92,"project_id":6,"title":93,"type":9,"status":10,"public_enabled":10,"views":94,"sort":95,"created_at":96,"updated_at":14,"project_title":15,"project_slug":16},252,"hi7dGSTj","11. 顾客信息管理",643,431,"2024-06-20 15:59:16",{"id":98,"uuid":99,"project_id":6,"title":100,"type":9,"status":10,"public_enabled":10,"views":101,"sort":102,"created_at":103,"updated_at":14,"project_title":15,"project_slug":16},253,"2vquH0pr","12. 餐桌管理",879,432,"2024-06-03 22:12:16",{"id":4,"uuid":5,"project_id":6,"title":7,"type":9,"status":10,"public_enabled":10,"views":11,"sort":12,"created_at":13,"updated_at":14,"project_title":15,"project_slug":16},{"id":106,"uuid":107,"project_id":6,"title":108,"type":9,"status":10,"public_enabled":10,"views":109,"sort":110,"created_at":111,"updated_at":14,"project_title":15,"project_slug":16},275,"G20uzwaW","14. 开发在线点餐功能（一）",768,467,"2024-06-27 12:21:02",{"id":113,"uuid":114,"project_id":6,"title":115,"type":9,"status":10,"public_enabled":10,"views":116,"sort":117,"created_at":118,"updated_at":14,"project_title":15,"project_slug":16},276,"0bl3zvbT","15. 开发在线点餐功能（二）",609,468,"2024-06-27 12:21:30",{"id":120,"uuid":121,"project_id":6,"title":122,"type":9,"status":10,"public_enabled":10,"views":123,"sort":124,"created_at":125,"updated_at":14,"project_title":15,"project_slug":16},277,"AUgPvs9x","16. 开发在线点餐功能（三）",716,469,"2024-06-27 12:22:01"]