diff --git a/frontend/src/css/dingtalk-departments.css b/frontend/src/css/dingtalk-departments.css index d84bba8f1b..701f992f3a 100644 --- a/frontend/src/css/dingtalk-departments.css +++ b/frontend/src/css/dingtalk-departments.css @@ -22,7 +22,7 @@ .dir-content-nav { position: absolute; overflow: hidden; - width: 24%; + width: 25%; } .dir-content-nav:hover { @@ -45,43 +45,45 @@ .tree-node-inner { position: relative; display: flex; - padding-right: 1rem; + padding-right: 0.5rem; } -.tree-node-inner i { +.tree-node-inner .sf3-font-down { position: absolute; - top: 20%; + top: 15%; left: 0.3rem; color: #999; } .tree-node-inner-hover { - background-color: #FFEFB2; + background-color: #f0f0f0; border-radius: 0.25rem; cursor: pointer; } .tree-node-hight-light { - color: #fff; border-radius: 4px; - background-color: #feac74 !important; + background-color: #f5f5f5 !important; } -.tree-node-hight-light i { - color: #fff; +.tree-node-hight-light::before { + content: ''; + position: absolute; + display: block; + width: 4px; + left: -8px; + top: 2px; + bottom: 2px; + border-radius: 2px; + background-color: #ff9800; + z-index: 0; } -.tree-node-hight-light .attr-action-icon, -.tree-node-hight-light .attr-action-icon:focus, -.tree-node-hight-light .attr-action-icon:hover { - color: #fff !important; -} - -.tree-node-icon { +.tree-view .tree-node-icon { padding-right: 1.5rem; } -.tree-node-text { +.tree-view .tree-node-text { width: calc(100% - 2.5rem); font-size: 14px; white-space: nowrap; @@ -90,7 +92,18 @@ line-height: 24px; } -.tree-view { - padding: 12px 12px 12px 0; - flex: 1 1; +.tree-view .dropdown .right-icon { + width: 20px; + height: 20px; + border-radius: 3px; + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; + color: #666; + margin-top: 2px; +} + +.tree-view .dropdown .right-icon:hover { + background-color: #dbdbdb; } diff --git a/frontend/src/css/work-weixin-departments.css b/frontend/src/css/work-weixin-departments.css index d84bba8f1b..701f992f3a 100644 --- a/frontend/src/css/work-weixin-departments.css +++ b/frontend/src/css/work-weixin-departments.css @@ -22,7 +22,7 @@ .dir-content-nav { position: absolute; overflow: hidden; - width: 24%; + width: 25%; } .dir-content-nav:hover { @@ -45,43 +45,45 @@ .tree-node-inner { position: relative; display: flex; - padding-right: 1rem; + padding-right: 0.5rem; } -.tree-node-inner i { +.tree-node-inner .sf3-font-down { position: absolute; - top: 20%; + top: 15%; left: 0.3rem; color: #999; } .tree-node-inner-hover { - background-color: #FFEFB2; + background-color: #f0f0f0; border-radius: 0.25rem; cursor: pointer; } .tree-node-hight-light { - color: #fff; border-radius: 4px; - background-color: #feac74 !important; + background-color: #f5f5f5 !important; } -.tree-node-hight-light i { - color: #fff; +.tree-node-hight-light::before { + content: ''; + position: absolute; + display: block; + width: 4px; + left: -8px; + top: 2px; + bottom: 2px; + border-radius: 2px; + background-color: #ff9800; + z-index: 0; } -.tree-node-hight-light .attr-action-icon, -.tree-node-hight-light .attr-action-icon:focus, -.tree-node-hight-light .attr-action-icon:hover { - color: #fff !important; -} - -.tree-node-icon { +.tree-view .tree-node-icon { padding-right: 1.5rem; } -.tree-node-text { +.tree-view .tree-node-text { width: calc(100% - 2.5rem); font-size: 14px; white-space: nowrap; @@ -90,7 +92,18 @@ line-height: 24px; } -.tree-view { - padding: 12px 12px 12px 0; - flex: 1 1; +.tree-view .dropdown .right-icon { + width: 20px; + height: 20px; + border-radius: 3px; + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; + color: #666; + margin-top: 2px; +} + +.tree-view .dropdown .right-icon:hover { + background-color: #dbdbdb; } diff --git a/frontend/src/pages/sys-admin/dingtalk-departments.js b/frontend/src/pages/sys-admin/dingtalk-departments.js index 1f7a265991..0e02ac8c93 100644 --- a/frontend/src/pages/sys-admin/dingtalk-departments.js +++ b/frontend/src/pages/sys-admin/dingtalk-departments.js @@ -60,6 +60,10 @@ class DingtalkDepartments extends Component { getDingtalkDepartmentsList = (departmentID) => { systemAdminAPI.sysAdminListDingtalkDepartments(departmentID).then((res) => { + if (!res.data.department && res.data.errmsg) { + toaster.danger(res.data.errmsg); + return; + } if (!departmentID) { let departmentsTree = this.getDepartmentsTree(res.data.department); this.setState({ @@ -302,7 +306,7 @@ class DingtalkDepartments extends Component {

{'钉钉集成'}

-
+
+ -
+
{this.props.isTreeLoading ? : -
+ <> {departmentsTree.length > 0 && departmentsTree.map((department, index) => { return ( ); })} -
+ }
diff --git a/frontend/src/pages/sys-admin/work-weixin-departments.js b/frontend/src/pages/sys-admin/work-weixin-departments.js index db973dfda2..884129e335 100644 --- a/frontend/src/pages/sys-admin/work-weixin-departments.js +++ b/frontend/src/pages/sys-admin/work-weixin-departments.js @@ -59,6 +59,10 @@ class WorkWeixinDepartments extends Component { getWorkWeixinDepartmentsList = (departmentID) => { systemAdminAPI.sysAdminListWorkWeixinDepartments(departmentID).then((res) => { + if (!res.data.department && res.data.errmsg) { + toaster.danger(res.data.errmsg); + return; + } if (!departmentID) { let departmentsTree = this.getDepartmentsTree(res.data.department); this.setState({ @@ -302,7 +306,7 @@ class WorkWeixinDepartments extends Component {

{'企业微信集成'}

-
+
+ -
+
{this.props.isTreeLoading ? : -
+ <> {departmentsTree.length > 0 && departmentsTree.map((department, index) => { return ( ); })} -
+ }
diff --git a/scripts/upgrade/sql/12.0.0/mysql/seafile.sql b/scripts/upgrade/sql/12.0.0/mysql/seafile.sql index d4afd18474..b0652a03e7 100644 --- a/scripts/upgrade/sql/12.0.0/mysql/seafile.sql +++ b/scripts/upgrade/sql/12.0.0/mysql/seafile.sql @@ -18,5 +18,5 @@ CREATE TABLE IF NOT EXISTS OrgUploadRateLimit ( UNIQUE INDEX(org_id) ) ENGINE=INNODB; -ALTER TABLE RepoInfo ADD COLUMN IF NOT EXISTS type varchar(10); -CREATE INDEX IF NOT EXISTS RepoInfoTypeIndex on RepoInfo (type); +ALTER TABLE RepoInfo ADD COLUMN type varchar(10); +CREATE INDEX RepoInfoTypeIndex on RepoInfo (type); diff --git a/scripts/upgrade/sql/12.0.0/mysql/seahub.sql b/scripts/upgrade/sql/12.0.0/mysql/seahub.sql index e2436a8859..b3fff65316 100644 --- a/scripts/upgrade/sql/12.0.0/mysql/seahub.sql +++ b/scripts/upgrade/sql/12.0.0/mysql/seahub.sql @@ -89,9 +89,9 @@ CREATE TABLE IF NOT EXISTS `wiki_wiki2_publish` ( KEY `ix_wiki2_publish_repo_id` (`repo_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -ALTER TABLE share_fileshare ADD COLUMN IF NOT EXISTS `user_scope` varchar(225) DEFAULT 'all_users'; -ALTER TABLE share_fileshare ADD COLUMN IF NOT EXISTS `authed_details` LONGTEXT DEFAULT NULL; -ALTER TABLE share_fileshare ADD INDEX IF NOT EXISTS `idx_ctime` (`ctime`); -ALTER TABLE share_fileshare ADD INDEX IF NOT EXISTS `idx_view_cnt` (`view_cnt`); +ALTER TABLE share_fileshare ADD COLUMN `user_scope` varchar(225) DEFAULT 'all_users'; +ALTER TABLE share_fileshare ADD COLUMN `authed_details` LONGTEXT DEFAULT NULL; +ALTER TABLE share_fileshare ADD INDEX `idx_ctime` (`ctime`); +ALTER TABLE share_fileshare ADD INDEX `idx_view_cnt` (`view_cnt`); -ALTER TABLE profile_profile ADD COLUMN IF NOT EXISTS `is_manually_set_contact_email` tinyint(1) DEFAULT 0; +ALTER TABLE profile_profile ADD COLUMN `is_manually_set_contact_email` tinyint(1) DEFAULT 0;