feat:update cs && update style (#488)

This commit is contained in:
dagongren 2024-04-23 12:20:27 +08:00 committed by GitHub
parent 3454a98cfb
commit bf1076fe4a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
47 changed files with 449 additions and 2035 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 3857903 */
src: url('iconfont.woff2?t=1713335725699') format('woff2'),
url('iconfont.woff?t=1713335725699') format('woff'),
url('iconfont.ttf?t=1713335725699') format('truetype');
src: url('iconfont.woff2?t=1713840593232') format('woff2'),
url('iconfont.woff?t=1713840593232') format('woff'),
url('iconfont.ttf?t=1713840593232') format('truetype');
}
.iconfont {
@ -13,6 +13,30 @@
-moz-osx-font-smoothing: grayscale;
}
.ops-setting-application-selected:before {
content: "\e919";
}
.ops-setting-application:before {
content: "\e918";
}
.ops-setting-basic:before {
content: "\e889";
}
.ops-setting-basic-selected:before {
content: "\e917";
}
.ops-setting-security:before {
content: "\e915";
}
.ops-setting-theme:before {
content: "\e916";
}
.veops-show:before {
content: "\e914";
}
@ -21,7 +45,7 @@
content: "\e913";
}
.a-itsm-workload1:before {
.itsm-workload:before {
content: "\e912";
}
@ -269,10 +293,6 @@
content: "\e8d5";
}
.ops-setting-auth-selected:before {
content: "\e8d4";
}
.itsm-knowledge2:before {
content: "\e8d2";
}
@ -501,10 +521,6 @@
content: "\e89c";
}
.ops-setting-duty-selected:before {
content: "\e89b";
}
.datainsight-sequential:before {
content: "\e899";
}
@ -669,38 +685,6 @@
content: "\e870";
}
.ops-itsm-ticketsetting-selected:before {
content: "\e860";
}
.ops-itsm-reports-selected:before {
content: "\e861";
}
.ops-itsm-servicecatalog-selected:before {
content: "\e862";
}
.ops-itsm-ticketmanage-selected:before {
content: "\e863";
}
.ops-itsm-knowledge-selected:before {
content: "\e864";
}
.ops-itsm-workstation-selected:before {
content: "\e865";
}
.ops-itsm-servicedesk-selected:before {
content: "\e866";
}
.ops-itsm-planticket-selected:before {
content: "\e867";
}
.ops-itsm-servicecatalog:before {
content: "\e868";
}
@ -1073,26 +1057,10 @@
content: "\e816";
}
.ops-cmdb-batch-selected:before {
content: "\e803";
}
.ops-cmdb-batch:before {
content: "\e80a";
}
.ops-cmdb-adc-selected:before {
content: "\e7f7";
}
.ops-cmdb-resource-selected:before {
content: "\e7f8";
}
.ops-cmdb-preference-selected:before {
content: "\e7f9";
}
.ops-cmdb-preference:before {
content: "\e7fa";
}
@ -1101,22 +1069,10 @@
content: "\e7fb";
}
.ops-cmdb-tree-selected:before {
content: "\e7fc";
}
.ops-cmdb-relation-selected:before {
content: "\e7fd";
}
.ops-cmdb-adc:before {
content: "\e7fe";
}
.ops-cmdb-search-selected:before {
content: "\e7ff";
}
.ops-cmdb-relation:before {
content: "\e800";
}
@ -1125,14 +1081,6 @@
content: "\e801";
}
.ops-cmdb-citype-selected:before {
content: "\e802";
}
.ops-cmdb-dashboard-selected:before {
content: "\e804";
}
.ops-cmdb-citype:before {
content: "\e805";
}
@ -1141,10 +1089,6 @@
content: "\e806";
}
.ops-cmdb-screen-selected:before {
content: "\e807";
}
.ops-cmdb-resource:before {
content: "\e808";
}
@ -1493,14 +1437,6 @@
content: "\e7a6";
}
.ops-setting-role-selected:before {
content: "\e7a0";
}
.ops-setting-group-selected:before {
content: "\e7a1";
}
.ops-setting-role:before {
content: "\e7a2";
}
@ -1941,18 +1877,10 @@
content: "\e738";
}
.ops-setting-notice-email-selected-copy:before {
content: "\e889";
}
.ops-setting-notice:before {
content: "\e72f";
}
.ops-setting-notice-selected:before {
content: "\e730";
}
.ops-setting-notice-email-selected:before {
content: "\e731";
}
@ -1977,10 +1905,6 @@
content: "\e736";
}
.ops-setting-companyStructure-selected:before {
content: "\e72b";
}
.ops-setting-companyStructure:before {
content: "\e72c";
}
@ -1989,10 +1913,6 @@
content: "\e72d";
}
.ops-setting-companyInfo-selected:before {
content: "\e72e";
}
.ops-email:before {
content: "\e61a";
}
@ -3033,14 +2953,6 @@
content: "\e600";
}
.ops-dag-dashboard-selected:before {
content: "\e601";
}
.ops-dag-applet-selected:before {
content: "\e602";
}
.ops-dag-applet:before {
content: "\e603";
}
@ -3049,62 +2961,26 @@
content: "\e604";
}
.ops-dag-terminal-selected:before {
content: "\e605";
}
.ops-dag-cron:before {
content: "\e606";
}
.ops-dag-cron-selected:before {
content: "\e608";
}
.ops-dag-history:before {
content: "\e609";
}
.ops-dag-history-selected:before {
content: "\e60a";
}
.ops-dag-dags-selected:before {
content: "\e60c";
}
.ops-dag-dagreview:before {
content: "\e60d";
}
.ops-dag-dagreview-selected:before {
content: "\e60e";
}
.ops-dag-panel:before {
content: "\e60f";
}
.ops-dag-panel-selected:before {
content: "\e615";
}
.ops-dag-variables:before {
content: "\e616";
}
.ops-dag-variables-selected:before {
content: "\e618";
}
.ops-dag-appletadmin:before {
content: "\e65c";
}
.ops-dag-appletadmin-selected:before {
content: "\e65d";
}
.ops-dag-dags:before {
content: "\e60b";
}

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,48 @@
"css_prefix_text": "",
"description": "",
"glyphs": [
{
"icon_id": "40043662",
"name": "ops-setting-application-selected",
"font_class": "ops-setting-application-selected",
"unicode": "e919",
"unicode_decimal": 59673
},
{
"icon_id": "40043685",
"name": "ops-setting-application",
"font_class": "ops-setting-application",
"unicode": "e918",
"unicode_decimal": 59672
},
{
"icon_id": "40043049",
"name": "ops-setting-basic",
"font_class": "ops-setting-basic",
"unicode": "e889",
"unicode_decimal": 59529
},
{
"icon_id": "40043047",
"name": "ops-setting-basic-selected",
"font_class": "ops-setting-basic-selected",
"unicode": "e917",
"unicode_decimal": 59671
},
{
"icon_id": "40038753",
"name": "ops-setting-security",
"font_class": "ops-setting-security",
"unicode": "e915",
"unicode_decimal": 59669
},
{
"icon_id": "40038752",
"name": "ops-setting-theme",
"font_class": "ops-setting-theme",
"unicode": "e916",
"unicode_decimal": 59670
},
{
"icon_id": "39948814",
"name": "veops-show",
@ -22,7 +64,7 @@
{
"icon_id": "39926833",
"name": "itsm-workload (1)",
"font_class": "a-itsm-workload1",
"font_class": "itsm-workload",
"unicode": "e912",
"unicode_decimal": 59666
},
@ -453,13 +495,6 @@
"unicode": "e8d5",
"unicode_decimal": 59605
},
{
"icon_id": "38547389",
"name": "setting-authentication-selected",
"font_class": "ops-setting-auth-selected",
"unicode": "e8d4",
"unicode_decimal": 59604
},
{
"icon_id": "38533133",
"name": "itsm-knowledge (2)",
@ -859,13 +894,6 @@
"unicode": "e89c",
"unicode_decimal": 59548
},
{
"icon_id": "37940033",
"name": "ops-setting-duty-selected",
"font_class": "ops-setting-duty-selected",
"unicode": "e89b",
"unicode_decimal": 59547
},
{
"icon_id": "37841524",
"name": "datainsight-sequential",
@ -1153,62 +1181,6 @@
"unicode": "e870",
"unicode_decimal": 59504
},
{
"icon_id": "35984161",
"name": "ops-itsm-ticketsetting-selected",
"font_class": "ops-itsm-ticketsetting-selected",
"unicode": "e860",
"unicode_decimal": 59488
},
{
"icon_id": "35984162",
"name": "ops-itsm-reports-selected",
"font_class": "ops-itsm-reports-selected",
"unicode": "e861",
"unicode_decimal": 59489
},
{
"icon_id": "35984163",
"name": "ops-itsm-servicecatalog-selected",
"font_class": "ops-itsm-servicecatalog-selected",
"unicode": "e862",
"unicode_decimal": 59490
},
{
"icon_id": "35984164",
"name": "ops-itsm-ticketmanage-selected",
"font_class": "ops-itsm-ticketmanage-selected",
"unicode": "e863",
"unicode_decimal": 59491
},
{
"icon_id": "35984165",
"name": "ops-itsm-knowledge-selected",
"font_class": "ops-itsm-knowledge-selected",
"unicode": "e864",
"unicode_decimal": 59492
},
{
"icon_id": "35984166",
"name": "ops-itsm-workstation-selected",
"font_class": "ops-itsm-workstation-selected",
"unicode": "e865",
"unicode_decimal": 59493
},
{
"icon_id": "35984167",
"name": "ops-itsm-servicedesk-selected",
"font_class": "ops-itsm-servicedesk-selected",
"unicode": "e866",
"unicode_decimal": 59494
},
{
"icon_id": "35984168",
"name": "ops-itsm-planticket-selected",
"font_class": "ops-itsm-planticket-selected",
"unicode": "e867",
"unicode_decimal": 59495
},
{
"icon_id": "35984169",
"name": "ops-itsm-servicecatalog",
@ -1860,13 +1832,6 @@
"unicode": "e816",
"unicode_decimal": 59414
},
{
"icon_id": "35400645",
"name": "ops-cmdb-batch-selected",
"font_class": "ops-cmdb-batch-selected",
"unicode": "e803",
"unicode_decimal": 59395
},
{
"icon_id": "35400646",
"name": "ops-cmdb-batch",
@ -1874,27 +1839,6 @@
"unicode": "e80a",
"unicode_decimal": 59402
},
{
"icon_id": "35395300",
"name": "ops-cmdb-adc-selected",
"font_class": "ops-cmdb-adc-selected",
"unicode": "e7f7",
"unicode_decimal": 59383
},
{
"icon_id": "35395301",
"name": "ops-cmdb-resource-selected",
"font_class": "ops-cmdb-resource-selected",
"unicode": "e7f8",
"unicode_decimal": 59384
},
{
"icon_id": "35395302",
"name": "ops-cmdb-preference-selected",
"font_class": "ops-cmdb-preference-selected",
"unicode": "e7f9",
"unicode_decimal": 59385
},
{
"icon_id": "35395303",
"name": "ops-cmdb-preference",
@ -1909,20 +1853,6 @@
"unicode": "e7fb",
"unicode_decimal": 59387
},
{
"icon_id": "35395305",
"name": "ops-cmdb-tree-selected",
"font_class": "ops-cmdb-tree-selected",
"unicode": "e7fc",
"unicode_decimal": 59388
},
{
"icon_id": "35395306",
"name": "ops-cmdb-relation-selected",
"font_class": "ops-cmdb-relation-selected",
"unicode": "e7fd",
"unicode_decimal": 59389
},
{
"icon_id": "35395307",
"name": "ops-cmdb-adc",
@ -1930,13 +1860,6 @@
"unicode": "e7fe",
"unicode_decimal": 59390
},
{
"icon_id": "35395308",
"name": "ops-cmdb-search-selected",
"font_class": "ops-cmdb-search-selected",
"unicode": "e7ff",
"unicode_decimal": 59391
},
{
"icon_id": "35395309",
"name": "ops-cmdb-relation",
@ -1951,20 +1874,6 @@
"unicode": "e801",
"unicode_decimal": 59393
},
{
"icon_id": "35395311",
"name": "ops-cmdb-citype-selected",
"font_class": "ops-cmdb-citype-selected",
"unicode": "e802",
"unicode_decimal": 59394
},
{
"icon_id": "35395313",
"name": "ops-cmdb-dashboard-selected",
"font_class": "ops-cmdb-dashboard-selected",
"unicode": "e804",
"unicode_decimal": 59396
},
{
"icon_id": "35395314",
"name": "ops-cmdb-citype",
@ -1979,13 +1888,6 @@
"unicode": "e806",
"unicode_decimal": 59398
},
{
"icon_id": "35395316",
"name": "ops-cmdb-screen-selected",
"font_class": "ops-cmdb-screen-selected",
"unicode": "e807",
"unicode_decimal": 59399
},
{
"icon_id": "35395317",
"name": "ops-cmdb-resource",
@ -2595,20 +2497,6 @@
"unicode": "e7a6",
"unicode_decimal": 59302
},
{
"icon_id": "34792792",
"name": "ops-setting-role-selected",
"font_class": "ops-setting-role-selected",
"unicode": "e7a0",
"unicode_decimal": 59296
},
{
"icon_id": "34792793",
"name": "ops-setting-group-selected",
"font_class": "ops-setting-group-selected",
"unicode": "e7a1",
"unicode_decimal": 59297
},
{
"icon_id": "34792794",
"name": "ops-setting-role",
@ -3379,13 +3267,6 @@
"unicode": "e738",
"unicode_decimal": 59192
},
{
"icon_id": "37575490",
"name": "ops-setting-notice-email-selected",
"font_class": "ops-setting-notice-email-selected-copy",
"unicode": "e889",
"unicode_decimal": 59529
},
{
"icon_id": "34108346",
"name": "ops-setting-notice",
@ -3393,13 +3274,6 @@
"unicode": "e72f",
"unicode_decimal": 59183
},
{
"icon_id": "34108348",
"name": "ops-setting-notice-selected",
"font_class": "ops-setting-notice-selected",
"unicode": "e730",
"unicode_decimal": 59184
},
{
"icon_id": "34108504",
"name": "ops-setting-notice-email-selected",
@ -3442,13 +3316,6 @@
"unicode": "e736",
"unicode_decimal": 59190
},
{
"icon_id": "34108244",
"name": "ops-setting-companyStructure-selected",
"font_class": "ops-setting-companyStructure-selected",
"unicode": "e72b",
"unicode_decimal": 59179
},
{
"icon_id": "34108296",
"name": "ops-setting-companyStructure",
@ -3463,13 +3330,6 @@
"unicode": "e72d",
"unicode_decimal": 59181
},
{
"icon_id": "34108330",
"name": "ops-setting-companyInfo-selected",
"font_class": "ops-setting-companyInfo-selected",
"unicode": "e72e",
"unicode_decimal": 59182
},
{
"icon_id": "34099810",
"name": "ops-email",
@ -5290,20 +5150,6 @@
"unicode": "e600",
"unicode_decimal": 58880
},
{
"icon_id": "33053294",
"name": "ops-dag-dashboard-selected",
"font_class": "ops-dag-dashboard-selected",
"unicode": "e601",
"unicode_decimal": 58881
},
{
"icon_id": "33053330",
"name": "ops-dag-applet-selected",
"font_class": "ops-dag-applet-selected",
"unicode": "e602",
"unicode_decimal": 58882
},
{
"icon_id": "33053531",
"name": "ops-dag-applet",
@ -5318,13 +5164,6 @@
"unicode": "e604",
"unicode_decimal": 58884
},
{
"icon_id": "33053589",
"name": "ops-dag-terminal-selected",
"font_class": "ops-dag-terminal-selected",
"unicode": "e605",
"unicode_decimal": 58885
},
{
"icon_id": "33053591",
"name": "ops-dag-cron",
@ -5332,13 +5171,6 @@
"unicode": "e606",
"unicode_decimal": 58886
},
{
"icon_id": "33053609",
"name": "ops-dag-cron-selected",
"font_class": "ops-dag-cron-selected",
"unicode": "e608",
"unicode_decimal": 58888
},
{
"icon_id": "33053615",
"name": "ops-dag-history",
@ -5346,20 +5178,6 @@
"unicode": "e609",
"unicode_decimal": 58889
},
{
"icon_id": "33053617",
"name": "ops-dag-history-selected",
"font_class": "ops-dag-history-selected",
"unicode": "e60a",
"unicode_decimal": 58890
},
{
"icon_id": "33053681",
"name": "ops-dag-dags-selected",
"font_class": "ops-dag-dags-selected",
"unicode": "e60c",
"unicode_decimal": 58892
},
{
"icon_id": "33053682",
"name": "ops-dag-dagreview",
@ -5367,13 +5185,6 @@
"unicode": "e60d",
"unicode_decimal": 58893
},
{
"icon_id": "33053684",
"name": "ops-dag-dagreview-selected",
"font_class": "ops-dag-dagreview-selected",
"unicode": "e60e",
"unicode_decimal": 58894
},
{
"icon_id": "33053691",
"name": "ops-dag-panel",
@ -5381,13 +5192,6 @@
"unicode": "e60f",
"unicode_decimal": 58895
},
{
"icon_id": "33053692",
"name": "ops-dag-panel-selected",
"font_class": "ops-dag-panel-selected",
"unicode": "e615",
"unicode_decimal": 58901
},
{
"icon_id": "33053707",
"name": "ops-dag-variables",
@ -5395,27 +5199,6 @@
"unicode": "e616",
"unicode_decimal": 58902
},
{
"icon_id": "33053715",
"name": "ops-dag-variables-selected",
"font_class": "ops-dag-variables-selected",
"unicode": "e618",
"unicode_decimal": 58904
},
{
"icon_id": "33053718",
"name": "ops-dag-appletadmin",
"font_class": "ops-dag-appletadmin",
"unicode": "e65c",
"unicode_decimal": 58972
},
{
"icon_id": "33053720",
"name": "ops-dag-appletadmin-selected",
"font_class": "ops-dag-appletadmin-selected",
"unicode": "e65d",
"unicode_decimal": 58973
},
{
"icon_id": "33055163",
"name": "ops-dag-dags",

Binary file not shown.

View File

@ -73,7 +73,7 @@ export default {
.custom-drawer-close {
position: absolute;
cursor: pointer;
background: #custom_colors[color_1];
background: @primary-color;
color: white;
text-align: center;
transition: all 0.3s;

View File

@ -298,14 +298,14 @@ export default {
width: 20px;
height: 20px;
border-radius: 2px;
background-color: #custom_colors[color_2];
color: #custom_colors[color_1];
background-color: @primary-color_5;
color: @primary-color;
display: inline-flex;
justify-content: center;
align-items: center;
cursor: pointer;
&:hover {
background-color: #custom_colors[color_1];
background-color: @primary-color;
color: #fff;
}
}

View File

@ -161,7 +161,7 @@ export default {
cursor: pointer;
&-selected,
&:hover {
color: #custom_colors[color_1];
color: @primary-color;
}
}
}
@ -179,7 +179,7 @@ export default {
font-weight: 400;
font-size: 14px;
color: #000000;
border-left: 2px solid #custom_colors[color_1];
border-left: 2px solid @primary-color;
padding-left: 6px;
margin-left: -6px;
}

View File

@ -185,14 +185,14 @@ export default {
width: 20px;
height: 20px;
border-radius: 2px;
background-color: #custom_colors[color_2];
color: #custom_colors[color_1];
background-color: @primary-color_5;
color: @primary-color;
display: inline-flex;
justify-content: center;
align-items: center;
cursor: pointer;
&:hover {
background-color: #custom_colors[color_1];
background-color: @primary-color;
color: #fff;
}
}

View File

@ -93,7 +93,7 @@ export default {
background-color: transparent;
}
.sidebar-list-item.sidebar-list-item-selected::before {
background-color: #custom_colors[color_1];
background-color: @primary-color;
}
.sidebar-list-item-dotline {
padding-left: 20px;

View File

@ -97,8 +97,8 @@ export default {
<style lang="less">
.color {
color: #custom_colors[color_1];
background-color: #custom_colors[color_2];
color: @primary-color;
background-color: @primary-color_5;
}
.custom-user {
.custom-user-item {
@ -117,7 +117,7 @@ export default {
.locale {
cursor: pointer;
&:hover {
color: #custom_colors[color_1];
color: @primary-color;
}
}
</style>

View File

@ -230,7 +230,7 @@ export default {
background-color: #f9fbff;
border-bottom: none;
.ant-transfer-list-header-title {
color: #custom_colors[color_1];
color: @primary-color;
font-weight: 400;
font-size: 14px;
}
@ -258,7 +258,7 @@ export default {
cursor: pointer;
font-size: 12px;
background-color: #fff;
color: #custom_colors[color_1];
color: @primary-color;
border-radius: 4px;
width: 12px;
}
@ -271,7 +271,7 @@ export default {
font-size: 12px;
color: #cacdd9;
&:hover {
color: #custom_colors[color_1];
color: @primary-color;
}
}
.move-icon {
@ -291,8 +291,8 @@ export default {
}
}
.ant-transfer-list-content-item-selected {
background-color: #custom_colors[color_2];
border-color: #custom_colors[color_1];
background-color: @primary-color_5;
border-color: @primary-color;
}
}
}

View File

@ -75,10 +75,10 @@ export default {
position: absolute;
width: 0;
height: 0;
// background-color: #custom_colors[color_1];
// background-color: @primary-color;
border-radius: 2px;
border: 14px solid transparent;
border-left-color: #custom_colors[color_1];
border-left-color: @primary-color;
transform: rotate(225deg);
top: -16px;
left: -17px;

View File

@ -175,8 +175,8 @@ export default {
text-overflow: ellipsis;
white-space: nowrap;
&:hover {
background-color: #custom_colors[color_2];
color: #custom_colors[color_1];
background-color: @primary-color_5;
color: @primary-color;
}
}
}
@ -188,7 +188,7 @@ export default {
.notice-content {
.w-e-bar {
background-color: #custom_colors[color_2];
background-color: @primary-color_5;
}
.w-e-text-placeholder {
line-height: 1.5;

View File

@ -253,7 +253,7 @@ export default {
}
.cmdb-subscribe-drawer-tree-header {
border-radius: 4px;
background-color: #custom_colors[color_2];
background-color: @primary-color_5;
color: rgba(0, 0, 0, 0.4);
padding: 8px 12px;
margin-bottom: 12px;
@ -264,7 +264,7 @@ export default {
> span {
display: inline-block;
background-color: #fff;
border-left: 2px solid #custom_colors[color_1];
border-left: 2px solid @primary-color;
padding: 3px 12px;
position: relative;
white-space: nowrap;
@ -272,7 +272,7 @@ export default {
cursor: pointer;
font-size: 12px;
&:hover {
color: #custom_colors[color_1];
color: @primary-color;
}
}
}
@ -316,7 +316,7 @@ export default {
<style lang="less">
.cmdb-subscribe-drawer {
.ant-tabs-bar {
background-color: #custom_colors[color_2];
background-color: @primary-color_5;
border-bottom: none;
}
}

View File

@ -39,7 +39,7 @@
>
<img slot="image" :src="require('@/assets/data_empty.png')" />
<span slot="description"> {{ $t('cmdb.components.noParamRequest') }} </span>
<a-button @click="add" type="primary" size="small" icon="plus" class="ops-button-primary">
<a-button @click="add" type="primary" size="small" icon="plus">
{{ $t('add') }}
</a-button>
</a-empty>

View File

@ -50,7 +50,6 @@
type="primary"
size="small"
icon="plus"
class="ops-button-primary"
>
{{ $t('add') }}
</a-button>
@ -214,7 +213,7 @@ export default {
line-height: 32px;
padding-left: 10px;
margin-bottom: 20px;
border-left: 4px solid #custom_colors[color_1];
border-left: 4px solid @primary-color;
font-size: 16px;
color: rgba(0, 0, 0, 0.75);
}

View File

@ -171,7 +171,7 @@ export default {
margin-right: 60px;
.ant-input-group.ant-input-group-compact > *:first-child,
.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selection {
background-color: #custom_colors[color_1];
background-color: @primary-color;
color: #fff;
border: none;
}

View File

@ -6,7 +6,6 @@
@click="handleCreate"
type="primary"
size="small"
class="ops-button-primary"
icon="plus"
>{{ $t('cmdb.ciType.addRelation') }}</a-button
>

View File

@ -157,7 +157,6 @@
"
type="primary"
size="small"
class="ops-button-primary"
>{{ `${showCustomEmail ? $t('delete') : $t('add')}` }}{{ $t('cmdb.ciType.customEmail') }}</a-button
>
</div>

View File

@ -5,7 +5,6 @@
type="primary"
@click="handleAddTrigger"
size="small"
class="ops-button-primary"
icon="plus"
>{{ $t('cmdb.ciType.newTrigger') }}</a-button
>

View File

@ -309,7 +309,4 @@ export default {
margin-right: 5px;
}
}
.ops-button-primary:hover {
background-color: #2f54eb !important;
}
</style>

View File

@ -153,7 +153,7 @@ export default {
line-height: 32px;
padding-left: 10px;
margin-bottom: 20px;
border-left: 4px solid #custom_colors[color_1];
border-left: 4px solid @primary-color;
justify-content: space-between;
> div {
font-weight: bold;

View File

@ -494,7 +494,7 @@ export default {
.cmdb-preference-group-content-action {
margin-left: auto;
font-size: 12px;
color: #custom_colors[color_1];
color: @primary-color;
cursor: pointer;
display: none;
}
@ -592,7 +592,7 @@ export default {
.cmdb-preference-footor-unsubscribed {
text-align: center;
> span {
color: #custom_colors[color_1];
color: @primary-color;
cursor: pointer;
font-size: 12px;
}
@ -605,7 +605,7 @@ export default {
color: rgba(0, 0, 0, 0.45);
}
> span:nth-child(2) {
color: #custom_colors[color_1];
color: @primary-color;
cursor: pointer;
}
}

View File

@ -57,47 +57,37 @@ export const generatorDynamicRouter = async () => {
{
path: '/setting/companyinfo',
name: 'company_info',
meta: { title: 'cs.menu.companyInfo', appName: 'backend', icon: 'ops-setting-companyInfo', selectedIcon: 'ops-setting-companyInfo-selected', permission: ['公司信息', 'backend_admin'] },
meta: { title: 'cs.menu.companyInfo', appName: 'backend', icon: 'ops-setting-companyInfo', selectedIcon: 'ops-setting-companyInfo', permission: ['公司信息', 'backend_admin'] },
component: () => import(/* webpackChunkName: "setting" */ '@/views/setting/companyInfo/index')
},
{
path: '/setting/companystructure',
name: 'company_structure',
meta: { title: 'cs.menu.companyStructure', appName: 'backend', icon: 'ops-setting-companyStructure', selectedIcon: 'ops-setting-companyStructure-selected', permission: ['公司架构', 'backend_admin'] },
meta: { title: 'cs.menu.companyStructure', appName: 'backend', icon: 'ops-setting-companyStructure', selectedIcon: 'ops-setting-companyStructure', permission: ['公司架构', 'backend_admin'] },
component: () => import(/* webpackChunkName: "setting" */ '@/views/setting/companyStructure/index')
},
{
path: '/setting/notice',
name: 'notice',
component: RouteView,
meta: { title: 'cs.menu.notice', appName: 'backend', icon: 'ops-setting-notice', selectedIcon: 'ops-setting-notice-selected', permission: ['通知设置', 'backend_admin'] },
meta: { title: 'cs.menu.notice', appName: 'backend', icon: 'ops-setting-notice', selectedIcon: 'ops-setting-notice', permission: ['通知设置', 'backend_admin'] },
redirect: '/setting/notice/email',
children: [{
path: '/setting/notice/basic',
name: 'notice_basic',
meta: { title: 'cs.menu.basic', icon: 'ops-setting-basic', selectedIcon: 'ops-setting-basic-selected' },
component: () => import(/* webpackChunkName: "setting" */ '@/views/setting/notice/basic')
}, {
path: '/setting/notice/email',
name: 'notice_email',
meta: { title: 'cs.menu.email', icon: 'ops-setting-notice-email', selectedIcon: 'ops-setting-notice-email-selected' },
component: () => import(/* webpackChunkName: "setting" */ '@/views/setting/notice/email/index')
}, {
path: '/setting/notice/wx',
name: 'notice_wx',
meta: { title: 'cs.menu.wx', icon: 'ops-setting-notice-wx', selectedIcon: 'ops-setting-notice-wx-selected' },
component: () => import(/* webpackChunkName: "setting" */ '@/views/setting/notice/wx')
}, {
path: '/setting/notice/dingding',
name: 'notice_dingding',
meta: { title: 'cs.menu.dingding', icon: 'ops-setting-notice-dingding', selectedIcon: 'ops-setting-notice-dingding-selected' },
component: () => import(/* webpackChunkName: "setting" */ '@/views/setting/notice/dingding')
}, {
path: '/setting/notice/feishu',
name: 'notice_feishu',
meta: { title: 'cs.menu.feishu', icon: 'ops-setting-notice-feishu', selectedIcon: 'ops-setting-notice-feishu-selected' },
component: () => import(/* webpackChunkName: "setting" */ '@/views/setting/notice/feishu')
}]
},
{
path: '/setting/auth',
name: 'company_auth',
meta: { title: 'cs.menu.auth', appName: 'backend', icon: 'ops-setting-auth', selectedIcon: 'ops-setting-auth-selected', permission: ['acl_admin'] },
meta: { title: 'cs.menu.auth', appName: 'backend', icon: 'ops-setting-auth', selectedIcon: 'ops-setting-auth', permission: ['acl_admin'] },
component: () => import(/* webpackChunkName: "setting" */ '@/views/setting/auth/index')
},
]

View File

@ -1152,13 +1152,6 @@ body {
}
}
// button
.ops-button-primary {
background-color: @primary-color_4;
border-color: @primary-color_4;
color: @primary-color;
box-shadow: none;
}
// button
.ops-button-ghost.ant-btn-background-ghost.ant-btn-primary {
background-color: @primary-color_5!important;

View File

@ -46,11 +46,6 @@
@layout-sidebar-selected-font-color: @primary-color;
@layout-sidebar-disabled-font-color: @text-color_4;
#custom_colors() {
color_1: #2f54eb; //primary color
color_2: #f0f5ff; //light background color
color_3: #d2e2ff;
}
.ops_display_wrapper(@backgroundColor:@primary-color_5) {
cursor: pointer;

View File

@ -309,10 +309,10 @@ export default {
.notice-center-left:hover,
.notice-center-left-select {
background-color: #f0f5ff;
border-color: #custom_colors[color_1];
border-color: @primary-color;
> span:nth-child(2) {
background-color: #fff;
color: #custom_colors[color_1];
color: @primary-color;
}
}
.notice-center-header {
@ -329,7 +329,7 @@ export default {
}
> .notice-center-header-app:hover,
.notice-center-header-app-selected {
background-color: #custom_colors[color_1];
background-color: @primary-color;
color: #fff;
}
.notice-center-categories {
@ -342,7 +342,7 @@ export default {
> span:hover,
.notice-center-categories-selected {
color: #fff;
background-color: #custom_colors[color_1];
background-color: @primary-color;
}
}
}

View File

@ -1,37 +1,34 @@
<template>
<a-tabs type="card" class="ops-tab" v-model="activeKey" @change="changeActiveKey">
<a-tab-pane v-for="item in authList" :key="item.value">
<span slot="tab">
{{ item.label }}
<a-icon
v-if="enable_list.find((en) => en.auth_type === item.value)"
type="check-circle"
theme="filled"
style="color:#2f54eb"
/>
</span>
<div class="setting-auth">
<components :ref="item.value" :is="item.value === 'OIDC' ? 'OAUTH2' : item.value" :data_type="item.value" />
<a-row>
<a-col :offset="item.value === 'AuthCommonConfig' ? 5 : 3">
<a-space>
<a-button :loading="loading" type="primary" @click="handleSave">{{ $t('save') }}</a-button>
<template v-if="item.value === 'LDAP'">
<a-button :loading="loading" ghost type="primary" @click="handleTest('connect')">{{
$t('cs.auth.testConnect')
}}</a-button>
<a-button :loading="loading" ghost type="primary" @click="handleTest('login')">{{
$t('cs.auth.testLogin')
}}</a-button>
</template>
<a-button :loading="loading" @click="handleReset">{{ $t('reset') }}</a-button>
</a-space>
</a-col>
</a-row>
</div>
<LoginModal v-if="item.value === 'LDAP'" ref="loginModal" @handleOK="(values) => handleTest('login', values)" />
</a-tab-pane>
</a-tabs>
<div class="ops-setting-auth">
<a-tabs class="ops-tab" v-model="activeKey" @change="changeActiveKey">
<a-tab-pane v-for="item in authList" :key="item.value">
<span slot="tab">
{{ item.label }}
<a-icon v-if="enable_list.find((en) => en.auth_type === item.value)" type="check-circle" theme="filled" />
</span>
<div class="setting-auth">
<components :ref="item.value" :is="item.value === 'OIDC' ? 'OAUTH2' : item.value" :data_type="item.value" />
<a-row>
<a-col :offset="item.value === 'AuthCommonConfig' ? 5 : 3">
<a-space>
<a-button :loading="loading" type="primary" @click="handleSave">{{ $t('save') }}</a-button>
<template v-if="item.value === 'LDAP'">
<a-button :loading="loading" ghost type="primary" @click="handleTest('connect')">{{
$t('cs.auth.testConnect')
}}</a-button>
<a-button :loading="loading" ghost type="primary" @click="handleTest('login')">{{
$t('cs.auth.testLogin')
}}</a-button>
</template>
<a-button :loading="loading" @click="handleReset">{{ $t('reset') }}</a-button>
</a-space>
</a-col>
</a-row>
</div>
<LoginModal v-if="item.value === 'LDAP'" ref="loginModal" @handleOK="(values) => handleTest('login', values)" />
</a-tab-pane>
</a-tabs>
</div>
</template>
<script>
@ -148,12 +145,20 @@ export default {
</script>
<style lang="less" scoped>
.ops-setting-auth {
padding: 20px;
padding-top: 0;
background-color: #fff;
border-radius: @border-radius-box;
overflow: auto;
margin-bottom: -24px;
height: calc(100vh - 64px);
}
.setting-auth {
background-color: #fff;
height: calc(100vh - 128px);
height: calc(100vh - 150px);
overflow: auto;
border-radius: 0 5px 5px 5px;
padding-top: 24px;
}
</style>
@ -161,10 +166,10 @@ export default {
.setting-auth {
.jsoneditor-outer {
height: var(--custom-height) !important;
border: 1px solid #2f54eb;
border: 1px solid @primary-color;
}
div.jsoneditor-menu {
background-color: #2f54eb;
background-color: @primary-color;
}
.jsoneditor-modes {
display: none;

View File

@ -1,5 +1,5 @@
<template>
<div class="ops-setting-companyinfo" :style="{ height: `${windowHeight - 64}px` }">
<div class="ops-setting-companyinfo">
<a-form-model ref="infoData" :model="infoData" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="rule">
<SpanTitle>{{ $t('cs.companyInfo.spanCompany') }}</SpanTitle>
<a-form-model-item :label="$t('cs.companyInfo.name')" prop="name">
@ -35,9 +35,6 @@
<a-input v-model="infoData.email" :disabled="!isEditable" />
</a-form-model-item>
<SpanTitle>{{ $t('cs.companyInfo.spanLogo') }}</SpanTitle>
<a-form-model-item :label="$t('cs.companyInfo.messenger')" prop="messenger">
<a-input v-model="infoData.messenger" :disabled="!isEditable" />
</a-form-model-item>
<a-form-model-item :label="$t('cs.companyInfo.domainName')" prop="domainName">
<a-input v-model="infoData.domainName" :disabled="!isEditable" />
</a-form-model-item>
@ -51,7 +48,6 @@
<script>
import { getCompanyInfo, postCompanyInfo, putCompanyInfo } from '@/api/company'
import { mapState } from 'vuex'
import SpanTitle from '../components/spanTitle.vue'
import { mixinPermissions } from '@/utils/mixin'
@ -74,7 +70,6 @@ export default {
phone: '',
faxCode: '',
email: '',
messenger: '',
domainName: '',
},
getId: -1,
@ -90,9 +85,6 @@ export default {
}
},
computed: {
...mapState({
windowHeight: (state) => state.windowHeight,
}),
isEditable() {
return this.hasDetailPermission('backend', '公司信息', ['update'])
},
@ -157,7 +149,6 @@ export default {
phone: '',
faxCode: '',
email: '',
messenger: '',
domainName: '',
}
},
@ -167,56 +158,15 @@ export default {
<style lang="less">
.ops-setting-companyinfo {
padding-top: 15px;
padding: 20px;
background-color: #fff;
border-radius: @border-radius-box;
overflow: auto;
margin-bottom: -24px;
.ops-setting-companyinfo-upload-show {
position: relative;
width: 290px;
height: 100px;
max-height: 100px;
img {
width: 100%;
height: 100%;
}
height: calc(100vh - 64px);
.delete-icon {
display: none;
}
}
.ant-upload:hover .delete-icon {
display: block;
position: absolute;
top: 5px;
right: 5px;
color: rgb(247, 85, 85);
}
.ant-form-item {
margin-bottom: 10px;
}
.ant-form-item label {
padding-right: 10px;
}
.avatar-uploader > .ant-upload {
// max-width: 100px;
max-height: 100px;
}
// .ant-upload.ant-upload-select-picture-card {
// width: 100%;
// > .ant-upload {
// padding: 0px;
.ant-upload-picture-card-wrapper {
height: 100px;
.ant-upload.ant-upload-select-picture-card {
width: 100%;
height: 100%;
margin: 0;
> .ant-upload {
padding: 0px;
}
}
}
}
</style>

View File

@ -173,9 +173,9 @@ li {
color: rgba(0, 0, 0, 0.7);
font-size: 14px;
.ops-setting-companystructure-sidebar-group-tree-info:hover {
color: #custom_colors[color_1];
color: @primary-color;
> .ops-setting-companystructure-sidebar-group-tree-info::before {
background-color: #custom_colors[color_1];
background-color: @primary-color;
}
}
// .ops-setting-companystructure-sidebar-group-tree-info:first-child::before {
@ -313,7 +313,7 @@ li {
}
}
> .ops-setting-companystructure-sidebar-group-tree-info::before {
background-color: #custom_colors[color_1];
background-color: @primary-color;
}
}
}

View File

@ -6,7 +6,6 @@
:max="500"
:paneLengthPixel.sync="paneLengthPixel"
appName="setting-structure"
triggerColor="#b1c9ff"
:triggerLength="18"
>
<template #one>
@ -396,11 +395,6 @@ export default {
title: this.$t('cs.companyStructure.employee'),
icon: 'user',
},
{
id: 1,
title: this.$t('cs.companyStructure.departmentName'),
icon: 'apartment',
},
]
}
},
@ -884,7 +878,7 @@ export default {
&:hover {
background-color: #e1efff;
.ops-setting-structure-sidebar-group-header-title {
color: #custom_colors[color_1];
color: @primary-color;
}
}
.ops-setting-structure-sidebar-group-header-avatar {
@ -925,9 +919,9 @@ export default {
font-size: 14px;
width: 100%;
&:hover {
color: #custom_colors[color_1];
color: @primary-color;
&::before {
background-color: #custom_colors[color_1];
background-color: @primary-color;
}
}
&::before {
@ -1004,19 +998,19 @@ export default {
}
}
.item-selected {
color: #custom_colors[color_1];
color: @primary-color;
&::before {
background-color: #custom_colors[color_1];
background-color: @primary-color;
}
}
}
.group-selected {
background-color: #e1efff;
.ops-setting-structure-sidebar-group-header-avatar {
background-color: #custom_colors[color_1];
background-color: @primary-color;
}
.ops-setting-structure-sidebar-group-header-title {
color: #custom_colors[color_1];
color: @primary-color;
}
}
}
@ -1042,7 +1036,7 @@ export default {
display: inline-block;
.ops_display_wrapper(#fff);
.screening-box-scene-icon {
color: #custom_colors[color_1];
color: @primary-color;
font-size: 12px;
}
.history-scene-item {
@ -1054,7 +1048,7 @@ export default {
.search-form-bar-filter {
.ops_display_wrapper();
.search-form-bar-filter-icon {
color: #custom_colors[color_1];
color: @primary-color;
font-size: 12px;
}

View File

@ -68,7 +68,7 @@ name: 'SearchForm',
background-color: rgb(240, 245, 255);
.ops_display_wrapper();
.search-form-bar-filter-icon {
color: #custom_colors[color_1];
color: @primary-color;
font-size: 12px;
}
.search-form-bar-filter-icon_selected{

View File

@ -23,10 +23,9 @@ export default {
height: 28px;
margin-bottom: 12px;
line-height: 28px;
padding-left: 24px;
border-radius: 0px 20px 20px 0px;
padding-left: 12px;
font-weight: 700;
color: #0637bf;
background-color: #e0e9ff;
color: #000;
border-left: 3px solid @primary-color;
}
</style>

View File

@ -1,20 +1,25 @@
const cs_en = {
menu: {
person: 'My Profile',
companyInfo: 'Company Info',
companyStructure: 'Company Structure',
notice: 'Notification Settings',
email: 'Email Settings',
wx: 'WeChat Work',
dingding: 'DingTalk',
feishu: 'Feishu',
auth: 'Auth Settings',
role: 'Role Management',
sys: 'System Role',
technician: 'Technician Role',
user: 'User Role',
group: 'User Group',
duty: 'Duty Management',
menu: {
person: 'My Profile',
companyInfo: 'Company Info',
companyStructure: 'Company Structure',
notice: 'Notification Settings',
email: 'Email Settings',
wx: 'WeChat Work',
dingding: 'DingTalk',
feishu: 'Feishu',
auth: 'Auth Settings',
authority: 'Authority Management',
sys: 'System Role',
technician: 'Technician Role',
user: 'User Role',
group: 'User Group',
duty: 'Duty Management',
role: 'Role Management',
app: 'APP Authority',
basic: 'Basic Settings',
theme: 'Theme Settings',
security: 'Security Settings'
},
companyInfo: {
spanCompany: 'Description',
@ -37,11 +42,6 @@ const cs_en = {
emailValidate: 'Please enter a valid email address',
messenger: 'Messenger Address',
domainName: 'Deployment Domain',
logo: 'Company Logo',
upload: 'Upload',
editCompanyLogo: 'Edit Company Logo',
editCompanyLogoSmall: 'Edit Company Logo Thumbnail',
imageSizeLimit2MB: 'Image size does not exceed 2MB',
checkInputCorrect: 'Please check if the input content is correct',
},
companyStructure: {

View File

@ -9,12 +9,17 @@ const cs_zh = {
dingding: '钉钉',
feishu: '飞书',
auth: '认证设置',
role: '角色管理',
authority: '权限管理',
sys: '系统角色',
technician: '技术员角色',
user: '用户角色',
group: '用户分组',
duty: '值班管理',
role: '角色管理',
app: '应用权限',
basic: '基础设置',
theme: '主题配置',
security: '安全配置'
},
companyInfo: {
spanCompany: '公司描述',
@ -37,11 +42,6 @@ const cs_zh = {
emailValidate: '请输入正确的邮箱地址',
messenger: 'Messenger地址',
domainName: '部署域名',
logo: '公司logo',
upload: '上传',
editCompanyLogo: '编辑公司logo',
editCompanyLogoSmall: '编辑公司logo缩略图',
imageSizeLimit2MB: '图片大小不超过2MB',
checkInputCorrect: '请检查输入内容是否正确',
},
companyStructure: {

View File

@ -0,0 +1,80 @@
<template>
<div class="ops-setting-notice-basic">
<a-form-model ref="infoData" :model="infoData" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-form-model-item :label="$t('cs.companyInfo.messenger')" prop="messenger">
<a-input v-model="infoData.messenger" :disabled="!isEditable" />
</a-form-model-item>
<a-form-model-item :wrapper-col="{ span: 14, offset: 3 }" v-if="isEditable">
<a-button type="primary" @click="onSubmit"> {{ $t('save') }}</a-button>
<a-button ghost type="primary" style="margin-left: 28px" @click="resetForm"> {{ $t('reset') }}</a-button>
</a-form-model-item>
</a-form-model>
</div>
</template>
<script>
import { getCompanyInfo, postCompanyInfo, putCompanyInfo } from '@/api/company'
import { mixinPermissions } from '@/utils/mixin'
export default {
name: 'CompanyInfo',
mixins: [mixinPermissions],
data() {
return {
labelCol: { span: 3 },
wrapperCol: { span: 10 },
infoData: {
messenger: '',
},
getId: -1,
}
},
async mounted() {
const res = await getCompanyInfo()
if (!res.id) {
this.getId = -1
} else {
this.infoData = res.info
this.getId = res.id
}
},
computed: {
isEditable() {
return this.hasDetailPermission('backend', '公司信息', ['update'])
},
},
methods: {
async onSubmit() {
this.$refs.infoData.validate(async (valid) => {
if (valid) {
if (this.getId === -1) {
await postCompanyInfo(this.infoData)
} else {
await putCompanyInfo(this.getId, this.infoData)
}
this.$message.success(this.$t('saveSuccess'))
} else {
this.$message.warning(this.$t('cs.companyInfo.checkInputCorrect'))
return false
}
})
},
resetForm() {
this.infoData = {
messenger: '',
}
},
},
}
</script>
<style lang="less">
.ops-setting-notice-basic {
padding-top: 20px;
background-color: #fff;
border-radius: @border-radius-box;
overflow: auto;
margin-bottom: -24px;
height: calc(100vh - 64px);
}
</style>

View File

@ -1,106 +0,0 @@
<template>
<div>
<vxe-table
ref="xTable"
:data="tableData"
size="mini"
stripe
class="ops-stripe-table"
show-overflow
:edit-config="{ showIcon: false, trigger: 'manual', mode: 'row' }"
>
<vxe-column v-for="col in columns" :key="col.field" :field="col.field" :title="col.title" :edit-render="{}">
<template #header> <span v-if="col.required" :style="{ color: 'red' }">* </span>{{ col.title }} </template>
<template #edit="{ row }">
<vxe-input v-model="row[col.field]" type="text"></vxe-input>
</template>
</vxe-column>
<vxe-column :title="$t('operation')" width="80" v-if="!disabled">
<template #default="{ row }">
<template v-if="$refs.xTable.isActiveByRow(row)">
<a @click="saveRowEvent(row)"><a-icon type="save"/></a>
</template>
<a-space v-else>
<a @click="editRowEvent(row)"><ops-icon type="icon-xianxing-edit"/></a>
<a style="color:red" @click="deleteRowEvent(row)"><ops-icon type="icon-xianxing-delete"/></a>
</a-space>
</template>
</vxe-column>
</vxe-table>
<div :style="{ color: '#f5222d' }" v-if="errorFlag">{{ $t('cs.notice.robotConfigErrorTips') }}</div>
<a-button v-if="!disabled" icon="plus-circle" class="ops-button-primary" type="primary" @click="insertEvent">{{
$t('add')
}}</a-button>
</div>
</template>
<script>
export default {
name: 'Bot',
props: {
columns: {
type: Array,
default: () => [],
},
disabled: {
type: Boolean,
default: false,
},
},
data() {
return {
tableData: [],
errorFlag: false,
}
},
methods: {
async insertEvent() {
const $table = this.$refs.xTable
const record = {
name: '',
url: '',
}
const { row: newRow } = await $table.insertAt(record, -1)
await $table.setActiveRow(newRow)
},
saveRowEvent(row) {
const $table = this.$refs.xTable
$table.clearActived()
},
editRowEvent(row) {
const $table = this.$refs.xTable
$table.setActiveRow(row)
},
deleteRowEvent(row) {
const $table = this.$refs.xTable
$table.remove(row)
},
getData(callback) {
const $table = this.$refs.xTable
const { fullData: _tableData } = $table.getTableData()
const requiredObj = {}
this.columns.forEach((col) => {
if (col.required) {
requiredObj[col.field] = true
}
})
let flag = true
_tableData.forEach((td) => {
Object.keys(requiredObj).forEach((key) => {
if (requiredObj[key]) {
flag = !!(flag && td[`${key}`])
}
})
})
this.errorFlag = !flag
callback(flag, _tableData)
},
setData(value) {
this.tableData = value
this.errorFlag = false
},
},
}
</script>
<style></style>

View File

@ -1,151 +0,0 @@
<template>
<div class="notice-dingding-wrapper" :style="{ height: `${windowHeight - 64}px` }">
<a-form-model ref="dingdingForm" :model="dingdingData" :label-col="labelCol" :wrapper-col="wrapperCol">
<SpanTitle>{{ $t('cs.duty.basicSetting') }}</SpanTitle>
<a-form-model-item :label="$t('cs.notice.appKey')">
<a-input v-model="dingdingData.appKey" :disabled="!isEditable" />
</a-form-model-item>
<a-form-model-item :label="$t('cs.notice.appSecret')">
<a-input v-model="dingdingData.appSecret" :disabled="!isEditable" />
</a-form-model-item>
<a-form-model-item :label="$t('cs.notice.robotCode')">
<a-input v-model="dingdingData.robotCode" :disabled="!isEditable" />
</a-form-model-item>
<a-form-model-item :label="$t('cs.notice.robot')">
<Bot
ref="bot"
:disabled="!isEditable"
:columns="[
{
field: 'name',
title: $t('cs.notice.title'),
required: true,
},
{
field: 'url',
title: $t('cs.notice.webhookAddress'),
required: true,
},
{
field: 'token',
title: 'token',
required: false,
},
]"
/>
</a-form-model-item>
<!-- <a-form-model-item :label="测试邮件设置">
<a-button type="primary" ghost>测试回收箱</a-button>
<br />
<span
class="notice-dingding-wrapper-tips"
><ops-icon type="icon-shidi-quxiao" :style="{ color: '#D81E06' }" /> 邮件接收失败</span
>
<br />
<span>邮箱服务器未配置请配置一个邮箱服务器 | <a>故障诊断</a></span>
</a-form-model-item> -->
<a-row v-if="isEditable">
<a-col :span="16" :offset="3">
<a-form-model-item :label-col="labelCol" :wrapper-col="wrapperCol">
<a-button type="primary" @click="onSubmit"> {{ $t('save') }} </a-button>
<a-button ghost type="primary" style="margin-left: 28px;" @click="resetForm"> {{ $t('reset') }} </a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</div>
</template>
<script>
import { mapState } from 'vuex'
import SpanTitle from '../components/spanTitle.vue'
import { getNoticeConfigByPlatform, postNoticeConfigByPlatform, putNoticeConfigByPlatform } from '@/api/noticeSetting'
import { mixinPermissions } from '@/utils/mixin'
import Bot from './bot.vue'
export default {
name: 'NoticeDingding',
components: { SpanTitle, Bot },
mixins: [mixinPermissions],
data() {
return {
labelCol: { lg: 3, md: 5, sm: 8 },
wrapperCol: { lg: 15, md: 19, sm: 16 },
id: null,
dingdingData: {
appKey: '',
appSecret: '',
robotCode: '',
},
}
},
computed: {
...mapState({
windowHeight: (state) => state.windowHeight,
}),
isEditable() {
return this.hasDetailPermission('backend', '通知设置', ['update'])
},
},
mounted() {
this.getData()
},
methods: {
getData() {
getNoticeConfigByPlatform({ platform: 'dingdingApp' }).then((res) => {
this.id = res?.id ?? null
if (this.id) {
this.dingdingData = res.info
this.$refs.bot.setData(res?.info?.bot)
}
})
},
onSubmit() {
this.$refs.dingdingForm.validate(async (valid) => {
if (valid) {
this.$refs.bot.getData(async (flag, bot) => {
if (flag) {
if (this.id) {
await putNoticeConfigByPlatform(this.id, { info: { ...this.dingdingData, bot, label: this.$t('cs.person.dingdingApp') } })
} else {
await postNoticeConfigByPlatform({
platform: 'dingdingApp',
info: { ...this.dingdingData, bot, label: this.$t('cs.person.dingdingApp') },
})
}
this.$message.success(this.$t('saveSuccess'))
this.getData()
}
})
}
})
},
resetForm() {
this.dingdingData = {
appKey: '',
appSecret: '',
robotCode: '',
}
},
},
}
</script>
<style lang="less" scoped>
.notice-dingding-wrapper {
background-color: #fff;
padding-top: 15px;
overflow: auto;
margin-bottom: -24px;
border-radius: @border-radius-box;
.notice-dingding-wrapper-tips {
display: inline-block;
background-color: #ffdfdf;
border-radius: 4px;
padding: 0 12px;
width: 300px;
color: #000000;
margin-top: 8px;
}
}
</style>

View File

@ -1,6 +1,5 @@
.notice-email-wrapper {
background-color: #fff;
padding-top: 24px;
overflow: auto;
.notice-email-error-tips {
display: inline-block;

View File

@ -1,6 +1,6 @@
<template>
<div :style="{ marginBottom: '-24px' }">
<a-tabs :activeKey="activeKey" @change="changeTab" class="ops-tab" type="card">
<div class="ops-setting-notice-mail">
<a-tabs :activeKey="activeKey" @change="changeTab" class="ops-tab">
<!-- <a-tab-pane key="1" tab="接收服务器">
<Receive />
</a-tab-pane> -->
@ -30,4 +30,14 @@ export default {
}
</script>
<style></style>
<style lang="less" scoped>
.ops-setting-notice-mail {
padding: 20px;
padding-top: 0;
background-color: #fff;
border-radius: @border-radius-box;
overflow: auto;
margin-bottom: -24px;
height: calc(100vh - 64px);
}
</style>

View File

@ -1,5 +1,5 @@
<template>
<div class="notice-email-wrapper" :style="{ height: `${windowHeight - 104}px` }">
<div class="notice-email-wrapper">
<a-form-model ref="sendForm" :model="settingData" :label-col="labelCol" :rules="rules" :wrapper-col="wrapperCol">
<SpanTitle>{{ $t('cs.duty.basicSetting') }}</SpanTitle>
<a-form-model-item :label="$t('cs.notice.isEncrypted')">

View File

@ -1,131 +0,0 @@
<template>
<div class="notice-feishu-wrapper" :style="{ height: `${windowHeight - 64}px` }">
<a-form-model ref="feishuForm" :model="feishuData" :label-col="labelCol" :wrapper-col="wrapperCol">
<SpanTitle>{{ $t('cs.duty.basicSetting') }}</SpanTitle>
<a-form-model-item :label="$t('cs.notice.appKey')">
<a-input v-model="feishuData.id" :disabled="!isEditable" />
</a-form-model-item>
<a-form-model-item :label="$t('cs.notice.appSecret')">
<a-input v-model="feishuData.password" :disabled="!isEditable" />
</a-form-model-item>
<a-form-model-item :label="$t('cs.notice.robot')">
<Bot
ref="bot"
:disabled="!isEditable"
:columns="[
{
field: 'name',
title: $t('cs.notice.title'),
required: true,
},
{
field: 'url',
title: $t('cs.notice.webhookAddress'),
required: true,
},
]"
/>
</a-form-model-item>
<a-row v-if="isEditable">
<a-col :span="16" :offset="3">
<a-form-model-item :label-col="labelCol" :wrapper-col="wrapperCol">
<a-button type="primary" @click="onSubmit"> {{ $t('save') }} </a-button>
<a-button ghost type="primary" style="margin-left: 28px;" @click="resetForm"> {{ $t('reset') }} </a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</div>
</template>
<script>
import { mapState } from 'vuex'
import SpanTitle from '../components/spanTitle.vue'
import { getNoticeConfigByPlatform, postNoticeConfigByPlatform, putNoticeConfigByPlatform } from '@/api/noticeSetting'
import { mixinPermissions } from '@/utils/mixin'
import Bot from './bot.vue'
export default {
name: 'NoticeFeishu',
components: { SpanTitle, Bot },
mixins: [mixinPermissions],
data() {
return {
labelCol: { lg: 3, md: 5, sm: 8 },
wrapperCol: { lg: 15, md: 19, sm: 16 },
id: null,
feishuData: {
id: '',
password: '',
},
}
},
computed: {
...mapState({
windowHeight: (state) => state.windowHeight,
}),
isEditable() {
return this.hasDetailPermission('backend', '通知设置', ['update'])
},
},
mounted() {
this.getData()
},
methods: {
getData() {
getNoticeConfigByPlatform({ platform: 'feishuApp' }).then((res) => {
this.id = res?.id ?? null
if (this.id) {
this.feishuData = res.info
this.$refs.bot.setData(res?.info?.bot)
}
})
},
onSubmit() {
this.$refs.feishuForm.validate(async (valid) => {
if (valid) {
this.$refs.bot.getData(async (flag, bot) => {
if (flag) {
if (this.id) {
await putNoticeConfigByPlatform(this.id, { info: { ...this.feishuData, bot, label: this.$t('cs.person.feishuApp') } })
} else {
await postNoticeConfigByPlatform({
platform: 'feishuApp',
info: { ...this.feishuData, bot, label: this.$t('cs.person.feishuApp') },
})
}
this.$message.success(this.$t('saveSuccess'))
this.getData()
}
})
}
})
},
resetForm() {
this.feishuData = {
id: '',
password: '',
}
},
},
}
</script>
<style lang="less" scoped>
.notice-feishu-wrapper {
background-color: #fff;
padding-top: 15px;
overflow: auto;
margin-bottom: -24px;
border-radius: @border-radius-box;
.notice-feishu-wrapper-tips {
display: inline-block;
background-color: #ffdfdf;
border-radius: 4px;
padding: 0 12px;
width: 300px;
color: #000000;
margin-top: 8px;
}
}
</style>

View File

@ -1,152 +0,0 @@
<template>
<div class="notice-wx-wrapper" :style="{ height: `${windowHeight - 64}px` }">
<a-form-model ref="wxForm" :model="wxData" :label-col="labelCol" :wrapper-col="wrapperCol">
<SpanTitle>{{ $t('cs.duty.basicSetting') }}</SpanTitle>
<a-form-model-item :label="$t('cs.notice.corpid')">
<a-input v-model="wxData.corpid" :disabled="!isEditable" />
</a-form-model-item>
<a-form-model-item :label="$t('cs.notice.agentid')">
<a-input v-model="wxData.agentid" :disabled="!isEditable" />
</a-form-model-item>
<a-form-model-item :label="$t('cs.notice.corpsecret')">
<a-input-password v-model="wxData.corpsecret" :disabled="!isEditable" />
</a-form-model-item>
<a-form-model-item label="ITSM AppId">
<a-input v-model="wxData.itsm_app_id" :disabled="!isEditable" />
</a-form-model-item>
<a-form-model-item :label="$t('cs.notice.robot')">
<Bot
ref="bot"
:disabled="!isEditable"
:columns="[
{
field: 'name',
title: $t('cs.notice.title'),
required: true,
},
{
field: 'url',
title: $t('cs.notice.webhookAddress'),
required: true,
},
]"
/>
</a-form-model-item>
<!-- <a-form-model-item :label="测试邮件设置">
<a-button type="primary" ghost>测试回收箱</a-button>
<br />
<span
class="notice-wx-wrapper-tips"
><ops-icon type="icon-shidi-quxiao" :style="{ color: '#D81E06' }" /> 邮件接收失败</span
>
<br />
<span>邮箱服务器未配置请配置一个邮箱服务器 | <a>故障诊断</a></span>
</a-form-model-item> -->
<a-row v-if="isEditable">
<a-col :span="16" :offset="3">
<a-form-model-item :label-col="labelCol" :wrapper-col="wrapperCol">
<a-button type="primary" @click="onSubmit"> {{ $t('save') }} </a-button>
<a-button ghost type="primary" style="margin-left: 28px;" @click="resetForm"> {{ $t('reset') }} </a-button>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</div>
</template>
<script>
import { mapState } from 'vuex'
import SpanTitle from '../components/spanTitle.vue'
import { getNoticeConfigByPlatform, postNoticeConfigByPlatform, putNoticeConfigByPlatform } from '@/api/noticeSetting'
import { mixinPermissions } from '@/utils/mixin'
import Bot from './bot.vue'
export default {
name: 'NoticeWx',
mixins: [mixinPermissions],
components: { SpanTitle, Bot },
data() {
return {
labelCol: { lg: 3, md: 5, sm: 8 },
wrapperCol: { lg: 15, md: 19, sm: 16 },
id: null,
wxData: {
corpid: '',
agentid: '',
corpsecret: '',
itsm_app_id: '',
},
}
},
computed: {
...mapState({
windowHeight: (state) => state.windowHeight,
}),
isEditable() {
return this.hasDetailPermission('backend', '通知设置', ['update'])
},
},
mounted() {
this.getData()
},
methods: {
getData() {
getNoticeConfigByPlatform({ platform: 'wechatApp' }).then((res) => {
this.id = res?.id ?? null
if (this.id) {
this.wxData = res.info
this.$refs.bot.setData(res?.info?.bot)
}
})
},
onSubmit() {
this.$refs.wxForm.validate(async (valid) => {
if (valid) {
this.$refs.bot.getData(async (flag, bot) => {
if (flag) {
if (this.id) {
await putNoticeConfigByPlatform(this.id, {
info: { ...this.wxData, bot, label: this.$t('cs.person.wechatApp') },
})
} else {
await postNoticeConfigByPlatform({
platform: 'wechatApp',
info: { ...this.wxData, bot, label: this.$t('cs.person.wechatApp') },
})
}
this.$message.success(this.$t('saveSuccess'))
this.getData()
}
})
}
})
},
resetForm() {
this.wxData = {
corpid: '',
agentid: '',
corpsecret: '',
itsm_app_id: '',
}
},
},
}
</script>
<style lang="less" scoped>
.notice-wx-wrapper {
background-color: #fff;
padding-top: 15px;
overflow: auto;
margin-bottom: -24px;
border-radius: @border-radius-box;
.notice-wx-wrapper-tips {
display: inline-block;
background-color: #ffdfdf;
border-radius: 4px;
padding: 0 12px;
width: 300px;
color: #000000;
margin-top: 8px;
}
}
</style>

View File

@ -372,7 +372,7 @@ export default {
margin-bottom: 5px;
&:hover {
.ops_popover_item_selected();
border-color: #custom_colors[color_1];
border-color: @primary-color;
}
> i {
margin-right: 10px;
@ -380,7 +380,7 @@ export default {
}
.setting-person-left-item-selected {
.ops_popover_item_selected();
border-color: #custom_colors[color_1];
border-color: @primary-color;
}
}
.setting-person-right {
@ -390,7 +390,7 @@ export default {
border-radius: @border-radius-box;
padding: 24px 48px;
.setting-person-right-disabled {
background-color: #custom_colors[color_2];
background-color: @primary-color_5;
border-radius: 4px;
height: 30px;
line-height: 30px;