CzRger 2 달 전
부모
커밋
5cedac2d43

+ 1 - 1
src/views/chat/audio/index.vue

@@ -9,7 +9,7 @@
     </template>
     <template v-else>
       <el-tooltip content="语音输入" placement="top">
-        <div class="__hover h-6 w-6" @click="onStart">
+        <div class="__hover size-6" @click="onStart">
           <img class="h-full w-full" src="@/assets/images/chat/audio.png" />
         </div>
       </el-tooltip>

+ 1 - 1
src/views/manage/app/index.vue

@@ -101,7 +101,7 @@
                   </template>
                 </div>
                 <div
-                  class="mt-1.5 text-[1.25rem] font-bold text-[#2E3238]"
+                  class="mt-1.5 text-xl font-bold text-[#2E3238]"
                   style="line-height: 1.3"
                   v-title
                 >

+ 57 - 15
src/views/manage/app/make/index.vue

@@ -150,11 +150,11 @@
                     <template v-for="(item, index) in state.form.knowledges">
                       <div class="flex items-center gap-1.5">
                         <div
-                          class="flex h-10 flex-1 items-center overflow-hidden rounded-sm bg-[#F6F8FC] px-2.5"
+                          class="flex flex-1 items-center overflow-hidden rounded-sm bg-[#F6F8FC] p-2.5"
                         >
                           <img
-                            src="@/assets/images/knowledge/knowledge-item-icon-2.png"
-                            class="mr-4 h-6 w-6"
+                            src="@/assets/images/knowledge/knowledge-item-icon.png"
+                            class="mr-4 size-6"
                           />
                           <div
                             class="flex-1 text-sm font-bold text-[#2E3238]"
@@ -189,7 +189,7 @@
                     type="normal"
                     title="新增"
                     class="ml-auto"
-                    @click="onAddKnowledge"
+                    @click="onAddWorkflow"
                   />
                 </div>
                 <template v-if="state.form.workflows.length > 0">
@@ -199,17 +199,27 @@
                     <template v-for="(item, index) in state.form.workflows">
                       <div class="flex items-center gap-1.5">
                         <div
-                          class="flex h-10 flex-1 items-center overflow-hidden rounded-sm bg-[#F6F8FC] px-2.5"
+                          class="flex flex-1 items-center overflow-hidden rounded-sm bg-[#F6F8FC] p-2.5"
                         >
                           <img
-                            src="@/assets/images/knowledge/knowledge-item-icon-2.png"
-                            class="mr-4 h-6 w-6"
+                            src="@/assets/images/workflow/workflow-default-icon.png"
+                            class="mr-4 size-15"
                           />
                           <div
-                            class="flex-1 text-sm font-bold text-[#2E3238]"
-                            v-title
+                            class="flex flex-1 flex-col gap-2 overflow-hidden"
                           >
-                            {{ item.name }}
+                            <div
+                              class="text-sm font-bold text-[#2E3238]"
+                              v-title
+                            >
+                              {{ item.name }}
+                            </div>
+                            <div
+                              class="text-sm text-[#6F7889]"
+                              v-title="{ lines: 2 }"
+                            >
+                              {{ item.description }}
+                            </div>
                           </div>
                         </div>
                         <SvgIcon
@@ -467,7 +477,7 @@
                             >
                               <img
                                 src="@/assets/images/knowledge/knowledge-item-icon-2.png"
-                                class="mr-4 h-6 w-6"
+                                class="mr-4 size-6"
                               />
                               <div
                                 class="flex-1 text-sm font-bold text-[#2E3238]"
@@ -558,6 +568,11 @@
       :transfer="state.modelSelect.transfer"
       @refresh="getModel"
     />
+    <workflowSelect
+      v-model:show="state.workflowSelect.show"
+      :transfer="state.workflowSelect.transfer"
+      @refresh="getWorkflow"
+    />
     <templateSelect
       v-model:show="state.templateSelect.show"
       @insert="(val) => ((state.form.tips = val), ref_tips.focus())"
@@ -592,6 +607,8 @@ import { debounce } from 'lodash'
 import chat from '@/views/chat/index.vue'
 import templateSelect from './template-select.vue'
 import templateDetail from './template-detail.vue'
