Hello,@{.Data.name}!!
+@{.Data.module}
+服务器时间:@{.Data.time}
+1
', '', '', 150404, 1, 20, 1, 1, 0, '2023-11-16 10:08:29', '2023-11-16 10:08:29', '2023-11-16 10:09:20'), (3, 0, '1221', '212', '1
', '', '', 0, 1, 30, 1, 1, 0, '2023-11-16 10:09:07', '2023-11-16 10:09:07', '2023-11-16 10:09:15'), (4, 0, '12', '12', '12
', '', '', 120101, 1, 20, 1, 1, 0, '2023-11-16 10:09:45', '2023-11-16 10:09:45', '2023-11-16 10:10:12'), @@ -1944,7 +1958,8 @@ INSERT INTO `hg_sys_gen_curd_demo` (`id`, `category_id`, `title`, `description`, (9, 0, '1', '1', '1
', '', '', 0, 1, 20, 1, 1, 0, '2023-11-16 10:29:10', '2023-11-16 10:29:10', '2023-11-16 10:29:54'), (10, 0, '11', '1', '1
', '', '', 0, 1, 30, 1, 1, 0, '2023-11-16 10:29:14', '2023-11-16 10:29:14', '2023-11-16 10:29:46'), (11, 0, '1', '1', '1
', '', '', 0, 1, 20, 1, 1, 0, '2023-11-16 11:01:07', '2023-11-16 11:01:07', '2023-11-16 11:01:33'), -(12, 0, '1', '1', '1
', '', '', 0, 1, 30, 1, 1, 0, '2023-11-16 11:01:11', '2023-11-16 11:01:11', '2023-11-16 11:01:27'); +(12, 0, '1', '1', '1
', '', '', 0, 1, 30, 1, 1, 0, '2023-11-16 11:01:11', '2023-11-16 11:01:11', '2023-11-16 11:01:27'), +(13, 10, '1', '1', '1221在线咨询
', 'http://localhost:8000/attachment/2023-12-29/cy0mrx6emnw0emztdj.png', '', 0, 1, 20, 1, 1, 0, '2023-12-29 15:14:56', '2023-12-29 15:14:56', '2023-12-29 15:15:00'); -- -------------------------------------------------------- @@ -1964,7 +1979,7 @@ CREATE TABLE IF NOT EXISTS `hg_sys_log` ( `get_data` json DEFAULT NULL COMMENT 'get数据', `post_data` json DEFAULT NULL COMMENT 'post数据', `header_data` json DEFAULT NULL COMMENT 'header数据', - `ip` varchar(64) DEFAULT NULL COMMENT 'IP地址', + `ip` varchar(128) DEFAULT NULL COMMENT 'IP地址', `province_id` bigint NOT NULL DEFAULT '0' COMMENT '省编码', `city_id` bigint NOT NULL DEFAULT '0' COMMENT '市编码', `error_code` int DEFAULT '0' COMMENT '报错code', @@ -1976,7 +1991,7 @@ CREATE TABLE IF NOT EXISTS `hg_sys_log` ( `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '修改时间' -) ENGINE=InnoDB AUTO_INCREMENT=2036 DEFAULT CHARSET=utf8mb4 COMMENT='系统_全局日志'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统_全局日志'; -- -------------------------------------------------------- @@ -1991,12 +2006,12 @@ CREATE TABLE IF NOT EXISTS `hg_sys_login_log` ( `username` varchar(64) DEFAULT NULL COMMENT '用户名', `response` json DEFAULT NULL COMMENT '响应数据', `login_at` datetime DEFAULT NULL COMMENT '登录时间', - `login_ip` varchar(64) DEFAULT NULL COMMENT '登录IP', + `login_ip` varchar(128) DEFAULT NULL COMMENT '登录IP', `err_msg` varchar(1000) DEFAULT NULL COMMENT '错误提示', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '修改时间' -) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8mb4 COMMENT='系统_登录日志'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统_登录日志'; -- -------------------------------------------------------- @@ -5729,8 +5744,8 @@ CREATE TABLE IF NOT EXISTS `hg_sys_serve_license` ( -- INSERT INTO `hg_sys_serve_license` (`id`, `group`, `name`, `appid`, `secret_key`, `remote_addr`, `online_limit`, `login_times`, `last_login_at`, `last_active_at`, `routes`, `allowed_ips`, `end_at`, `remark`, `status`, `created_at`, `updated_at`) VALUES -(1, 'cron', '定时任务', '1002', 'hotgo', '127.0.0.1:55402', 1, 46, '2023-11-20 10:27:23', '2023-11-20 10:27:23', NULL, '127.0.0.1', '2033-03-09 00:00:00', '这是默认的定时任务TCP客户端授权凭证。', 1, '2023-03-11 00:00:00', '2023-11-20 10:27:23'), -(2, 'auth', '授权服务', 'mengshuai', '123456', '127.0.0.1:50640', 1, 12, '2023-07-26 17:05:30', '2023-07-26 17:07:01', '["ExampleRPCHelloReq", "ExampleHelloReq", "AuthSummaryReq"]', '127.0.0.1', '2033-03-09 00:00:00', '这是一个测试的授权服务,可以为第三方平台提供授权支持。', 1, '2023-03-11 00:00:00', '2023-07-26 17:07:01'); +(1, 'cron', '定时任务', '1002', 'hotgo', '127.0.0.1:56892', 1, 12, '2024-02-29 10:57:56', '2024-02-29 10:57:56', NULL, '127.0.0.1', '2033-03-09 00:00:00', '这是默认的定时任务TCP客户端授权凭证。', 1, '2023-03-11 00:00:00', '2024-02-29 10:57:56'), +(2, 'auth', '授权服务', 'mengshuai', '123456', '127.0.0.1:50640', 1, 3, '2023-07-26 17:05:30', '2023-07-26 17:07:01', '["ExampleRPCHelloReq", "ExampleHelloReq", "AuthSummaryReq"]', '127.0.0.1', '2033-03-09 00:00:00', '这是一个测试的授权服务,可以为第三方平台提供授权支持。', 1, '2023-03-11 00:00:00', '2023-07-26 17:07:01'); -- -------------------------------------------------------- @@ -5749,7 +5764,7 @@ CREATE TABLE IF NOT EXISTS `hg_sys_serve_log` ( `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '修改时间' -) ENGINE=InnoDB AUTO_INCREMENT=146 DEFAULT CHARSET=utf8mb4 COMMENT='系统_服务日志'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统_服务日志'; -- -------------------------------------------------------- @@ -5774,8 +5789,7 @@ CREATE TABLE IF NOT EXISTS `hg_sys_sms_log` ( -- INSERT INTO `hg_sys_sms_log` (`id`, `event`, `mobile`, `code`, `times`, `ip`, `status`, `created_at`, `updated_at`) VALUES -(1, 'code', '1530380571', '1234', 1, '39.165.245.100', 1, '2022-12-16 16:01:30', '2022-01-24 11:33:16'), -(2, 'login', '15303830571', '1234', 0, '127.0.0.1', 1, '2023-04-10 13:53:33', '2023-04-10 13:53:33'); +(1, 'code', '1530380571', '1234', 1, '39.165.245.100', 1, '2022-12-16 16:01:30', '2022-01-24 11:33:16'); -- -------------------------------------------------------- @@ -6029,7 +6043,8 @@ ALTER TABLE `hg_sys_gen_curd_demo` ALTER TABLE `hg_sys_log` ADD PRIMARY KEY (`id`), ADD KEY `error_code` (`error_code`), - ADD KEY `req_id` (`req_id`); + ADD KEY `req_id` (`req_id`), + ADD KEY `member_id` (`member_id`); -- -- Indexes for table `hg_sys_login_log` @@ -6107,7 +6122,7 @@ ALTER TABLE `hg_admin_member` -- AUTO_INCREMENT for table `hg_admin_menu` -- ALTER TABLE `hg_admin_menu` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID',AUTO_INCREMENT=2320; + MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID',AUTO_INCREMENT=2341; -- -- AUTO_INCREMENT for table `hg_admin_notice` -- @@ -6142,7 +6157,7 @@ ALTER TABLE `hg_admin_role` -- AUTO_INCREMENT for table `hg_admin_role_casbin` -- ALTER TABLE `hg_admin_role_casbin` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=96522; + MODIFY `id` bigint NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=309; -- -- AUTO_INCREMENT for table `hg_pay_log` -- @@ -6162,12 +6177,12 @@ ALTER TABLE `hg_sys_addons_config` -- AUTO_INCREMENT for table `hg_sys_addons_install` -- ALTER TABLE `hg_sys_addons_install` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',AUTO_INCREMENT=2; + MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',AUTO_INCREMENT=3; -- -- AUTO_INCREMENT for table `hg_sys_attachment` -- ALTER TABLE `hg_sys_attachment` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '文件ID',AUTO_INCREMENT=8; + MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '文件ID',AUTO_INCREMENT=49; -- -- AUTO_INCREMENT for table `hg_sys_blacklist` -- @@ -6212,17 +6227,17 @@ ALTER TABLE `hg_sys_gen_codes` -- AUTO_INCREMENT for table `hg_sys_gen_curd_demo` -- ALTER TABLE `hg_sys_gen_curd_demo` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',AUTO_INCREMENT=13; + MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',AUTO_INCREMENT=14; -- -- AUTO_INCREMENT for table `hg_sys_log` -- ALTER TABLE `hg_sys_log` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',AUTO_INCREMENT=2036; + MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID'; -- -- AUTO_INCREMENT for table `hg_sys_login_log` -- ALTER TABLE `hg_sys_login_log` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',AUTO_INCREMENT=54; + MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID'; -- -- AUTO_INCREMENT for table `hg_sys_serve_license` -- @@ -6232,7 +6247,7 @@ ALTER TABLE `hg_sys_serve_license` -- AUTO_INCREMENT for table `hg_sys_serve_log` -- ALTER TABLE `hg_sys_serve_log` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',AUTO_INCREMENT=146; + MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID'; -- -- AUTO_INCREMENT for table `hg_sys_sms_log` -- diff --git a/server/utility/convert/convert.go b/server/utility/convert/convert.go index 4960e9b..f341ee7 100644 --- a/server/utility/convert/convert.go +++ b/server/utility/convert/convert.go @@ -58,19 +58,6 @@ func GetMapKeys[K comparable](m map[K]any) []K { return keys } -// UniqueSlice 切片去重 -func UniqueSlice[K comparable](languages []K) []K { - result := make([]K, 0, len(languages)) - temp := map[K]struct{}{} - for _, item := range languages { - if _, ok := temp[item]; !ok { - temp[item] = struct{}{} - result = append(result, item) - } - } - return result -} - // CamelCaseToUnderline 驼峰单词转下划线单词 func CamelCaseToUnderline(s string) string { var output []rune diff --git a/server/utility/convert/slice.go b/server/utility/convert/slice.go new file mode 100644 index 0000000..681c1da --- /dev/null +++ b/server/utility/convert/slice.go @@ -0,0 +1,59 @@ +// Package convert +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2023 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +package convert + +// UniqueSlice 切片去重 +func UniqueSlice[K comparable](languages []K) []K { + result := make([]K, 0, len(languages)) + temp := map[K]struct{}{} + for _, item := range languages { + if _, ok := temp[item]; !ok { + temp[item] = struct{}{} + result = append(result, item) + } + } + return result +} + +func Remove(sl []interface{}, f func(v1 interface{}) bool) []interface{} { + for k, v := range sl { + if f(v) { + sl[k] = sl[len(sl)-1] + sl = sl[:len(sl)-1] + return sl + } + } + return sl +} + +func RemoveSlice[K comparable](src []K, sub K) []K { + for k, v := range src { + if v == sub { + copy(src[k:], src[k+1:]) + return src[:len(src)-1] + } + } + return src +} + +// DifferenceSlice 比较两个切片,返回他们的差集 +// slice1 := []int{1, 2, 3, 4, 5} +// slice2 := []int{4, 5, 6, 7, 8} +// fmt.Println(Difference(slice1, slice2)) // Output: [1 2 3] +func DifferenceSlice[T comparable](s1, s2 []T) []T { + m := make(map[T]bool) + for _, item := range s1 { + m[item] = true + } + + var diff []T + for _, item := range s2 { + if _, ok := m[item]; !ok { + diff = append(diff, item) + } + } + return diff +} diff --git a/server/utility/validate/filter_test.go b/server/utility/validate/filter_test.go index bc45665..95e4318 100644 --- a/server/utility/validate/filter_test.go +++ b/server/utility/validate/filter_test.go @@ -1,3 +1,8 @@ +// Package validate_test +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2023 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE package validate_test import ( diff --git a/server/utility/validate/validate_test.go b/server/utility/validate/validate_test.go index 6a07e8a..0fa3ceb 100644 --- a/server/utility/validate/validate_test.go +++ b/server/utility/validate/validate_test.go @@ -1,11 +1,17 @@ -package validate +// Package validate_test +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2023 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +package validate_test import ( "github.com/gogf/gf/v2/test/gtest" + "hotgo/utility/validate" "testing" ) func TestIsEmail(t *testing.T) { - b := IsEmail("QTT123456@163.com") + b := validate.IsEmail("QTT123456@163.com") gtest.Assert(true, b) } diff --git a/web/package.json b/web/package.json index aeffa72..a0b3f09 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "name": "hotgo", - "version": "2.12.1", + "version": "2.13.1", "author": { "name": "MengShuai", "email": "133814250@qq.com", @@ -30,16 +30,21 @@ "dependencies": { "@vicons/antd": "^0.12.0", "@vicons/ionicons5": "^0.12.0", + "@vue/runtime-core": "^3.4.19", "@vueup/vue-quill": "^1.2.0", "@vueuse/core": "^10.7.1", "axios": "^0.21.4", "date-fns": "^2.28.0", "echarts": "^5.3.2", "element-resize-detector": "^1.2.4", + "fingerprintjs2": "^2.1.4", "highlight.js": "^11.8.0", "lodash-es": "^4.17.21", "naive-ui": "^2.36.0", + "mint-filter": "^4.0.3", "pinia": "^2.1.7", + "pinyin-pro": "^3.16.3", + "print-js": "^1.6.0", "qrcode.vue": "3.3.3", "qs": "^6.10.3", "quill-image-uploader": "^1.3.0", @@ -50,6 +55,8 @@ "vue-types": "^5.1.1", "vue3-json-viewer": "^2.2.2", "vuedraggable": "^4.1.0", + "vue-waterfall-plugin-next": "^2.2.3", + "spark-md5": "^3.0.2", "weixin-js-sdk": "^1.6.0" }, "devDependencies": { diff --git a/web/src/api/addons/hgexample/comp/index.ts b/web/src/api/addons/hgexample/comp/index.ts new file mode 100644 index 0000000..f76dfdd --- /dev/null +++ b/web/src/api/addons/hgexample/comp/index.ts @@ -0,0 +1,13 @@ +import { http } from '@/utils/http/axios'; +import type { UploadFileParams } from '@/utils/http/axios/types'; + +// 导入Excel +export function ImportExcel(params: UploadFileParams) { + return http.uploadFile( + { + url: '/hgexample/comp/importExcel', + method: 'post', + }, + params + ); +} diff --git a/web/src/api/base/index.ts b/web/src/api/base/index.ts index 7e0209b..59217d5 100644 --- a/web/src/api/base/index.ts +++ b/web/src/api/base/index.ts @@ -1,5 +1,6 @@ import { http } from '@/utils/http/axios'; import { useUserStoreWidthOut } from '@/store/modules/user'; +import type { UploadFileParams } from '@/utils/http/axios/types'; // 获取验证码 export function GetCaptcha() { @@ -23,3 +24,23 @@ export function UploadImage(params) { headers, }); } + +// 检查文件分片 +export function CheckMultipart(params) { + return http.request({ + url: '/upload/checkMultipart', + method: 'post', + params, + }); +} + +// 分片上传 +export function UploadPart(params: UploadFileParams) { + return http.uploadFile( + { + url: '/upload/uploadPart', + method: 'post', + }, + params + ); +} diff --git a/web/src/api/develop/addons.ts b/web/src/api/develop/addons.ts index 515d975..e78d8bd 100644 --- a/web/src/api/develop/addons.ts +++ b/web/src/api/develop/addons.ts @@ -23,13 +23,6 @@ export function Status(params) { params, }); } -export function Selects(params) { - return http.request({ - url: '/addons/selects', - method: 'get', - params, - }); -} export function Build(params) { return http.request({ diff --git a/web/src/components/FileChooser/src/Upload.vue b/web/src/components/FileChooser/src/Upload.vue index a32c801..23eed3a 100644 --- a/web/src/components/FileChooser/src/Upload.vue +++ b/web/src/components/FileChooser/src/Upload.vue @@ -2,6 +2,7 @@一些对话框内容
+ +您提交的内容有如下错误:
+
+
+
您提交的内容如下:
+
+
+
已提交申请,等待财务部门审核。
+苏轼,(1037年1月8日-1101年8月24日)字子瞻、和仲,号铁冠道人、东坡居士,世称苏东坡、苏仙,汉族,眉州眉山(四川省眉山市)人,祖籍河北栾城,北宋著名文学家、书法家、画家,历史治水名人。苏轼是北宋中期文坛领袖,在诗、词、散文、书、画等方面取得很高成就。文纵横恣肆;诗题材广阔,清新豪健,善用夸张比喻,独具风格,与黄庭坚并称“苏黄”;词开豪放一派,与辛弃疾同是豪放派代表,并称“苏辛”;散文著述宏富,豪放自如,与欧阳修并称“欧苏”,为“唐宋八大家”之一。苏轼善书,“宋四家”之一;擅长文人画,尤擅墨竹、怪石、枯木等。与韩愈、柳宗元和欧阳修合称“千古文章四大家”。作品有《东坡七集》《东坡易传》《东坡乐府》《潇湘竹石图卷》《古木怪石图卷》等
+白居易(772年-846年),字乐天,号香山居士,又号醉吟先生,祖籍太原,到其曾祖父时迁居下邽,生于河南新郑。是唐代伟大的现实主义诗人,唐代三大诗人之一。白居易与元稹共同倡导新乐府运动,世称“元白”,与刘禹锡并称“刘白”。白居易的诗歌题材广泛,形式多样,语言平易通俗,有“诗魔”和“诗王”之称。官至翰林学士、左赞善大夫。公元846年,白居易在洛阳逝世,葬于香山。有《白氏长庆集》传世,代表诗作有《长恨歌》《卖炭翁》《琵琶行》等。
+杜甫(712-770),字子美,自号少陵野老,世称“杜工部”、“杜少陵”等,汉族,河南府巩县(今河南省巩义市)人,唐代伟大的现实主义诗人,杜甫被世人尊为“诗圣”,其诗被称为“诗史”。杜甫与李白合称“李杜”,为了跟另外两位诗人李商隐与杜牧即“小李杜”区别开来,杜甫与李白又合称“大李杜”。他忧国忧民,人格高尚,他的约1400余首诗被保留了下来,诗艺精湛,在中国古典诗歌中备受推崇,影响深远。759-766年间曾居成都,后世有杜甫草堂纪念
+