This commit is contained in:
parent
5da46d7230
commit
84d02b5a48
49
lang/index.js
Normal file
49
lang/index.js
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
|
||||||
|
// 导入国际化JSON文件
|
||||||
|
import langJSON from './index.json'
|
||||||
|
(function () {
|
||||||
|
// 定义翻译函数
|
||||||
|
let $t = function (key, val, nameSpace) {
|
||||||
|
// 获取指定命名空间下的语言包
|
||||||
|
const langPackage = $t[nameSpace];
|
||||||
|
// 返回翻译结果,如果不存在则返回默认值
|
||||||
|
return (langPackage || {})[key] || val;
|
||||||
|
};
|
||||||
|
// 定义简单翻译函数,直接返回传入的值
|
||||||
|
let $$t = function (val) {
|
||||||
|
return val;
|
||||||
|
};
|
||||||
|
// 定义设置语言包的方法
|
||||||
|
$t.locale = function (locale, nameSpace) {
|
||||||
|
// 将指定命名空间下的语言包设置为传入的locale
|
||||||
|
$t[nameSpace] = locale || {};
|
||||||
|
};
|
||||||
|
// 将翻译函数挂载到window对象上,如果已经存在则使用已有的
|
||||||
|
window.$t = window.$t || $t;
|
||||||
|
// 将简单翻译函数挂载到window对象上
|
||||||
|
window.$$t = $$t;
|
||||||
|
// 定义从JSON文件中获取指定键的语言对象的方法
|
||||||
|
window._getJSONKey = function (key, insertJSONObj = undefined) {
|
||||||
|
// 获取JSON对象
|
||||||
|
const JSONObj = insertJSONObj;
|
||||||
|
// 初始化语言对象
|
||||||
|
const langObj = {};
|
||||||
|
// 遍历JSON对象的所有键
|
||||||
|
Object.keys(JSONObj).forEach((value) => {
|
||||||
|
// 将每个语言的对应键值添加到语言对象中
|
||||||
|
langObj[value] = JSONObj[value][key];
|
||||||
|
});
|
||||||
|
// 返回语言对象
|
||||||
|
return langObj;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
// 定义语言映射对象
|
||||||
|
const langMap = {
|
||||||
|
'en': window?.lang?.en || window._getJSONKey('en', langJSON),
|
||||||
|
'zhcn': window?.lang?.zhcn || window._getJSONKey('zhcn', langJSON)
|
||||||
|
};
|
||||||
|
// 从本地存储中获取当前语言,如果不存在则使用源语言
|
||||||
|
const lang = window.localStorage.getItem('lang') || 'zhcn';
|
||||||
|
// 根据当前语言设置翻译函数的语言包
|
||||||
|
window.$t.locale(langMap[lang], 'lang');
|
||||||
|
|
594
lang/index.json
Normal file
594
lang/index.json
Normal file
@ -0,0 +1,594 @@
|
|||||||
|
{
|
||||||
|
"uy435p7": {
|
||||||
|
"zh-cn": "不合法的日期!",
|
||||||
|
"en": "Not a legal date!"
|
||||||
|
},
|
||||||
|
"ezwpt3": {
|
||||||
|
"zh-cn": "控制台",
|
||||||
|
"en": "Control console"
|
||||||
|
},
|
||||||
|
"qylb2": {
|
||||||
|
"zh-cn": "首页",
|
||||||
|
"en": "Home page"
|
||||||
|
},
|
||||||
|
"a6u45a4": {
|
||||||
|
"zh-cn": "个人信息",
|
||||||
|
"en": "Personal information"
|
||||||
|
},
|
||||||
|
"f6s8tw4": {
|
||||||
|
"zh-cn": "画廊管理",
|
||||||
|
"en": "Gallery management"
|
||||||
|
},
|
||||||
|
"dblh1a4": {
|
||||||
|
"zh-cn": "文章管理",
|
||||||
|
"en": "Article management"
|
||||||
|
},
|
||||||
|
"c5bzqr4": {
|
||||||
|
"zh-cn": "导航管理",
|
||||||
|
"en": "Navigation management"
|
||||||
|
},
|
||||||
|
"hbwz2": {
|
||||||
|
"zh-cn": "我的",
|
||||||
|
"en": "mine"
|
||||||
|
},
|
||||||
|
"ruu752a": {
|
||||||
|
"zh-cn": "登录过期,请重新登录",
|
||||||
|
"en": "Login expired, please login again"
|
||||||
|
},
|
||||||
|
"iifi5w4": {
|
||||||
|
"zh-cn": "退出登录",
|
||||||
|
"en": "Log out"
|
||||||
|
},
|
||||||
|
"ogvk2": {
|
||||||
|
"zh-cn": "设置",
|
||||||
|
"en": "Settings"
|
||||||
|
},
|
||||||
|
"klpb2": {
|
||||||
|
"zh-cn": "登出",
|
||||||
|
"en": "Log out"
|
||||||
|
},
|
||||||
|
"1pdhetd": {
|
||||||
|
"zh-cn": "已退出登录,是否重新登录?",
|
||||||
|
"en": "You have logged out. Do you want to log in again?"
|
||||||
|
},
|
||||||
|
"koca2": {
|
||||||
|
"zh-cn": "登录",
|
||||||
|
"en": "Log in"
|
||||||
|
},
|
||||||
|
"dh0cd3": {
|
||||||
|
"zh-cn": "回首页",
|
||||||
|
"en": "Return to Home page"
|
||||||
|
},
|
||||||
|
"mvw92": {
|
||||||
|
"zh-cn": "菜单",
|
||||||
|
"en": "menu"
|
||||||
|
},
|
||||||
|
"kgkv2": {
|
||||||
|
"zh-cn": "画廊",
|
||||||
|
"en": "gallery"
|
||||||
|
},
|
||||||
|
"hxyx2": {
|
||||||
|
"zh-cn": "文章",
|
||||||
|
"en": "article"
|
||||||
|
},
|
||||||
|
"gf1u2": {
|
||||||
|
"zh-cn": "工具",
|
||||||
|
"en": "tool"
|
||||||
|
},
|
||||||
|
"n74l2": {
|
||||||
|
"zh-cn": "菜谱",
|
||||||
|
"en": "menu"
|
||||||
|
},
|
||||||
|
"f2j72": {
|
||||||
|
"zh-cn": "友链",
|
||||||
|
"en": "Friend link"
|
||||||
|
},
|
||||||
|
"cxhqd3": {
|
||||||
|
"zh-cn": "合肥市",
|
||||||
|
"en": "Hefei City"
|
||||||
|
},
|
||||||
|
"me3eq06": {
|
||||||
|
"zh-cn": "安徽省合肥市",
|
||||||
|
"en": "Hefei City, Anhui Province"
|
||||||
|
},
|
||||||
|
"dvhp2": {
|
||||||
|
"zh-cn": "上海",
|
||||||
|
"en": "Shanghai"
|
||||||
|
},
|
||||||
|
"pbh52": {
|
||||||
|
"zh-cn": "重庆",
|
||||||
|
"en": "Chongqing"
|
||||||
|
},
|
||||||
|
"ekc52": {
|
||||||
|
"zh-cn": "北京",
|
||||||
|
"en": "Peking"
|
||||||
|
},
|
||||||
|
"frj02": {
|
||||||
|
"zh-cn": "天津",
|
||||||
|
"en": "Tianjin"
|
||||||
|
},
|
||||||
|
"pb17pff": {
|
||||||
|
"zh-cn": "准备一个容器用来存放音乐播放器",
|
||||||
|
"en": "Prepare a container to store your music player"
|
||||||
|
},
|
||||||
|
"lg3e2": {
|
||||||
|
"zh-cn": "立春",
|
||||||
|
"en": "Beginning of Spring"
|
||||||
|
},
|
||||||
|
"q9fw2": {
|
||||||
|
"zh-cn": "雨水",
|
||||||
|
"en": "rainwater"
|
||||||
|
},
|
||||||
|
"h7c62": {
|
||||||
|
"zh-cn": "惊蛰",
|
||||||
|
"en": "The Awakening of Insects"
|
||||||
|
},
|
||||||
|
"htoh2": {
|
||||||
|
"zh-cn": "春分",
|
||||||
|
"en": "Vernal equinox"
|
||||||
|
},
|
||||||
|
"j9ux2": {
|
||||||
|
"zh-cn": "清明",
|
||||||
|
"en": "Clear and bright"
|
||||||
|
},
|
||||||
|
"ooep2": {
|
||||||
|
"zh-cn": "谷雨",
|
||||||
|
"en": "Grain rain"
|
||||||
|
},
|
||||||
|
"ldic2": {
|
||||||
|
"zh-cn": "立夏",
|
||||||
|
"en": "Beginning of Summer (12th solar term)"
|
||||||
|
},
|
||||||
|
"g9ma2": {
|
||||||
|
"zh-cn": "小满",
|
||||||
|
"en": "Lesser fullness"
|
||||||
|
},
|
||||||
|
"mvln2": {
|
||||||
|
"zh-cn": "芒种",
|
||||||
|
"en": "Grain in ear"
|
||||||
|
},
|
||||||
|
"fv0k2": {
|
||||||
|
"zh-cn": "夏至",
|
||||||
|
"en": "Summer solstice"
|
||||||
|
},
|
||||||
|
"g7z62": {
|
||||||
|
"zh-cn": "小暑",
|
||||||
|
"en": "Slight Heat (12th solar term)"
|
||||||
|
},
|
||||||
|
"fq6i2": {
|
||||||
|
"zh-cn": "大暑",
|
||||||
|
"en": "Great Heat (12th solar term)"
|
||||||
|
},
|
||||||
|
"ljz42": {
|
||||||
|
"zh-cn": "立秋",
|
||||||
|
"en": "Autumn begins"
|
||||||
|
},
|
||||||
|
"fpcd2": {
|
||||||
|
"zh-cn": "处暑",
|
||||||
|
"en": "The End of Heat (12th solar term)"
|
||||||
|
},
|
||||||
|
"kzf92": {
|
||||||
|
"zh-cn": "白露",
|
||||||
|
"en": "White dew"
|
||||||
|
},
|
||||||
|
"l5zv2": {
|
||||||
|
"zh-cn": "秋分",
|
||||||
|
"en": "Autumnal equinox"
|
||||||
|
},
|
||||||
|
"gg4g2": {
|
||||||
|
"zh-cn": "寒露",
|
||||||
|
"en": "Cold dew"
|
||||||
|
},
|
||||||
|
"qj012": {
|
||||||
|
"zh-cn": "霜降",
|
||||||
|
"en": "Frost Descends"
|
||||||
|
},
|
||||||
|
"lc1t2": {
|
||||||
|
"zh-cn": "立冬",
|
||||||
|
"en": "Beginning of Winter (beginning of Winter)"
|
||||||
|
},
|
||||||
|
"ghiz2": {
|
||||||
|
"zh-cn": "小雪",
|
||||||
|
"en": "Light snow"
|
||||||
|
},
|
||||||
|
"fzqb2": {
|
||||||
|
"zh-cn": "大雪",
|
||||||
|
"en": "Heavy snow"
|
||||||
|
},
|
||||||
|
"els72": {
|
||||||
|
"zh-cn": "冬至",
|
||||||
|
"en": "Winter Solstice Festival"
|
||||||
|
},
|
||||||
|
"g5ur2": {
|
||||||
|
"zh-cn": "小寒",
|
||||||
|
"en": "Lesser Cold (10th solar term)"
|
||||||
|
},
|
||||||
|
"fo232": {
|
||||||
|
"zh-cn": "大寒",
|
||||||
|
"en": "Great Cold (12th solar term)"
|
||||||
|
},
|
||||||
|
"mry635g": {
|
||||||
|
"zh-cn": "YYYY 年 MM 月 DD 日",
|
||||||
|
"en": "YYYY MM month DD day"
|
||||||
|
},
|
||||||
|
"ab9f5p4": {
|
||||||
|
"zh-cn": "今天就是",
|
||||||
|
"en": "Today is"
|
||||||
|
},
|
||||||
|
"gva1": {
|
||||||
|
"zh-cn": "啦",
|
||||||
|
"en": "!"
|
||||||
|
},
|
||||||
|
"p1692": {
|
||||||
|
"zh-cn": "还有",
|
||||||
|
"en": "In addition"
|
||||||
|
},
|
||||||
|
"didqf3": {
|
||||||
|
"zh-cn": "天就是",
|
||||||
|
"en": "God is it."
|
||||||
|
},
|
||||||
|
"fie1": {
|
||||||
|
"zh-cn": "了",
|
||||||
|
"en": "the"
|
||||||
|
},
|
||||||
|
"ino1": {
|
||||||
|
"zh-cn": "年",
|
||||||
|
"en": "years"
|
||||||
|
},
|
||||||
|
"gzcu2": {
|
||||||
|
"zh-cn": "宜:",
|
||||||
|
"en": "Preferably:"
|
||||||
|
},
|
||||||
|
"hozy2": {
|
||||||
|
"zh-cn": "忌:",
|
||||||
|
"en": "Avoid:"
|
||||||
|
},
|
||||||
|
"fcfu7r4": {
|
||||||
|
"zh-cn": "百度热搜",
|
||||||
|
"en": "Baidu hot search"
|
||||||
|
},
|
||||||
|
"gt4f2": {
|
||||||
|
"zh-cn": "必应",
|
||||||
|
"en": "Bing"
|
||||||
|
},
|
||||||
|
"ofsl2": {
|
||||||
|
"zh-cn": "谷歌",
|
||||||
|
"en": "Google"
|
||||||
|
},
|
||||||
|
"koa02": {
|
||||||
|
"zh-cn": "百度",
|
||||||
|
"en": "Baidu"
|
||||||
|
},
|
||||||
|
"mjau2": {
|
||||||
|
"zh-cn": "翻译",
|
||||||
|
"en": "TRANSLATORS"
|
||||||
|
},
|
||||||
|
"3k2ak06": {
|
||||||
|
"zh-cn": "探索世界吧!",
|
||||||
|
"en": "Explore the world!"
|
||||||
|
},
|
||||||
|
"a1twd62u": {
|
||||||
|
"zh-cn": "<n-button size=\"large\" round class=\"w-[15%] md:w-[30%]\" type=\"primary\" @click=\"toSearch\">搜索</n-button>",
|
||||||
|
"en": "<n-button size=\"large\" round class=\"w-[15%] md:w-[30%]\" type=\"primary\" @click=\"toSearch\"> Search </n-button>"
|
||||||
|
},
|
||||||
|
"6hlzcui": {
|
||||||
|
"zh-cn": "皖ICP备2021017362号-1",
|
||||||
|
"en": "Anhui ICP prepared 2021017362-1"
|
||||||
|
},
|
||||||
|
"1jvk9i5": {
|
||||||
|
"zh-cn": "api文档",
|
||||||
|
"en": "api documentation"
|
||||||
|
},
|
||||||
|
"xnecsw5": {
|
||||||
|
"zh-cn": "今日访问:",
|
||||||
|
"en": "Visit Today:"
|
||||||
|
},
|
||||||
|
"cq5txs4": {
|
||||||
|
"zh-cn": "总访问:",
|
||||||
|
"en": "Total access:"
|
||||||
|
},
|
||||||
|
"azdpf64": {
|
||||||
|
"zh-cn": "删除导航",
|
||||||
|
"en": "Delete navigation"
|
||||||
|
},
|
||||||
|
"yxq5kqa": {
|
||||||
|
"zh-cn": "该功能能需要登录账号",
|
||||||
|
"en": "This function requires a login account"
|
||||||
|
},
|
||||||
|
"2xu7fsc": {
|
||||||
|
"zh-cn": "未登录账号,是否去登录?",
|
||||||
|
"en": "No login account, do you want to log in?"
|
||||||
|
},
|
||||||
|
"oxvu2": {
|
||||||
|
"zh-cn": "返回",
|
||||||
|
"en": "Back"
|
||||||
|
},
|
||||||
|
"ldxqau7": {
|
||||||
|
"zh-cn": "请输入导航名称",
|
||||||
|
"en": "Please enter a navigation name"
|
||||||
|
},
|
||||||
|
"ldmt1e7": {
|
||||||
|
"zh-cn": "请输入导航链接",
|
||||||
|
"en": "Please enter the navigation link"
|
||||||
|
},
|
||||||
|
"eslg2": {
|
||||||
|
"zh-cn": "删除",
|
||||||
|
"en": "delete"
|
||||||
|
},
|
||||||
|
"cz5bz19": {
|
||||||
|
"zh-cn": "你确定删除此导航?",
|
||||||
|
"en": "Are you sure to delete this navigation?"
|
||||||
|
},
|
||||||
|
"kzjg2": {
|
||||||
|
"zh-cn": "确定",
|
||||||
|
"en": "OK"
|
||||||
|
},
|
||||||
|
"ev022": {
|
||||||
|
"zh-cn": "取消",
|
||||||
|
"en": "Cancel"
|
||||||
|
},
|
||||||
|
"e8481q4": {
|
||||||
|
"zh-cn": "添加菜单",
|
||||||
|
"en": "Add menu"
|
||||||
|
},
|
||||||
|
"c55ak14": {
|
||||||
|
"zh-cn": "导航名称",
|
||||||
|
"en": "Navigation name"
|
||||||
|
},
|
||||||
|
"c5g7th4": {
|
||||||
|
"zh-cn": "导航链接",
|
||||||
|
"en": "Navigation link"
|
||||||
|
},
|
||||||
|
"fu6j474": {
|
||||||
|
"zh-cn": "立即创建",
|
||||||
|
"en": "Create now"
|
||||||
|
},
|
||||||
|
"oa5nl79": {
|
||||||
|
"zh-cn": "图片名 | 分享人",
|
||||||
|
"en": "The name of the photo is |"
|
||||||
|
},
|
||||||
|
"hpqe2": {
|
||||||
|
"zh-cn": "搜索",
|
||||||
|
"en": "search"
|
||||||
|
},
|
||||||
|
"n5d1": {
|
||||||
|
"zh-cn": "由",
|
||||||
|
"en": "by"
|
||||||
|
},
|
||||||
|
"edt12": {
|
||||||
|
"zh-cn": "分享",
|
||||||
|
"en": "Share"
|
||||||
|
},
|
||||||
|
"e28i2": {
|
||||||
|
"zh-cn": "下载",
|
||||||
|
"en": "Download"
|
||||||
|
},
|
||||||
|
"kr3b2": {
|
||||||
|
"zh-cn": "目录",
|
||||||
|
"en": "catalogue"
|
||||||
|
},
|
||||||
|
"12h2jb5": {
|
||||||
|
"zh-cn": "--发表于",
|
||||||
|
"en": "-- Published in"
|
||||||
|
},
|
||||||
|
"mj1545e": {
|
||||||
|
"zh-cn": "YYYY年MM月DD日hh时",
|
||||||
|
"en": "YYYY YYYY month MM day DD hh"
|
||||||
|
},
|
||||||
|
"p8hy2": {
|
||||||
|
"zh-cn": "金价",
|
||||||
|
"en": "Gold price"
|
||||||
|
},
|
||||||
|
"p2ppft9": {
|
||||||
|
"zh-cn": "今日金价分析。。。",
|
||||||
|
"en": "Today's gold price analysis..."
|
||||||
|
},
|
||||||
|
"e8mchx4": {
|
||||||
|
"zh-cn": "汉语字典",
|
||||||
|
"en": "Chinese dictionary"
|
||||||
|
},
|
||||||
|
"bz4ps7g": {
|
||||||
|
"zh-cn": "汉语字典,初级版,期待升级。。。",
|
||||||
|
"en": "Chinese dictionary, primary edition, looking forward to upgrade..."
|
||||||
|
},
|
||||||
|
"6drye27": {
|
||||||
|
"zh-cn": "QQ号查手机号",
|
||||||
|
"en": "QQ number check mobile phone number"
|
||||||
|
},
|
||||||
|
"drvlscc": {
|
||||||
|
"zh-cn": "请勿乱用,打扰别人生活!",
|
||||||
|
"en": "Please do not disturb others' lives!"
|
||||||
|
},
|
||||||
|
"t7odd27": {
|
||||||
|
"zh-cn": "手机号查QQ号",
|
||||||
|
"en": "Mobile phone number check QQ number"
|
||||||
|
},
|
||||||
|
"dxu9t3": {
|
||||||
|
"zh-cn": "小工具",
|
||||||
|
"en": "gadget"
|
||||||
|
},
|
||||||
|
"b73a9b4": {
|
||||||
|
"zh-cn": "品种名称",
|
||||||
|
"en": "Variety name"
|
||||||
|
},
|
||||||
|
"b7274w4": {
|
||||||
|
"zh-cn": "品种代号",
|
||||||
|
"en": "Breed code"
|
||||||
|
},
|
||||||
|
"cjpb4w4": {
|
||||||
|
"zh-cn": "总成交量",
|
||||||
|
"en": "Total trading volume"
|
||||||
|
},
|
||||||
|
"fkuh33": {
|
||||||
|
"zh-cn": "最新价",
|
||||||
|
"en": "Latest price"
|
||||||
|
},
|
||||||
|
"ehkwv3": {
|
||||||
|
"zh-cn": "开盘价",
|
||||||
|
"en": "At the opening"
|
||||||
|
},
|
||||||
|
"ftvz33": {
|
||||||
|
"zh-cn": "最高价",
|
||||||
|
"en": "The highest price"
|
||||||
|
},
|
||||||
|
"fh1ex3": {
|
||||||
|
"zh-cn": "最低价",
|
||||||
|
"en": "Bottom price"
|
||||||
|
},
|
||||||
|
"gqun53": {
|
||||||
|
"zh-cn": "涨跌幅",
|
||||||
|
"en": "Price limit"
|
||||||
|
},
|
||||||
|
"dh6lfs5": {
|
||||||
|
"zh-cn": "昨日收盘价",
|
||||||
|
"en": "Yesterday's closing price"
|
||||||
|
},
|
||||||
|
"devbay4": {
|
||||||
|
"zh-cn": "更新时间",
|
||||||
|
"en": "Update time"
|
||||||
|
},
|
||||||
|
"mpnd3": {
|
||||||
|
"zh-cn": "<繁>",
|
||||||
|
"en": "forte"
|
||||||
|
},
|
||||||
|
"duq72": {
|
||||||
|
"zh-cn": "共 ",
|
||||||
|
"en": "A total of"
|
||||||
|
},
|
||||||
|
"nx72": {
|
||||||
|
"zh-cn": " 画",
|
||||||
|
"en": "draw"
|
||||||
|
},
|
||||||
|
"2j782x5": {
|
||||||
|
"zh-cn": "请输入汉字",
|
||||||
|
"en": "Please enter Chinese characters"
|
||||||
|
},
|
||||||
|
"l9122": {
|
||||||
|
"zh-cn": "确认",
|
||||||
|
"en": "verify"
|
||||||
|
},
|
||||||
|
"3w5egsb": {
|
||||||
|
"zh-cn": "汉字不存在或查询太快!",
|
||||||
|
"en": "Kanji does not exist or query too fast!"
|
||||||
|
},
|
||||||
|
"7ji3y96": {
|
||||||
|
"zh-cn": "请输入手机号",
|
||||||
|
"en": "Please enter your phone number"
|
||||||
|
},
|
||||||
|
"1x2jn4": {
|
||||||
|
"zh-cn": "QQ号:",
|
||||||
|
"en": "QQ number:"
|
||||||
|
},
|
||||||
|
"usa2bc6": {
|
||||||
|
"zh-cn": "手机号地区:",
|
||||||
|
"en": "Mobile phone number Area:"
|
||||||
|
},
|
||||||
|
"br0cff": {
|
||||||
|
"zh-cn": "该手机号不存在或未绑定QQ号!",
|
||||||
|
"en": "The phone number does not exist or does not bind QQ number!"
|
||||||
|
},
|
||||||
|
"7ybk8i6": {
|
||||||
|
"zh-cn": "请输入qq号",
|
||||||
|
"en": "Please enter qq number"
|
||||||
|
},
|
||||||
|
"ctv6oi4": {
|
||||||
|
"zh-cn": "手机号:",
|
||||||
|
"en": "Mobile phone number:"
|
||||||
|
},
|
||||||
|
"n2hdmpf": {
|
||||||
|
"zh-cn": "该qq号不存在或未绑定手机号!",
|
||||||
|
"en": "The qq number does not exist or is not bound to the phone number!"
|
||||||
|
},
|
||||||
|
"2ensyc5": {
|
||||||
|
"zh-cn": "请选择分类",
|
||||||
|
"en": "Please select category"
|
||||||
|
},
|
||||||
|
"7grhuz6": {
|
||||||
|
"zh-cn": "请输入用户名",
|
||||||
|
"en": "Please enter your username"
|
||||||
|
},
|
||||||
|
"2j09685": {
|
||||||
|
"zh-cn": "请输入链接",
|
||||||
|
"en": "Please enter the link"
|
||||||
|
},
|
||||||
|
"pw132": {
|
||||||
|
"zh-cn": "链接",
|
||||||
|
"en": "link"
|
||||||
|
},
|
||||||
|
"2j7m1y5": {
|
||||||
|
"zh-cn": "请输入标题",
|
||||||
|
"en": "Please enter the title"
|
||||||
|
},
|
||||||
|
"2j8dli5": {
|
||||||
|
"zh-cn": "请输入描述",
|
||||||
|
"en": "Please enter a description"
|
||||||
|
},
|
||||||
|
"e7ygyc4": {
|
||||||
|
"zh-cn": "添加成功",
|
||||||
|
"en": "Add successfully"
|
||||||
|
},
|
||||||
|
"fonok3": {
|
||||||
|
"zh-cn": "未登录",
|
||||||
|
"en": "Not logged in"
|
||||||
|
},
|
||||||
|
"we76ar6": {
|
||||||
|
"zh-cn": "需要登录吗?",
|
||||||
|
"en": "Need to log in?"
|
||||||
|
},
|
||||||
|
"cu6np3": {
|
||||||
|
"zh-cn": "去登录",
|
||||||
|
"en": "Go and log in"
|
||||||
|
},
|
||||||
|
"dvuwv3": {
|
||||||
|
"zh-cn": "就不去",
|
||||||
|
"en": "Not go"
|
||||||
|
},
|
||||||
|
"cv25pi4": {
|
||||||
|
"zh-cn": "我的友链",
|
||||||
|
"en": "My friend chain"
|
||||||
|
},
|
||||||
|
"agnjjh4": {
|
||||||
|
"zh-cn": "一键获取",
|
||||||
|
"en": "One-click access"
|
||||||
|
},
|
||||||
|
"hmxge3": {
|
||||||
|
"zh-cn": "用户名",
|
||||||
|
"en": "username"
|
||||||
|
},
|
||||||
|
"3tl3ec5": {
|
||||||
|
"zh-cn": "头像url",
|
||||||
|
"en": "Avatar url"
|
||||||
|
},
|
||||||
|
"j7jc1j4": {
|
||||||
|
"zh-cn": "链接地址",
|
||||||
|
"en": "Link address"
|
||||||
|
},
|
||||||
|
"lnjk2": {
|
||||||
|
"zh-cn": "类型",
|
||||||
|
"en": "type"
|
||||||
|
},
|
||||||
|
"ij5d2": {
|
||||||
|
"zh-cn": "标题",
|
||||||
|
"en": "title"
|
||||||
|
},
|
||||||
|
"hrlt2": {
|
||||||
|
"zh-cn": "描述",
|
||||||
|
"en": "Description"
|
||||||
|
},
|
||||||
|
"heqc2": {
|
||||||
|
"zh-cn": "提交",
|
||||||
|
"en": "submit"
|
||||||
|
},
|
||||||
|
"gpe1004": {
|
||||||
|
"zh-cn": "联系作者",
|
||||||
|
"en": "Contact author"
|
||||||
|
},
|
||||||
|
"jsz7x46": {
|
||||||
|
"zh-cn": "@ 黑心柚子",
|
||||||
|
"en": "@Black pomelo"
|
||||||
|
},
|
||||||
|
"sfqndmd": {
|
||||||
|
"zh-cn": "qq群 698612437",
|
||||||
|
"en": "qq group 698612437"
|
||||||
|
}
|
||||||
|
}
|
@ -60,6 +60,7 @@
|
|||||||
"autoprefixer": "^10.4.14",
|
"autoprefixer": "^10.4.14",
|
||||||
"postcss": "^8.4.22",
|
"postcss": "^8.4.22",
|
||||||
"tailwindcss": "^3.3.1",
|
"tailwindcss": "^3.3.1",
|
||||||
"vite": "^3.0.4"
|
"vite": "^3.0.4",
|
||||||
|
"vite-auto-i18n-plugin": "^1.0.9"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
124
src/components/drag.vue
Normal file
124
src/components/drag.vue
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
<template>
|
||||||
|
<div class="sort-container flex">
|
||||||
|
<div v-for="(item, index) in items" :key="item.id" class="sort-item" draggable="true"
|
||||||
|
@dragstart="handleDragStart($event, index)" @dragover.prevent="handleDragOver($event, index)"
|
||||||
|
@dragend="handleDragEnd" @touchstart="handleTouchStart($event, index)" @touchmove.prevent="handleTouchMove"
|
||||||
|
@touchend="handleTouchEnd" :class="{ 'sorting': currentIndex === index }">
|
||||||
|
{{ item.content }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { reactive, ref } from 'vue'
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
items: {
|
||||||
|
type: Array,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const emit = defineEmits(['update:items'])
|
||||||
|
|
||||||
|
// 响应式状态
|
||||||
|
const currentIndex = ref(null)
|
||||||
|
const dragStartIndex = ref(-1)
|
||||||
|
const touchState = reactive({
|
||||||
|
startY: 0,
|
||||||
|
dragging: false,
|
||||||
|
originIndex: -1
|
||||||
|
})
|
||||||
|
|
||||||
|
// 处理拖拽开始
|
||||||
|
const handleDragStart = (e, index) => {
|
||||||
|
currentIndex.value = index
|
||||||
|
dragStartIndex.value = index
|
||||||
|
e.dataTransfer.setData('text/plain', '')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理拖拽经过
|
||||||
|
const handleDragOver = (e, index) => {
|
||||||
|
e.preventDefault()
|
||||||
|
if (currentIndex.value === null || currentIndex.value === index) return
|
||||||
|
|
||||||
|
const newItems = [...props.items]
|
||||||
|
const movedItem = newItems.splice(currentIndex.value, 1)[0]
|
||||||
|
newItems.splice(index, 0, movedItem)
|
||||||
|
|
||||||
|
currentIndex.value = index
|
||||||
|
emit('update:items', newItems)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理拖拽结束
|
||||||
|
const handleDragEnd = () => {
|
||||||
|
currentIndex.value = null
|
||||||
|
dragStartIndex.value = -1
|
||||||
|
}
|
||||||
|
|
||||||
|
// 触摸事件处理
|
||||||
|
const handleTouchStart = (e, index) => {
|
||||||
|
touchState.startY = e.touches[0].clientY
|
||||||
|
touchState.dragging = true
|
||||||
|
touchState.originIndex = index
|
||||||
|
currentIndex.value = index
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleTouchMove = (e) => {
|
||||||
|
if (!touchState.dragging) return
|
||||||
|
|
||||||
|
const touch = e.touches[0]
|
||||||
|
const container = e.currentTarget
|
||||||
|
const items = container.children
|
||||||
|
const itemHeight = items[0].clientHeight
|
||||||
|
|
||||||
|
const deltaY = touch.clientY - touchState.startY
|
||||||
|
const newIndex = Math.round(deltaY / itemHeight) + touchState.originIndex
|
||||||
|
|
||||||
|
if (newIndex >= 0 && newIndex < items.length && newIndex !== currentIndex.value) {
|
||||||
|
const newItems = [...props.items]
|
||||||
|
const movedItem = newItems.splice(touchState.originIndex, 1)[0]
|
||||||
|
newItems.splice(newIndex, 0, movedItem)
|
||||||
|
|
||||||
|
currentIndex.value = newIndex
|
||||||
|
emit('update:items', newItems)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleTouchEnd = () => {
|
||||||
|
touchState.dragging = false
|
||||||
|
currentIndex.value = null
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.sort-container {
|
||||||
|
display: flex;
|
||||||
|
/* flex-direction: column; */
|
||||||
|
gap: 8px;
|
||||||
|
/* max-width: 300px; */
|
||||||
|
margin: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sort-item {
|
||||||
|
padding: 12px;
|
||||||
|
background: #409eff;
|
||||||
|
color: white;
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: move;
|
||||||
|
transition: transform 0.3s ease;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sort-item.sorting {
|
||||||
|
opacity: 0.5;
|
||||||
|
transform: scale(0.98);
|
||||||
|
box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (hover: hover) {
|
||||||
|
.sort-item:hover {
|
||||||
|
filter: brightness(1.1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,5 +1,6 @@
|
|||||||
import { createPinia } from "pinia";
|
import { createPinia } from "pinia";
|
||||||
import { createApp } from "vue";
|
import { createApp } from "vue";
|
||||||
|
// import '../lang/index';
|
||||||
|
|
||||||
import http from '@/api/index.js';
|
import http from '@/api/index.js';
|
||||||
import icon from "@/icon/index.js";
|
import icon from "@/icon/index.js";
|
||||||
@ -15,7 +16,7 @@ import router from "./router/guard.js";
|
|||||||
import { formatTimeBydate } from './util/index.js';
|
import { formatTimeBydate } from './util/index.js';
|
||||||
|
|
||||||
|
|
||||||
|
// window.localStorage.setItem('lang', 'en') // 你在 targetLangList 参数中传入的字符串,如 'en'
|
||||||
Date.prototype.format = formatTimeBydate
|
Date.prototype.format = formatTimeBydate
|
||||||
const app = createApp(App);
|
const app = createApp(App);
|
||||||
|
|
||||||
|
39
src/views/home/navTest.vue
Normal file
39
src/views/home/navTest.vue
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<drag v-model:items="data" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
//mark import
|
||||||
|
import drag from '@/components/drag.vue';
|
||||||
|
|
||||||
|
//mark data
|
||||||
|
const data = ref([
|
||||||
|
{
|
||||||
|
id:1,
|
||||||
|
content:"a"+1
|
||||||
|
},{
|
||||||
|
id:2,
|
||||||
|
content:"a"+2
|
||||||
|
},{
|
||||||
|
id:3,
|
||||||
|
content:"a"+3
|
||||||
|
},{
|
||||||
|
id:4,
|
||||||
|
content:"a"+4
|
||||||
|
},{
|
||||||
|
id:5,
|
||||||
|
content:"a"+5
|
||||||
|
},
|
||||||
|
])
|
||||||
|
//mark method
|
||||||
|
|
||||||
|
//mark 周期、内置函数等
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
@ -94,7 +94,7 @@ import { onMounted, ref } from 'vue';
|
|||||||
|
|
||||||
|
|
||||||
//mark data
|
//mark data
|
||||||
const jqs = ['立春', '雨水', '惊蛰', '春分', '清明', '谷雨', '立夏', '小满', '芒种', '夏至', '小暑', '大暑', '立秋', '处暑', '白露', '秋分', '寒露', '霜降', '立冬', '小雪', '大雪', '冬至', '小寒', '大寒']
|
// const jqs = ['立春', '雨水', '惊蛰', '春分', '清明', '谷雨', '立夏', '小满', '芒种', '夏至', '小暑', '大暑', '立秋', '处暑', '白露', '秋分', '寒露', '霜降', '立冬', '小雪', '大雪', '冬至', '小寒', '大寒']
|
||||||
const time = ref(formatTime(new Date(), 'hh:mm:ss'))
|
const time = ref(formatTime(new Date(), 'hh:mm:ss'))
|
||||||
const date = ref(formatTime(new Date(), 'YYYY 年 MM 月 DD 日'))
|
const date = ref(formatTime(new Date(), 'YYYY 年 MM 月 DD 日'))
|
||||||
|
|
||||||
@ -109,8 +109,9 @@ const jqImg = ref('#')
|
|||||||
const jq = await $http.wea.getJq()
|
const jq = await $http.wea.getJq()
|
||||||
console.log("*************",jq);
|
console.log("*************",jq);
|
||||||
const j = jq.data.solarTerms.slice(0, 2)
|
const j = jq.data.solarTerms.slice(0, 2)
|
||||||
const jNum = jqs.indexOf(j) + 1
|
// const jNum = jqs.indexOf(j) + 1
|
||||||
jqImg.value = 'https://www.hxyouzi.com/img/jieqi/' + jNum + '.jpg'
|
// jqImg.value = 'https://www.hxyouzi.com/img/jieqi/' + jNum + '.jpg'
|
||||||
|
jqImg.value = 'https://www.hxyouzi.com/img/jq/' + j + '.png'
|
||||||
// const isBaidu = ref(true);
|
// const isBaidu = ref(true);
|
||||||
const baidu = ref({})
|
const baidu = ref({})
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ import { defineConfig } from "vite";
|
|||||||
import AutoImport from "unplugin-auto-import/vite";
|
import AutoImport from "unplugin-auto-import/vite";
|
||||||
import { NaiveUiResolver } from "unplugin-vue-components/resolvers";
|
import { NaiveUiResolver } from "unplugin-vue-components/resolvers";
|
||||||
import Components from "unplugin-vue-components/vite";
|
import Components from "unplugin-vue-components/vite";
|
||||||
|
// import vitePluginAutoI18n, { YoudaoTranslator } from 'vite-auto-i18n-plugin';
|
||||||
import svgLoader from "vite-svg-loader";
|
import svgLoader from "vite-svg-loader";
|
||||||
|
|
||||||
// https://vitejs.dev/config/
|
// https://vitejs.dev/config/
|
||||||
@ -24,6 +25,13 @@ export default defineConfig({
|
|||||||
Components({
|
Components({
|
||||||
resolvers: [NaiveUiResolver()],
|
resolvers: [NaiveUiResolver()],
|
||||||
}),
|
}),
|
||||||
|
// vitePluginAutoI18n({
|
||||||
|
// targetLangList: ['en'],
|
||||||
|
// translator: new YoudaoTranslator({
|
||||||
|
// appId: '203eecca921f0cc3',
|
||||||
|
// appKey: 't01UW7iRpCLJmyEy3SSWH2efp4htdkAg'
|
||||||
|
// })
|
||||||
|
// })
|
||||||
],
|
],
|
||||||
esbuild: {
|
esbuild: {
|
||||||
pure: ['console.log'], // 删除 console.log
|
pure: ['console.log'], // 删除 console.log
|
||||||
|
Loading…
Reference in New Issue
Block a user