nanjingliujinyu 6 місяців тому
батько
коміт
9ac1b5ecba

+ 2 - 2
ruoyi-ui/.env.development

@@ -10,8 +10,8 @@ VITE_APP_BASE_Title = '/sh'
 # 若依管理系统/生产环境
 VITE_APP_BASE_API = '/sh-api'
 
-# VITE_DEV_PATH = 'http://localhost:8082'
-VITE_DEV_PATH = 'http://39.98.38.2:18082/sh-api'
+VITE_DEV_PATH = 'http://localhost:8082'
+# VITE_DEV_PATH = 'http://39.98.38.2:18082/sh-api'
 
 # 是否在打包时开启压缩,支持 gzip 和 brotli
 VITE_BUILD_COMPRESS = gzip

+ 20 - 0
ruoyi-ui/src/api/register/regCom.js

@@ -0,0 +1,20 @@
+import request from "@/utils/request";
+
+export function getModelList(data) {
+  return request.get("model/info/list", data);
+}
+
+export function addModel(data) {
+  return request.post("model/info", data);
+}
+
+export function getServiceApply(id) {
+  return request.get(`/pt/service/apply/${id}`);
+}
+
+export function delMdid(id) {
+  return request({
+    url: '/model/info/' + id,
+    method: 'delete'
+  })
+}

+ 2 - 4
ruoyi-ui/src/views/index.vue

@@ -1,6 +1,5 @@
 <template>
-  <!-- 表格1 -->
-  <el-table :data="tableData" row-key="id" class="draggable-table" height="500">
+  <!-- <el-table :data="tableData" row-key="id" class="draggable-table" height="500">
     <el-table-column width="80">
       <template #default>
         <el-icon class="drag-handle"><Sort /></el-icon>
@@ -9,7 +8,6 @@
     <el-table-column prop="date1" label="操作名称"></el-table-column>
   </el-table>
 
-  <!-- 表格2 -->
   <el-table :data="tableData1" row-key="id" class="draggable-table" height="500">
     <el-table-column width="80">
       <template #default>
@@ -17,7 +15,7 @@
       </template>
     </el-table-column>
     <el-table-column prop="task" label="任务名称"></el-table-column>
-  </el-table>
+  </el-table> -->
 </template>
 
 <script setup>

+ 196 - 173
ruoyi-ui/src/views/register/componentReg/index.vue

@@ -45,7 +45,7 @@
         <div style="display: flex;width: 20%;align-items: center;margin-left: 8%;">
             <el-button type="primary" style="margin-left: 5%;" :icon="Search">查询</el-button>
             <el-button type="primary" style="margin-left: 5%;" icon="Refresh">重置</el-button>
-            <el-button type="primary" style="margin-left:5%;" icon="Plus">注册</el-button>
+            <el-button type="primary" style="margin-left:5%;" @click="reg" icon="Plus">注册</el-button>
             <el-button type="" style="margin-left:5%;" plain icon="Plus">切换展示模式</el-button>
         </div>
     </div>
@@ -72,11 +72,11 @@
         :max-height="tableheight">
         <el-table-column type="selection" width="55"></el-table-column>
         <el-table-column type="index" label="序号"></el-table-column>
-        <el-table-column prop="date" label="组件名称" width="250">
+        <el-table-column prop="name" label="组件名称" width="250">
 
         </el-table-column>
-        <el-table-column prop="name" label="组件分类" width="160"/>
-        <el-table-column prop="address1" label="提供单位" width="160"/>
+        <el-table-column prop="className" label="组件分类" width="160"/>
+        <el-table-column prop="mdUnit" label="提供单位" width="160"/>
         <el-table-column prop="address2" label="注册人员" width="100"/>
         <el-table-column prop="st3" label="模型测试" width="140">
             <template #default="scope">
@@ -92,14 +92,14 @@
               <el-button v-if="scope.row.st2=='3'" type="" plain>暂无评价</el-button>
             </template>
         </el-table-column>
-        <el-table-column prop="st2" label="是否发布" width="140">
+        <el-table-column prop="isPublic" label="是否发布" width="140">
             <template #default="scope">
               <el-button v-if="scope.row.st3=='1'" type="success" plain>已发布</el-button>
               <el-button v-if="scope.row.st3=='2'" type="danger" plain>未发布</el-button>
             </template>
         </el-table-column>
