diff --git a/src/resources/api/autoexec/action/action.js b/src/resources/api/autoexec/action/action.js index 0eba77084f67cd37d1edb58e4f817d8268d47c5a..86224aa8f73b023dec51f135204564e654d6bd18 100644 --- a/src/resources/api/autoexec/action/action.js +++ b/src/resources/api/autoexec/action/action.js @@ -115,7 +115,7 @@ const action = { // 获取可执行组合工具分类列表 return axios.post('/api/rest/autoexec/combop/type/executable/list', params); }, - searchResourceCustomList(params) { + searchResourceCustomList(params) { //废弃 // 高级查询资源中心数据列表 return axios.post('/api/rest/resourcecenter/resource/custom/list', params); }, diff --git a/src/resources/assets/languages/term/en.json b/src/resources/assets/languages/term/en.json index d02a24405e206ebf6b6506db286e2a99dd730201..dd61d3fc3fac0e4a1dd996b3379377b4876df2b1 100644 --- a/src/resources/assets/languages/term/en.json +++ b/src/resources/assets/languages/term/en.json @@ -914,7 +914,10 @@ "parall": "Concurrent quantity", "paralldesc": "Execute the execution targets in order of concurrency.", "jobrecord": "Automated job recording", - "jobcount": "Number of automated tasks" + "jobcount": "Number of automated tasks", + "precondition": "pre-filter", + "globalprecondition": "Global pre filter", + "preconditiontip": "If empty, inherit the global pre filter" }, "framework": { "roleauth": "Authorize immediately after creating the role", diff --git a/src/resources/assets/languages/term/zh.json b/src/resources/assets/languages/term/zh.json index e6e6cde7c2907a2322551333900b73df940d8b77..80ba71ff5f86277fc1ff189ed22cf7c3d40ed3cc 100644 --- a/src/resources/assets/languages/term/zh.json +++ b/src/resources/assets/languages/term/zh.json @@ -914,7 +914,10 @@ "parall": "并发数量", "paralldesc": "将执行目标按并发数量先后执行。", "jobrecord": "自动化作业记录", - "jobcount": "自动化作业数" + "jobcount": "自动化作业数", + "precondition": "前置过滤器", + "globalprecondition": "全局前置过滤器", + "preconditiontip": "如果为空时,继承全局前置过滤器" }, "framework": { "roleauth": "创建完角色立即授权", diff --git a/src/resources/components/CombineSearcher/CombineSearcher.vue b/src/resources/components/CombineSearcher/CombineSearcher.vue index 75b947c8dc18694a23be5b3bc40d457547ec7ae5..01f1aad07edf74ee6eb0521e1059fffda294c8a8 100644 --- a/src/resources/components/CombineSearcher/CombineSearcher.vue +++ b/src/resources/components/CombineSearcher/CombineSearcher.vue @@ -7,7 +7,7 @@ :key="tindex" :name="tindex" :fade="false" - class="tag-item-text border-color radius-sm overflow bg-op" + class="tag-item-text border-base radius-sm overflow bg-op" > {{ getLabel(tindex) }} : @@ -130,7 +130,7 @@
- +
@@ -227,6 +227,12 @@ export default { // 底部是否显示高级模式文案 type: Boolean, default: false + }, + searchText: { + type: String, + default() { + return this.$t('page.search'); + } } }, data() { @@ -739,7 +745,6 @@ export default { display: none; } .tag-item-text{ - border: 1px dashed; padding: 0 16px; line-height: 30px; display: inline-block; diff --git a/src/resources/plugins/TsForm/TsFormItem.vue b/src/resources/plugins/TsForm/TsFormItem.vue index 677f977d42d7ab876bfbd7903a31fffa139a5e71..12e4273dae1ef52b19f02b6db834c5dafa5e9ae8 100755 --- a/src/resources/plugins/TsForm/TsFormItem.vue +++ b/src/resources/plugins/TsForm/TsFormItem.vue @@ -256,7 +256,7 @@ function getRequired(validateList, required) { } diff --git a/src/views/pages/autoexec/detail/actionDetail/step-group.vue b/src/views/pages/autoexec/detail/actionDetail/step-group.vue index 05617862529bc1e31a9d73d1af3db0b533fcf319..40e8ebea826d0159523339095e74eb0c2426cc54 100644 --- a/src/views/pages/autoexec/detail/actionDetail/step-group.vue +++ b/src/views/pages/autoexec/detail/actionDetail/step-group.vue @@ -5,7 +5,7 @@
{{ $t('term.autoexec.stagegroup') }}
{{ currentGroupConfig.sort + 1 }}
- + +
@@ -139,12 +150,12 @@ @@ -172,7 +183,8 @@ export default { TsFormSwitch: () => import('@/resources/plugins/TsForm/TsFormSwitch'), ExecuteuserSetting: () => import('@/views/pages/autoexec/detail/actionDetail/executeuser-setting.vue'), RunnerGroupSetting: () => import('@/views/pages/autoexec/detail/actionDetail/runnergroup-setting.vue'), - RunnerGroupTagSetting: () => import('@/views/pages/autoexec/detail/actionDetail/runnergrouptag-setting.vue') + RunnerGroupTagSetting: () => import('@/views/pages/autoexec/detail/actionDetail/runnergrouptag-setting.vue'), + PreconditionDetail: () => import('@/views/pages/autoexec/detail/actionDetail/precondition-detail.vue') }, filters: {}, props: { @@ -203,7 +215,8 @@ export default { type: Array, default: () => [] }, - runtimeParamList: Array + runtimeParamList: Array, + globalPreCondition: Object //全局前置过滤器 }, data() { let _this = this; @@ -299,6 +312,10 @@ export default { label: this.$t('term.autoexec.parall'), desc: this.$t('term.autoexec.paralldesc'), dataList: this.$utils.getRoundCountList() + }, + preCondition: { + type: 'slot', + label: this.$t('term.autoexec.precondition') } }, executeConfig: { @@ -311,7 +328,8 @@ export default { executeNodeConfig: {}, isPresetRunnerGroup: 0, runnerGroup: null, - runnerGroupTag: null + runnerGroupTag: null, + preCondition: null }, isValid: false, // 校验执行目标 @@ -324,7 +342,8 @@ export default { mappingMode: 'constant', value: '', text: '' - } + }, + preCondition: null }; }, beforeCreate() {}, @@ -341,6 +360,7 @@ export default { this.executeConfig[key] = this.config.config.executeConfig[key]; } }); + this.preCondition = !this.$utils.isEmpty(this.executeConfig.preCondition) ? this.$utils.deepClone(this.executeConfig.preCondition) : null; if (!this.$utils.isEmpty(this.executeConfig.runnerGroup) || !this.$utils.isEmpty(this.executeConfig.runnerGroupTag)) { this.$set(this.executeConfig, 'isPresetRunnerGroup', 1); } @@ -395,7 +415,7 @@ export default { } else { this.executeConfig.parallelCount = null; } - + this.executeConfig.preCondition = !this.$utils.isEmpty(this.preCondition) ? this.preCondition : null; if (this.$refs.form.valid()) { let editConfig = this.$utils.deepClone(this.editConfig); if (editConfig.policy && (!this.groupConfig || this.groupConfig.policy != 'grayScale' || (this.editConfig.execMode && this.editConfig.execMode != 'runner' && this.editConfig.execMode != 'sqlfile'))) { @@ -485,14 +505,12 @@ export default { } }); }, - async ok() { - this.isValid = false; - (this.editConfig.execMode != 'runner') && (await this.validSetting(true)); - if (this.isValid) { + ok() { + if (!this.$utils.isEmpty(this.preCondition) && this.$refs.targetDetail && !this.$refs.targetDetail.valid()) { return; - } else { - this.confirmEdit(); } + // (this.editConfig.execMode != 'runner') && (await this.validSetting(true)); //废弃接口校验规则 + this.confirmEdit(); }, saveValid() { //校验完成,保存 this.confirmEdit(); @@ -521,6 +539,9 @@ export default { this.$set(this.executeForm.parallelCount, 'isHidden', false); } }); + }, + changePreConditionValue(val) { + this.preCondition = !this.$utils.isEmpty(val) ? val : null; } }, computed: {}, diff --git a/src/views/pages/autoexec/detail/actionDetail/step/step-list.vue b/src/views/pages/autoexec/detail/actionDetail/step/step-list.vue index aeabacb059af11a6ffe4fc4ff08ef94359cba8ed..98804203be90ffa9f21217016198cd7971890b63 100644 --- a/src/views/pages/autoexec/detail/actionDetail/step/step-list.vue +++ b/src/views/pages/autoexec/detail/actionDetail/step/step-list.vue @@ -98,6 +98,7 @@ :groupConfig="groupConfig" :prevStepList="getPrev(editConfig, stepList)" :runtimeParamList="runtimeParamList" + :globalPreCondition="globalPreCondition" @close="close" > @@ -145,7 +146,8 @@ export default { type: Array }, scrollLeft: Number, - runtimeParamList: Array + runtimeParamList: Array, + globalPreCondition: Object //全局前置条件 }, data() { return { diff --git a/src/views/pages/autoexec/detail/runner-detail.vue b/src/views/pages/autoexec/detail/runner-detail.vue index 01b02d7541c9292ce409fb031070162af3f82a79..603b8a6f4c209a63a8f109df84d4d7b4bce66bdf 100644 --- a/src/views/pages/autoexec/detail/runner-detail.vue +++ b/src/views/pages/autoexec/detail/runner-detail.vue @@ -60,7 +60,7 @@
@@ -74,7 +74,7 @@
@@ -88,7 +88,7 @@
@@ -151,7 +151,18 @@
{{ $t('term.autoexec.executetarget') }} -
+ + + +
@@ -289,7 +301,8 @@ export default { ExpiredReasonAlert: () => import('./expired-reason-alert'), ExecuteuserSetting: () => import('@/views/pages/autoexec/detail/actionDetail/executeuser-setting.vue'), RunnerGroupSetting: () => import('@/views/pages/autoexec/detail/actionDetail/runnergroup-setting.vue'), - RunnerGroupTagSetting: () => import('@/views/pages/autoexec/detail/actionDetail/runnergrouptag-setting.vue') + RunnerGroupTagSetting: () => import('@/views/pages/autoexec/detail/actionDetail/runnergrouptag-setting.vue'), + PreconditionDetail: () => import('@/views/pages/autoexec/detail/actionDetail/precondition-detail.vue') }, filters: {}, props: { @@ -346,7 +359,7 @@ export default { } }, executeForm: { - labelWidth: 100, + labelWidth: 110, labelPosition: 'left', itemList: { protocolId: { @@ -436,7 +449,8 @@ export default { value: 'roundCount' } ], - parallelPolicy: 'parallel' + parallelPolicy: 'parallel', + preCondition: null }; }, beforeCreate() {}, @@ -577,6 +591,9 @@ export default { this.scenarioList = this.dataConfig.config.scenarioList; } this.getSelectStepList(this.scenarioId); + if (this.dataConfig.config.executeConfig && !this.$utils.isEmpty(this.dataConfig.config.executeConfig.preCondition)) { + this.preCondition = this.dataConfig.config.executeConfig.preCondition; + } }) .finally(res => { this.loading = false; diff --git a/src/views/pages/autoexec/detail/runnerDetail/add-target.vue b/src/views/pages/autoexec/detail/runnerDetail/add-target.vue index a584af5808fad5aa6518690f27d8291f6a239b35..90dd9165639298effe2da36d19ee32e880f6c9e7 100644 --- a/src/views/pages/autoexec/detail/runnerDetail/add-target.vue +++ b/src/views/pages/autoexec/detail/runnerDetail/add-target.vue @@ -1,6 +1,35 @@ - -
+ + + @@ -278,6 +288,7 @@ export default { ExpiredReasonAlert: () => import('@/views/pages/autoexec/quick-service/service-catalog/expired-reason-alert'), // 服务失效原因提示列表 RunnerGroupSetting: () => import('@/views/pages/autoexec/detail/actionDetail/runnergroup-setting.vue'), RunnerGroupTagSetting: () => import('@/views/pages/autoexec/detail/actionDetail/runnergrouptag-setting.vue'), + PreconditionDetail: () => import('@/views/pages/autoexec/detail/actionDetail/precondition-detail.vue'), ...Component }, mixins: [serviceMixin], diff --git a/src/views/pages/autoexec/quick-service/service-catalog/other-params.vue b/src/views/pages/autoexec/quick-service/service-catalog/other-params.vue index 03cdb41f4fc1bc943ea5d31c3f499d618531e5cb..55878c4804c80246767391605ede9cbf5d9e7685 100644 --- a/src/views/pages/autoexec/quick-service/service-catalog/other-params.vue +++ b/src/views/pages/autoexec/quick-service/service-catalog/other-params.vue @@ -125,6 +125,15 @@
+ + + import('@/views/pages/autoexec/detail/runnerDetail/add-target.vue'), RunnerGroupSetting: () => import('@/views/pages/autoexec/detail/actionDetail/runnergroup-setting.vue'), RunnerGroupTagSetting: () => import('@/views/pages/autoexec/detail/actionDetail/runnergrouptag-setting.vue'), + PreconditionDetail: () => import('@/views/pages/autoexec/detail/actionDetail/precondition-detail.vue'), ...Component }, props: { diff --git a/src/views/pages/cmdb/asset/advanced-mode-search.vue b/src/views/pages/cmdb/asset/advanced-mode-search.vue index 5c2c5c1b5124381acf34cc43e6ab1fc9d0b4e7df..1837d8870cfd8286eaf6c1a14efb8ced26da1034 100644 --- a/src/views/pages/cmdb/asset/advanced-mode-search.vue +++ b/src/views/pages/cmdb/asset/advanced-mode-search.vue @@ -8,7 +8,7 @@ {{ item.label }} : @@ -188,7 +188,7 @@
- +
@@ -245,6 +245,12 @@ export default { // 搜索条件列表 type: Array, default: () => { return []; } + }, + searchText: { + type: String, + default() { + return this.$t('page.search'); + } } }, data() { @@ -921,7 +927,6 @@ export default { white-space: nowrap; overflow: hidden; .tag-item-text{ - border: 1px dashed; padding: 0 16px; line-height: 30px; display: inline-block; diff --git a/src/views/pages/cmdb/asset/asset-manage.vue b/src/views/pages/cmdb/asset/asset-manage.vue index fe1bab57668985dbca4877b4e907019907caba21..5b85e4d5ac3a6dff2c9b34b2a4bdf5eb65d27da2 100644 --- a/src/views/pages/cmdb/asset/asset-manage.vue +++ b/src/views/pages/cmdb/asset/asset-manage.vue @@ -1086,7 +1086,7 @@ export default { }; this.loadingShow = true; this.$api.autoexec.action - .searchResourceCustomList(params) + .getNodeList(params) .then(res => { if (res.Status == 'OK') { this.tableConfig = Object.assign(this.tableConfig, res.Return || {}); diff --git a/src/views/pages/process/flow/flowedit/components/createjob/createjob-config.vue b/src/views/pages/process/flow/flowedit/components/createjob/createjob-config.vue index d4a463d4c801e54214a3e63a27fa66df6ed1cba5..57c218bbf970022baad51b3986f10fb8dac36a53 100644 --- a/src/views/pages/process/flow/flowedit/components/createjob/createjob-config.vue +++ b/src/views/pages/process/flow/flowedit/components/createjob/createjob-config.vue @@ -318,11 +318,10 @@ export default { isRequired: item.isRequired, key: item.key, mappingMode: item.mappingMode, - name: item.name + name: item.name, + value: item.value }; - if (item.mappingMode === 'constant' || item.mappingMode === 'runtimeparam') { - obj.value = item.value; - } else { + if (item.mappingMode !== 'constant' && item.mappingMode !== 'runtimeparam') { obj.mappingList = [{ mappingMode: '', value: '', diff --git a/src/views/pages/process/flow/flowedit/components/createjob/params/execute-param.vue b/src/views/pages/process/flow/flowedit/components/createjob/params/execute-param.vue index bfbb6e95e944b08e0a5fa7f6bb92fd018526086c..a49b45e34a465ac7c0dd98516e5c6659bb3818a4 100644 --- a/src/views/pages/process/flow/flowedit/components/createjob/params/execute-param.vue +++ b/src/views/pages/process/flow/flowedit/components/createjob/params/execute-param.vue @@ -17,10 +17,19 @@
- +