+import workflowSelect from './workflow-select.vue'
+import CzrForm from '@/components/czr-ui/CzrForm.vue'
 
 const DictionaryStore = useDictionaryStore()
 const route = useRoute()
@@ -604,10 +621,22 @@ const state: any = reactive({
   autoSaveTimestamp: '',
   form: {
     tips: '',
-    model: {},
+    model: { name: '' },
     components: [],
-    knowledges: [],
-    workflows: [],
+    knowledges: [
+      {
+        name: '水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水',
+        description:
+          '水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水',
+      },
+    ],
+    workflows: [
+      {
+        name: '水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水',
+        description:
+          '水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水',
+      },
+    ],
     prologue: '',
     prologueQuestions: [
       { value: '1' },
@@ -621,7 +650,7 @@ const state: any = reactive({
     voicePackage: '',
     advise: {
       types: ['open', 'tips', 'knowledge'],
-      model: {},
+      model: { name: '' },
       tips: '',
       knowledges: [],
     },
@@ -634,6 +663,10 @@ const state: any = reactive({
     show: false,
     transfer: {},
   },
+  workflowSelect: {
+    show: false,
+    transfer: {},
+  },
   templateSelect: {
     show: false,
   },
@@ -828,6 +861,15 @@ const onAddTipsTemplate = () => {
 const onTipsTemplate = () => {
   state.templateSelect.show = true
 }
+const onAddWorkflow = () => {
+  state.workflowSelect.transfer = {
+    id: state.form.workflows[0]?.id,
+  }
+  state.workflowSelect.show = true
+}
+const getWorkflow = (val) => {
+  state.form.workflows = [val]
+}
 onMounted(() => {
   initDictionary()
   initDetail()

+ 1 - 1
src/views/manage/app/make/model-select.vue

@@ -56,7 +56,7 @@
                 class="mr-2.5 h-[3.25rem] w-[3.25rem]"
               />
               <div class="flex flex-1 flex-col justify-around overflow-hidden">
-                <div class="text-[1.25rem] font-bold text-[#2E3238]" v-title>
+                <div class="text-xl font-bold text-[#2E3238]" v-title>
                   {{ row.name }}
                 </div>
                 <div class="flex">

+ 289 - 0
src/views/manage/app/make/workflow-select.vue

@@ -0,0 +1,289 @@
+<template>
+  <CzrDialog
+    :show="show"
+    title="选择工作流"
+    @onClose="$emit('update:show', false)"
+    @onSubmit="onSubmit"
+    width="62.5rem"
+    height="auto"
+  >
+    <div
+      class="flex flex-col rounded-lg bg-[var(--czr-dialog-bg)] p-4"
+      v-loading="state.query.loading"
+    >
+      <div>
+        <CzrForm label-width="80px">
+          <CzrFormColumn
+            class="__czr-table-form-column"
+            :span="8"
+            label-width="10px"
+            v-model:param="state.text"
+            placeholder="搜索"
+            :prefix-icon="Search"
+          />
+          <CzrButton
+            type="primary"
+            title="新增"
+            class="ml-auto"
+            @click="onAdd"
+          />
+        </CzrForm>
+      </div>
+      <div
+        class="mt-4 grid max-h-[600px] flex-1 grid-cols-1 gap-4 overflow-y-auto"
+      >
+        <template v-for="row in state.query.result.data">
+          <div
+            class="model cursor-pointer"
+            :class="{
+              active: state.selected?.id == row.id,
+            }"
+            @click="state.selected = row"
+          >
+            <div class="flex">
+              <img
+                src="@/assets/images/workflow/workflow-default-icon.png"
+                class="mr-2.5 size-13"
+              />
+              <div class="flex flex-1 flex-col justify-around overflow-hidden">
+                <div class="text-xl font-bold text-[#2E3238]" v-title>
+                  {{ row.name }}
+                </div>
+                <div class="flex items-center justify-between gap-2">
+                  <div class="flex-1 text-[#909399]" v-title>
+                    {{ row.description }}
+                  </div>
+                  <div
+                    class="__hover ml-auto text-xs text-[var(--czr-main-color)]"
+                    @click.capture.stop="onView(row)"
+                  >
+                    查看
+                  </div>
+                </div>
+              </div>
+            </div>
+            <template v-if="state.selected?.id == row.id">
+              <div
+                class="absolute top-0 right-0 h-[2rem] w-[2rem] bg-[url('@/assets/images/knowledge/checked.png')]"
+              ></div>
+            </template>
+          </div>
+        </template>
+      </div>
+    </div>
+    <CzrDialog
+      :show="state.detail.show"
+      title="创建工作流"
+      @onClose="state.detail.show = false"
+      @onSubmit="onSubmitAdd"
+      width="42.5rem"
+      height="auto"
+    >
+      <div class="bm-form">
+        <CzrForm ref="ref_form" layout="y">
+          <CzrFormColumn
+            required
+            label="工作流名称"
+            :span="24"
+            v-model:param="state.form.name"
+          />
+          <CzrFormColumn
+            label="工作流简介"
+            :span="24"
+            v-model:param="state.form.name"
+            type="textarea"
+            :rows="4"
+          />
+        </CzrForm>
+      </div>
+    </CzrDialog>
+  </CzrDialog>
+</template>
+
+<script setup lang="ts">
+import {
+  computed,
+  getCurrentInstance,
+  nextTick,
+  onMounted,
+  reactive,
+  ref,
+  watch,
+} from 'vue'
+import { debounce } from 'lodash'
+import { datasetsGetAllByPage } from '@/api/modules/knowledge'
+import { useAppStore, useDialogStore, useDictionaryStore } from '@/stores'
+import { Search } from '@element-plus/icons-vue'
+import { pluginGetInstanceList } from '@/api/modules/model'
+import { YMDHms } from '@/utils/czr-util'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import detailCom from '@/views/manage/model/detail.vue'
+import { appAdd, appCopy, appEdit } from '@/api/modules/app'
+
+const DialogStore = useDialogStore()
+const DictionaryStore = useDictionaryStore()
+const emit = defineEmits(['update:show', 'refresh'])
+const { proxy } = getCurrentInstance()
+const props = defineProps({
+  show: { default: false },
+  transfer: <any>{},
+})
+const state: any = reactive({
+  selected: null,
+  text: '',
+  query: {
+    init: false,
+    loading: false,
+    page: {
+      pageNum: 1,
+      pageSize: 20,
+    },
+    form: {},
+    formReal: {},
+    result: {
+      total: 0,
+      data: [],
+    },
+  },
+  detail: {
+    show: false,
+    transfer: {},
+  },
+  form: {},
+})
+const ref_form = ref()
+watch(
+  () => props.show,
+  (n) => {
+    if (n) {
+      state.selected = null
+      onSearch()
+    }
+  },
+)
+const setText = debounce((v) => {
+  state.query.form.keyword = v
+}, 1000)
+watch(
+  () => state.text,
+  (n) => {
+    setText(n)
+  },
+)
+watch(
+  () => state.query.form,
+  (n) => {
+    if (state.query.init) {
+      onSearch()
+    }
+  },
+  { deep: true },
+)
+const onSearch = () => {
+  state.query.formReal = JSON.parse(JSON.stringify(state.query.form))
+  onPage(1, 100000)
+}
+const onPage = (pageNum, pageSize) => {
+  setTimeout(() => {
+    state.query.init = true
+  }, 100)
+  state.query.page = {
+    pageNum: pageNum,
+    pageSize: pageSize,
+  }
+  const params = {
+    page: state.query.page.pageNum,
+    size: state.query.page.pageSize,
+  }
+  //  添加表单参数
+  for (const [k, v] of Object.entries(state.query.formReal)) {
+    if (proxy.$czrUtil.isValue(v)) {
+      params[k] = v
+    }
+  }
+  state.query.loading = true
+  pluginGetInstanceList(params)
+    .then(({ data }: any) => {
+      state.query.result.total = data.total
+      state.query.result.data = data.records
+      state.query.result.data.forEach((v: any) => {
+        if (v.id == props.transfer.id) {
+          state.selected = v
+        }
+      })
+    })
+    .catch(() => {})
+    .finally(() => {
+      state.query.loading = false
+    })
+}
+const onSubmit = () => {
+  if (!state.selected) {
+    ElMessage.warning('请选择工作流!')
+    return
+  }
+  emit('refresh', state.selected)
+  emit('update:show', false)
+}
+
+const onView = (row) => {}
+const onAdd = () => {
+  state.detail.transfer = {
+    type: 'add',
+  }
+  state.detail.show = true
+}
+const onSubmitAdd = () => {
+  ref_form.value
+    .submit()
+    .then(() => {
+      DialogStore.confirm({
+        content: `请确认是否提交?`,
+        onSubmit: () => {
+          // state.loading = true
+          // appAdd(state.form)
+          //   .then(() => {
+          //     ElMessage.success(`${titleCpt.value}成功!`)
+          //     emit('update:show', false)
+          //     emit('refresh')
+          //   })
+          //   .catch(() => {})
+          //   .finally(() => {
+          //     state.loading = false
+          //   })
+        },
+      })
+    })
+    .catch((e) => {
+      ElMessage({
+        message: e[0].message,
+        grouping: true,
+        type: 'warning',
+      })
+    })
+}
+onMounted(() => {
+  initDictionary()
+})
+const initDictionary = () => {
+  DictionaryStore.initModelTypes()
+  DictionaryStore.initModelProvides()
+}
+</script>
+
+<style lang="scss" scoped>
+.model {
+  width: 100%;
+  padding: 1rem;
+  border-radius: 10px;
+  box-shadow: 0rem 0.25rem 0.63rem 0rem rgba(40, 83, 247, 0.05);
+  border: var(--czr-border);
+  display: flex;
+  flex-direction: column;
+  position: relative;
+  overflow: hidden;
+  &.active {
+    border-color: var(--czr-main-color);
+  }
+}
+</style>

+ 7 - 15
src/views/manage/app/monitor/index.vue

@@ -75,7 +75,7 @@
             >
               <div class="relative z-10">
                 <div
-                  class="title-1 mt-[1.63rem] ml-[2.25rem] text-[1.25rem] font-bold text-[#2E3238]"
+                  class="title-1 mt-[1.63rem] ml-[2.25rem] text-xl font-bold text-[#2E3238]"
                 >
                   累计Token消耗
                 </div>
@@ -95,7 +95,7 @@
             >
               <div class="relative z-10">
                 <div
-                  class="title-1 mt-[1.63rem] ml-[2.25rem] text-[1.25rem] font-bold text-[#2E3238]"
+                  class="title-1 mt-[1.63rem] ml-[2.25rem] text-xl font-bold text-[#2E3238]"
                 >
                   累计用户数
                 </div>
@@ -114,7 +114,7 @@
             >
               <div class="relative z-10">
                 <div
-                  class="title-1 mt-[1.63rem] ml-[2.25rem] text-[1.25rem] font-bold text-[#2E3238]"
+                  class="title-1 mt-[1.63rem] ml-[2.25rem] text-xl font-bold text-[#2E3238]"
                 >
                   累计对话数
                 </div>
@@ -136,9 +136,7 @@
             <div
               class="col-span-1 flex h-[23rem] flex-col rounded-xl border-1 border-[#dfebfe] p-4"
             >
-              <div
-                class="flex h-[2.25rem] items-center text-[1.25rem] text-[#2E3238]"
-              >
+              <div class="flex h-[2.25rem] items-center text-xl text-[#2E3238]">
                 Token消耗量
                 <CzrFormColumn
                   class="__czr-table-form-column ml-auto"
@@ -196,9 +194,7 @@
             <div
               class="col-span-1 flex h-[23rem] flex-col rounded-xl border-1 border-[#dfebfe] p-4"
             >
-              <div
-                class="flex h-[2.25rem] items-center text-[1.25rem] text-[#2E3238]"
-              >
+              <div class="flex h-[2.25rem] items-center text-xl text-[#2E3238]">
                 用户来源
               </div>
               <div class="mt-2.5 grid flex-1">
@@ -208,9 +204,7 @@
             <div
               class="col-span-1 flex h-[23rem] flex-col rounded-xl border-1 border-[#dfebfe] p-4"
             >
-              <div
-                class="flex h-[2.25rem] items-center text-[1.25rem] text-[#2E3238]"
-              >
+              <div class="flex h-[2.25rem] items-center text-xl text-[#2E3238]">
                 全部会话数
               </div>
               <div class="mt-2.5 grid flex-1 grid-cols-3">
@@ -254,9 +248,7 @@
             <div
               class="col-span-1 flex h-[23rem] flex-col rounded-xl border-1 border-[#dfebfe] p-4"
             >
-              <div
-                class="flex h-[2.25rem] items-center text-[1.25rem] text-[#2E3238]"
-              >
+              <div class="flex h-[2.25rem] items-center text-xl text-[#2E3238]">
                 活跃用户数
               </div>
               <div class="mt-2.5 grid flex-1 grid-cols-3">

+ 1 - 1
src/views/manage/knowledge/documents/document/stage-index.vue

@@ -2,7 +2,7 @@
   <div class="mt-[1.5rem] flex flex-1 flex-col gap-4 overflow-hidden">
     <div class="flex items-center">
       <div
-        class="__hover flex items-center gap-2 text-[1.25rem] text-[#303133]"
+        class="__hover flex items-center gap-2 text-xl text-[#303133]"
         @click="$emit('update:show', false)"
       >
         <SvgIcon name="czr_arrow" :rotate="180" size="12" />

+ 1 - 1
src/views/manage/knowledge/documents/test/index.vue

@@ -70,7 +70,7 @@
                 </div>
                 Chunk-{{ index + 1 }}·{{ item.wordCount }} 字符
               </div>
-              <div class="mt-2 text-[1.25rem] font-bold text-[#21262D]">
+              <div class="mt-2 text-xl font-bold text-[#21262D]">
                 {{ item.text }}
               </div>
               <div class="mt-2.5 flex flex-wrap gap-2 text-sm text-[#576275]">

+ 2 - 2
src/views/manage/knowledge/index.vue

@@ -76,7 +76,7 @@
               @click="onAdd"
             >
               <img src="@/assets/images/knowledge/knowledge-item-add.png" />
-              <span class="ml-2.5 text-[1.25rem] text-[var(--czr-main-color)]"
+              <span class="ml-2.5 text-xl text-[var(--czr-main-color)]"
                 >创建知识库</span
               >
             </div>
@@ -103,7 +103,7 @@
                 >
                   <div class="flex items-center">
                     <div
-                      class="flex-1 text-[1.25rem] font-bold text-[#2E3238]"
+                      class="flex-1 text-xl font-bold text-[#2E3238]"
                       v-title
                     >
                       {{ row.name }}

+ 2 - 5
src/views/manage/knowledge/knowledge-card.vue

@@ -28,14 +28,11 @@
           <div class="flex">
             <img
               src="@/assets/images/knowledge/knowledge-item-icon.png"
-              class="mr-2.5 h-11 w-11"
+              class="mr-2.5 size-11"
             />
             <div class="flex flex-1 flex-col justify-around overflow-hidden">
               <div class="flex items-center">
-                <div
-                  class="flex-1 text-[1.25rem] font-bold text-[#2E3238]"
-                  v-title
-                >
+                <div class="flex-1 text-xl font-bold text-[#2E3238]" v-title>
                   {{ item.name }}
                 </div>
               </div>

+ 7 - 11
src/views/manage/knowledge/model-config.vue

@@ -13,7 +13,7 @@
             src="@/assets/images/model/model-icon-1.png"
             class="mr-2.5 h-[3.25rem] w-[3.25rem]"
           />
-          <div class="text-[1.25rem] font-bold text-[#2E3238]">高质量</div>
+          <div class="text-xl font-bold text-[#2E3238]">高质量</div>
           <img
             src="@/assets/images/model/model-icon-3.png"
             class="h-[1.27rem] w-[2.88rem]"
@@ -34,7 +34,7 @@
       <!--            src="@/assets/images/model/model-icon-2.png"-->
       <!--            class="mr-[var(&#45;&#45;czr-gap)] h-[3.25rem] w-[3.25rem]"-->
       <!--          />-->
-      <!--          <div class="text-[1.25rem] font-bold text-[#2E3238]">经济</div>-->
+      <!--          <div class="text-xl font-bold text-[#2E3238]">经济</div>-->
       <!--        </div>-->
       <!--        <div-->
       <!--          class="mt-2 text-sm text-[#606266]"-->
@@ -89,7 +89,7 @@
             src="@/assets/images/model/model-icon-4.png"
             class="mr-2.5 h-[3.25rem] w-[3.25rem]"
           />
-          <div class="text-[1.25rem] font-bold text-[#2E3238]">
+          <div class="text-xl font-bold text-[#2E3238]">
             {{ SearchMethodTypeMap.get(SearchMethodType.Vector) }}
           </div>
         </div>
@@ -205,7 +205,7 @@
             src="@/assets/images/model/model-icon-5.png"
             class="mr-2.5 h-[3.25rem] w-[3.25rem]"
           />
-          <div class="text-[1.25rem] font-bold text-[#2E3238]">
+          <div class="text-xl font-bold text-[#2E3238]">
             {{ SearchMethodTypeMap.get(SearchMethodType.Global) }}
           </div>
         </div>
@@ -324,7 +324,7 @@
             src="@/assets/images/model/model-icon-6.png"
             class="mr-2.5 h-[3.25rem] w-[3.25rem]"
           />
-          <div class="text-[1.25rem] font-bold text-[#2E3238]">
+          <div class="text-xl font-bold text-[#2E3238]">
             {{ SearchMethodTypeMap.get(SearchMethodType.Mix) }}
           </div>
           <img
@@ -356,9 +356,7 @@
                   src="@/assets/images/model/model-icon-8.png"
                   class="mr-2.5 h-[3.25rem] w-[3.25rem]"
                 />
-                <div class="text-[1.25rem] font-bold text-[#2E3238]">
-                  权重设置
-                </div>
+                <div class="text-xl font-bold text-[#2E3238]">权重设置</div>
                 <img
                   src="@/assets/images/model/model-icon-3.png"
                   class="h-[1.27rem] w-[2.88rem]"
@@ -390,9 +388,7 @@
                   src="@/assets/images/model/model-icon-9.png"
                   class="mr-2.5 h-[3.25rem] w-[3.25rem]"
                 />
-                <div class="text-[1.25rem] font-bold text-[#2E3238]">
-                  Rerank 模型
-                </div>
+                <div class="text-xl font-bold text-[#2E3238]">Rerank 模型</div>
               </div>
               <div
                 class="mt-2 text-sm text-[#606266]"

+ 3 - 3
src/views/manage/knowledge/upload/stage-config.vue

@@ -13,7 +13,7 @@
           src="@/assets/images/knowledge/stage-icon-1.png"
           class="mr-2.5 h-[3.25rem] w-[3.25rem]"
         />
-        <div class="text-[1.25rem] font-bold text-[#2E3238]">
+        <div class="text-xl font-bold text-[#2E3238]">
           {{ StageMethodTypeMap.get(StageMethodType.Fixed) }}
 
           <div
@@ -121,7 +121,7 @@
           src="@/assets/images/knowledge/stage-icon-2.png"
           class="mr-2.5 h-[3.25rem] w-[3.25rem]"
         />
-        <div class="text-[1.25rem] font-bold text-[#2E3238]">
+        <div class="text-xl font-bold text-[#2E3238]">
           {{ StageMethodTypeMap.get(StageMethodType.Split) }}
           <div
             class="mt-1 text-sm font-normal text-[#606266]"
@@ -247,7 +247,7 @@
           src="@/assets/images/knowledge/stage-icon-3.png"
           class="mr-2.5 h-[3.25rem] w-[3.25rem]"
         />
-        <div class="text-[1.25rem] font-bold text-[#2E3238]">
+        <div class="text-xl font-bold text-[#2E3238]">
           {{ StageMethodTypeMap.get(StageMethodType.FatherSon) }}
           <div
             class="mt-1 text-sm font-normal text-[#606266]"

+ 1 - 1
src/views/manage/model/index.vue

@@ -65,7 +65,7 @@
                 class="mr-2.5 h-[3.25rem] w-[3.25rem]"
               />
               <div class="flex flex-1 flex-col justify-around overflow-hidden">
-                <div class="text-[1.25rem] font-bold text-[#2E3238]" v-title>
+                <div class="text-xl font-bold text-[#2E3238]" v-title>
                   {{ row.name }}
                 </div>
                 <div class="flex">

+ 1 - 1
src/views/manage/model/statistic/index.vue

@@ -13,7 +13,7 @@
         class="mr-2.5 h-[3.25rem] w-[3.25rem]"
       />
       <div class="flex flex-1 flex-col justify-around overflow-hidden">
-        <div class="flex items-center text-[1.25rem] font-bold text-[#2E3238]">
+        <div class="flex items-center text-xl font-bold text-[#2E3238]">
           <div v-title>{{ state.detail.name }}</div>
           <div
             v-if="state.detail.status == 1"