Преглед изворни кода

fix: 全局提示词接口对接

王晓东 пре 1 недеља
родитељ
комит
b36461f91a
1 измењених фајлова са 31 додато и 23 уклоњено
  1. 31 23
      src/views/model/global-prompt/index.vue

+ 31 - 23
src/views/model/global-prompt/index.vue

@@ -13,16 +13,25 @@ const lang = ref<string>('zh_CN')
 
 
 async function fetchData() {
+  if(!lang.value.length){
+    return;
+  }
   loading.value = true
-  const {code, data} = await selectGlobalPrompt({i18nKey: lang.value})
-  if(code === 0){
-    input.value = data
+  try{
+    const {code, data} = await selectGlobalPrompt({i18nKey: lang.value})
+    if(code === 0){
+      input.value = data
+    }
+  }finally{
+    loading.value = false
   }
-  loading.value = false
 }
 
 
 async function handleSave () {
+  if(!lang.value.length){
+    return;
+  }
   const {code, data} = await updateGlobalPrompt({i18nKey: lang.value, text: input.value})
   if(code === 0){
     toast.success('保存成功')
@@ -30,31 +39,30 @@ async function handleSave () {
 }
 
 
-
-onMounted(async () => {
-  await fetchData()
-})
-
+watch(()=> lang.value, ()=> {
+  fetchData()
+}, {immediate: true})
 
 </script>
 
 <template>
   <div class="absolute-container">
     <FaPageHeader title="全局提示词" />
-    <FaPageMain class="flex-1 overflow-auto" main-class="flex-1 flex flex-col overflow-auto gap-4">
-      <LangSelector v-model="lang"></LangSelector>
-        <el-input
-          v-model="input"
-          style="width: 100%;"
-          :autosize="{ minRows: 4, maxRows: 10 }"
-          type="textarea"
-          placeholder="Please input"
-          class="mb-4"
-        />
-      <ElSpace>
-        <ElButton type="primary" @click="handleSave">保存</ElButton>
-      </ElSpace>
-
+    <FaPageMain class="flex-1 overflow-auto" main-class="flex-1 flex flex-col overflow-auto">
+      <div class="flex flex-col overflow-auto gap-4" v-loading="loading">
+        <LangSelector v-model="lang"></LangSelector>
+          <el-input
+            v-model="input"
+            style="width: 100%;"
+            :autosize="{ minRows: 4, maxRows: 10 }"
+            type="textarea"
+            placeholder="Please input"
+            class="mb-4"
+          />
+        <ElSpace>
+          <ElButton type="primary" @click="handleSave">保存</ElButton>
+        </ElSpace>
+      </div>
     </FaPageMain>
   </div>
 </template>