-        <el-table-column prop="tm" label="发布时间" width="170"/>
-        <el-table-column prop="ver" label="版本" width="120"/>
+        <el-table-column prop="modifyBy" label="发布时间" width="170"/>
+        <el-table-column prop="version" label="版本" width="120"/>
         <el-table-column prop="address" label="操作" >
             <template #default="scope">
                 <div style="display: flex;justify-content: space-between;width: 80%;">
@@ -108,7 +108,7 @@
                     <el-button type="warning" text size="mini" style="margin-left: -5%;">重置测试</el-button>
                     <el-button type="primary" text size="mini" style="margin-left: -5%;">测试</el-button>
                     <el-button type="primary" size="mini" text style="margin-left: -5%;">编辑</el-button>
-                    <el-button type="danger" text size="mini" style="margin-left: -5%;">注销</el-button>
+                    <el-button type="danger" text size="mini" style="margin-left: -5%;" @click="handleDelete(scope.row)">注销</el-button>
                     <el-button type="primary" text size="mini" style="margin-left: -5%;">查看</el-button>
                     <el-button type="primary" text size="mini" style="margin-left: -5%;">后处理</el-button>
                 </div>
@@ -131,108 +131,110 @@
             <el-step title="第三步"></el-step>
             <el-step title="第四步"></el-step>
           </el-steps>
-            <div v-if="active==0" style="margin-left: 1%;margin-top: 1%;display: flex;align-items: center;">
+            <div v-if="active==0">
+              <div v-if="active==0" style="margin-left: 1%;margin-top: 1%;display: flex;align-items: center;">
                 <div style="background-color: blue;width: 2px;height: 16px;"></div>
                 <div style="font-weight: bold;font-size: 16px;margin-left: 0.5%;">基本信息</div>
-            </div>
-            <div v-if="active==0" style="margin-left: 1%;margin-top: 1%;">
-                <el-form style="margin-left: 5%;"  :model="form" class="demo-form-inline" :rules="rules">
-                    <el-row :gutter="40">
-                    <el-col :span="9">
-                        <el-form-item label="组件名称:" prop="name">
-                        <el-input v-model="form.user" />
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="9">
-                        <el-form-item label="版本号:" prop="name">
-                            <el-input v-model="form.region" />
-                        </el-form-item>
-                    </el-col>
-                    </el-row>
-                    <el-row :gutter="40" style="margin-top: 1%;">
-                    <el-col :span="9" >
-                        <el-form-item label="组件英文名称:" prop="name"> 
-                          <el-input v-model="form.user" />
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="9">
-                        <el-form-item label="排序:" prop="name">
-                            <el-input v-model="form.region" />
-                        </el-form-item>
-                    </el-col>
-                    </el-row>
-                     <el-row :gutter="40" style="margin-top: 1%;">
-                    <el-col :span="9" >
-                        <el-form-item label="模型分类:" prop="name">
-                            <el-select
-                            v-model="value"
-                            style="width: 100%;margin-left: 1%;"
-                        >
+              </div>
+              <div v-if="active==0" style="margin-left: 1%;margin-top: 1%;">
+                  <el-form style="margin-left: 5%;"  :model="form" class="demo-form-inline" :rules="rules">
+                      <el-row :gutter="40">
+                      <el-col :span="9">
+                          <el-form-item label="组件名称:" prop="name">
+                          <el-input v-model="form.name" />
+                          </el-form-item>
+                      </el-col>
+                      <el-col :span="9">
+                          <el-form-item label="版本号:" prop="version">
+                              <el-input v-model="form.version" />
+                          </el-form-item>
+                      </el-col>
+                      </el-row>
+                      <el-row :gutter="40" style="margin-top: 1%;">
+                      <el-col :span="9" >
+                          <el-form-item label="组件英文名称:" prop="enname"> 
+                            <el-input v-model="form.enname" />
+                          </el-form-item>
+                      </el-col>
+                      <el-col :span="9">
+                          <el-form-item label="排序:" prop="">
+                              <el-input v-model="form.region" />
+                          </el-form-item>
+                      </el-col>
+                      </el-row>
+                      <el-row :gutter="40" style="margin-top: 1%;">
+                      <el-col :span="9" >
+                          <el-form-item label="模型分类:" prop="type">
+                              <el-select
+                              v-model="form.type"
+                              style="width: 100%;margin-left: 1%;"
+                          >
+                              <el-option
+                              v-for="item in options"
+                              :key="item.value"
+                              :label="item.label"
+                              :value="item.value"
+                              />
+                          </el-select>
+                          </el-form-item>
+                      </el-col>
+                      <el-col :span="9">
+                          <el-form-item label="开发语言:">
+                              <el-radio-group v-model="form.devlang" class="ml-4" size="small" style="margin-top: -10%;">
+                                  <el-radio label="1" size="large">C++</el-radio>
+                                  <el-radio label="2" size="large">.net</el-radio>    
+                                  <el-radio label="2" size="large">java</el-radio>
+                                  <el-radio label="2" size="large">Python</el-radio>
+                                  <el-radio label="2" size="large">其他</el-radio>
+                              </el-radio-group>
+                          </el-form-item>
+                      </el-col>
+                      </el-row>
+                      <el-form-item label="组件简介:">
+                          <el-input v-model="form.region" style="width: 30%;" :rows="2" type="textarea"/>
+                      </el-form-item>
+                  </el-form>
+              </div>
+              <div v-if="active==0" style="margin-left: 1%;margin-top: 1%;display: flex;align-items: center;">
+                  <div style="background-color: blue;width: 2px;height: 16px;"></div>
+                  <div style="font-weight: bold;font-size: 16px;margin-left: 0.5%;">提供单位信息</div>
+              </div>
+              <div v-if="active==0" style="margin-left: 1%;margin-top: 1%;">
+                  <el-form style="margin-left: 5%;margin-top: 2%;"  :model="form" class="demo-form-inline" :rules="rules">
+                      <el-row :gutter="40">
+                      <el-col :span="12">
+                          <el-form-item label="提供单位:" prop="mdUnit">
+                          <el-select
+                            v-model="form.mdUnit"
+                            style="width: 65%"
+                          >
                             <el-option
