diff --git a/.typos.toml b/.typos.toml index d9416da7b8..d20ddb8931 100644 --- a/.typos.toml +++ b/.typos.toml @@ -9,5 +9,21 @@ keynode = "keynode" SCHEM = "SCHEM" [files] -extend-exclude = ["public/", "amap-wx/", "m-icon/", "uni-card/", "uni-col/", "uni-link/", "uni-list/", "uni-list-item/", "uni-row/", "migration/", "mapFiles/", "frontend/src/views/chart/components/table/TableNormal.vue"] +extend-exclude = [ + "public/", + "amap-wx/", + "m-icon/", + "uni-card/", + "uni-col/", + "uni-link/", + "uni-list/", + "uni-list-item/", + "uni-row/", + "migration/", + "mapFiles/", + "core/frontend/src/views/chart/components/table/TableNormal.vue", + "core/backend/src/main/java/io/dataease/ext/ExtSysUserMapper.xml", + "core/backend/src/main/java/io/dataease/ext/AuthMapper.xml", + "installer/dataease/templates/be.conf" +] diff --git a/4362e265-5fbd-49d7-9e63-d88d82efe3fe.xml b/4362e265-5fbd-49d7-9e63-d88d82efe3fe.xml deleted file mode 100644 index 4cbef9c152..0000000000 --- a/4362e265-5fbd-49d7-9e63-d88d82efe3fe.xml +++ /dev/null @@ -1,1545 +0,0 @@ - - - - - dataease - dataease - - 80020202 - MongoDB - - jdbc:mongodb://123.56.8.132:27017/dataease?rebuildschema=true&authSource=admin&schema=4362e265-5fbd-49d7-9e63-d88d82efe3fe.xml - mongodb.jdbc.MongoDriver - mongodb.jdbc.MongoDriver - " - - - - - - no1:thingdata:02:0 - "NO1:thingdata:02:0" - dataease - - true - - 3 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - 测试1 - "测试1" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - 测试2 - "测试2" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - 测试3 - "测试3" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - pk_NO1:thingdata:02:0 - 1 - - "_id" - - - -
- - - books - "books" - dataease - - true - - 1000 - - _id - "_id" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 1 - - 0 - - - - author - "author" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - category - "category" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - createddate - "createdDate" - 93 - timestamp - 25 - 0 - 25 - - - 25 - 4 - - 0 - - - - onsale - "onSale" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - price - "price" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 6 - - 0 - - - - title - "title" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 7 - - 0 - - - - pk_books - 1 - - "_id" - - - -
- - - create-test - "create-test" - dataease - - true - - 0 -
- - - jinlong - "jinlong" - dataease - - true - - 2 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - cnecustuuid - "cneCustUUID" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - groupid - "groupID" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - num_1 - "num_1" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 7 - - 0 - - - - parentcnecustuuid - "parentCneCustUUID" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 8 - - 0 - - - - parentname - "parentName" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - text_1 - "text_1" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - text_2 - "text_2" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 6 - - 0 - - - - pk_jinlong - 1 - - "_id" - - - -
- - - jinlong2 - "jinlong2" - dataease - - true - - 0 -
- - - mjq - "mjq" - dataease - - true - - 1 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - age - "age" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - name - "name" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - pk_mjq - 1 - - "_id" - - - -
- - - mjq-test - "mjq-test" - dataease - - true - - 2 - - *attrs - "*Attrs" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 18 - - 0 - - - - *应用程序 - "*应用程序" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 7 - - 0 - - - - *用户名 - "*用户名" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - *系统用户 - "*系统用户" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - id - "Id" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - ssh公钥 - "SSH公钥" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 11 - - 0 - - - - ssh密钥 - "SSH密钥" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 10 - - 0 - - - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - 创建日期 - "创建日期" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 12 - - 0 - - - - 密码 - "密码" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 9 - - 0 - - - - 应用名称 - "应用名称" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 8 - - 0 - - - - 更新日期 - "更新日期" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 13 - - 0 - - - - 版本 - "版本" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - 类别 - "类别" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 16 - - 0 - - - - 类别名称 - "类别名称" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 17 - - 0 - - - - 类型 - "类型" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 14 - - 0 - - - - 类型名称 - "类型名称" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 15 - - 0 - - - - 系统用户 - "系统用户" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 6 - - 0 - - - - 组织名称 - "组织名称" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 19 - - 0 - - - - pk_mjq-test - 1 - - "_id" - - - -
- - - mjqznb - "mjqznb" - dataease - - true - - 1 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - cnecustuuid - "cneCustUUID" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - groupid - "groupID" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - num_1 - "num_1" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 7 - - 0 - - - - parentcnecustuuid - "parentCneCustUUID" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 8 - - 0 - - - - parentname - "parentName" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - text_1 - "text_1" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - text_2 - "text_2" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 6 - - 0 - - - - pk_mjqznb - 1 - - "_id" - - - -
- - - report - "report" - dataease - - true - - 50 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - count - "count" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 7 - - 0 - - - - id - "id" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - latitude - "latitude" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - longitude - "longitude" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - name - "name" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - unit_price - "unit_price" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 6 - - 0 - - - - pk_report - 1 - - "_id" - - - -
- - - time - "time" - dataease - - true - - 1 - - 1 - "1" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - 10 - "10" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 11 - - 0 - - - - 11 - "11" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 12 - - 0 - - - - 12 - "12" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 13 - - 0 - - - - 13 - "13" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 14 - - 0 - - - - 2 - "2" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - 3 - "3" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - 4 - "4" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - 5 - "5" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 6 - - 0 - - - - 6 - "6" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 7 - - 0 - - - - 7 - "7" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 8 - - 0 - - - - 8 - "8" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 9 - - 0 - - - - 9 - "9" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 10 - - 0 - - - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - pk_time - 1 - - "_id" - - - -
- - - timeallmore - "timeallmore" - dataease - - true - - 15 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - 数值 - "数值" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 14 - - 0 - - - - 时间带时分秒(-) - "时间带时分秒(-)" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - 时间带时分秒(/) - "时间带时分秒(/)" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 6 - - 0 - - - - 时间没有分隔符带时分秒(时分秒以:) - "时间没有分隔符带时分秒(时分秒以:)" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 7 - - 0 - - - - 时间(-) - "时间(-)" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - 时间(/) - "时间(/)" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - 时间() - "时间()" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - 自定义1 - "自定义1" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 8 - - 0 - - - - 自定义2 - "自定义2" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 9 - - 0 - - - - 自定义3 - "自定义3" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 10 - - 0 - - - - 自定义4 - "自定义4" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 11 - - 0 - - - - 自定义5 - "自定义5" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 12 - - 0 - - - - 自定义6 - "自定义6" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 13 - - 0 - - - - pk_timeallmore - 1 - - "_id" - - - -
- -
diff --git a/476409e8-9887-438e-a6ce-e4e29ddd64bc.xml b/476409e8-9887-438e-a6ce-e4e29ddd64bc.xml deleted file mode 100644 index ddd8c60378..0000000000 --- a/476409e8-9887-438e-a6ce-e4e29ddd64bc.xml +++ /dev/null @@ -1,1871 +0,0 @@ - - - - - dataease - dataease - - 80020202 - MongoDB - - jdbc:mongodb://123.56.8.132:27018/dataease?rebuildschema=true&authSource=admin&schema=476409e8-9887-438e-a6ce-e4e29ddd64bc.xml - mongodb.jdbc.MongoDriver - mongodb.jdbc.MongoDriver - " - - - - - - no1:thingdata:02:0 - "NO1:thingdata:02:0" - dataease - - true - - 3 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - 测试1 - "测试1" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - 测试2 - "测试2" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - 测试3 - "测试3" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - pk_NO1:thingdata:02:0 - 1 - - "_id" - - - -
- - - sheet1 - "Sheet1" - dataease - - true - - 31 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - age - "age" - 4 - integer - 10 - 0 - 10 - - - 10 - 3 - - 0 - - - - bit - "bit" - 8 - double - 20 - 0 - 21 - - - 20 - 6 - - 0 - - - - bool - "bool" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - data - "data" - 93 - timestamp - 25 - 0 - 25 - - - 25 - 4 - - 0 - - - - float - "float" - 8 - double - 20 - 0 - 21 - - - 20 - 7 - - 0 - - - - name - "name" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - pk_Sheet1 - 1 - - "_id" - - - -
- - - books - "books" - dataease - - true - - 1000 - - _id - "_id" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 1 - - 0 - - - - author - "author" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - category - "category" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - createddate - "createdDate" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - onsale - "onSale" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - price - "price" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 6 - - 0 - - - - title - "title" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 7 - - 0 - - - - pk_books - 1 - - "_id" - - - -
- - - booksale - "booksale" - dataease - - true - - 20 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - b_date - "b_date" - 93 - timestamp - 25 - 0 - 25 - - - 25 - 6 - - 0 - - - - b_id - "b_id" - 4 - integer - 10 - 0 - 10 - - - 10 - 2 - - 0 - - - - b_name - "b_name" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - b_price - "b_price" - 8 - double - 20 - 0 - 21 - - - 20 - 4 - - 0 - - - - b_sale - "b_sale" - -5 - bigint - 20 - 0 - 20 - - - 20 - 5 - - 0 - - - - pk_booksale - 1 - - "_id" - - - -
- - - jinlong - "jinlong" - dataease - - true - - 16 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - cnecustuuid - "cneCustUUID" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - groupid - "groupID" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - parentcnecustuuid - "parentCneCustUUID" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - parentname - "parentName" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - pk_jinlong - 1 - - "_id" - - - -
- - - mjq-test - "mjq-test" - dataease - - true - - 1 - - *用户名 - "*用户名" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - *系统用户 - "*系统用户" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 18 - - 0 - - - - *资产 - "*资产" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 17 - - 0 - - - - ip - "IP" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - id - "Id" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - ssh公钥 - "SSH公钥" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 11 - - 0 - - - - ssh密钥 - "SSH密钥" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 10 - - 0 - - - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - 主机名 - "主机名" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - 创建日期 - "创建日期" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 12 - - 0 - - - - 协议组 - "协议组" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 7 - - 0 - - - - 可连接性 - "可连接性" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 14 - - 0 - - - - 备注 - "备注" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 16 - - 0 - - - - 密码 - "密码" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 9 - - 0 - - - - 更新日期 - "更新日期" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 13 - - 0 - - - - 校验日期 - "校验日期" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 15 - - 0 - - - - 版本 - "版本" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 8 - - 0 - - - - 系统平台 - "系统平台" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 6 - - 0 - - - - 系统用户名称 - "系统用户名称" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 19 - - 0 - - - - 组织名称 - "组织名称" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 20 - - 0 - - - - pk_mjq-test - 1 - - "_id" - - - -
- - - number - "number" - dataease - - true - - 9 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - age - "age" - -5 - bigint - 20 - 0 - 20 - - - 20 - 3 - - 0 - - - - float - "float" - 8 - double - 20 - 0 - 21 - - - 20 - 4 - - 0 - - - - name - "name" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - pk_number - 1 - - "_id" - - - -
- - - runoob - "runoob" - dataease - - true - - 1 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - createdat - "createdAt" - 93 - timestamp - 25 - 0 - 25 - - - 25 - 4 - - 0 - - - - name - "name" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - userid - "userId" - 8 - double - 20 - 0 - 21 - - - 20 - 3 - - 0 - - - - pk_runoob - 1 - - "_id" - - - -
- - - test - "test" - dataease - - true - - 14 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - _index - "_index" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - inputtype - "inputType" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 6 - - 0 - - - - label - "label" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 8 - - 0 - - - - name - "name" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - optionlist - "optionList" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - required - "required" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 11 - - 0 - - - - resourcepooltag - "resourcePoolTag" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 7 - - 0 - - - - role - "role" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - textfield - "textField" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 12 - - 0 - - - - value - "value" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 10 - - 0 - - - - valuefield - "valueField" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 9 - - 0 - - - - pk_test - 1 - - "_id" - - - -
- - - testdatetime - "testdatetime" - dataease - - true - - 33 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - datetime - "datetime" - 93 - timestamp - 25 - 0 - 25 - - - 25 - 2 - - 0 - - - - name - "name" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 6 - - 0 - - - - number - "number" - -5 - bigint - 20 - 0 - 20 - - - 20 - 3 - - 0 - - - - sing - "sing" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - zhi - "zhi" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - pk_testdatetime - 1 - - "_id" - - - -
- - - testtable - "testtable" - dataease - - true - - 10 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - strint - "strint" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - x - "x" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - pk_testtable - 1 - - "_id" - - - -
- - - testtable2 - "testtable2" - dataease - - true - - 10 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - strint - "strint" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - y - "y" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - pk_testtable2 - 1 - - "_id" - - - -
- - - timeallmore - "timeallmore" - dataease - - true - - 15 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - 数值 - "数值" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 14 - - 0 - - - - 时间带时分秒(-) - "时间带时分秒(-)" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - 时间带时分秒(/) - "时间带时分秒(/)" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 6 - - 0 - - - - 时间没有分隔符带时分秒(时分秒以:) - "时间没有分隔符带时分秒(时分秒以:)" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 7 - - 0 - - - - 时间(-) - "时间(-)" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - 时间(/) - "时间(/)" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - 时间() - "时间()" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - 自定义1 - "自定义1" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 8 - - 0 - - - - 自定义2 - "自定义2" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 9 - - 0 - - - - 自定义3 - "自定义3" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 10 - - 0 - - - - 自定义4 - "自定义4" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 11 - - 0 - - - - 自定义5 - "自定义5" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 12 - - 0 - - - - 自定义6 - "自定义6" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 13 - - 0 - - - - pk_timeallmore - 1 - - "_id" - - - -
- - - 测试 - "测试" - dataease - - true - - 33 - - _id - "_id" - 12 - varchar - 24 - 0 - 24 - - - 24 - 1 - - 0 - - - - 地区 - "地区" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 2 - - 0 - - - - - "女" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 4 - - 0 - - - - 比例 - "比例" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 5 - - 0 - - - - - "男" - 12 - varchar - 16793600 - 0 - 16793600 - - - 16793600 - 3 - - 0 - - - - pk_测试 - 1 - - "_id" - - - -
- -
diff --git a/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java index b68fb346ac..25a98a15d5 100644 --- a/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java @@ -1220,8 +1220,8 @@ public class DorisQueryProvider extends QueryProvider { if (x.getDeExtractType() == 0) { if (StringUtils.equalsIgnoreCase(x.getDateStyle(), "y_Q")) { fieldName = String.format(format, - String.format(DorisConstants.DATE_FORMAT, String.format(DorisConstants.STR_TO_DATE, originField, DorisConstants.DEFAULT_DATE_FORMAT), "%Y"), - String.format(DorisConstants.QUARTER, String.format(DorisConstants.STR_TO_DATE, originField, DorisConstants.DEFAULT_DATE_FORMAT))); + String.format(DorisConstants.DATE_FORMAT, String.format(DorisConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(x.getDateFormat()) ? x.getDateFormat() : DorisConstants.DEFAULT_DATE_FORMAT), "%Y"), + String.format(DorisConstants.QUARTER, String.format(DorisConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(x.getDateFormat()) ? x.getDateFormat() : DorisConstants.DEFAULT_DATE_FORMAT))); } else { fieldName = String.format(DorisConstants.DATE_FORMAT, String.format(DorisConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(x.getDateFormat()) ? x.getDateFormat() : DorisConstants.DEFAULT_DATE_FORMAT), format); } diff --git a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index adc6fe33ce..61f575449c 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -604,12 +604,21 @@ public class ChartViewService { List viewFields = gson.fromJson(view.getViewFields(), tokenType); final Map> extFieldsMap = new LinkedHashMap<>(); if (CollectionUtils.isNotEmpty(viewFields)) { - viewFields.forEach(field -> { + String[] busiFlagArray = new String[] {"daxis", "locationXaxis", "locationYaxis"}; + Map flagMap = new HashMap<>(); + for (String s : busiFlagArray) { + flagMap.put(s, false); + } + for (ChartViewFieldDTO field : viewFields) { + flagMap.put(field.getBusiType(), true); String busiType = field.getBusiType(); List list = extFieldsMap.containsKey(busiType) ? extFieldsMap.get(busiType) : new ArrayList<>(); list.add(field); extFieldsMap.put(field.getBusiType(), list); - }); + } + if (flagMap.get("daxis") && (!flagMap.get("locationXaxis") || !flagMap.get("locationYaxis"))) { + viewFields = viewFields.stream().filter(field -> !StringUtils.equals("daxis", field.getBusiType())).collect(Collectors.toList()); + } } List xAxisBase = gson.fromJson(view.getXAxis(), tokenType); diff --git a/core/frontend/src/components/canvas/customComponent/UserView.vue b/core/frontend/src/components/canvas/customComponent/UserView.vue index 14920df1e4..8faef103d4 100644 --- a/core/frontend/src/components/canvas/customComponent/UserView.vue +++ b/core/frontend/src/components/canvas/customComponent/UserView.vue @@ -35,6 +35,7 @@ :obj="{active, chart, trackMenu, searchCount, terminalType: scaleCoefficientType}" :chart="chart" :track-menu="trackMenu" + :in-screen="inScreen" :search-count="searchCount" :terminal-type="scaleCoefficientType" :scale="scale" @@ -432,7 +433,7 @@ export default { const trackMenuInfo = [] let linkageCount = 0 let jumpCount = 0 - if(this.drillFilters.length && !this.chart.type.includes('table')){ + if (this.drillFilters.length && !this.chart.type.includes('table')) { const checkItem = this.drillFields[this.drillFilters.length] const sourceInfo = this.chart.id + '#' + checkItem.id if (this.nowPanelTrackInfo[sourceInfo]) { @@ -441,7 +442,7 @@ export default { if (this.nowPanelJumpInfo[sourceInfo]) { jumpCount++ } - }else{ + } else { this.chart.data && this.chart.data.fields && this.chart.data.fields.forEach(item => { const sourceInfo = this.chart.id + '#' + item.id if (this.nowPanelTrackInfo[sourceInfo]) { @@ -633,7 +634,7 @@ export default { }, exportViewImg() { this.imageDownloading = true - this.$refs['userViewDialog'].exportViewImg(()=>{ + this.$refs['userViewDialog'].exportViewImg(() => { this.imageDownloading = false }) }, diff --git a/core/frontend/src/components/widget/deWidget/DeDate.vue b/core/frontend/src/components/widget/deWidget/DeDate.vue index c0f516aa2b..af5e9b7634 100644 --- a/core/frontend/src/components/widget/deWidget/DeDate.vue +++ b/core/frontend/src/components/widget/deWidget/DeDate.vue @@ -60,7 +60,8 @@ export default { values: null, onFocus: false, show: true, - timer: null + outTimer: null, + innerTimer: null } }, computed: { @@ -134,12 +135,7 @@ export default { }, watch: { - canvasStyleData: { - handler(newVal, oldVla) { - this.canvasStyleDataInit() - }, - deep: true - }, + 'viewIds': function(value, old) { if (typeof value === 'undefined' || value === old) return this.setCondition() @@ -174,7 +170,9 @@ export default { }, created() { this.loadInit() - this.canvasStyleDataInit() + this.$nextTick(() => { + this.dynamicRefresh() + }) }, mounted() { bus.$on('onScroll', this.onScroll) @@ -183,18 +181,14 @@ export default { } }, beforeDestroy() { - this.timer && clearInterval(this.timer) + this.clearTime() bus.$off('onScroll', this.onScroll) bus.$off('reset-default-value', this.resetDefaultValue) }, methods: { loadInit() { - if (this.element.options.attrs.default && this.element.options.attrs.default.isDynamic) { - if (this.element.options.attrs.default) { - const widget = ApplicationContext.getService(this.element.serviceName) - this.values = widget.dynamicDateFormNow(this.element) - this.dateChange(this.values) - } + this.clearTime() + if (this.refreshHandler()) { return } if (this.element.options.value) { @@ -202,22 +196,42 @@ export default { this.dateChange(this.values) } }, - canvasStyleDataInit() { - if (this.inDraw && this.canvasStyleData.refreshViewEnable && this.element.options.attrs.default && this.element.options.attrs.default.isDynamic) { - this.searchCount = 0 - this.timer && clearInterval(this.timer) - let refreshTime = 300000 - if (this.canvasStyleData.refreshTime && this.canvasStyleData.refreshTime > 0) { - if (this.canvasStyleData.refreshUnit === 'second') { - refreshTime = this.canvasStyleData.refreshTime * 1000 - } else { - refreshTime = this.canvasStyleData.refreshTime * 60000 + refreshHandler() { + if (this.element.options.attrs.default?.isDynamic) { + const widget = ApplicationContext.getService(this.element.serviceName) + this.values = widget.dynamicDateFormNow(this.element) + this.dateChange(this.values) + return true + } + return false + }, + clearTime() { + if (this.outTimer) { + clearTimeout(this.outTimer) + this.outTimer = null + } + if (this.innerTimer) { + clearInterval(this.innerTimer) + this.innerTimer = null + } + }, + dynamicRefresh() { + if (this.inDraw && this.element.options.attrs.default?.isDynamic) { + const nowDate = new Date() + const nowTime = nowDate.getTime() + const tomorrow = new Date(`${nowDate.getFullYear()}-${nowDate.getMonth() + 1}-${nowDate.getDate() + 1} 00:00:01`) + const tomorrowTime = tomorrow.getTime() + this.clearTime() + this.outTimer = setTimeout(() => { + if (this.inDraw) { + this.refreshHandler() } - } - this.timer = setInterval(() => { - this.loadInit() - this.searchCount++ - }, refreshTime) + this.innerTimer = setInterval(() => { + if (this.inDraw) { + this.refreshHandler() + } + }, 24 * 3600 * 1000) + }, tomorrowTime - nowTime) } }, clearHandler() { diff --git a/core/frontend/src/lang/en.js b/core/frontend/src/lang/en.js index 10e6b67d83..3397df4246 100644 --- a/core/frontend/src/lang/en.js +++ b/core/frontend/src/lang/en.js @@ -1489,6 +1489,8 @@ export default { label_content: 'Label Content', percent: 'Percent', table_index_desc: 'Index Header Name', + table_row_tooltip: 'Row Tooltip', + table_col_tooltip: 'Column Tooltip', total_sort: 'Total Sort', total_sort_none: 'None', total_sort_asc: 'ASC', diff --git a/core/frontend/src/lang/tw.js b/core/frontend/src/lang/tw.js index f5a2062a6b..acae311002 100644 --- a/core/frontend/src/lang/tw.js +++ b/core/frontend/src/lang/tw.js @@ -1488,6 +1488,8 @@ export default { label_content: '標籤展示', percent: '占比', table_index_desc: '表頭名稱', + table_row_tooltip: '行頭提示', + table_col_tooltip: '列頭提示', total_sort: '總計排序', total_sort_none: '無', total_sort_asc: '升序', diff --git a/core/frontend/src/lang/zh.js b/core/frontend/src/lang/zh.js index 983477b26e..a68a573db0 100644 --- a/core/frontend/src/lang/zh.js +++ b/core/frontend/src/lang/zh.js @@ -1487,6 +1487,8 @@ export default { label_content: '标签展示', percent: '占比', table_index_desc: '表头名称', + table_row_tooltip: '行头提示', + table_col_tooltip: '列头提示', total_sort: '总计排序', total_sort_none: '无', total_sort_asc: '升序', diff --git a/core/frontend/src/main.js b/core/frontend/src/main.js index 8081fd0d2b..dc12881242 100644 --- a/core/frontend/src/main.js +++ b/core/frontend/src/main.js @@ -40,6 +40,7 @@ import VueFriendlyIframe from 'vue-friendly-iframe' import vueToPdf from 'vue-to-pdf' import VueVideoPlayer from 'vue-video-player' import 'video.js/dist/video-js.css' +import '@antv/s2/dist/style.min.css' // 控制标签宽高成比例的指令 import proportion from 'vue-proportion-directive' diff --git a/core/frontend/src/views/chart/chart/bar/bar_antv.js b/core/frontend/src/views/chart/chart/bar/bar_antv.js index 3305a64e0e..97b30a42d1 100644 --- a/core/frontend/src/views/chart/chart/bar/bar_antv.js +++ b/core/frontend/src/views/chart/chart/bar/bar_antv.js @@ -45,6 +45,16 @@ export function baseBarOptionAntV(plot, container, chart, action, isGroup, isSta yAxis: yAxis, slider: slider, annotations: analyse, + brush: { + enabled: true, + isStartEnable: (context) => { + // 按住 shift 键,才能开启交互 + if (context.event.gEvent.originalEvent?.shiftKey) { + return true + } + return false + } + }, interactions: [ { type: 'legend-active', cfg: { @@ -162,6 +172,16 @@ export function hBaseBarOptionAntV(plot, container, chart, action, isGroup, isSt yAxis: yAxis, slider: slider, annotations: analyse, + brush: { + enabled: true, + isStartEnable: (context) => { + // 按住 shift 键,才能开启交互 + if (context.event.gEvent.originalEvent?.shiftKey) { + return true + } + return false + } + }, interactions: [ { type: 'legend-active', cfg: { diff --git a/core/frontend/src/views/chart/chart/chart.js b/core/frontend/src/views/chart/chart/chart.js index 1af8b92939..9028a31522 100644 --- a/core/frontend/src/views/chart/chart/chart.js +++ b/core/frontend/src/views/chart/chart/chart.js @@ -86,6 +86,12 @@ export const DEFAULT_SIZE = { tableHeaderAlign: 'left', tableItemAlign: 'right', tableAutoBreakLine: false, + tableRowTooltip: { + show: false + }, + tableColTooltip: { + show: false + }, gaugeMinType: 'fix', // fix or dynamic gaugeMinField: { id: '', diff --git a/core/frontend/src/views/chart/chart/common/common_antv.js b/core/frontend/src/views/chart/chart/common/common_antv.js index 3e27c4a66e..5db67a2105 100644 --- a/core/frontend/src/views/chart/chart/common/common_antv.js +++ b/core/frontend/src/views/chart/chart/common/common_antv.js @@ -593,9 +593,11 @@ export function getXAxis(chart) { stroke: axisCfg.lineStyle.color } } : null + const rotate = parseInt(a.axisLabel.rotate) const label = a.axisLabel.show ? { - rotate: parseInt(a.axisLabel.rotate) * Math.PI / 180, + rotate: rotate * Math.PI / 180, style: { + textAlign: rotate > 20 ? 'start' : rotate < -20 ? 'end' : 'center', fill: a.axisLabel.color, fontSize: parseInt(a.axisLabel.fontSize) }, diff --git a/core/frontend/src/views/chart/chart/table/table-info.js b/core/frontend/src/views/chart/chart/table/table-info.js index 4f262bf81e..c860adbaac 100644 --- a/core/frontend/src/views/chart/chart/table/table-info.js +++ b/core/frontend/src/views/chart/chart/table/table-info.js @@ -1,4 +1,4 @@ -import { TableSheet, S2Event, PivotSheet, DataCell, EXTRA_FIELD, TOTAL_VALUE } from '@antv/s2' +import { TableSheet, S2Event, PivotSheet, DataCell, EXTRA_FIELD, TOTAL_VALUE, BaseEvent } from '@antv/s2' import { getCustomTheme, getSize } from '@/views/chart/chart/common/common_table' import { DEFAULT_COLOR_CASE, DEFAULT_TOTAL } from '@/views/chart/chart/chart' import { formatterItem, valueFormatter } from '@/views/chart/chart/formatter' @@ -7,7 +7,7 @@ export function baseTableInfo(s2, container, chart, action, tableData, pageInfo) const containerDom = document.getElementById(container) // fields - const fields = chart.data.fields + let fields = chart.data.fields if (!fields || fields.length === 0) { if (s2) { s2.destroy() @@ -17,8 +17,17 @@ export function baseTableInfo(s2, container, chart, action, tableData, pageInfo) const columns = [] const meta = [] - - // add drill list + // 记录下钻起始字段的index + let xAxis = [] + try { + xAxis = JSON.parse(chart.xaxis) + } catch (err) { + xAxis = JSON.parse(JSON.stringify(chart.xaxis)) + } + const nameMap = xAxis.reduce((pre, next) => { + pre[next.dataeaseName] = next + return pre + }, {}) if (chart.drill) { let drillFields = [] try { @@ -26,107 +35,44 @@ export function baseTableInfo(s2, container, chart, action, tableData, pageInfo) } catch (err) { drillFields = JSON.parse(JSON.stringify(chart.drillFields)) } - - const drillField = drillFields[chart.drillFilters.length] - - const drillFilters = JSON.parse(JSON.stringify(chart.drillFilters)) - const drillExp = drillFilters[drillFilters.length - 1].datasetTableField - - // 记录下钻起始字段的index - let xAxis = [] - try { - xAxis = JSON.parse(chart.xaxis) - } catch (err) { - xAxis = JSON.parse(JSON.stringify(chart.xaxis)) - } - let index = 0 - for (let i = 0; i < xAxis.length; i++) { - if (xAxis[i].id === drillFilters[0].fieldId) { - index = i - break - } - } - - // 移除所有下钻字段 - const removeField = [] - for (let i = 0; i < chart.drillFilters.length; i++) { - const ele = chart.drillFilters[i].datasetTableField - removeField.push(ele.dataeaseName) - } - - // build field - fields.forEach(ele => { - if (removeField.indexOf(ele.dataeaseName) < 0) { - // 用下钻字段替换当前字段 - if (drillExp.dataeaseName === ele.dataeaseName) { - columns.push(drillField.dataeaseName) - meta.push({ - field: drillField.dataeaseName, - name: drillField.name - }) - } else { - const f = getCurrentField(chart.xaxis, ele) - columns.push(ele.dataeaseName) - meta.push({ - field: ele.dataeaseName, - name: ele.name, - formatter: function(value) { - if (!f) { - return value - } - if (value === null || value === undefined) { - return value - } - if (f.groupType === 'd') { - return value - } else { - if (f.formatterCfg) { - const v = valueFormatter(value, f.formatterCfg) - return v.includes('NaN') ? value : v - } else { - const v = valueFormatter(value, formatterItem) - return v.includes('NaN') ? value : v - } - } - } - }) - } - } - }) - - // 修正下钻字段的index,获取下钻位置元素添加到index位置,并删除 - const ele = columns[columns.length - 1] - columns.splice(index, 0, ele) - columns.splice(columns.length - 1, 1) - } else { - fields.forEach(ele => { - const f = getCurrentField(chart.xaxis, ele) - columns.push(ele.dataeaseName) - meta.push({ - field: ele.dataeaseName, - name: ele.name, - formatter: function(value) { - if (!f) { - return value - } - if (value === null || value === undefined) { - return value - } - if (f.groupType === 'd') { - return value - } else { - if (f.formatterCfg) { - const v = valueFormatter(value, f.formatterCfg) - return v.includes('NaN') ? value : v - } else { - const v = valueFormatter(value, formatterItem) - return v.includes('NaN') ? value : v - } - } - } - }) - }) + // 总下钻过滤字段 + const drillFilters = JSON.parse(JSON.stringify(chart.drillFilters)).map(i => i.fieldId) + // 当前下钻字段 + const curDrillField = drillFields[chart.drillFilters.length] + drillFilters.push(curDrillField.id) + // 下钻入口字段的下标 + const drillEnterFieldIndex = xAxis.findIndex(item => item.id === drillFilters[0]) + // 移除所有下钻字段,调整当前下钻字段到下钻入口位置 + fields = fields.filter(item => !drillFilters.includes(item.id)) + fields.splice(drillEnterFieldIndex, 0, curDrillField) } + fields.forEach(ele => { + const f = nameMap[ele.dataeaseName] + columns.push(ele.dataeaseName) + meta.push({ + field: ele.dataeaseName, + name: ele.name, + formatter: function(value) { + if (!f) { + return value + } + if (value === null || value === undefined) { + return value + } + if (f.groupType === 'd') { + return value + } else { + if (f.formatterCfg) { + const v = valueFormatter(value, f.formatterCfg) + return v.includes('NaN') ? value : v + } else { + const v = valueFormatter(value, formatterItem) + return v.includes('NaN') ? value : v + } + } + } + }) + }) // 空值处理 const newData = handleTableEmptyStrategy(tableData, chart) // data config @@ -174,6 +120,11 @@ export function baseTableInfo(s2, container, chart, action, tableData, pageInfo) // click s2.on(S2Event.DATA_CELL_CLICK, action) + // hover + const size = customAttr.size + if (size.tableColTooltip?.show) { + s2.on(S2Event.COL_CELL_HOVER, event => showTooltip(s2, event)) + } // theme const customTheme = getCustomTheme(chart) @@ -342,7 +293,11 @@ export function baseTableNormal(s2, container, chart, action, tableData) { // click s2.on(S2Event.DATA_CELL_CLICK, action) - + // hover + const size = customAttr.size + if (size.tableColTooltip?.show) { + s2.on(S2Event.COL_CELL_HOVER, event => showTooltip(s2, event)) + } // theme const customTheme = getCustomTheme(chart) s2.setThemeCfg({ theme: customTheme }) @@ -455,8 +410,8 @@ export function baseTablePivot(s2, container, chart, action, headerAction, table // total config let totalCfg = {} const chartObj = JSON.parse(JSON.stringify(chart)) + let customAttr if (chartObj.customAttr) { - let customAttr = null if (Object.prototype.toString.call(chartObj.customAttr) === '[object Object]') { customAttr = JSON.parse(JSON.stringify(chartObj.customAttr)) } else { @@ -528,7 +483,14 @@ export function baseTablePivot(s2, container, chart, action, headerAction, table s2.on(S2Event.DATA_CELL_CLICK, action) s2.on(S2Event.ROW_CELL_CLICK, headerAction) s2.on(S2Event.COL_CELL_CLICK, headerAction) - + // hover + const size = customAttr?.size + if (size?.tableRowTooltip?.show) { + s2.on(S2Event.ROW_CELL_HOVER, event => showTooltip(s2, event)) + } + if (size?.tableColTooltip?.show) { + s2.on(S2Event.COL_CELL_HOVER, event => showTooltip(s2, event)) + } // theme const customTheme = getCustomTheme(chart) s2.setThemeCfg({ theme: customTheme }) @@ -740,3 +702,16 @@ function mappingColor(value, defaultColor, field, type) { } return color } + +function showTooltip(s2Instance, event) { + const cell = s2Instance.getCell(event.target) + const content = cell.actualText + + s2Instance.showTooltip({ + position: { + x: event.clientX, + y: event.clientY + }, + content + }) +} diff --git a/core/frontend/src/views/chart/chart/util.js b/core/frontend/src/views/chart/chart/util.js index fdacc429a7..cbde5bcffd 100644 --- a/core/frontend/src/views/chart/chart/util.js +++ b/core/frontend/src/views/chart/chart/util.js @@ -62,7 +62,8 @@ export const TYPE_CONFIGS = [ 'tableItemHeight', 'tableColumnMode', 'showIndex', - 'indexLabel' + 'indexLabel', + 'tableColTooltip' ], 'title-selector-ant-v': [ 'show', @@ -111,7 +112,8 @@ export const TYPE_CONFIGS = [ 'tableItemHeight', 'tableColumnMode', 'showIndex', - 'indexLabel' + 'indexLabel', + 'tableColTooltip' ], 'title-selector-ant-v': [ 'show', @@ -157,7 +159,9 @@ export const TYPE_CONFIGS = [ 'tableItemAlign', 'tableTitleHeight', 'tableItemHeight', - 'tableColumnMode' + 'tableColumnMode', + 'tableRowTooltip', + 'tableColTooltip' ], 'total-cfg': [ 'row', diff --git a/core/frontend/src/views/chart/components/ChartComponent.vue b/core/frontend/src/views/chart/components/ChartComponent.vue index 460fa635e1..9a82351f7c 100644 --- a/core/frontend/src/views/chart/components/ChartComponent.vue +++ b/core/frontend/src/views/chart/components/ChartComponent.vue @@ -189,13 +189,19 @@ export default { }, mounted() { bus.$on('change-series-id', this.changeSeriesId) - document.getElementById(this.chartId).addEventListener('mouseover', this.bodyMouseover) - document.getElementById(this.chartId).addEventListener('mouseout', this.bodyMouseout) + const dom = document.getElementById(this.chartId) + if (dom) { + dom.addEventListener('mouseover', this.bodyMouseover) + dom.addEventListener('mouseout', this.bodyMouseout) + } this.preDraw() }, beforeDestroy() { - document.getElementById(this.chartId).removeEventListener('mouseover', this.bodyMouseover) - document.getElementById(this.chartId).removeEventListener('mouseout', this.bodyMouseout) + const dom = document.getElementById(this.chartId) + if (dom) { + dom.removeEventListener('mouseover', this.bodyMouseover) + dom.removeEventListener('mouseout', this.bodyMouseout) + } bus.$off('change-series-id', this.changeSeriesId) window.removeEventListener('resize', this.myChart.resize) this.myChart.dispose() diff --git a/core/frontend/src/views/chart/components/ChartComponentS2.vue b/core/frontend/src/views/chart/components/ChartComponentS2.vue index edb19b38e8..df048d2bc8 100644 --- a/core/frontend/src/views/chart/components/ChartComponentS2.vue +++ b/core/frontend/src/views/chart/components/ChartComponentS2.vue @@ -614,3 +614,8 @@ export default { background: transparent !important; } + diff --git a/core/frontend/src/views/chart/components/shapeAttr/SizeSelectorAntV.vue b/core/frontend/src/views/chart/components/shapeAttr/SizeSelectorAntV.vue index bbb8916efa..126f14b884 100644 --- a/core/frontend/src/views/chart/components/shapeAttr/SizeSelectorAntV.vue +++ b/core/frontend/src/views/chart/components/shapeAttr/SizeSelectorAntV.vue @@ -384,6 +384,28 @@ @blur="changeBarSizeCase('indexLabel')" /> + + + + + + @@ -893,6 +915,54 @@ @change="changeBarSizeCase('quotaFontShadow')" >{{ $t('chart.font_shadow') }} + + + {{ $t('chart.p_left') }} + {{ $t('chart.p_center') }} + {{ $t('chart.p_right') }} + + + + + {{ $t('chart.p_top') }} + {{ $t('chart.p_center') }} + {{ $t('chart.p_bottom') }} + + {{ $t('chart.font_shadow') }} - - - - {{ $t('chart.p_left') }} - {{ $t('chart.p_center') }} - {{ $t('chart.p_right') }} - - - - - {{ $t('chart.p_top') }} - {{ $t('chart.p_center') }} - {{ $t('chart.p_bottom') }} - - @@ -1565,6 +1586,8 @@ export default { this.sizeForm.tableHeaderAlign = this.sizeForm.tableHeaderAlign ? this.sizeForm.tableHeaderAlign : DEFAULT_SIZE.tableHeaderAlign this.sizeForm.tableItemAlign = this.sizeForm.tableItemAlign ? this.sizeForm.tableItemAlign : DEFAULT_SIZE.tableItemAlign + this.sizeForm.tableRowTooltip = this.sizeForm.tableRowTooltip ?? DEFAULT_SIZE.tableRowTooltip + this.sizeForm.tableColTooltip = this.sizeForm.tableColTooltip ?? DEFAULT_SIZE.tableColTooltip this.sizeForm.showIndex = this.sizeForm.showIndex ? this.sizeForm.showIndex : DEFAULT_SIZE.showIndex if (this.sizeForm.indexLabel === null || this.sizeForm.indexLabel === undefined) { diff --git a/core/frontend/src/views/chart/group/Group.vue b/core/frontend/src/views/chart/group/Group.vue index 63a1fec87f..422b5c4f5c 100644 --- a/core/frontend/src/views/chart/group/Group.vue +++ b/core/frontend/src/views/chart/group/Group.vue @@ -13,7 +13,7 @@ @click="add('group')" /> - + - {{ searchMap[searchType] }} + {{ searchMap[searchType] }} {{ $t('commons.all') }} @@ -63,7 +63,7 @@ > - + - + - +
- +
- - + + {{ - $t('chart.preview') - }} + $t('chart.preview') + }} {{ - $t('dataset.confirm') - }} + $t('dataset.confirm') + }}
@@ -481,8 +481,8 @@ size="mini" @click="saveMoveDs(tDs)" >{{ - $t('dataset.confirm') - }} + $t('dataset.confirm') + }}
@@ -630,6 +630,10 @@ export default { }, panelInfo() { return this.$store.state.panel.panelInfo + }, + watchChartTypeChangeObj() { + const { type, render } = this.view + return { type, render } } }, watch: { @@ -649,8 +653,14 @@ export default { this.searchPids = [] this.$refs.chartTreeRef.filter(this.filterText) }, - chartType(val) { - this.view.isPlugin = val && this.$refs['cu-chart-type'] && this.$refs['cu-chart-type'].currentIsPlugin(val) + // chartType(val) { + // this.view.isPlugin = val && this.$refs['cu-chart-type'] && this.$refs['cu-chart-type'].currentIsPlugin(val) + // }, + watchChartTypeChangeObj(newVal, oldVal) { + if (newVal.type === oldVal.type && newVal.render === oldVal.render) { + return + } + this.view.isPlugin = this.$refs['cu-chart-type'] && this.$refs['cu-chart-type'].currentIsPlugin(newVal.type, newVal.render) } }, diff --git a/core/frontend/src/views/chart/view/ChartEdit.vue b/core/frontend/src/views/chart/view/ChartEdit.vue index de2445b799..aac8ac29e4 100644 --- a/core/frontend/src/views/chart/view/ChartEdit.vue +++ b/core/frontend/src/views/chart/view/ChartEdit.vue @@ -924,6 +924,7 @@ :param="param" :index="index" :item="item" + :chart="chart" :dimension-data="dimension" :quota-data="quota" @onItemChange="bubbleItemChange" @@ -1323,8 +1324,8 @@ ref="itemForm" label-width="80px" :model="itemForm" - @submit.native.prevent :rules="itemFormRules" + @submit.native.prevent > { - // this.getData(this.param.id) this.getChart(this.param.id) bus.$emit('view-in-cache', { type: 'propChange', @@ -2462,7 +2466,6 @@ export default { view.senior = JSON.stringify(this.view.senior) view.title = this.view.title view.stylePriority = this.view.stylePriority - // view.data = this.data this.chart = view // 保存到缓存表 @@ -2514,7 +2517,6 @@ export default { } }, getData(id) { - // this.hasEdit = true if (id) { ajaxGetDataOnly(id, this.panelInfo.id, { filter: [], @@ -2894,12 +2896,7 @@ export default { }, closeRename() { this.renameItem = false - this.resetRename() }, - resetRename() { - // this.itemForm = {} - }, - showQuotaEditCompare(item) { this.quotaItemCompare = JSON.parse(JSON.stringify(item)) this.showEditQuotaCompare = true @@ -3107,14 +3104,8 @@ export default { }, initAreas() { - // let mapping - // if ((mapping = localStorage.getItem('areaMapping')) !== null) { - // this.places = JSON.parse(mapping) - // return - // } Object.keys(this.places).length === 0 && areaMapping().then(res => { this.places = res.data - // localStorage.setItem('areaMapping', JSON.stringify(res.data)) }) }, @@ -3182,16 +3173,13 @@ export default { chartClick(param) { if (this.drillClickDimensionList.length < this.view.drillFields.length - 1) { - // const isSwitch = (this.chart.type === 'map' && this.sendToChildren(param)) if (this.chart.type === 'map' || this.chart.type === 'buddle-map') { if (this.sendToChildren(param)) { this.drillClickDimensionList.push({ dimensionList: param.data.dimensionList }) - // this.getData(this.param.id) this.calcData(true, 'chart', false, false) } } else { this.drillClickDimensionList.push({ dimensionList: param.data.dimensionList }) - // this.getData(this.param.id) this.calcData(true, 'chart', false, false) } } else if (this.view.drillFields.length > 0) { @@ -3219,7 +3207,6 @@ export default { } else { current && current.registerDynamicMap && current.registerDynamicMap(null) } - // this.$refs.dynamicChart && this.$refs.dynamicChart.registerDynamicMap && this.$refs.dynamicChart.registerDynamicMap(null) } }, drillJump(index) { @@ -3228,8 +3215,6 @@ export default { if (this.chart.type === 'map' || this.chart.type === 'buddle-map') { this.backToParent(index, length) } - - // this.getData(this.param.id) this.calcData(true, 'chart', false, false) }, // 回到父级地图 @@ -3245,7 +3230,6 @@ export default { } this.currentAcreaNode = tempNode - // this.$refs.dynamicChart && this.$refs.dynamicChart.registerDynamicMap && this.$refs.dynamicChart.registerDynamicMap(this.currentAcreaNode.code) const current = this.$refs.dynamicChart if (this.view.isPlugin) { current && current.callPluginInner && this.setDetailMapCode(this.currentAcreaNode.code) && current.callPluginInner({ @@ -3271,14 +3255,11 @@ export default { if (this.currentAcreaNode) { aCode = this.currentAcreaNode.code } - // const aCode = this.currentAcreaNode ? this.currentAcreaNode.code : null const currentNode = this.findEntityByCode(aCode || this.view.customAttr.areaCode, this.places) if (currentNode && currentNode.children && currentNode.children.length > 0) { const nextNode = currentNode.children.find(item => item.name === name) if (!nextNode || !nextNode.code) return null - // this.view.customAttr.areaCode = nextNode.code this.currentAcreaNode = nextNode - // this.$refs.dynamicChart && this.$refs.dynamicChart.registerDynamicMap && this.$refs.dynamicChart.registerDynamicMap(nextNode.code) const current = this.$refs.dynamicChart if (this.view.isPlugin) { nextNode && current && current.callPluginInner && this.setDetailMapCode(nextNode.code) && current.callPluginInner({ @@ -3329,12 +3310,10 @@ export default { this.$store.commit('recordViewEdit', { viewId: this.param.id, hasEdit: status }) }, changeChartRender() { - this.setChartDefaultOptions() - this.calcData(true, 'chart', true, false, true) + // Do Nothing }, changeChartType() { - this.setChartDefaultOptions() - this.calcData(true, 'chart', true, true) + // Do Nothing }, setChartDefaultOptions() { diff --git a/core/frontend/src/views/chart/view/ChartType.vue b/core/frontend/src/views/chart/view/ChartType.vue index c5ac87b4f4..56385af178 100644 --- a/core/frontend/src/views/chart/view/ChartType.vue +++ b/core/frontend/src/views/chart/view/ChartType.vue @@ -93,9 +93,9 @@ export default { } }, methods: { - currentIsPlugin(type) { + currentIsPlugin(type, render) { const plugins = localStorage.getItem('plugin-views') && JSON.parse(localStorage.getItem('plugin-views')) || [] - return plugins.some(plugin => plugin.value === type) + return plugins.some(plugin => plugin.value === type && plugin.render === render) }, initTypes(plugins) { plugins.forEach(plugin => { diff --git a/core/frontend/src/views/panel/filter/FilterDialog.vue b/core/frontend/src/views/panel/filter/FilterDialog.vue index 975dc186af..457650e75b 100644 --- a/core/frontend/src/views/panel/filter/FilterDialog.vue +++ b/core/frontend/src/views/panel/filter/FilterDialog.vue @@ -798,7 +798,7 @@ export default { async loadField(tableId, init) { const res = await fieldListWithPermission(tableId) let data = res.data || [] - if (init && !this.checkSuperior(data, this.anotherTableInfo(tableId))) { + if (init && (!data.length || !this.checkSuperior(data, this.anotherTableInfo(tableId)))) { this.backToLink() } if (this.widget && this.widget.filterFieldMethod) { diff --git a/core/frontend/src/views/panel/filter/defaultValue/DeDateRangeDefault.vue b/core/frontend/src/views/panel/filter/defaultValue/DeDateRangeDefault.vue index 50f4324659..a11971d4c0 100644 --- a/core/frontend/src/views/panel/filter/defaultValue/DeDateRangeDefault.vue +++ b/core/frontend/src/views/panel/filter/defaultValue/DeDateRangeDefault.vue @@ -155,7 +155,7 @@ :format="element.options.attrs.accuracy" style="width: auto; min-width: 110px;" placeholder="" - @change="eDynamicSuffixTimeChange" + @change="sDynamicSuffixTimeChange" /> @@ -384,10 +384,22 @@ export default { } }, eDynamicSuffixTimeChange(val) { + const time = this.convertTime(val) + this.$set(this.element.options.attrs.default, 'eDynamicSuffixTime', time) this.setDval() }, sDynamicSuffixTimeChange(val) { + const time = this.convertTime(val) + this.$set(this.element.options.attrs.default, 'sDynamicSuffixTime', time) this.setDval() + }, + convertTime(val) { + const date = new Date(val) + const baseDate = new Date(this.baseTime) + date.setFullYear(baseDate.getFullYear()) + date.setMonth(baseDate.getMonth()) + date.setDate(baseDate.getDate()) + return date.getTime() } } } diff --git a/core/frontend/src/views/panel/list/PanelViewShow.vue b/core/frontend/src/views/panel/list/PanelViewShow.vue index 47123101de..3a68ffd854 100644 --- a/core/frontend/src/views/panel/list/PanelViewShow.vue +++ b/core/frontend/src/views/panel/list/PanelViewShow.vue @@ -937,7 +937,8 @@ export default { top: inherit !important; } - .track-menu { + .track-menu, + .coustom-date-picker { left: inherit !important; } } diff --git a/extensions/dataease-extensions-view/view-chartmix/view-chartmix-frontend/src/views/antv/chartmix/data.vue b/extensions/dataease-extensions-view/view-chartmix/view-chartmix-frontend/src/views/antv/chartmix/data.vue index aa2edfdbdc..25f736a7d7 100644 --- a/extensions/dataease-extensions-view/view-chartmix/view-chartmix-frontend/src/views/antv/chartmix/data.vue +++ b/extensions/dataease-extensions-view/view-chartmix/view-chartmix-frontend/src/views/antv/chartmix/data.vue @@ -98,10 +98,10 @@