Merge branch 'dev' of fanxb/bookmark into master
This commit is contained in:
commit
9e3308d6ca
@ -6,6 +6,8 @@
|
|||||||
|
|
||||||
部署教程:[docker-compose 部署](https://github.com/FleyX/bookmark/blob/master/DEPLOY.md)
|
部署教程:[docker-compose 部署](https://github.com/FleyX/bookmark/blob/master/DEPLOY.md)
|
||||||
|
|
||||||
|
**为获得更好的体验,建议将主页设置为 fleyx.com,并安装浏览器拓展**
|
||||||
|
|
||||||
# 缘由
|
# 缘由
|
||||||
|
|
||||||
1. 主要用的是 chrome,但是有时候需要用其他的浏览器:Firefox,ie 等。然后这些浏览器上没有书签,想进个网站还得打开 chrome 复制 url,太麻烦。
|
1. 主要用的是 chrome,但是有时候需要用其他的浏览器:Firefox,ie 等。然后这些浏览器上没有书签,想进个网站还得打开 chrome 复制 url,太麻烦。
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.fanxb.bookmark.common.dao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.fanxb.bookmark.common.entity.po.GlobalConfigPo;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author fanxb
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface GlobalConfigDao extends BaseMapper<GlobalConfigPo> {
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
package com.fanxb.bookmark.common.entity.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 全局配置表
|
||||||
|
*
|
||||||
|
* @author FleyX
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("global_config")
|
||||||
|
public class GlobalConfigPo {
|
||||||
|
@TableId(value = "code")
|
||||||
|
private String code;
|
||||||
|
private String value;
|
||||||
|
private String description;
|
||||||
|
}
|
@ -2,6 +2,8 @@ package com.fanxb.bookmark.common.entity.vo;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 全局公共配置
|
* 全局公共配置
|
||||||
*
|
*
|
||||||
@ -17,4 +19,8 @@ public class GlobalConfigVo {
|
|||||||
* bing每日一图地址
|
* bing每日一图地址
|
||||||
*/
|
*/
|
||||||
private String bingImgSrc;
|
private String bingImgSrc;
|
||||||
|
/**
|
||||||
|
* 浏览器插件版本plugin
|
||||||
|
*/
|
||||||
|
private Map<String, String> map;
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,8 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.fanxb.bookmark.common.constant.NumberConstant;
|
import com.fanxb.bookmark.common.constant.NumberConstant;
|
||||||
import com.fanxb.bookmark.common.constant.RedisConstant;
|
import com.fanxb.bookmark.common.constant.RedisConstant;
|
||||||
|
import com.fanxb.bookmark.common.dao.GlobalConfigDao;
|
||||||
|
import com.fanxb.bookmark.common.entity.po.GlobalConfigPo;
|
||||||
import com.fanxb.bookmark.common.entity.vo.GlobalConfigVo;
|
import com.fanxb.bookmark.common.entity.vo.GlobalConfigVo;
|
||||||
import com.fanxb.bookmark.common.service.ConfigService;
|
import com.fanxb.bookmark.common.service.ConfigService;
|
||||||
import com.fanxb.bookmark.common.util.HttpUtil;
|
import com.fanxb.bookmark.common.util.HttpUtil;
|
||||||
@ -15,10 +17,9 @@ import org.springframework.beans.factory.annotation.Value;
|
|||||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author fanxb
|
* @author fanxb
|
||||||
@ -30,10 +31,12 @@ public class ConfigServiceImpl implements ConfigService {
|
|||||||
|
|
||||||
|
|
||||||
private final StringRedisTemplate stringRedisTemplate;
|
private final StringRedisTemplate stringRedisTemplate;
|
||||||
|
private final GlobalConfigDao globalConfigDao;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public ConfigServiceImpl(StringRedisTemplate stringRedisTemplate) {
|
public ConfigServiceImpl(StringRedisTemplate stringRedisTemplate, GlobalConfigDao globalConfigDao) {
|
||||||
this.stringRedisTemplate = stringRedisTemplate;
|
this.stringRedisTemplate = stringRedisTemplate;
|
||||||
|
this.globalConfigDao = globalConfigDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Value("${bing.host}")
|
@Value("${bing.host}")
|
||||||
@ -43,9 +46,12 @@ public class ConfigServiceImpl implements ConfigService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GlobalConfigVo getGlobalConfig() {
|
public GlobalConfigVo getGlobalConfig() {
|
||||||
|
List<GlobalConfigPo> pos = globalConfigDao.selectByMap(Collections.emptyMap());
|
||||||
|
Map<String, String> map = pos.stream().collect(Collectors.toMap(GlobalConfigPo::getCode, GlobalConfigPo::getValue));
|
||||||
GlobalConfigVo vo = new GlobalConfigVo();
|
GlobalConfigVo vo = new GlobalConfigVo();
|
||||||
vo.setProxyExist(HttpUtil.getProxyExist());
|
vo.setProxyExist(HttpUtil.getProxyExist());
|
||||||
vo.setBingImgSrc(getCacheBingImg());
|
vo.setBingImgSrc(getCacheBingImg());
|
||||||
|
vo.setMap(map);
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
CREATE TABLE bookmark.global_config
|
||||||
|
(
|
||||||
|
code varchar(20) NOT NULL,
|
||||||
|
value varchar(100) NOT NULL COMMENT '值',
|
||||||
|
description varchar(100) NOT NULL COMMENT '描述',
|
||||||
|
CONSTRAINT global_config_pk PRIMARY KEY (code)
|
||||||
|
) ENGINE=InnoDB
|
||||||
|
DEFAULT CHARSET=utf8mb4
|
||||||
|
COLLATE=utf8mb4_0900_ai_ci
|
||||||
|
COMMENT='全局配置表';
|
||||||
|
|
||||||
|
insert into global_config
|
||||||
|
values ("pluginVersion", "0.1.1", "浏览器插件版本");
|
@ -11,7 +11,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
浏览器插件:
|
浏览器插件:
|
||||||
<a href="/static/bookmarkBrowserPlugin.zip" download="浏览器插件.zip" target="_blank">点击下载</a>
|
<a href="/static/bookmarkBrowserPlugin.zip" download="浏览器插件.zip" target="_blank">最新版本{{ serverConfig.map.pluginVersion }}(注意更新)</a>
|
||||||
,使用详情请参考使用教程
|
,使用详情请参考使用教程
|
||||||
</div>
|
</div>
|
||||||
<div>交流反馈qq群:150056494,邮箱:fleyx20@outlook.com</div>
|
<div>交流反馈qq群:150056494,邮箱:fleyx20@outlook.com</div>
|
||||||
@ -34,8 +34,14 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { mapState } from "vuex";
|
||||||
|
import { GLOBAL_CONFIG, SERVER_CONFIG } from "@/store/modules/globalConfig";
|
||||||
export default {
|
export default {
|
||||||
name: "about",
|
name: "about",
|
||||||
|
data() {
|
||||||
|
return { version: "" };
|
||||||
|
},
|
||||||
|
computed: { ...mapState(GLOBAL_CONFIG, [SERVER_CONFIG]) },
|
||||||
mounted() {
|
mounted() {
|
||||||
window.qieziStatisticKey = "b74c4b571b644782a837433209827874";
|
window.qieziStatisticKey = "b74c4b571b644782a837433209827874";
|
||||||
let script = document.createElement("script");
|
let script = document.createElement("script");
|
||||||
@ -43,6 +49,12 @@ export default {
|
|||||||
script.defer = true;
|
script.defer = true;
|
||||||
script.src = "https://qiezi.fleyx.com/qiezijs/1.0/qiezi_statistic.min.js";
|
script.src = "https://qiezi.fleyx.com/qiezijs/1.0/qiezi_statistic.min.js";
|
||||||
document.getElementsByTagName("head")[0].appendChild(script);
|
document.getElementsByTagName("head")[0].appendChild(script);
|
||||||
|
|
||||||
|
let serverConfig = this.$store.state[GLOBAL_CONFIG + "/" + SERVER_CONFIG];
|
||||||
|
console.log(serverConfig);
|
||||||
|
if (serverConfig.map.pluginVersion) {
|
||||||
|
this.version = serverConfig.map.pluginVersion;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
html,
|
html,
|
||||||
body {
|
body {
|
||||||
padding: 0.2em;
|
padding: 0.2em;
|
||||||
width: 8em;
|
min-width: 8em;
|
||||||
}
|
}
|
||||||
#content {
|
#content {
|
||||||
color: red;
|
color: red;
|
||||||
@ -23,7 +23,11 @@
|
|||||||
<!-- <button title="同步浏览器书签到云端(覆盖云端)">同步浏览器</button> -->
|
<!-- <button title="同步浏览器书签到云端(覆盖云端)">同步浏览器</button> -->
|
||||||
</div>
|
</div>
|
||||||
<p id="content"></p>
|
<p id="content"></p>
|
||||||
<div class="bottom">插件版本:<span id="version"></span></div>
|
<div class="bottom">
|
||||||
|
<div>插件版本:<span id="version"></span></div>
|
||||||
|
<div>最新版本:<a href="" id="newestVersion">最新版本</a></div>
|
||||||
|
<div><a id="about" target="_blank">关于</a></span></div>
|
||||||
|
</div>
|
||||||
<script type="text/javascript" src="/static/js/axios.min.js"></script>
|
<script type="text/javascript" src="/static/js/axios.min.js"></script>
|
||||||
<script type="text/javascript" src="/static/js/config.js"></script>
|
<script type="text/javascript" src="/static/js/config.js"></script>
|
||||||
<script type="text/javascript" src="/popup/index.js"></script>
|
<script type="text/javascript" src="/popup/index.js"></script>
|
||||||
|
@ -9,7 +9,13 @@ var action = document.getElementById("action");
|
|||||||
//初始化
|
//初始化
|
||||||
login.href = bookmarkHost + "/manage/sso/auth";
|
login.href = bookmarkHost + "/manage/sso/auth";
|
||||||
document.getElementById("version").innerText = version;
|
document.getElementById("version").innerText = version;
|
||||||
|
document.getElementById("about").href = bookmarkHost + "/public/about";
|
||||||
sendToBg("getToken", null);
|
sendToBg("getToken", null);
|
||||||
|
let newestBlock = document.getElementById("newestVersion");
|
||||||
|
newestBlock.href = bookmarkHost + "/static/bookmarkBrowserPlugin.zip";
|
||||||
|
let res = await axios.get("/common/config/global");
|
||||||
|
console.log(res);
|
||||||
|
newestBlock.innerText = res.data.data.map.pluginVersion;
|
||||||
})();
|
})();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user