-                            v-for="item in options"
-                            :key="item.value"
-                            :label="item.label"
-                            :value="item.value"
+                              v-for="item in options"
+                              :key="item.value"
+                              :label="item.label"
+                              :value="item.value"
                             />
-                        </el-select>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="9">
-                        <el-form-item label="开发语言:">
-                            <el-radio-group v-model="radio1" class="ml-4" size="small" style="margin-top: -10%;">
-                                <el-radio label="1" size="large">C++</el-radio>
-                                <el-radio label="2" size="large">.net</el-radio>    
-                                <el-radio label="2" size="large">java</el-radio>
-                                <el-radio label="2" size="large">Python</el-radio>
-                                <el-radio label="2" size="large">其他</el-radio>
-                            </el-radio-group>
-                        </el-form-item>
-                    </el-col>
-                    </el-row>
-                    <el-form-item label="组件简介:">
-                         <el-input v-model="form.region" style="width: 30%;" :rows="2" type="textarea"/>
-                    </el-form-item>
-                </el-form>
-            </div>
-            <div v-if="active==0" style="margin-left: 1%;margin-top: 1%;display: flex;align-items: center;">
-                <div style="background-color: blue;width: 2px;height: 16px;"></div>
-                <div style="font-weight: bold;font-size: 16px;margin-left: 0.5%;">提供单位信息</div>
-            </div>
-            <div v-if="active==0" style="margin-left: 1%;margin-top: 1%;">
-                <el-form style="margin-left: 5%;margin-top: 2%;"  :model="form" class="demo-form-inline" :rules="rules">
-                    <el-row :gutter="40">
-                    <el-col :span="12">
-                        <el-form-item label="提供单位:" prop="name">
-                        <el-select
-                          v-model="value"
-                          style="width: 65%"
-                        >
-                          <el-option
-                            v-for="item in options"
-                            :key="item.value"
-                            :label="item.label"
-                            :value="item.value"
-                          />
-                        </el-select>
-                         <!-- <el-button type="primary" style="margin-left: 1%;">选择</el-button>
-                          <el-button type="" style="margin-left:1%;">清空</el-button> -->
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="12">
-                        <el-form-item label="技术支撑单位:" prop="name">
-                            <el-input v-model="form.region" style="width: 65%;" />
-                            <!-- <el-button type="" style="margin-left:1%;">清空</el-button> -->
-                        </el-form-item>
-                    </el-col>
-                    </el-row>
-                    <el-row :gutter="40" style="margin-top: 1%;">
-                    <el-col :span="9" >
-                        <el-form-item label="联系方式:" prop="name"> 
-                        <el-input v-model="form.user" />
-                        </el-form-item>
-                    </el-col>
-                    </el-row>
-                </el-form>
+                          </el-select>
+                          <!-- <el-button type="primary" style="margin-left: 1%;">选择</el-button>
+                            <el-button type="" style="margin-left:1%;">清空</el-button> -->
+                          </el-form-item>
+                      </el-col>
+                      <el-col :span="12">
+                          <el-form-item label="技术支撑单位:" prop="developer">
+                              <el-input v-model="form.developer" style="width: 65%;" />
+                              <!-- <el-button type="" style="margin-left:1%;">清空</el-button> -->
+                          </el-form-item>
+                      </el-col>
+                      </el-row>
+                      <el-row :gutter="40" style="margin-top: 1%;">
+                      <el-col :span="9" >
+                          <el-form-item label="联系方式:" prop="mdContact"> 
+                          <el-input v-model="form.mdContact" />
+                          </el-form-item>
+                      </el-col>
+                      </el-row>
+                  </el-form>
+              </div>
             </div>
             <div v-if="active==1">
               <div style="margin-left: 1%;margin-top: 1%;display: flex;align-items: center;">
