CzRger 2 月之前
父节点
当前提交
7ff96860ef
共有 2 个文件被更改,包括 197 次插入22 次删除
  1. 187 0
      src/views/manage/model/detail.vue
  2. 10 22
      src/views/manage/model/index.vue

+ 187 - 0
src/views/manage/model/detail.vue

@@ -0,0 +1,187 @@
+<template>
+  <CzrDialog
+    :show="show"
+    :title="titleCpt"
+    @onClose="$emit('update:show', false)"
+    @onSubmit="onSubmit"
+    width="62.5rem"
+    height="auto"
+    max-height="90%"
+    :loading="state.loading"
+  >
+    <div class="bm-form">
+      <CzrForm ref="ref_form" :form-view="isViewCpt">
+        <div class="__czr-title_1">基本信息</div>
+        <CzrFormColumn
+          required
+          :span="12"
+          label="模型供应商"
+          v-model:param="state.form.name"
+          link="select"
+          :options="[]"
+        />
+        <CzrFormColumn
+          required
+          :span="12"
+          label="模型类型"
+          v-model:param="state.form.name"
+          link="select"
+          :options="[]"
+        />
+        <CzrFormColumn
+          required
+          :span="24"
+          label="模型名称"
+          v-model:param="state.form.name"
+        />
+        <CzrFormColumn
+          :span="24"
+          label="模型简介"
+          v-model:param="state.form.remark"
+          type="textarea"
+          :rows="4"
+        />
+        <CzrFormColumn
+          required
+          :span="24"
+          label="共享条件"
+          v-model:param="state.form.name"
+          link="radio"
+          :options="[
+            {label: '不开放', value: 0},
+            {label: '全部开放', value: 1},
+            {label: '申请开放', value: 2},
+          ]"
+        />
+        <div class="__czr-title_1">模型参数配置</div>
+        <CzrFormColumn
+          required
+          :span="12"
+          label="基础URL"
+          v-model:param="state.form.name"
+        />
+        <CzrFormColumn
+          required
+          :span="12"
+          label="上下文长度"
+          v-model:param="state.form.name"
+          link="number"
+        />
+        <CzrFormColumn
+          required
+          :span="12"
+          label="最大Token上限"
+          v-model:param="state.form.name"
+          link="number"
+        />
+        <CzrFormColumn
+          :span="12"
+          label="Vision"
+          v-model:param="state.form.name"
+          link="radio"
+          :options="[
+            {label: '支持', value: 0},
+            {label: '不支持', value: 1},
+          ]"
+        />
+        <CzrFormColumn
+          :span="12"
+          label="函数调用"
+          v-model:param="state.form.name"
+          link="radio"
+          :options="[
+            {label: '支持', value: 0},
+            {label: '不支持', value: 1},
+          ]"
+        />
+        <div class="__czr-title_1">业务参数配置</div>
+        <CzrFormColumn
+          required
+          :span="12"
+          label="待定"
+          v-model:param="state.form.name"
+        />
+        <CzrFormColumn
+          required
+          :span="12"
+          label="待定"
+          v-model:param="state.form.name"
+        />
+      </CzrForm>
+    </div>
+  </CzrDialog>
+</template>
+
+<script setup lang="ts">
+import {computed, getCurrentInstance, nextTick, reactive, ref, watch} from "vue";
+import {ElMessage, ElMessageBox} from "element-plus";
+import {useDialogStore, useDictionaryStore} from "@/stores";
+import {useRouter} from "vue-router";
+
+const router = useRouter()
+const DictionaryStore = useDictionaryStore();
+const DialogStore = useDialogStore();
+const emit = defineEmits(['update:show', 'refresh'])
+const {proxy} = getCurrentInstance()
+const props = defineProps({
+  show: {default: false},
+  transfer: <any>{}
+})
+const state: any = reactive({
+  loading: false,
+  form: {}
+})
+const ref_form = ref()
+const titleCpt = computed(() => {
+  let t = '模型'
+  switch (props.transfer.mode) {
+    case 'add': t = '创建' + t
+      break
+    case 'edit': t = '编辑' + t
+      break
+    case 'view': t = '查看' + t
+      break
+  }
+  return t
+})
+const isViewCpt = computed(() => props.transfer?.mode === 'view')
+watch(() => props.show, (n) => {
+  if (n) {
+    initDictionary()
+    state.form = {}
+    if (props.transfer.mode !== 'add') {
+      initData()
+    }
+    nextTick(() => {
+      ref_form.value.reset()
+    })
+  }
+})
+const initDictionary = () => {
+}
+const initData = () => {
+}
+const onSubmit = (isImport) => {
+  ref_form.value.submit().then(() => {
+    DialogStore.confirm({
+      content: `请确认是否提交?`,
+      onSubmit: () => {
+        state.loading = true
+        ElMessage.success(`${titleCpt.value}成功!`)
+        emit('update:show', false)
+        emit('refresh')
+        state.loading = false
+      }
+    })
+  }).catch((e) => {
+    ElMessage({
+      message: e[0].message,
+      grouping: true,
+      type: 'warning',
+    })
+  })
+}
+</script>
+
+<style lang="scss" scoped>
+</style>

文件差异内容过多而无法显示
+ 10 - 22
src/views/manage/model/index.vue