diff --git a/src/main.js b/src/main.js index 46612886..34c567a5 100644 --- a/src/main.js +++ b/src/main.js @@ -300,7 +300,9 @@ async function VueInit() { } let text = i18n.t(key) if (Array.isArray(store.state.trials.config.TrialObjectNameList) && store.state.trials.config.TrialObjectNameList.length > 0) { - store.state.trials.config.TrialObjectNameList.forEach(item => { + let arr = JSON.parse(JSON.stringify(store.state.trials.config.TrialObjectNameList)) + arr.sort((a, b) => b.Name.length - a.Name.length) + arr.forEach(item => { let test = new RegExp(item.Name, 'ig') text = text.replace(test, item.TrialName) }) diff --git a/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue b/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue index 58900386..2e354f36 100644 --- a/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue +++ b/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue @@ -1323,6 +1323,35 @@ export default { this.form[k] = res[k] } } + if ( + !this.form.TrialObjectNameList || + (Array.isArray(this.form.TrialObjectNameList) && + this.form.TrialObjectNameList.length <= 0) + ) { + this.form.TrialObjectNameList = this.$d.Terminology.map((item) => { + return { + Name: item.label, + TrialName: item.label, + IsDefault: true, + } + }) + } else if ( + Array.isArray(this.form.TrialObjectNameList) && + this.form.TrialObjectNameList.length > 0 + ) { + this.$d.Terminology.forEach((item) => { + if ( + !this.form.TrialObjectNameList.find((d) => d.Name === item.label) + ) { + this.form.TrialObjectNameList.push({ + Name: item.label, + TrialName: item.label, + IsDefault: true, + }) + } + }) + } + let Modalitys = this.form.ModalityList.map((item) => { return this.$fd('Modality', item.trim()) }) diff --git a/src/views/trials/trials-panel/setting/trial-config/components/terminology.vue b/src/views/trials/trials-panel/setting/trial-config/components/terminology.vue index 51081857..19560ba0 100644 --- a/src/views/trials/trials-panel/setting/trial-config/components/terminology.vue +++ b/src/views/trials/trials-panel/setting/trial-config/components/terminology.vue @@ -9,14 +9,14 @@ :before-close="handleColse" width="900px" > -
{{ $t('common:button:add') }} -
+ --> @@ -72,7 +73,12 @@ :label="$t('trials:logincCfg:form:terminologyName')" prop="Name" > - + + { return { Name: null, TrialName: null, + IsDefault: false, } } export default { @@ -134,6 +146,22 @@ export default { message: this.$t('common:ruleMessage:specify'), trigger: 'blur', }, + { + validator: (rule, value, callback) => { + if ( + value && + this.DATA.find((item) => item.Name === value) && + this.status === 'add' + ) { + callback( + new Error(this.$t('trials:uploadDicomList:table:Existed')) + ) + } else { + callback() + } + }, + trigger: ['blur', 'change'], + }, ], TrialName: [ { @@ -158,7 +186,6 @@ export default { Object.keys(this.form).forEach((key) => { this.form[key] = row[key] }) - this.form.Id = row.Id } this.editVisible = true },