@@ -326,8 +328,8 @@
                   <el-form style="margin-left: 5%;margin-top: 2%;"  :model="form" class="demo-form-inline" :rules="rules">
                       <el-row :gutter="40">
                       <el-col :span="12">
-                          <el-form-item label="CPU核心数:" prop="name">
-                              <el-input v-model="form.region" style="width: 50%;" placeholder=""/>
+                          <el-form-item label="CPU核心数:" prop="mdCPU">
+                              <el-input v-model="form.mdCPU" style="width: 50%;" placeholder=""/>
                               <div style="margin-left: 2%;">
                               </div>
@@ -345,7 +347,7 @@
                       <el-row :gutter="40">
                       <el-col :span="12">
                           <el-form-item label="是否需要GPU:">
-                              <el-switch v-model="value1" />
+                              <el-switch v-model="form.mdGPU" />
                           </el-form-item>
                       </el-col>
                       <el-col :span="12">
@@ -582,7 +584,8 @@
     </div>
   </div>
 </template>
-<script lang="ts"  setup>
+<script   setup>
+import { getModelList,addModel,delMdid } from "@/api/register/regCom";
 import { ref, onMounted, onUnmounted, nextTick } from 'vue';
 import Sortable from 'sortablejs';
 import { Search } from '@element-plus/icons-vue'
@@ -590,26 +593,63 @@ import {
   ArrowLeft,
   Plus
 } from '@element-plus/icons-vue'
-import type { FormInstance, FormRules } from 'element-plus'
 import { reactive } from 'vue'
 import { forwardRefProps } from 'element-plus/es/components/tooltip-v2/src/forward-ref.mjs';
-
-interface RuleForm {
-  name: string
-}
+const { proxy } = getCurrentInstance();
 const dragTableRef = ref()
