mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-29 18:23:59 +08:00
update:可自定义智控台底部系统名称
This commit is contained in:
@@ -40,5 +40,5 @@
|
|||||||
|
|
||||||
2、开启允许非管理员用户可注册,将参数`server.allow_user_register`设置成`true`
|
2、开启允许非管理员用户可注册,将参数`server.allow_user_register`设置成`true`
|
||||||
|
|
||||||
3、开启手机注册功能,将参数`system.enable_mobile_register`设置成`true`
|
3、开启手机注册功能,将参数`server.enable_mobile_register`设置成`true`
|
||||||

|

|
||||||
@@ -118,29 +118,17 @@ public interface Constant {
|
|||||||
|
|
||||||
enum SysBaseParam {
|
enum SysBaseParam {
|
||||||
/**
|
/**
|
||||||
* 系统全称
|
* ICP备案号
|
||||||
*/
|
*/
|
||||||
SYS_NAME("SYS_NAME"),
|
BEIAN_ICP_NUM("server.beian_icp_num"),
|
||||||
/**
|
/**
|
||||||
* 系统简称
|
* GA备案号
|
||||||
*/
|
*/
|
||||||
SYS_SHORT_NAME("SYS_SHORT_NAME"),
|
BEIAN_GA_NUM("server.beian_ga_num"),
|
||||||
/**
|
/**
|
||||||
* 系统描述
|
* 系统名称
|
||||||
*/
|
*/
|
||||||
SYS_DES("SYS_DES"),
|
SERVER_NAME("server.name");
|
||||||
/**
|
|
||||||
* 登录失败几次锁定
|
|
||||||
*/
|
|
||||||
LOGIN_LOCK_COUNT("LOGIN_LOCK_COUNT"),
|
|
||||||
/**
|
|
||||||
* 账号失败锁定分钟数
|
|
||||||
*/
|
|
||||||
LOGIN_LOCK_TIME("LOGIN_LOCK_TIME"),
|
|
||||||
/**
|
|
||||||
* TOKEN强验证
|
|
||||||
*/
|
|
||||||
SYS_TOKEN_SECURITY("SYS_TOKEN_SECURITY");
|
|
||||||
|
|
||||||
private String value;
|
private String value;
|
||||||
|
|
||||||
@@ -176,11 +164,11 @@ public interface Constant {
|
|||||||
/**
|
/**
|
||||||
* 单号码最大短信发送条数
|
* 单号码最大短信发送条数
|
||||||
*/
|
*/
|
||||||
SYSTEM_SMS_MAX_SEND_COUNT("system.sms.max_send_count"),
|
SERVER_SMS_MAX_SEND_COUNT("server.sms_max_send_count"),
|
||||||
/**
|
/**
|
||||||
* 是否开启手机注册
|
* 是否开启手机注册
|
||||||
*/
|
*/
|
||||||
SYSTEM_ENABLE_MOBILE_REGISTER("system.enable_mobile_register");
|
SERVER_ENABLE_MOBILE_REGISTER("server.enable_mobile_register");
|
||||||
|
|
||||||
private String value;
|
private String value;
|
||||||
|
|
||||||
@@ -245,4 +233,24 @@ public interface Constant {
|
|||||||
* 无效固件URL
|
* 无效固件URL
|
||||||
*/
|
*/
|
||||||
String INVALID_FIRMWARE_URL = "http://xiaozhi.server.com:8002/xiaozhi/otaMag/download/NOT_ACTIVATED_FIRMWARE_THIS_IS_A_INVALID_URL";
|
String INVALID_FIRMWARE_URL = "http://xiaozhi.server.com:8002/xiaozhi/otaMag/download/NOT_ACTIVATED_FIRMWARE_THIS_IS_A_INVALID_URL";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典类型
|
||||||
|
*/
|
||||||
|
enum DictType {
|
||||||
|
/**
|
||||||
|
* 手机区号
|
||||||
|
*/
|
||||||
|
MOBILE_AREA("MOBILE_AREA");
|
||||||
|
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
DictType(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+10
-7
@@ -1,6 +1,7 @@
|
|||||||
package xiaozhi.modules.security.controller;
|
package xiaozhi.modules.security.controller;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -70,7 +71,7 @@ public class LoginController {
|
|||||||
throw new RenException("图形验证码错误");
|
throw new RenException("图形验证码错误");
|
||||||
}
|
}
|
||||||
Boolean isMobileRegister = sysParamsService
|
Boolean isMobileRegister = sysParamsService
|
||||||
.getValueObject(Constant.SysMSMParam.SYSTEM_ENABLE_MOBILE_REGISTER.getValue(), Boolean.class);
|
.getValueObject(Constant.SysMSMParam.SERVER_ENABLE_MOBILE_REGISTER.getValue(), Boolean.class);
|
||||||
if (!isMobileRegister) {
|
if (!isMobileRegister) {
|
||||||
throw new RenException("没有开启手机注册,没法使用短信验证码功能");
|
throw new RenException("没有开启手机注册,没法使用短信验证码功能");
|
||||||
}
|
}
|
||||||
@@ -108,7 +109,7 @@ public class LoginController {
|
|||||||
}
|
}
|
||||||
// 是否开启手机注册
|
// 是否开启手机注册
|
||||||
Boolean isMobileRegister = sysParamsService
|
Boolean isMobileRegister = sysParamsService
|
||||||
.getValueObject(Constant.SysMSMParam.SYSTEM_ENABLE_MOBILE_REGISTER.getValue(), Boolean.class);
|
.getValueObject(Constant.SysMSMParam.SERVER_ENABLE_MOBILE_REGISTER.getValue(), Boolean.class);
|
||||||
boolean validate;
|
boolean validate;
|
||||||
if (isMobileRegister) {
|
if (isMobileRegister) {
|
||||||
// 验证用户是否是手机号码
|
// 验证用户是否是手机号码
|
||||||
@@ -165,7 +166,7 @@ public class LoginController {
|
|||||||
public Result<?> retrievePassword(@RequestBody RetrievePasswordDTO dto) {
|
public Result<?> retrievePassword(@RequestBody RetrievePasswordDTO dto) {
|
||||||
// 是否开启手机注册
|
// 是否开启手机注册
|
||||||
Boolean isMobileRegister = sysParamsService
|
Boolean isMobileRegister = sysParamsService
|
||||||
.getValueObject(Constant.SysMSMParam.SYSTEM_ENABLE_MOBILE_REGISTER.getValue(), Boolean.class);
|
.getValueObject(Constant.SysMSMParam.SERVER_ENABLE_MOBILE_REGISTER.getValue(), Boolean.class);
|
||||||
if (!isMobileRegister) {
|
if (!isMobileRegister) {
|
||||||
throw new RenException("没有开启手机注册,没法使用找回密码功能");
|
throw new RenException("没有开启手机注册,没法使用找回密码功能");
|
||||||
}
|
}
|
||||||
@@ -198,13 +199,15 @@ public class LoginController {
|
|||||||
public Result<Map<String, Object>> pubConfig() {
|
public Result<Map<String, Object>> pubConfig() {
|
||||||
Map<String, Object> config = new HashMap<>();
|
Map<String, Object> config = new HashMap<>();
|
||||||
config.put("enableMobileRegister", sysParamsService
|
config.put("enableMobileRegister", sysParamsService
|
||||||
.getValueObject(Constant.SysMSMParam.SYSTEM_ENABLE_MOBILE_REGISTER.getValue(), Boolean.class));
|
.getValueObject(Constant.SysMSMParam.SERVER_ENABLE_MOBILE_REGISTER.getValue(), Boolean.class));
|
||||||
config.put("version", Constant.VERSION);
|
config.put("version", Constant.VERSION);
|
||||||
|
config.put("year", "©" + Calendar.getInstance().get(Calendar.YEAR));
|
||||||
config.put("allowUserRegister", sysUserService.getAllowUserRegister());
|
config.put("allowUserRegister", sysUserService.getAllowUserRegister());
|
||||||
List<SysDictDataItem> list = sysDictDataService.getDictDataByType("MOBILE_AREA");
|
List<SysDictDataItem> list = sysDictDataService.getDictDataByType(Constant.DictType.MOBILE_AREA.getValue());
|
||||||
config.put("mobileAreaList", list);
|
config.put("mobileAreaList", list);
|
||||||
config.put("beianIcpNum", sysParamsService.getValue("beian_icp_num", true));
|
config.put("beianIcpNum", sysParamsService.getValue(Constant.SysBaseParam.BEIAN_ICP_NUM.getValue(), true));
|
||||||
config.put("beianGaNum", sysParamsService.getValue("beian_ga_num", true));
|
config.put("beianGaNum", sysParamsService.getValue(Constant.SysBaseParam.BEIAN_GA_NUM.getValue(), true));
|
||||||
|
config.put("name", sysParamsService.getValue(Constant.SysBaseParam.SERVER_NAME.getValue(), true));
|
||||||
|
|
||||||
return new Result<Map<String, Object>>().ok(config);
|
return new Result<Map<String, Object>>().ok(config);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -98,7 +98,7 @@ public class CaptchaServiceImpl implements CaptchaService {
|
|||||||
|
|
||||||
// 获取最大发送次数限制
|
// 获取最大发送次数限制
|
||||||
Integer maxSendCount = sysParamsService.getValueObject(
|
Integer maxSendCount = sysParamsService.getValueObject(
|
||||||
Constant.SysMSMParam.SYSTEM_SMS_MAX_SEND_COUNT.getValue(),
|
Constant.SysMSMParam.SERVER_SMS_MAX_SEND_COUNT.getValue(),
|
||||||
Integer.class);
|
Integer.class);
|
||||||
if (maxSendCount == null) {
|
if (maxSendCount == null) {
|
||||||
maxSendCount = 5; // 默认值
|
maxSendCount = 5; // 默认值
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
delete from sys_params where id in (700,701);
|
|
||||||
INSERT INTO `sys_params` (id, param_code, param_value, value_type, param_type, remark) VALUES (700, 'beian_icp_num', 'null', 'string', 1, 'ipc备案号,填写null则不设置');
|
|
||||||
INSERT INTO `sys_params` (id, param_code, param_value, value_type, param_type, remark) VALUES (701, 'beian_ga_num', 'null', 'string', 1, '公安备案号,填写null则不设置');
|
|
||||||
+9
-3
@@ -1,15 +1,21 @@
|
|||||||
-- 添加手机短信注册功能的需要的参数
|
-- 添加手机短信注册功能的需要的参数
|
||||||
delete from sys_params where id in (601, 602, 610, 611, 612, 613);
|
delete from sys_params where id in (108, 109, 110, 111, 112, 113, 114, 115);
|
||||||
|
delete from sys_params where id in (610, 611, 612, 613);
|
||||||
INSERT INTO sys_params
|
INSERT INTO sys_params
|
||||||
(id, param_code, param_value, value_type, param_type, remark, creator, create_date, updater, update_date)
|
(id, param_code, param_value, value_type, param_type, remark, creator, create_date, updater, update_date)
|
||||||
VALUES
|
VALUES
|
||||||
(601, 'system.enable_mobile_register', 'false', 'boolean', 1, '是否开启手机注册', NULL, NULL, NULL, NULL),
|
(108, 'server.name', 'xiaozhi-esp32-server', 'string', 1, '系统名称', NULL, NULL, NULL, NULL),
|
||||||
(602, 'system.sms.max_send_count', '10', 'number', 1, '单号码单日最大短信发送条数', NULL, NULL, NULL, NULL),
|
(109, 'server.beian_icp_num', 'null', 'string', 1, 'icp备案号,填写null则不设置', NULL, NULL, NULL, NULL),
|
||||||
|
(110, 'server.beian_ga_num', 'null', 'string', 1, '公安备案号,填写null则不设置', NULL, NULL, NULL, NULL),
|
||||||
|
(111, 'server.enable_mobile_register', 'false', 'boolean', 1, '是否开启手机注册', NULL, NULL, NULL, NULL),
|
||||||
|
(112, 'server.sms_max_send_count', '10', 'number', 1, '单号码单日最大短信发送条数', NULL, NULL, NULL, NULL),
|
||||||
(610, 'aliyun.sms.access_key_id', '', 'string', 1, '阿里云平台access_key', NULL, NULL, NULL, NULL),
|
(610, 'aliyun.sms.access_key_id', '', 'string', 1, '阿里云平台access_key', NULL, NULL, NULL, NULL),
|
||||||
(611, 'aliyun.sms.access_key_secret', '', 'string', 1, '阿里云平台access_key_secret', NULL, NULL, NULL, NULL),
|
(611, 'aliyun.sms.access_key_secret', '', 'string', 1, '阿里云平台access_key_secret', NULL, NULL, NULL, NULL),
|
||||||
(612, 'aliyun.sms.sign_name', '', 'string', 1, '阿里云短信签名', NULL, NULL, NULL, NULL),
|
(612, 'aliyun.sms.sign_name', '', 'string', 1, '阿里云短信签名', NULL, NULL, NULL, NULL),
|
||||||
(613, 'aliyun.sms.sms_code_template_code', '', 'string', 1, '阿里云短信模板', NULL, NULL, NULL, NULL);
|
(613, 'aliyun.sms.sms_code_template_code', '', 'string', 1, '阿里云短信模板', NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
update sys_params set remark = '是否允许管理员以外的人注册' where param_code = 'server.allow_user_register';
|
||||||
|
|
||||||
-- 增加手机区域字典
|
-- 增加手机区域字典
|
||||||
-- 插入固件类型字典类型
|
-- 插入固件类型字典类型
|
||||||
delete from `sys_dict_type` where `id` = 102;
|
delete from `sys_dict_type` where `id` = 102;
|
||||||
@@ -114,13 +114,6 @@ databaseChangeLog:
|
|||||||
- sqlFile:
|
- sqlFile:
|
||||||
encoding: utf8
|
encoding: utf8
|
||||||
path: classpath:db/changelog/202505091409.sql
|
path: classpath:db/changelog/202505091409.sql
|
||||||
- changeSet:
|
|
||||||
id: 202505141132
|
|
||||||
author: zjy
|
|
||||||
changes:
|
|
||||||
- sqlFile:
|
|
||||||
encoding: utf8
|
|
||||||
path: classpath:db/changelog/202505141132.sql
|
|
||||||
- changeSet:
|
- changeSet:
|
||||||
id: 202505091555
|
id: 202505091555
|
||||||
author: whosmyqueen
|
author: whosmyqueen
|
||||||
@@ -150,9 +143,9 @@ databaseChangeLog:
|
|||||||
encoding: utf8
|
encoding: utf8
|
||||||
path: classpath:db/changelog/202505142037.sql
|
path: classpath:db/changelog/202505142037.sql
|
||||||
- changeSet:
|
- changeSet:
|
||||||
id: 202505182232
|
id: 202505182234
|
||||||
author: amen
|
author: amen
|
||||||
changes:
|
changes:
|
||||||
- sqlFile:
|
- sqlFile:
|
||||||
encoding: utf8
|
encoding: utf8
|
||||||
path: classpath:db/changelog/202505182232.sql
|
path: classpath:db/changelog/202505182234.sql
|
||||||
@@ -1,47 +1,74 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="copyright">
|
<div class="copyright">
|
||||||
©2025 xiaozhi-esp32-server v{{ version }}
|
<div class="footer-content">
|
||||||
<div style="margin:0 auto;white-space: nowrap;">
|
<span>{{ year }} {{ name }} {{ version }}</span>
|
||||||
<a v-if="beianGaNum !== 'null'" :href="'http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=' + beianGaNum" target="_blank" style="text-decoration:none;" rel="noopener">
|
<template v-if="beianGaNum !== 'null'">
|
||||||
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAACXlBMVEUAAADax4rGxqP556zmsVD/6KXu5JvwvFPglEFnY3nnpEjosU1+XFTmuVfu13Hrv1jpsFa1k3mne2HlvnPdqmPqz3fu3YrJoWv04J/mz5z246aSi3i2p2/0zGj82WDrtFjar1O7klO4dkfimUJcWnbho0rgr1vntFfmvFflvGOZdFKXZkOUemnmv2XkuWWVe2ziqlXnt1Tr0HDpwl6ObmCkbEKqhVyOc2jdoVHmuljfrmDq0nPapWDUnErqy3XjtWXesXLrzHjz34rqzYfmw3fy4YrqyYDevW/dzoTIhkndsXLRsIneuHjlyIzQroTjuXjlyYfktWvw2prhvoHTmGfx45j3773TuYT/25LdijyKf321oXU+Nm3cumXfuWLtwlzpwVz40FvpvlvqvFfouFXjrlHipEjcmEfknEXPbzfbZyzZQR/YMBrWKBrhJhLdHxDTGg5HV4xBT4YYKYaWk4SDgYIWIYBybH0qLn1KS3tlZHpNS3WGfHIcHXEwLHAnF28rKW07NGuzn2pNQ2ruzWnDrGnuy2jryGjAnGgoH2j1x2RCNGPcrmIsEGGQdl/pu17YtV7FoV3muVxoRVzWqFvSmVp2SVbyw1XbkVTuvFPfo1PgmVPpt1LcnFLWkVLlp1F7W1HpsU92QE5oMUtFAUrpqUjnjUFOAEHUgz+DUj14FzvbczieMTdhATfodjXWcDXcbjXVcTS/Xi/hay7WXS3cWS3vYyvaVSrUVymnJSjXSyeKDSbNSiWfHCPMTyLFQiHkSR/lPxvVLRrPLBnUJRfUHhbaJxXVGxTZJxPNFhBdOhm/AAAAWXRSTlMABQIU/hIJ/v79/Pj29PPx4cC6s7CNfmxZWRv+/v7+/v7+/v78/Pr6+fPz8vHq6ujl5eTj4ODe2NTQzMW6ubKsnJeQkJCJiIOBgX9ubGpoW1lMREM0JR8dDgvYx1gAAAE7SURBVBjTYgADJmZJQUFJZiYGOGD2EzLV1jIT8paCibCJ86zctGPD1D4ecUaICKuPyYLMYznZOfNqzP0jwEJBOt1KB4/mHjqZ3dGsHwxW5M4Zk5l/PPdIQcGMShUPVqBlgQLlMSvyDq+P3HVidjWnkQQTA5MXV1SFYtb+jZGrl02si2J3Y2JgFMmILl68efueLVvXLSqLXirCCBgDow1HT+GS/AP7srblLS+K5bIHCjmodpXUr929d+eaVb3SsuouQCHhufPjShsbJk/rrK2KW8hiBxRyVkvnkI9tnaDQJDNFOU1DDOjRMEfe9Mjpiewz5RIzZmmKMoPcKqGbkJqSkBSfnDqpXS+ACeRpJ76W/uSUpDlpLPFtfK5soLAKFbU05Odm4eblN7YWk4KEGWOIp62FgYCVsG84SAAAL7BaooX965sAAAAASUVORK5CYII=" style="width:16px;height:16px;vertical-align:middle;">
|
<span v-if="beianIcpNum !== 'null' || name">|</span>
|
||||||
<span style="color:#939393;font-size:12px;vertical-align:middle;">{{beianGaNum}}</span>
|
<a :href="'http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=' + beianGaNum" target="_blank"
|
||||||
|
rel="noopener" class="beian-link">
|
||||||
|
<img
|
||||||
|
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAACXlBMVEUAAADax4rGxqP556zmsVD/6KXu5JvwvFPglEFnY3nnpEjosU1+XFTmuVfu13Hrv1jpsFa1k3mne2HlvnPdqmPqz3fu3YrJoWv04J/mz5z246aSi3i2p2/0zGj82WDrtFjar1O7klO4dkfimUJcWnbho0rgr1vntFfmvFflvGOZdFKXZkOUemnmv2XkuWWVe2ziqlXnt1Tr0HDpwl6ObmCkbEKqhVyOc2jdoVHmuljfrmDq0nPapWDUnErqy3XjtWXesXLrzHjz34rqzYfmw3fy4YrqyYDevW/dzoTIhkndsXLRsIneuHjlyIzQroTjuXjlyYfktWvw2prhvoHTmGfx45j3773TuYT/25LdijyKf321oXU+Nm3cumXfuWLtwlzpwVz40FvpvlvqvFfouFXjrlHipEjcmEfknEXPbzfbZyzZQR/YMBrWKBrhJhLdHxDTGg5HV4xBT4YYKYaWk4SDgYIWIYBybH0qLn1KS3tlZHpNS3WGfHIcHXEwLHAnF28rKW07NGuzn2pNQ2ruzWnDrGnuy2jryGjAnGgoH2j1x2RCNGPcrmIsEGGQdl/pu17YtV7FoV3muVxoRVzWqFvSmVp2SVbyw1XbkVTuvFPfo1PgmVPpt1LcnFLWkVLlp1F7W1HpsU92QE5oMUtFAUrpqUjnjUFOAEHUgz+DUj14FzvbczieMTdhATfodjXWcDXcbjXVcTS/Xi/hay7WXS3cWS3vYyvaVSrUVymnJSjXSyeKDSbNSiWfHCPMTyLFQiHkSR/lPxvVLRrPLBnUJRfUHhbaJxXVGxTZJxPNFhBdOhm/AAAAWXRSTlMABQIU/hIJ/v79/Pj29PPx4cC6s7CNfmxZWRv+/v7+/v7+/v78/Pr6+fPz8vHq6ujl5eTj4ODe2NTQzMW6ubKsnJeQkJCJiIOBgX9ubGpoW1lMREM0JR8dDgvYx1gAAAE7SURBVBjTYgADJmZJQUFJZiYGOGD2EzLV1jIT8paCibCJ86zctGPD1D4ecUaICKuPyYLMYznZOfNqzP0jwEJBOt1KB4/mHjqZ3dGsHwxW5M4Zk5l/PPdIQcGMShUPVqBlgQLlMSvyDq+P3HVidjWnkQQTA5MXV1SFYtb+jZGrl02si2J3Y2JgFMmILl68efueLVvXLSqLXirCCBgDow1HT+GS/AP7srblLS+K5bIHCjmodpXUr929d+eaVb3SsuouQCHhufPjShsbJk/rrK2KW8hiBxRyVkvnkI9tnaDQJDNFOU1DDOjRMEfe9Mjpiewz5RIzZmmKMoPcKqGbkJqSkBSfnDqpXS+ACeRpJ76W/uSUpDlpLPFtfK5soLAKFbU05Odm4eblN7YWk4KEGWOIp62FgYCVsG84SAAAL7BaooX965sAAAAASUVORK5CYII="
|
||||||
|
class="beian-icon" alt="备案图标">
|
||||||
|
<span class="beian-text">{{ beianGaNum }}</span>
|
||||||
</a>
|
</a>
|
||||||
<span v-if="beianGaNum !== 'null' && beianIcpNum !== 'null'" style="margin:0 5px">
|
</template>
|
||||||
|
|
<template v-if="beianIcpNum !== 'null'">
|
||||||
</span>
|
<span v-if="name">|</span>
|
||||||
<a v-if="beianIcpNum !== 'null'" href="https://beian.miit.gov.cn/" target="_blank" style="text-decoration:none;" rel="noopener">
|
<a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener" class="beian-link">
|
||||||
<span style="color:#939393;font-size:12px;vertical-align:middle;">{{beianIcpNum}}</span>
|
<span class="beian-text">{{ beianIcpNum }}</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapState } from 'vuex';
|
import { mapState } from 'vuex';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'VersionFooter',
|
name: 'VersionFooter',
|
||||||
computed: {
|
computed: {
|
||||||
...mapState({
|
...mapState({
|
||||||
version: state => state.pubConfig.version,
|
version: state => state.pubConfig.version,
|
||||||
beianIcpNum: state => state.pubConfig.beianIcpNum,
|
name: state => state.pubConfig.name,
|
||||||
beianGaNum: state => state.pubConfig.beianGaNum
|
beianIcpNum: state => state.pubConfig.beianIcpNum,
|
||||||
})
|
beianGaNum: state => state.pubConfig.beianGaNum,
|
||||||
},
|
year: state => state.pubConfig.year
|
||||||
mounted() {
|
})
|
||||||
this.$store.dispatch('fetchPubConfig');
|
},
|
||||||
}
|
mounted() {
|
||||||
|
this.$store.dispatch('fetchPubConfig')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.footer-record {
|
.copyright {
|
||||||
clear: both;
|
padding: 10px 0;
|
||||||
padding-top: 5px;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
.footer-icon-record2 {
|
|
||||||
width: 100px;
|
.footer-content {
|
||||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAACXlBMVEUAAADax4rGxqP556zmsVD/6KXu5JvwvFPglEFnY3nnpEjosU1+XFTmuVfu13Hrv1jpsFa1k3mne2HlvnPdqmPqz3fu3YrJoWv04J/mz5z246aSi3i2p2/0zGj82WDrtFjar1O7klO4dkfimUJcWnbho0rgr1vntFfmvFflvGOZdFKXZkOUemnmv2XkuWWVe2ziqlXnt1Tr0HDpwl6ObmCkbEKqhVyOc2jdoVHmuljfrmDq0nPapWDUnErqy3XjtWXesXLrzHjz34rqzYfmw3fy4YrqyYDevW/dzoTIhkndsXLRsIneuHjlyIzQroTjuXjlyYfktWvw2prhvoHTmGfx45j3773TuYT/25LdijyKf321oXU+Nm3cumXfuWLtwlzpwVz40FvpvlvqvFfouFXjrlHipEjcmEfknEXPbzfbZyzZQR/YMBrWKBrhJhLdHxDTGg5HV4xBT4YYKYaWk4SDgYIWIYBybH0qLn1KS3tlZHpNS3WGfHIcHXEwLHAnF28rKW07NGuzn2pNQ2ruzWnDrGnuy2jryGjAnGgoH2j1x2RCNGPcrmIsEGGQdl/pu17YtV7FoV3muVxoRVzWqFvSmVp2SVbyw1XbkVTuvFPfo1PgmVPpt1LcnFLWkVLlp1F7W1HpsU92QE5oMUtFAUrpqUjnjUFOAEHUgz+DUj14FzvbczieMTdhATfodjXWcDXcbjXVcTS/Xi/hay7WXS3cWS3vYyvaVSrUVymnJSjXSyeKDSbNSiWfHCPMTyLFQiHkSR/lPxvVLRrPLBnUJRfUHhbaJxXVGxTZJxPNFhBdOhm/AAAAWXRSTlMABQIU/hIJ/v79/Pj29PPx4cC6s7CNfmxZWRv+/v7+/v7+/v78/Pr6+fPz8vHq6ujl5eTj4ODe2NTQzMW6ubKsnJeQkJCJiIOBgX9ubGpoW1lMREM0JR8dDgvYx1gAAAE7SURBVBjTYgADJmZJQUFJZiYGOGD2EzLV1jIT8paCibCJ86zctGPD1D4ecUaICKuPyYLMYznZOfNqzP0jwEJBOt1KB4/mHjqZ3dGsHwxW5M4Zk5l/PPdIQcGMShUPVqBlgQLlMSvyDq+P3HVidjWnkQQTA5MXV1SFYtb+jZGrl02si2J3Y2JgFMmILl68efueLVvXLSqLXirCCBgDow1HT+GS/AP7srblLS+K5bIHCjmodpXUr929d+eaVb3SsuouQCHhufPjShsbJk/rrK2KW8hiBxRyVkvnkI9tnaDQJDNFOU1DDOjRMEfe9Mjpiewz5RIzZmmKMoPcKqGbkJqSkBSfnDqpXS+ACeRpJ76W/uSUpDlpLPFtfK5soLAKFbU05Odm4eblN7YWk4KEGWOIp62FgYCVsG84SAAAL7BaooX965sAAAAASUVORK5CYII=");
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.beian-link {
|
||||||
|
text-decoration: none;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.beian-icon {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.beian-text {
|
||||||
|
color: #000;
|
||||||
|
font-size: 12px;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
Reference in New Issue
Block a user