From 820410d340db96e0a20538947151138b99ee0856 Mon Sep 17 00:00:00 2001
From: v_yjjiaoyu <1981190393@qq.com>
Date: Thu, 15 Aug 2024 10:45:33 +0800
Subject: [PATCH 01/26] =?UTF-8?q?feat=EF=BC=9A=E6=B5=81=E6=B0=B4=E7=BA=BF?=
=?UTF-8?q?=E5=8F=98=E9=87=8F=E8=AF=AD=E6=B3=95=E6=94=AF=E6=8C=81=E4=B8=A4?=
=?UTF-8?q?=E7=A7=8D=E9=A3=8E=E6=A0=BC=20#10576=20#=20Reviewed,=20transact?=
=?UTF-8?q?ion=20id:=2015341?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/frontend/devops-manage/package.json | 10 +-
.../src/components/dialectPopoverTable.vue | 121 ++++++++++++++
.../src/components/project-form.vue | 19 +++
.../devops-manage/src/css/svg/warninfo.svg | 1 +
.../devops-manage/src/views/apply-project.vue | 1 +
.../src/views/manage/project/edit-project.vue | 75 ++++++++-
.../src/views/manage/project/show-project.vue | 19 +++
.../PipelineEditTabs/BaseSettingTab.vue | 2 +-
.../components/PipelineHeader/EditHeader.vue | 8 +
.../components/pipelineSetting/BaseInfo.vue | 75 ++++++++-
.../components/syntaxStyleConfiguration.vue | 148 ++++++++++++++++++
.../modules/pipelines/pipelinesTemplate.js | 6 +-
.../src/views/CreatePipeline.vue | 46 +++++-
src/frontend/locale/manage/en-US.json | 37 ++++-
src/frontend/locale/manage/zh-CN.json | 41 ++++-
src/frontend/locale/pipeline/en-US.json | 37 ++++-
src/frontend/locale/pipeline/zh-CN.json | 37 ++++-
17 files changed, 667 insertions(+), 16 deletions(-)
create mode 100644 src/frontend/devops-manage/src/components/dialectPopoverTable.vue
create mode 100644 src/frontend/devops-manage/src/css/svg/warninfo.svg
create mode 100644 src/frontend/devops-pipeline/src/components/syntaxStyleConfiguration.vue
diff --git a/src/frontend/devops-manage/package.json b/src/frontend/devops-manage/package.json
index 8ab4ee1959d..d5df2f849ae 100644
--- a/src/frontend/devops-manage/package.json
+++ b/src/frontend/devops-manage/package.json
@@ -23,12 +23,14 @@
"license": "ISC",
"dependencies": {
"bk-permission": "^0.0.28",
- "bkui-vue": "0.0.1-beta.456",
+ "bkui-vue": "2.0.1-beta.43",
"dayjs": "^1.11.2",
"pinia": "^2.0.23",
"vue": "^3.2.41",
"vue-i18n": "^9.1.10",
- "vue-router": "^4.1.6"
+ "vue-router": "^4.1.6",
+ "lodash.throttle": "^4.1.1",
+ "@icon-cool/bk-icon-bk-biz-components": "0.0.4"
},
"devDependencies": {
"@blueking/babel-preset-bk": "^2.1.0-beta7",
@@ -45,6 +47,8 @@
"postcss-preset-env": "^7.8.2",
"postcss-simple-vars": "^7.0.0",
"postcss-url": "^10.1.3",
- "typescript": "^4.8.4"
+ "typescript": "^4.8.4",
+ "less": "^4.2.0",
+ "less-loader": "^12.2.0"
}
}
diff --git a/src/frontend/devops-manage/src/components/dialectPopoverTable.vue b/src/frontend/devops-manage/src/components/dialectPopoverTable.vue
new file mode 100644
index 00000000000..59efacebf2e
--- /dev/null
+++ b/src/frontend/devops-manage/src/components/dialectPopoverTable.vue
@@ -0,0 +1,121 @@
+
+
+
+
+ {{ t('语法差异') }}
+
+
+
+
+
+
{{ row.classIc }}
+
{{ row.classIcExample }}
+
+
+
+
+
+
+
{{ row.constrained }}
+
{{ row.constrainedExample }}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/frontend/devops-manage/src/components/project-form.vue b/src/frontend/devops-manage/src/components/project-form.vue
index 576775210ee..5cf22e15728 100644
--- a/src/frontend/devops-manage/src/components/project-form.vue
+++ b/src/frontend/devops-manage/src/components/project-form.vue
@@ -14,6 +14,7 @@ import IAMIframe from './IAM-Iframe';
import { useI18n } from 'vue-i18n';
import { Message, Popover } from 'bkui-vue';
import http from '@/http/api';
+import DialectPopoverTable from "@/components/dialectPopoverTable";
const {
t,
} = useI18n();
@@ -468,6 +469,24 @@ onBeforeUnmount(() => {
@click="showMemberDialog"
/>
+
+
+
+
+
+
+ {{ t('传统风格') }}
+
+
+ {{ t('制约风格') }}
+
+
+
diff --git a/src/frontend/devops-manage/src/css/svg/warninfo.svg b/src/frontend/devops-manage/src/css/svg/warninfo.svg
new file mode 100644
index 00000000000..58c9074d22e
--- /dev/null
+++ b/src/frontend/devops-manage/src/css/svg/warninfo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/frontend/devops-manage/src/views/apply-project.vue b/src/frontend/devops-manage/src/views/apply-project.vue
index aa68f94e86e..b7c101c7258 100644
--- a/src/frontend/devops-manage/src/views/apply-project.vue
+++ b/src/frontend/devops-manage/src/views/apply-project.vue
@@ -28,6 +28,7 @@ const projectData = ref({
subjectScopes: [],
secrecy: false,
authSecrecy: 0,
+ pipelineDialect: 'CLASSIC',
});
const projectForm = ref(null);
const btnLoading = ref(false);
diff --git a/src/frontend/devops-manage/src/views/manage/project/edit-project.vue b/src/frontend/devops-manage/src/views/manage/project/edit-project.vue
index 69c89613235..73019a3afd2 100644
--- a/src/frontend/devops-manage/src/views/manage/project/edit-project.vue
+++ b/src/frontend/devops-manage/src/views/manage/project/edit-project.vue
@@ -32,6 +32,8 @@ const statusDisabledTips = {
1: t('新建项目申请审批中,暂不可修改'),
4: t('更新项目信息审批中,暂不可修改'),
};
+const currentDialect = ref();
+const isDialectDialog = ref(false);
const fetchProjectData = async () => {
isLoading.value = true;
@@ -39,6 +41,7 @@ const fetchProjectData = async () => {
englishName: projectCode,
}).then((res) => {
projectData.value = res;
+ currentDialect.value = res.pipelineDialect;
if (projectData.value.centerId === '0') projectData.value.centerId = ''
if (projectData.value.projectType === 0) projectData.value.projectType = ''
}).catch((err) => {
@@ -144,11 +147,28 @@ const showNeedApprovedTips = () => {
/**
* 更新项目
*/
-const handleUpdate = async () => {
+const handleUpdate = () => {
+ if(currentDialect.value === 'CLASSIC' && projectData.value.pipelineDialect === 'CONSTRAINED'){
+ isDialectDialog.value = true;
+ return
+ }
+ updateConfirm()
+};
+
+const updateConfirm = async () => {
projectForm.value?.validate().then(async () => {
await updateProject();
})
-};
+}
+
+const handleConfirm = () => {
+ isDialectDialog.value = false;
+ updateConfirm()
+}
+
+const handleClosed = () => {
+ isDialectDialog.value = false;
+}
const initProjectForm = (value) => {
projectForm.value = value;
@@ -228,6 +248,27 @@ onMounted(() => {
+
+
+
+
+
+
+
+ {{ t('项目:') }} {{ projectData.projectName }}
+
+
+ {{ t('升级后,该项目对变量引用方式将有更严格的要求。') }}
+
+
+
diff --git a/src/frontend/devops-manage/src/views/manage/project/show-project.vue b/src/frontend/devops-manage/src/views/manage/project/show-project.vue
index 2c3ac980925..68c3814aa3b 100644
--- a/src/frontend/devops-manage/src/views/manage/project/show-project.vue
+++ b/src/frontend/devops-manage/src/views/manage/project/show-project.vue
@@ -23,6 +23,7 @@ import {
RESOURCE_ACTION,
RESOURCE_TYPE,
} from '@/utils/permission.js'
+import DialectPopoverTable from "@/components/dialectPopoverTable";
const { t } = useI18n();
const router = useRouter();
@@ -303,6 +304,10 @@ const projectTypeNameMap = {
4: t('平台产品'),
5: t('支撑产品'),
}
+const pipelineDialectMap = {
+ 'CLASSIC': t('传统风格'),
+ 'CONSTRAINED': t('制约风格'),
+}
watch(() => projectData.value.approvalStatus, (status) => {
if (status === 4) fetchDiffProjectData();
}, {
@@ -414,6 +419,20 @@ onMounted(async () => {
+
+
+
+
+
+
{{ pipelineDialectMap[projectData.pipelineDialect] }}
+
+
+ {{ t('本次更新:') }}
+
+
{{ pipelineDialectMap[projectData.afterPipelineDialect] }}
+
+
+