@@ -4,6 +4,8 @@ import { recommendedApi } from '@/api/recommendedApi.ts'
44import { Delete } from ' @element-plus/icons-vue'
55import { ElMessage } from ' element-plus-secondary'
66import { useI18n } from ' vue-i18n'
7+ import icon_add_outlined from ' @/assets/svg/icon_add_outlined.svg'
8+
79const { t } = useI18n ()
810
911interface 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