提交 e56a2dd4 编写于 作者: VK1688's avatar VK1688

1.15.10

上级 5be54eb8
* 1、【升级】`vk-unicloud-admin-ui` 包升级至 `1.15.19`
* 2、【优化】兼容阿里云新版
##### 框架更新步骤 [点击查看](https://vkdoc.fsq.pub/admin/1/update.html)
##### 框架学习Q群:`22466457` 欢迎萌新和大佬来使用和共同改进框架
##### 如果你觉得框架对你有用,可以在下方进行评论,也可以进行赞赏。
## 1.15.10(2022-12-29)
* 1、【升级】`vk-unicloud-admin-ui` 包升级至 `1.15.19`
* 2、【优化】兼容阿里云新版
##### 框架更新步骤 [点击查看](https://vkdoc.fsq.pub/admin/1/update.html)
##### 框架学习Q群:`22466457` 欢迎萌新和大佬来使用和共同改进框架
##### 如果你觉得框架对你有用,可以在下方进行评论,也可以进行赞赏。
## 1.15.9(2022-12-13) ## 1.15.9(2022-12-13)
* 1、【升级】`vk-unicloud-admin-ui` 包升级至 `1.15.14` * 1、【升级】`vk-unicloud-admin-ui` 包升级至 `1.15.14`
* 2、【优化】leftWindow,左侧菜单支持自定义默认图标(可设置为默认不显示图标) * 2、【优化】leftWindow,左侧菜单支持自定义默认图标(可设置为默认不显示图标)
......
...@@ -28,9 +28,18 @@ import vkAdminUI from 'vk-unicloud-admin-ui'; ...@@ -28,9 +28,18 @@ import vkAdminUI from 'vk-unicloud-admin-ui';
import 'vk-unicloud-admin-ui/theme/index.css'; import 'vk-unicloud-admin-ui/theme/index.css';
Vue.use(vkAdminUI); Vue.use(vkAdminUI);
// 引入 富文本编辑器 组件(必须加在Vue.use(vkAdminUI);的后面) // 自动注册全局组件(必须加在Vue.use(vkAdminUI);的后面)
import VkDataInputEditor from "@/components/vk-data-input-editor/vk-data-input-editor"; const modulesFiles = require.context('./components', true, /\.vue$/);
Vue.component("vk-data-input-editor", VkDataInputEditor); modulesFiles.keys().map((modulePath, index) => {
const moduleNames = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1');
const moduleSplit = moduleNames.split("/");
const moduleName = moduleSplit[0];
if (moduleSplit.length === 2 && moduleName === moduleSplit[1]) {
const value = modulesFiles(modulePath);
let moduleItem = value.default;
Vue.component(moduleName, moduleItem);
}
});
// 引入 自定义全局css 样式 // 引入 自定义全局css 样式
import '@/common/css/app.scss'; import '@/common/css/app.scss';
......
{ {
"name": "vk-unicloud-admin", "name": "vk-unicloud-admin",
"version": "1.15.8", "version": "1.15.9",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
...@@ -104,9 +104,9 @@ ...@@ -104,9 +104,9 @@
} }
}, },
"vk-unicloud-admin-ui": { "vk-unicloud-admin-ui": {
"version": "1.15.14", "version": "1.15.22",
"resolved": "https://registry.npmjs.org/vk-unicloud-admin-ui/-/vk-unicloud-admin-ui-1.15.14.tgz", "resolved": "https://registry.npmjs.org/vk-unicloud-admin-ui/-/vk-unicloud-admin-ui-1.15.22.tgz",
"integrity": "sha512-IRVq2x/yDx7RZKFNt9TLjonzFDorfsFqmty6NsoqLug54KrS8dIvVS2xNSd6AYeWb7PaBc/aa9j1OrLLFyfQIA==" "integrity": "sha512-Mw06DPxFsmyAjv49edl/CDYHnJl7D7lDQHXcihWl02Po6CAwygUHZ5+2rRb0lKJE3qF6NzGw1lwo9q5Y7JYjUA=="
}, },
"vuedraggable": { "vuedraggable": {
"version": "2.24.3", "version": "2.24.3",
......
{ {
"id": "vk-unicloud-admin", "id": "vk-unicloud-admin",
"name": "vk-unicloud-admin", "name": "vk-unicloud-admin",
"version": "1.15.9", "version": "1.15.10",
"displayName": "【开箱即用】vk-unicloud-admin-快速开发框架-打造unicloud最好用的admin", "displayName": "【开箱即用】vk-unicloud-admin-快速开发框架-打造unicloud最好用的admin",
"description": "vk-unicloud-admin是基于uniapp+unicloud+uni-id+vk-router+element的一套快速PC admin企业级开发框架。小白几分钟即完成一个页面CRUD。", "description": "vk-unicloud-admin是基于uniapp+unicloud+uni-id+vk-router+element的一套快速PC admin企业级开发框架。小白几分钟即完成一个页面CRUD。",
"keywords": [ "keywords": [
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
"dependencies": { "dependencies": {
"element-ui": "2.15.7", "element-ui": "2.15.7",
"umy-ui": "1.1.6", "umy-ui": "1.1.6",
"vk-unicloud-admin-ui": "^1.15.14" "vk-unicloud-admin-ui": "^1.15.22"
}, },
"engines": { "engines": {
"HBuilderX": "^3.1.10" "HBuilderX": "^3.1.10"
......
...@@ -146,16 +146,16 @@ module.exports = { ...@@ -146,16 +146,16 @@ module.exports = {
function compareVersion(version1, version2) { function compareVersion(version1, version2) {
let arr1 = version1.split("."); let arr1 = version1.split(".");
let arr2 = version2.split("."); let arr2 = version2.split(".");
if (arr1[0] === arr2[0] && arr1[1] === arr2[1] && arr1[2] === arr2[2]) { if (Number(arr1[0]) === Number(arr2[0]) && Number(arr1[1]) === Number(arr2[1]) && Number(arr1[2]) === Number(arr2[2])) {
return 0; return 0;
} }
if (arr1[0] > arr2[0]) { if (Number(arr1[0]) > Number(arr2[0])) {
return 1; return 1;
} }
if (arr1[0] === arr2[0] && arr1[1] > arr2[1]) { if (Number(arr1[0]) === Number(arr2[0]) && Number(arr1[1]) > Number(arr2[1])) {
return 1; return 1;
} }
if (arr1[0] === arr2[0] && arr1[1] === arr2[1] && arr1[2] > arr2[2]) { if (Number(arr1[0]) === Number(arr2[0]) && Number(arr1[1]) === Number(arr2[1]) && Number(arr1[2]) > Number(arr2[2])) {
return 1; return 1;
} }
return -1; return -1;
......
## 2.13.1(2022-12-29)
* 1、【调整】url化后token的请求头从 `uni_id_token` 改为 `uni-id-token`(新版阿里云不支持 `uni_id_token` 请求头)
* 2、【修复】`vk.openapi.weixin.h5.request` 接口无法在阿里云空间中自动使用代理的问题。
* 3、【修复】`vk.pubfn.getOffsetTime` 接口在云端月偏移量计算在可能会出错的问题。
* 4、【优化】其他一些兼容性问题。
* 完整框架项目地址:`https://ext.dcloud.net.cn/plugin?id=2204`[点击查看](https://ext.dcloud.net.cn/plugin?id=2204)
## 2.13.0(2022-12-29)
* 1、【调整】url化后token的请求头从 `uni_id_token` 改为 `uni-id-token`(新版阿里云不支持 `uni_id_token` 请求头)
* 2、【修复】`vk.openapi.weixin.h5.request` 接口无法在阿里云空间中自动使用代理的问题。
* 3、【修复】`vk.pubfn.getOffsetTime` 接口在云端月偏移量计算在可能会出错的问题。
* 4、【优化】其他一些兼容性问题。
* 完整框架项目地址:`https://ext.dcloud.net.cn/plugin?id=2204`[点击查看](https://ext.dcloud.net.cn/plugin?id=2204)
## 2.12.9(2022-12-13) ## 2.12.9(2022-12-13)
* 1、【优化】`vk.pubfn.getCommonTime()` API内部细节 * 1、【优化】`vk.pubfn.getCommonTime()` API内部细节
* 完整框架项目地址:`https://ext.dcloud.net.cn/plugin?id=2204`[点击查看](https://ext.dcloud.net.cn/plugin?id=2204) * 完整框架项目地址:`https://ext.dcloud.net.cn/plugin?id=2204`[点击查看](https://ext.dcloud.net.cn/plugin?id=2204)
......
{ {
"id": "vk-unicloud", "id": "vk-unicloud",
"displayName": "vk-unicloud-router开发框架核心库 - 已集成uni-id 框架内置了众多API。", "displayName": "vk-unicloud-router开发框架核心库 - 已集成uni-id 框架内置了众多API。",
"version": "2.12.9", "version": "2.13.1",
"description": "此为vk-unicloud-router框架核心库(新手建议下载完整框架项目)已集成uni-id支持云函数url化。众多现成API,内置小白也能轻松上手的数据库API。使你项目刚起步进度就是百分之50", "description": "此为vk-unicloud-router框架核心库(新手建议下载完整框架项目)已集成uni-id支持云函数url化。众多现成API,内置小白也能轻松上手的数据库API。使你项目刚起步进度就是百分之50",
"keywords": [ "keywords": [
"vk-unicloud-router", "vk-unicloud-router",
......
{ {
"name": "vk-unicloud", "name": "vk-unicloud",
"version": "2.12.9", "version": "2.13.1",
"description": "【云函数端SDK】VK云函数路由模式uniCloud开发框架,在router目录下执行 npm i vk-unicloud 进行安装和升级", "description": "【云函数端SDK】VK云函数路由模式uniCloud开发框架,在router目录下执行 npm i vk-unicloud 进行安装和升级",
"main": "index.js", "main": "index.js",
"homepage": "https://gitee.com/vk-uni/vk-uni-cloud-router.git", "homepage": "https://gitee.com/vk-uni/vk-uni-cloud-router.git",
......
...@@ -1563,7 +1563,22 @@ pubfn.calcSize = function(length = 0, arr, ary, precision = 2, showType = "auto" ...@@ -1563,7 +1563,22 @@ pubfn.calcSize = function(length = 0, arr, ary, precision = 2, showType = "auto"
} }
}; };
/**
* 将一个大数组拆分成N个小数组(分割数组)
* @param {Array} array 大数组
* @param {Number} size 小数组每组最大多少个
* 代码示例
* let newArray = vk.pubfn.splitArray(array, 2);
*/
pubfn.splitArray = function(array, size) {
let data = [];
for (let i = 0; i < array.length; i += size) {
data.push(array.slice(i, i + size))
}
return data
};
// 以下是前端专属API-----------------------------------------------------------
/** /**
* 手机端长列表分页加载数据 2.0版本 * 手机端长列表分页加载数据 2.0版本
......
...@@ -20,21 +20,53 @@ util.getTargetTimezone = function(val) { ...@@ -20,21 +20,53 @@ util.getTargetTimezone = function(val) {
}; };
// 尽可能的将参数转成正确的时间对象 // 尽可能的将参数转成正确的时间对象
util.getDateObject = function(date) { util.getDateObject = function(date, targetTimezone) {
if (!date) return ""; if (!date) return "";
let nowDate; let nowDate;
// 如果是字符串,且纯数字,则强制转数值 // 如果是字符串,且纯数字,则强制转数值
if (typeof date === "string" && !isNaN(date)) date = Number(date); if (typeof date === "string" && !isNaN(date) && date.length >= 10) date = Number(date);
if (typeof date === "number") { if (typeof date === "number") {
if (date.toString().length == 10) date *= 1000; if (date.toString().length == 10) date *= 1000;
nowDate = new Date(date); // 转时间对象 nowDate = new Date(date); // 转时间对象
} else if (typeof date === "object") { } else if (typeof date === "object") {
nowDate = new Date(date.getTime()); // 新建一个时间对象 nowDate = new Date(date.getTime()); // 新建一个时间对象
} else if (typeof date === "string") { } else if (typeof date === "string") {
//nowDate = new Date(date.replace(/-/g,"/")); // 新建一个时间对象 targetTimezone = util.getTargetTimezone(targetTimezone);
let targetTimezoneStr = targetTimezone;
let targetTimezoneF = targetTimezone >= 0 ? "+" : "";
if (targetTimezone >= 0 && targetTimezone < 10) {
targetTimezoneStr = `0${targetTimezone}`;
} else if (targetTimezone < 0 && targetTimezone > -10) {
targetTimezoneStr = `-0${targetTimezone*-1}`;
}
let arr1 = date.split(" ");
let arr1_1 = arr1[0] || "";
let arr1_2 = arr1[1] || "";
let arr2;
if (arr1_1.indexOf("-") > -1) {
arr2 = arr1_1.split("-");
} else {
arr2 = arr1_1.split("/");
}
let arr3 = arr1_2.split(":");
let dateObj = {
year: Number(arr2[0]),
month: Number(arr2[1]) || 1,
day: Number(arr2[2]) || 1,
hour: Number(arr3[0]) || 0,
minute: Number(arr3[1]) || 0,
second: Number(arr3[2]) || 0,
};
for (let key in dateObj) {
if (dateObj[key] >= 0 && dateObj[key] < 10) dateObj[key] = `0${dateObj[key]}`;
}
// 格式 2022-10-01T00:00:00+08:00
let dateStr = `${dateObj.year}-${dateObj.month}-${dateObj.day}T${dateObj.hour}:${dateObj.minute}:${dateObj.second}${targetTimezoneF}${targetTimezoneStr}:00`;
nowDate = new Date(dateStr);
} }
return nowDate; return nowDate;
}; };
// 获取时间在不同时区下的时间对象 // 获取时间在不同时区下的时间对象
util.getTimeByTimeZone = function(date, targetTimezone) { util.getTimeByTimeZone = function(date, targetTimezone) {
let nowDate = util.getDateObject(date); let nowDate = util.getDateObject(date);
...@@ -481,52 +513,41 @@ vk.pubfn.getOffsetTime(new Date(), { ...@@ -481,52 +513,41 @@ vk.pubfn.getOffsetTime(new Date(), {
mode:"after" // after 之后 before 之前 mode:"after" // after 之后 before 之前
}); });
*/ */
util.getOffsetTime = function(date = new Date(), obj) { util.getOffsetTime = function(date = new Date(), obj, targetTimezone) {
let nowDate = util.getDateObject(date); let nowDate = util.getDateObject(date);
let year = obj.year || obj.y; let dateInfo = util.getDateInfo(nowDate);
let month = obj.month || obj.m;
let day = obj.day || obj.d; targetTimezone = util.getTargetTimezone(targetTimezone);
let hours = obj.hours || obj.hh; const dif = nowDate.getTimezoneOffset();
let minutes = obj.minutes || obj.mm; const timeDif = dif * 60 * 1000 + (targetTimezone * 60 * 60 * 1000);
let seconds = obj.seconds || obj.ss;
let year = obj.year || obj.y || 0;
let month = obj.month || obj.m || 0;
let day = obj.day || obj.d || 0;
let hour = obj.hour || obj.hours || obj.hh || 0;
let minute = obj.minute || obj.minutes || obj.mm || 0;
let second = obj.second || obj.seconds || obj.ss || 0;
let { mode = "after" } = obj; let { mode = "after" } = obj;
if (mode == "before") { if (mode == "before") {
year *= -1; year *= -1;
month *= -1; month *= -1;
day *= -1; day *= -1;
hours *= -1; hour *= -1;
minutes *= -1; minute *= -1;
seconds *= -1; second *= -1;
}
if (year) {
nowDate = nowDate.setFullYear(nowDate.getFullYear() + year);
nowDate = new Date(nowDate);
}
if (month) {
nowDate = nowDate.setMonth(nowDate.getMonth() + month);
nowDate = new Date(nowDate);
}
if (day) {
nowDate = nowDate.setDate(nowDate.getDate() + day);
nowDate = new Date(nowDate);
}
if (hours) {
nowDate = nowDate.setHours(nowDate.getHours() + hours);
nowDate = new Date(nowDate);
} }
if (minutes) { let offsetObj = {
nowDate = nowDate.setMinutes(nowDate.getMinutes() + minutes); year: dateInfo.year + year,
nowDate = new Date(nowDate); month: dateInfo.month + month,
} day: dateInfo.day + day,
if (seconds) { hour: dateInfo.hour + hour,
nowDate = nowDate.setSeconds(nowDate.getSeconds() + seconds); minute: dateInfo.minute + minute,
nowDate = new Date(nowDate); second: dateInfo.second + second
} };
return nowDate.getTime(); nowDate = new Date(offsetObj.year, offsetObj.month - 1, offsetObj.day, offsetObj.hour, offsetObj.minute, offsetObj.second);
return nowDate.getTime() - timeDif;
} }
/** /**
* 判断是否是闰年 * 判断是否是闰年
* @param {Number | Date} year 需要计算的年份或时间,默认使用当前时间的年份 * @param {Number | Date} year 需要计算的年份或时间,默认使用当前时间的年份
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册