From c56ca2809ce6e05c531a240a8f145aa801ea9b7e Mon Sep 17 00:00:00 2001 From: fleyx Date: Sun, 13 Aug 2023 15:05:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=94=AF=E6=8C=81=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E5=BC=95=E6=93=8E=E8=87=AA=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SearchEngineController.java | 47 +++++ .../business/user/dao/SearchEngineDao.java | 8 + .../bookmark/business/user/dao/UserDao.java | 13 +- .../business/user/entity/SearchEngine.java | 29 ++++ .../user/service/SearchEngineService.java | 49 ++++++ .../service/impl/BaseInfoServiceImpl.java | 2 +- .../user/service/impl/OauthServiceImpl.java | 4 + .../service/impl/SearchEngineServiceImpl.java | 88 ++++++++++ .../user/service/impl/UserServiceImpl.java | 6 + bookMarkService/common/pom.xml | 59 +++++-- .../fanxb/bookmark/common/entity/po/User.java | 12 +- bookMarkService/pom.xml | 2 +- .../db/migration/V24__增加搜索引擎表.sql | 22 ++- bookmark_front/src/main.js | 52 +++--- .../components/manageSearchEngine.vue | 164 ++++++++++++++++++ .../src/views/manage/personSpace/index.vue | 52 +++--- 16 files changed, 519 insertions(+), 90 deletions(-) create mode 100644 bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/controller/SearchEngineController.java create mode 100644 bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/dao/SearchEngineDao.java create mode 100644 bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/entity/SearchEngine.java create mode 100644 bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/SearchEngineService.java create mode 100644 bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/SearchEngineServiceImpl.java create mode 100644 bookmark_front/src/views/manage/personSpace/components/manageSearchEngine.vue diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/controller/SearchEngineController.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/controller/SearchEngineController.java new file mode 100644 index 0000000..248b71c --- /dev/null +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/controller/SearchEngineController.java @@ -0,0 +1,47 @@ +package com.fanxb.bookmark.business.user.controller; + +import com.fanxb.bookmark.business.user.dao.SearchEngineDao; +import com.fanxb.bookmark.business.user.entity.SearchEngine; +import com.fanxb.bookmark.business.user.service.SearchEngineService; +import com.fanxb.bookmark.common.entity.Result; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/searchEngine") +public class SearchEngineController { + @Autowired + private SearchEngineService searchEngineService; + + /** + * 列表查询 + */ + @GetMapping("/list") + public Result list() { + return Result.success(searchEngineService.list()); + } + + @PostMapping("/insert") + public Result insert(@RequestBody SearchEngine body){ + searchEngineService.insertOne(body); + return Result.success(); + } + + @PostMapping("/edit") + public Result edit(@RequestBody SearchEngine body){ + searchEngineService.editOne(body); + return Result.success(); + } + + @PostMapping("/delete") + public Result delete(@RequestBody SearchEngine body){ + searchEngineService.deleteOne(body.getId()); + return Result.success(); + } + + @PostMapping("/setChecked") + public Result setChecked(@RequestBody SearchEngine body){ + searchEngineService.setChecked(body.getId()); + return Result.success(); + } +} diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/dao/SearchEngineDao.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/dao/SearchEngineDao.java new file mode 100644 index 0000000..34772eb --- /dev/null +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/dao/SearchEngineDao.java @@ -0,0 +1,8 @@ +package com.fanxb.bookmark.business.user.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.fanxb.bookmark.business.user.entity.SearchEngine; + +public interface SearchEngineDao extends BaseMapper { + +} diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/dao/UserDao.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/dao/UserDao.java index 3ce6b63..0d84c54 100644 --- a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/dao/UserDao.java +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/dao/UserDao.java @@ -1,5 +1,6 @@ package com.fanxb.bookmark.business.user.dao; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.fanxb.bookmark.common.entity.po.User; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -16,7 +17,7 @@ import java.util.List; * @date 2019/7/6 11:36 */ @Component -public interface UserDao { +public interface UserDao extends BaseMapper { /** * Description: 新增一个用户 @@ -182,16 +183,6 @@ public interface UserDao { @Select("select userId from user order by userId limit #{start},#{size}") List selectUserIdPage(@Param("start") int start, @Param("size") int size); - /** - * 更新用户搜索引擎 - * - * @param userId userId - * @param engine engine - * @author fanxb - * @date 2021/3/14 - **/ - @Update("update user set defaultSearchEngine=#{engine} where userId=#{userId}") - void updateSearchEngine(@Param("userId") int userId, @Param("engine") String engine); /** * 更新一个字段-一个条件 diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/entity/SearchEngine.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/entity/SearchEngine.java new file mode 100644 index 0000000..2217456 --- /dev/null +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/entity/SearchEngine.java @@ -0,0 +1,29 @@ +package com.fanxb.bookmark.business.user.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +@TableName("search_engine") +public class SearchEngine { + @TableId(type = IdType.AUTO) + private Integer id; + private Integer userId; + private Integer checked; + /** + * 名称 + */ + private String name; + /** + * url + */ + private String url; + /** + * 图标 + */ + private String icon; +} diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/SearchEngineService.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/SearchEngineService.java new file mode 100644 index 0000000..21452cf --- /dev/null +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/SearchEngineService.java @@ -0,0 +1,49 @@ +package com.fanxb.bookmark.business.user.service; + +import com.fanxb.bookmark.business.user.entity.SearchEngine; + +import java.util.List; + +public interface SearchEngineService { + + /** + * 列表查询 + */ + List list(); + + /** + * delete one by id + * + * @param id id + */ + void deleteOne(int id); + + /** + * insert one + * + * @param body body + */ + void insertOne(SearchEngine body); + + + /** + * edit one + * + * @param body body + */ + void editOne(SearchEngine body); + + /** + * 设为默认搜索项 + * + * @param id + */ + void setChecked(Integer id); + + /** + * 新用户初始化 + * + * @param userId userId + */ + void newUserInit(int userId); +} diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/BaseInfoServiceImpl.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/BaseInfoServiceImpl.java index 4c7dd1c..1a9ccba 100644 --- a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/BaseInfoServiceImpl.java +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/BaseInfoServiceImpl.java @@ -87,6 +87,6 @@ public class BaseInfoServiceImpl implements BaseInfoService { @Override public void changeDefaultSearchEngine(User user) { - userDao.updateSearchEngine(user.getUserId(), user.getDefaultSearchEngine()); + userDao.updateById(user); } } diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/OauthServiceImpl.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/OauthServiceImpl.java index 1d802ab..56ecafa 100644 --- a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/OauthServiceImpl.java +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/OauthServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.fanxb.bookmark.business.user.dao.UserDao; import com.fanxb.bookmark.business.user.service.OauthService; +import com.fanxb.bookmark.business.user.service.SearchEngineService; import com.fanxb.bookmark.business.user.service.UserService; import com.fanxb.bookmark.business.user.vo.OauthBody; import com.fanxb.bookmark.common.constant.CommonConstant; @@ -38,6 +39,8 @@ public class OauthServiceImpl implements OauthService { private String githubClientId; @Value("${OAuth.github.secret}") private String githubSecret; + @Autowired + private SearchEngineService searchEngineService; private final UserDao userDao; private final UserService userService; @@ -105,6 +108,7 @@ public class OauthServiceImpl implements OauthService { other.setLastLoginTime(System.currentTimeMillis()); other.setVersion(0); userDao.addOne(other); + searchEngineService.newUserInit(other.getUserId()); return other; } else { if (!current.getEmail().equals(other.getEmail()) || !current.getGithubId().equals(other.getGithubId())) { diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/SearchEngineServiceImpl.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/SearchEngineServiceImpl.java new file mode 100644 index 0000000..b68575d --- /dev/null +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/SearchEngineServiceImpl.java @@ -0,0 +1,88 @@ +package com.fanxb.bookmark.business.user.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.druid.support.ibatis.SpringIbatisBeanNameAutoProxyCreator; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.fanxb.bookmark.business.user.dao.SearchEngineDao; +import com.fanxb.bookmark.business.user.dao.UserDao; +import com.fanxb.bookmark.business.user.entity.SearchEngine; +import com.fanxb.bookmark.business.user.service.SearchEngineService; +import com.fanxb.bookmark.common.entity.UserContext; +import com.fanxb.bookmark.common.entity.po.User; +import com.fanxb.bookmark.common.exception.CustomException; +import com.fanxb.bookmark.common.util.UserContextHolder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +public class SearchEngineServiceImpl implements SearchEngineService { + @Autowired + private SearchEngineDao searchEngineDao; + @Autowired + private UserDao userDao; + + @Override + public List list() { + return searchEngineDao.selectList(new LambdaQueryWrapper().eq(SearchEngine::getUserId, UserContextHolder.get().getUserId())); + } + + @Override + public void deleteOne(int id) { + SearchEngine engine = searchEngineDao.selectById(id); + if (engine.getUserId() != UserContextHolder.get().getUserId()) { + throw new CustomException("无法操作其他人数据"); + } + if (engine.getChecked() == 1) { + throw new CustomException("默认搜索引擎无法删除"); + } + searchEngineDao.deleteById(id); + } + + @Override + public void insertOne(SearchEngine body) { + checkOne(body); + body.setId(null).setChecked(0).setUserId(UserContextHolder.get().getUserId()); + searchEngineDao.insert(body); + + } + + private void checkOne(SearchEngine body) { + if (StrUtil.hasBlank(body.getIcon(), body.getUrl(), body.getName())) { + throw new CustomException("请填写完整"); + } + if (!body.getUrl().contains("%s")) { + throw new CustomException("路径中必须包含%s"); + } + } + + @Override + public void editOne(SearchEngine body) { + SearchEngine engine = searchEngineDao.selectById(body.getId()); + if (engine.getUserId() != UserContextHolder.get().getUserId()) { + throw new CustomException("无法操作其他人数据"); + } + checkOne(body); + searchEngineDao.updateById(body); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void setChecked(Integer id) { + int userId = UserContextHolder.get().getUserId(); + LambdaUpdateWrapper update = new LambdaUpdateWrapper().set(SearchEngine::getChecked, 0).eq(SearchEngine::getUserId, userId).eq(SearchEngine::getChecked, 1); + searchEngineDao.update(null, update); + update = new LambdaUpdateWrapper().set(SearchEngine::getChecked, 1).eq(SearchEngine::getId, id).eq(SearchEngine::getUserId, userId); + searchEngineDao.update(null, update); + } + + @Override + public void newUserInit(int userId) { + searchEngineDao.insert(new SearchEngine().setUserId(userId).setIcon("icon-baidu").setName("百度").setUrl("https://www.baidu.com/s?ie=UTF-8&wd=%s").setChecked(1)); + searchEngineDao.insert(new SearchEngine().setUserId(userId).setIcon("icon-bing").setName("必应").setUrl("https://www.bing.com/search?q=%s").setChecked(0)); + searchEngineDao.insert(new SearchEngine().setUserId(userId).setIcon("icon-google").setName("谷歌").setUrl("https://www.google.com/search?q=%s").setChecked(0)); + } +} diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/UserServiceImpl.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/UserServiceImpl.java index 2e37790..ec80ea8 100644 --- a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/UserServiceImpl.java +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/impl/UserServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import com.fanxb.bookmark.business.api.BookmarkApi; import com.fanxb.bookmark.business.user.constant.FileConstant; import com.fanxb.bookmark.business.user.dao.UserDao; +import com.fanxb.bookmark.business.user.service.SearchEngineService; import com.fanxb.bookmark.business.user.service.UserService; import com.fanxb.bookmark.business.user.vo.LoginBody; import com.fanxb.bookmark.business.user.vo.RegisterBody; @@ -20,6 +21,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.File; @@ -42,6 +44,8 @@ public class UserServiceImpl implements UserService { * 登陆最大重试次数 */ private static final int LOGIN_COUNT = 5; + @Autowired + private SearchEngineService searchEngineService; private final UserDao userDao; private final StringRedisTemplate redisTemplate; @@ -83,6 +87,7 @@ public class UserServiceImpl implements UserService { * @author fanxb * @date 2019/7/6 11:30 */ + @Transactional(rollbackFor = Exception.class) public String register(RegisterBody body) { User user = userDao.selectByUsernameOrEmail(body.getUsername(), body.getEmail()); if (user != null) { @@ -102,6 +107,7 @@ public class UserServiceImpl implements UserService { user.setLastLoginTime(System.currentTimeMillis()); user.setVersion(0); userDao.addOne(user); + searchEngineService.newUserInit(user.getUserId()); Map data = new HashMap<>(1); data.put("userId", String.valueOf(user.getUserId())); return JwtUtil.encode(data, CommonConstant.jwtSecret, LONG_EXPIRE_TIME); diff --git a/bookMarkService/common/pom.xml b/bookMarkService/common/pom.xml index 5bd8f16..b82dec7 100644 --- a/bookMarkService/common/pom.xml +++ b/bookMarkService/common/pom.xml @@ -37,16 +37,10 @@ commons-pool2 - - - - - - com.baomidou mybatis-plus-boot-starter - 3.5.1 + 3.5.3.2 @@ -59,19 +53,25 @@ com.alibaba druid-spring-boot-starter - 1.1.18 + 1.2.18 org.flywaydb flyway-core - 5.2.4 + 9.21.1 + + + org.flywaydb + flyway-mysql + 9.21.1 mysql mysql-connector-java + 8.0.33 @@ -101,7 +101,46 @@ cn.hutool hutool-all - 5.8.12 + 5.8.21 + + + + + + + mysql + mysql-connector-java + 8.0.33 + + + + + org.springframework.boot + spring-boot-starter-mail + + + + + org.projectlombok + lombok + + + + com.alibaba + fastjson + 1.2.83 + + + + + org.elasticsearch.client + elasticsearch-rest-high-level-client + + + + cn.hutool + hutool-all + 5.8.21 diff --git a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/entity/po/User.java b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/entity/po/User.java index 3f95199..cc5d478 100644 --- a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/entity/po/User.java +++ b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/entity/po/User.java @@ -2,6 +2,10 @@ package com.fanxb.bookmark.common.entity.po; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; @@ -16,9 +20,11 @@ import java.util.Map; * @date 2019/7/4 20:14 */ @Data +@TableName("user") public class User { - private int userId; + @TableId(type = IdType.AUTO) + private Integer userId; /** * 第三方github登陆id,-1说明非github登陆 */ @@ -30,6 +36,7 @@ public class User { /** * 是否未设置密码 */ + @TableField(exist = false) private Boolean noPassword; @JSONField(serialize = false) private String password; @@ -42,9 +49,10 @@ public class User { * 书签同步版本 */ private int version; + /** * 默认搜索引擎 */ - private String defaultSearchEngine; + private Integer searchEngineId; } diff --git a/bookMarkService/pom.xml b/bookMarkService/pom.xml index b55043d..7f846df 100644 --- a/bookMarkService/pom.xml +++ b/bookMarkService/pom.xml @@ -22,7 +22,7 @@ org.springframework.boot spring-boot-starter-parent - 2.3.12.RELEASE + 2.7.14 diff --git a/bookMarkService/web/src/main/resources/db/migration/V24__增加搜索引擎表.sql b/bookMarkService/web/src/main/resources/db/migration/V24__增加搜索引擎表.sql index d3e2e30..8c24d8b 100644 --- a/bookMarkService/web/src/main/resources/db/migration/V24__增加搜索引擎表.sql +++ b/bookMarkService/web/src/main/resources/db/migration/V24__增加搜索引擎表.sql @@ -2,15 +2,21 @@ create table search_engine ( id int auto_increment primary key, + userId int not null, + checked tinyint not null default 0, name varchar(20) null, url varchar(500) null, icon varchar(20) null -); -INSERT INTO bookmark.search_engine (name, url, icon) -VALUES ('谷歌', 'https://www.google.com/search?q=%s', 'icon-google'); +) auto_increment=1001; +create index search_engine_userId_index + on search_engine (userId); -INSERT INTO bookmark.search_engine (name, url, icon) -VALUES ('必应', 'https://www.bing.com/search?q=%s', 'icon-bing'); - -INSERT INTO bookmark.search_engine (name, url, icon) -VALUES ('百度', 'https://www.bing.com/search?q=%s', 'icon-baidu'); \ No newline at end of file +insert into search_engine(userId, checked, name, url, icon) +select userId, if(defaultSearchEngine = 'baidu', 1, 0), '百度', 'https://www.baidu.com/s?ie=UTF-8&wd=%s', 'icon-baidu' +from user; +insert into search_engine(userId, checked, name, url, icon) +select userId, if(defaultSearchEngine = 'bing', 1, 0), '必应', 'https://www.bing.com/search?q=%s', 'icon-bing' +from user; +insert into search_engine(userId, checked, name, url, icon) +select userId, if(defaultSearchEngine = 'google', 1, 0), '谷歌', 'https://www.google.com/search?q=%s', 'icon-google' +from user; diff --git a/bookmark_front/src/main.js b/bookmark_front/src/main.js index c0c9eb3..ae3c178 100644 --- a/bookmark_front/src/main.js +++ b/bookmark_front/src/main.js @@ -1,33 +1,34 @@ import Vue from "vue"; import { - Button, - FormModel, - Input, - Icon, - message, - Checkbox, - Dropdown, - Menu, - Tree, - Tooltip, - Spin, - notification, - Empty, - Modal, - Radio, - Upload, - Popconfirm, - AutoComplete, - Select, - Popover, - Breadcrumb + Button, + FormModel, + Input, + Icon, + message, + Checkbox, + Dropdown, + Menu, + Tree, + Tooltip, + Spin, + notification, + Empty, + Modal, + Radio, + Upload, + Popconfirm, + AutoComplete, + Select, + Popover, + Breadcrumb, + Table } from "ant-design-vue"; import App from "./App.vue"; import router from "./router"; import store from "./store"; const IconFont = Icon.createFromIconfontCN({ - scriptUrl: "//at.alicdn.com/t/font_1261825_1cgngjf5r4f.js" + scriptUrl: "//at.alicdn.com/t/c/font_1261825_v7m0rilm4hm.js" }); Vue.use(Button); Vue.use(FormModel); @@ -48,6 +49,7 @@ Vue.use(AutoComplete); Vue.use(Select); Vue.use(Popover); Vue.use(Breadcrumb); +Vue.use(Table); Vue.component("my-icon", IconFont); Vue.prototype.$message = message; @@ -56,9 +58,9 @@ Vue.prototype.$confirm = Modal.confirm; Vue.config.productionTip = false; window.vueInstance = new Vue({ - router, - store, - render: h => h(App) + router, + store, + render: h => h(App) }).$mount("#app"); diff --git a/bookmark_front/src/views/manage/personSpace/components/manageSearchEngine.vue b/bookmark_front/src/views/manage/personSpace/components/manageSearchEngine.vue new file mode 100644 index 0000000..e1d87f5 --- /dev/null +++ b/bookmark_front/src/views/manage/personSpace/components/manageSearchEngine.vue @@ -0,0 +1,164 @@ + + + + \ No newline at end of file diff --git a/bookmark_front/src/views/manage/personSpace/index.vue b/bookmark_front/src/views/manage/personSpace/index.vue index 1430d43..815095f 100644 --- a/bookmark_front/src/views/manage/personSpace/index.vue +++ b/bookmark_front/src/views/manage/personSpace/index.vue @@ -1,5 +1,5 @@ @@ -196,6 +183,7 @@ export default { border-bottom: 1px solid #ebebeb; display: flex; + .inputGroup { flex: 1; }