houzhongjian
2024-09-29 916cca6558ededc70fa8724afef6052ea4e998f0
Merge remote-tracking branch 'origin/master'
已修改5个文件
99 ■■■■■ 文件已修改
.env.test 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/model/mpk/file/MpkForm.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/model/mpk/file/MpkGenerator.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/model/mpk/file/MpkRun.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/model/mpk/project/ProjectForm.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.test
@@ -4,12 +4,12 @@
VITE_DEV=false
# 请求路径
VITE_BASE_URL='http://localhost:48080'
VITE_BASE_URL='http://172.16.8.100:48080'
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
VITE_UPLOAD_TYPE=server
# 上传路径
VITE_UPLOAD_URL='http://localhost:48080/admin-api/infra/file/upload'
VITE_UPLOAD_URL='http://172.16.8.100:48080/admin-api/infra/file/upload'
# 接口地址
VITE_API_URL=/admin-api
src/views/model/mpk/file/MpkForm.vue
@@ -47,10 +47,12 @@
              :on-success="submitFormSuccess"
              accept=".pyd"
            >
              <el-button type="primary">
                <Icon icon="ep:upload"/>
                模型上传
              </el-button>
              <el-tooltip content="上传.pyd算法文件" placement="top" effect="light">
                <el-button type="primary">
                  <Icon icon="ep:upload"/>
                  模型上传
                </el-button>
              </el-tooltip>
            </el-upload>
          </el-col>
        </el-row>
@@ -195,7 +197,7 @@
                      <el-button
                        @click="updateSetting(scope.row)"
                        key="danger"
                        type="danger"
                        type="primary"
                        link
                      >修改
                      </el-button>
src/views/model/mpk/file/MpkGenerator.vue
@@ -1,10 +1,22 @@
<template>
  <Dialog v-model="dialogVisible" :title="dialogTitle">
    <el-input
      type="textarea"
      :rows="4"
      placeholder="备注"
      v-model="remark"/>
    <el-form
      ref="formRef"
      :model="formData"
      :rules="formRules"
      label-width="0px"
    >
      <el-form-item prop="pyName">
        <el-input v-model="formData.pyName" readonly />
      </el-form-item>
      <el-form-item prop="remark">
        <el-input
          type="textarea"
          :rows="4"
          placeholder="备注"
          v-model="formData.remark"/>
      </el-form-item>
    </el-form>
    <div style="width: 100%;display: flex;flex-direction: row;justify-content: end;margin-top: 16px">
      <el-button @click="generatorCode()" type="primary">生成</el-button>
    </div>
@@ -22,28 +34,39 @@
  const dialogVisible = ref(false) // 弹窗的是否展示
  const dialogTitle = ref('生成代码') // 弹窗的标题
  const remark = ref('')
  const id = ref()
  const zipFileName = ref()
  const formData = ref({
    id: undefined,
    pyName: '',
    zipFileName: '',
    remark: ''
  })
  const formRules = reactive({
  })
  const formRef = ref()
  /** 打开弹窗 */
  const open = async (modelId: string,pyName: string) => {
    dialogVisible.value = true
    id.value = modelId;
    zipFileName.value = pyName + '_' + formatToDateString(new Date()) + '.zip';
    remark.value = "";
    resetForm()
    formData.value.id = modelId
    formData.value.pyName = pyName
    formData.value.zipFileName = pyName + '_' + formatToDateString(new Date()) + '.zip';
  }
  defineExpose({ open }) // 提供 open 方法,用于打开弹窗
  /** 提交表单 */
  const generatorCode = async () => {
    const param = {
      'id': id.value,
      'remark': remark.value,
      'zipFileName': zipFileName.value
    }
    const data = await MpkApi.generatorCode(param)
    download.zip(data, zipFileName.value)
    const data = await MpkApi.generatorCode(formData.value)
    download.zip(data, formData.value.zipFileName)
    dialogVisible.value = false
  }
  /** 重置表单 */
  const resetForm = () => {
    formData.value = {
      id: undefined,
      zipFileName: '',
      remark: ''
    }
    formRef.value?.resetFields()
  }
</script>
src/views/model/mpk/file/MpkRun.vue
@@ -116,6 +116,7 @@
  const dialogTitle = ref('模型运行') // 弹窗的标题
  const formData = reactive({
    pyName: '',
    className: '',
    methodName: '',
    datas: [],
@@ -131,6 +132,7 @@
  const open = async (row) => {
    dialogVisible.value = true
    formData.className = row.pkgName + '.impl.' + row.pyName + 'Impl';
    formData.pyName = row.pyName;
    const mpk = await MpkApi.getMpk(row.id)
    methodList.value = mpk.modelMethods
    formData.methodName = mpk.modelMethods[0].methodName
src/views/model/mpk/project/ProjectForm.vue
@@ -1,5 +1,5 @@
<template>
  <Dialog v-model="dialogVisible" :title="dialogTitle">
  <Dialog v-model="dialogVisible" :title="dialogTitle" width="60%">
    <el-form
      ref="formRef"
      v-loading="formLoading"
@@ -8,25 +8,25 @@
      label-width="80px"
    >
      <el-row :gutter="20">
        <el-col :span="20">
          <el-form-item label="项目名称" prop="projectName" style="width: 100%">
            <el-input v-model="formData.projectName" placeholder="" style="width: 100%"/>
        <el-col :span="10">
          <el-form-item label="项目名称" prop="projectName">
            <el-input v-model="formData.projectName" placeholder=""/>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="20">
          <el-form-item label="项目编码" prop="projectCode" style="width: 100%">
            <el-input v-model="formData.projectCode" placeholder="" style="width: 100%"/>
        <el-col :span="10">
          <el-form-item label="项目编码" prop="projectCode">
            <el-input v-model="formData.projectCode" placeholder=""/>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col>
        <el-col :span="24">
          <el-form-item label="关联模型" prop="models">
            <el-transfer :props="{key: 'id',label: 'pyName'}" :titles="['未选模型', '已选模型']" target-order="unshift" filterable :filter-method="filterMethod" v-model="formData.models" :data="modelList">
            <el-transfer style="width: 100%" :props="{key: 'id',label: 'pyName'}" :titles="['未选模型', '已选模型']" target-order="unshift" filterable :filter-method="filterMethod" v-model="formData.models" :data="modelList">
              <template #default="{ option }">
                <span :title="option.pyChineseName">{{ option.pyName}}</span>
                <span :title="option.pyName + '【' + option.pyChineseName + '】'">{{ option.pyName}}</span>
              </template>
            </el-transfer>
          </el-form-item>
@@ -148,6 +148,6 @@
<style scoped>
  :deep(.el-transfer-panel) {
    width: 35%;
    width: 40%;
  }
</style>