-const dialogVisible = true
-const active = ref(3)
-const form = reactive({
-  name: '',
-  region: '',
-  date: '',
-})
-const rules = reactive<FormRules<RuleForm>>({
-  name: [
-    { required: true, message: ' ', trigger: 'blur' },
-  ],
-})
+const dialogVisible = ref(false)
+const active = ref(0)
+const data = reactive({
+  form: {},
+  queryParams: {
+    "author": 0,
+    "cateid": '',
+    "className": '',
+    "createBy": '',
+    "createTime": "",
+    "developer": '',
+    "devlang": '',
+    "enname": '',
+    "intro": '',
+    "isApproved": 0,
+    "isPublic": 0,
+    "mdCPU": 0,
+    "mdContact": '',
+    "mdGpu": 0,
+    "mdInOutName": '',
+    "mdInOutNameEn": '',
+    "mdRunCmd": '',
+    "mdRunEnv": '',
+    "mdUnit": '',
+    "mdid": '',
+    "mirrorImageDesc": '',
+    "mirrorImageEg": '',
+    "mirrorImageUrl": '',
+    "modifyBy": "",
+    "msgFlag": 0,
+    "msgWebHook": '',
+    "name": 'test',
+    "params": {},
+    "remark": '',
+    "status": 0,
+    "tags": '',
+    "type": '',
+    "updateBy": '',
+    "updateTime": "",
+    "version": ''
+  },
+  rules: {
+    name: [{ required: true, message: "不能为空", trigger: "blur" }],
+    version: [{ required: true, message: "不能为空", trigger: "blur" }],
+    enname: [{ required: true, message: "不能为空", trigger: "blur" }],
+    mdUnit: [{ required: true, message: "不能为空", trigger: "blur" }],
+    developer: [{ required: true, message: "不能为空", trigger: "blur" }],
+    mdContact: [{ required: true, message: "不能为空", trigger: "blur" }],
+    mdCPU: [{ required: true, message: "不能为空", trigger: "blur" }],
+  }
+});
+
+const { queryParams, form, rules } = toRefs(data);
 const tableData2 = ref([
   { date1:'流域拓扑', date2:'', date3:'single', date4:'基于水文响应' },
   { date1:'雨量站', date2:'', date3:'single', date4:'基于水文响应' },
@@ -634,52 +674,7 @@ const checkGroup = [
     {label:'二维水动力'},
     {label:'机器学习'},
 ]
-const tableData = [
-  {
-    date:'基于水文响应单元的分布式模型',
-    name:'标准模型组件',
-    address1:'淮河水利委员会',
-    address2:'贺庭',
-    tm:'2023-5-15',
-    st1:'1',
-    st2:'1',
-    st3:'1',
-    ver:'V1.0.0'
-  },
-  {
-    date:'基于水文响应单元的分布式模型',
-    name:'标准模型组件',
-    address1:'淮河水利委员会',
-    address2:'贺庭',
-    tm:'2023-5-15',
-    st1:'2',
-    st2:'2',
-    st3:'2',
-    ver:'V1.0.0'
-  },
-  {
-    date:'基于水文响应单元的分布式模型',
-    name:'标准模型组件',
-    address1:'淮河水利委员会',
-    address2:'贺庭',
-    tm:'2023-5-15',
-    st1:'3',
-    st2:'3',
-    st3:'2',
-    ver:'V1.0.0'
-  },
-  {
-    date:'基于水文响应单元的分布式模型',
-    name:'标准模型组件',
-    address1:'淮河水利委员会',
-    address2:'贺庭',
-    tm:'2023-5-15',
-    st1:'1',
-    st2:'1',
-    st3:'1',
-    ver:'V1.0.0'
-  },
-]
+let tableData = ref([])
 const heightAll = window.innerHeight
 const valueHelpSel = '';
 const tableheight = window.innerHeight*0.7
@@ -705,6 +700,32 @@ const options = [
     label: 'Option5',
   },
 ]
+function addNewModel(){
+  addModel(form).then(res=>{
+
+  })
+}
+function reg(){
+  dialogVisible.value = true
+}
+function getModelListTable(){
+  var par = {
+    pageNum: 1,
+    pageSize: 10,
+  }
+  getModelList(par).then(res=>{
+    tableData.value = res.rows
+    console.log(tableData)
+  })
+}
+function handleDelete(row) {
+  proxy.$modal.confirm('是否确认删除?').then(function () {
+    return delMdid(row.mdid);
+  }).then(() => {
+    getList();
+    proxy.$modal.msgSuccess("删除成功");
+  }).catch(() => {});
+};
 const seledMo = ['primary','plain','plain','plain','plain','plain','plain']
 const next = () => {
   console.log(active.value)
@@ -791,6 +812,8 @@ const initSortable1 = () => {
 onMounted(() => {
   nextTick(initSortable);
   nextTick(initSortable1);
+  getModelListTable()
+  // addNewModel()
 });
 
 onUnmounted(() => {