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 @@ + + + + + \ 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(() => { + + + + 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] }} +
+
+