zhangxiao
2024-08-14 dc3fb06f6d3253ddebf35fec2d805b1750086b01
fix: 上传组件新增删除功能,模型管理页面修改
3个文件已修改
92 ■■■■ 已修改文件
src/components/upload/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dmx/model/components/addPageModel.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dmx/model/index.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/upload/index.vue
@@ -5,6 +5,7 @@
    :limit="limit"
    :action="action"
    @change="handleChange"
    @before-remove="beforeRemove"
    image-preview
  />
</template>
@@ -23,7 +24,7 @@
    url: String, //回显的文件地址
  });
  const emit = defineEmits(['update:fileList', 'success']);
  const emit = defineEmits(['update:fileList', 'success', 'handleRemove']);
  const urls = computed(() => props.url);
  const fileList = ref([]);
@@ -62,6 +63,10 @@
  });
  // console.log(urls.value, 8988);
  const beforeRemove = (file) => {
    emit('handleRemove');
    fileList.value = [];
  };
  const handleChange = (fileList) => {
    emit('update:fileList', fileList);
src/views/dmx/model/components/addPageModel.vue
@@ -49,19 +49,27 @@
        <a-form-item field="name" label="API-Key">
          <a-input v-model="form.name" placeholder="API-Key" />
        </a-form-item>
        <!-- <a-form-item
        <!-- <a-form-item field="describe" label="Base-Url">
          <a-input v-model="form.name" placeholder="Base-Url" />
        </a-form-item> -->
        <a-form-item
          field="raptor"
          label="是否支持 Vision"
          v-if="form.model_type === 'chat'"
        >
          <a-switch v-model="form.raptor" />
        </a-form-item> -->
        </a-form-item>
        <a-form-item field="logo" label="模型图片">
          <a-space direction="vertical" :style="{ width: '100%' }">
          <a-space
            direction="vertical"
            v-model="form.logo"
            :style="{ width: '100%' }"
          >
            <Upload
              :action="uploadAction"
              :limit="1"
              :url="form.urlS"
              @handleRemove="deleteRemove"
              @update:fileList="updateFileList"
              @success="handleSuccess"
            ></Upload>
@@ -115,6 +123,7 @@
              :action="uploadAction"
              :limit="1"
              :url="form.urlS"
              @handleRemove="deleteRemove"
              @update:fileList="updateFileList"
              @success="handleSuccess"
            ></Upload>
@@ -223,6 +232,12 @@
        message: '请输入api_base',
      },
    ],
    logo: [
      {
        required: true,
        message: '模型图片不能为空',
      },
    ],
  };
  const uploadAction = '/api/v1/llm/upload'; // 替换为你的上传API
@@ -237,12 +252,19 @@
  const handleSuccess = (urls) => {
    uploadUrl.value = urls;
    form.logo = urls[0];
    const urlsArr = urls.map((url) => {
      return httpUrl + url;
    });
    imageUrls.value = urlsArr; // 拿到上传的图片地址
  };
  const deleteRemove = () => {
    form.logo = '';
    uploadUrl.value = [];
    imageUrls.value = [];
  };
  const emit = defineEmits(['refresh-parent']);
  const handleSubmit = ({ values, errors }) => {
    const all_params = form.addFomList.map((item) => {
src/views/dmx/model/index.vue
@@ -61,6 +61,9 @@
                          <div class="arco-btn-group">
                            <a-space class="btn-group">
                              <!-- <editModel></editModel> -->
                              <a-button @click="handleDeleteModel(item, 1)">
                                删除
                              </a-button>
                              <a-button
                                type="primary"
                                @click="handleEditModel(item, 1)"
@@ -201,6 +204,7 @@
    key: {
      tags: '添加key',
      id: 1,
      live: 1,
    },
  });
@@ -251,27 +255,31 @@
  };
  //删除模型
  const handleDeleteModel = (val) => {
    Modal.confirm({
      title: '警告',
      content: '确认删除吗',
      okText: '确定',
      cancelText: '取消',
      onOk: async () => {
        const factory = tabKey.value;
        const res = await deleteLlm({
          llm_factory: tabKey.value,
          llm_name: val.name,
        });
  const handleDeleteModel = (val, type) => {
    if (type == 1) {
      handleDelete(val);
    } else {
      Modal.confirm({
        title: '警告',
        content: '确认删除吗',
        okText: '确定',
        cancelText: '取消',
        onOk: async () => {
          const factory = tabKey.value;
          const res = await deleteLlm({
            llm_factory: tabKey.value,
            llm_name: val.name,
          });
        if ((res as any).code == 0) {
          queryModel();
          tabKey.value = factory;
        } else {
        }
      },
      onCancel: () => {},
    });
          if ((res as any).code == 0) {
            queryModel();
            tabKey.value = factory;
          } else {
          }
        },
        onCancel: () => {},
      });
    }
  };
  //父级模型
@@ -326,6 +334,15 @@
    tabData.value = Object.assign({}, tabData.value, res.data);
  };
  queryModel();
  //返回满足条件的对象
  const filterObject = (obj, threshold) => {
    return Object.keys(obj)
      .filter((key) => obj[key] > threshold)
      .reduce((result, key) => {
        result[key] = obj[key];
        return result;
      }, {});
  };
  const refreshParentMethod = () => {
    queryModel();