Skip to content

Commit 6e8898c

Browse files
committed
refactor(datasource): Recommendation question style adjustment
1 parent 94ca094 commit 6e8898c

File tree

4 files changed

+62
-26
lines changed

4 files changed

+62
-26
lines changed

frontend/src/i18n/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,7 @@
394394
"sync_fields": "Sync Fields"
395395
},
396396
"datasource": {
397+
"recommended_question": "Recommended Question",
397398
"recommended_repetitive_tips": "Duplicate questions exist",
398399
"recommended_problem_tips": "Custom configuration requires at least one problem, each problem should be 2-200 characters",
399400
"recommended_problem_configuration": "Recommended Problem Configuration",

frontend/src/i18n/ko-KR.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,7 @@
394394
"sync_fields": "동기화된 테이블 구조"
395395
},
396396
"datasource": {
397+
"recommended_question": "추천 질문",
397398
"recommended_repetitive_tips": "중복된 문제가 존재합니다",
398399
"recommended_problem_tips": "사용자 정의 구성으로 최소 한 개의 문제를 생성하세요, 각 문제는 2~200자로 작성",
399400
"recommended_problem_configuration": "추천 문제 구성",

frontend/src/i18n/zh-CN.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,7 @@
394394
"sync_fields": "同步表结构"
395395
},
396396
"datasource": {
397+
"recommended_question": "推荐问题",
397398
"recommended_repetitive_tips": "存在重复问题",
398399
"recommended_problem_tips": "自定义配置至少一个问题,每个问题2-200个字符",
399400
"recommended_problem_configuration": "推荐问题配置",

frontend/src/views/ds/RecommendedProblemConfigDialog.vue

Lines changed: 59 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { recommendedApi } from '@/api/recommendedApi.ts'
44
import { Delete } from '@element-plus/icons-vue'
55
import { ElMessage } from 'element-plus-secondary'
66
import { useI18n } from 'vue-i18n'
7+
import icon_add_outlined from '@/assets/svg/icon_add_outlined.svg'
8+
79
const { t } = useI18n()
810
911
interface RecommendedProblem {
@@ -105,37 +107,53 @@ defineExpose({
105107
:close-on-click-modal="false"
106108
@before-closed="closeDialog"
107109
>
108-
<el-form-item :label="$t('datasource.problem_generation_method')" prop="mode">
109-
<el-radio-group v-model="state.recommended.recommended_config">
110-
<el-radio :value="1">{{ $t('datasource.ai_automatic_generation') }}</el-radio>
111-
<el-radio :value="2">{{ $t('datasource.user_defined') }}</el-radio>
112-
</el-radio-group>
113-
</el-form-item>
114-
<template v-if="state.recommended.recommended_config === 2">
110+
<el-form label-width="180px" label-position="top" class="form-content_error" @submit.prevent>
115111
<el-form-item
116-
v-for="(recommendedItem, index) in state.recommended.recommendedProblemList"
117-
:key="index"
112+
class="is-required"
113+
:label="$t('datasource.problem_generation_method')"
118114
prop="mode"
119115
>
120-
<el-row class="question-item">
121-
<el-input
122-
v-model="recommendedItem.question"
123-
max="200"
124-
min="2"
125-
class="input-item"
126-
clearable
127-
:placeholder="$t('datasource.question_tips')"
128-
>
129-
</el-input>
130-
<el-icon class="delete-item"><Delete @click="deleteRecommendedProblem(index)" /></el-icon>
131-
</el-row>
116+
<el-radio-group v-model="state.recommended.recommended_config">
117+
<el-radio :value="1">{{ $t('datasource.ai_automatic_generation') }}</el-radio>
118+
<el-radio :value="2">{{ $t('datasource.user_defined') }}</el-radio>
119+
</el-radio-group>
132120
</el-form-item>
133-
<div v-if="state.recommended.recommendedProblemList.length < 10">
134-
<el-button text @click="addRecommendedProblem">
135-
{{ $t('datasource.add_question') }}</el-button
121+
<template v-if="state.recommended.recommended_config === 2">
122+
<div style="display: flex; align-items: center; margin-bottom: 8px">
123+
<span>{{ t('datasource.recommended_question') }}</span>
124+
<span
125+
v-if="state.recommended.recommendedProblemList.length < 10"
126+
class="btn"
127+
@click="addRecommendedProblem"
128+
>
129+
<el-icon style="margin-right: 4px" size="16">
130+
<icon_add_outlined></icon_add_outlined>
131+
</el-icon>
132+
{{ $t('model.add') }}
133+
</span>
134+
</div>
135+
<el-form-item
136+
v-for="(recommendedItem, index) in state.recommended.recommendedProblemList"
137+
:key="index"
138+
prop="mode"
136139
>
137-
</div>
138-
</template>
140+
<el-row class="question-item">
141+
<el-input
142+
v-model="recommendedItem.question"
143+
max="200"
144+
min="2"
145+
class="input-item"
146+
clearable
147+
:placeholder="$t('datasource.question_tips')"
148+
>
149+
</el-input>
150+
<el-icon class="delete-item"
151+
><Delete @click="deleteRecommendedProblem(index)"
152+
/></el-icon>
153+
</el-row>
154+
</el-form-item>
155+
</template>
156+
</el-form>
139157

140158
<div style="display: flex; justify-content: flex-end; margin-top: 20px">
141159
<el-button secondary @click="closeDialog">{{ $t('common.cancel') }}</el-button>
@@ -145,6 +163,21 @@ defineExpose({
145163
</template>
146164

147165
<style scoped lang="less">
166+
.btn {
167+
margin-left: auto;
168+
height: 26px;
169+
display: flex;
170+
align-items: center;
171+
justify-content: center;
172+
padding: 0 4px;
173+
border-radius: 6px;
174+
margin-right: 15px;
175+
cursor: pointer;
176+
177+
&:hover {
178+
background-color: #1f23291a;
179+
}
180+
}
148181
.add-question_dialog {
149182
.ed-input-group__append {
150183
background-color: #fff;

0 commit comments

Comments
 (0)