| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416 |
- <template>
- <div style="width: 100%;padding-top: 1%;" :style="{'height':heightAll+'px'}">
- <div style="display: flex;width: 100%;margin-left: 1%;justify-content: space-between;">
- <div style="display: flex;width: 35%;">
- <div style="display: flex;width: 100%;align-items: center;">
- <div>
- 模型名称:
- </div>
- <el-input v-model="name" style="width:50%;margin-left: 1%;" placeholder="" />
- </div>
- <div style="display: flex;width: 100%;align-items: center;margin-left:-15%;">
- <div>
- 模型归属单位:
- </div>
- <el-input v-model="mdUnit" style="width: 50%;margin-left: 1%;" placeholder="" />
- </div>
- <el-button type="primary" style="margin-left: -10%;" @click="getModelListTable" :icon="Search">查询</el-button>
- </div>
- <div style="display: flex;align-items: center;margin-right: 3%;">
-
- <el-button type="primary" style="margin-left:5%;" @click="reg" icon="Plus">注册</el-button>
- </div>
- </div>
- <div style="margin-top: 0%;margin-left: 0%;width: 100%;">
- <el-table
- :data="tableData"
- height="80vh"
- style="width: 98%;margin-left: 1%;margin-top: 0.5%;"
- :cell-style="{ padding:'5px' }"
- :header-cell-style="{height: heightAll*0.01+'px',}"
- :row-style="{ fontSize: '16px',textAlign:'center'}"
- border >
- <el-table-column type="index" label="序号" width="80">
- <template #default="{ $index }">
- <div style="text-align: center;">
- {{ $index + 1 }}
- </div>
- </template>
- </el-table-column>
- <el-table-column prop="name" label="模型名称">
- </el-table-column>
- <el-table-column prop="enname" label="英文名称">
- </el-table-column>
- <el-table-column prop="type" label="模型类型" width="160"/>
- <el-table-column prop="mdUnit" label="模型单位" width="200"/>
- <el-table-column prop="mdContact" label="联系方式" width="100"/>
- <el-table-column prop="status" label="模型状态" width="140">
- </el-table-column>
- <el-table-column prop="modifyBy" label="发布时间" width="170"/>
- <el-table-column prop="version" label="版本" width="120"/>
- <el-table-column prop="address" label="操作" width="270">
- <template #default="scope">
- <div style="display: flex;justify-content: space-between;width: 100%;">
- <el-button type="primary" @click="showEdit(scope.row)" size="mini" text style="margin-left: 0%;">编辑</el-button>
- <!-- <el-button type="danger" text size="mini" style="margin-left: -5%;" @click="handleDelete(scope.row)">注销</el-button> -->
- <el-button @click="showDe(scope.row)" type="primary" text size="mini" style="margin-left: -5%;">查看</el-button>
- <el-button @click="showPei(scope.row)" type="warning" text size="mini" style="margin-left: -5%;">配置</el-button>
- <el-button type="danger" @click="delModel(scope.row)" text size="mini" style="margin-left: -5%;">删除</el-button>
- <el-button type="danger" @click="shenhe(scope.row)" text size="mini" style="margin-left: -5%;">审核</el-button>
- </div>
- </template>
- </el-table-column>
- </el-table>
- <el-dialog v-model="dialogVisible" title="" width="60%" @close="clearForm" destroy-on-close>
- <div class="card-header">
- <span style="font-size: 20px;margin-left: 1%;">基本信息</span>
- <el-divider style="margin-top: 1%;"/>
- </div>
- <div>
- <el-form size="mini" style="margin-top: 0%;width: 98%;" :model="formJi" label-position="right" ref="formRefJi" label-width="120px" :rules="rulesJi">
- <el-row :gutter="40">
- <el-col :span="8">
- <el-form-item label="模型名称:" prop="name" style="">
- <div style="display: flex;width: 120%;justify-content: space-between;">
- <el-input v-model="formJi.name" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="英文名:" prop="enname" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input v-model="formJi.enname" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="版本号:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input v-model="formJi.version" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="48">
- <el-col :span="8">
- <el-form-item label="模型类型:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input placeholder="如水利模型、排水模型、供水模型、海洋模型" v-model="formJi.type" style="width: 100%;" resize="none"/>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- <el-form-item label="排序:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input-number v-model="formJi.sort" :min="1" style="width: 22%;"/>
- </div>
- </el-form-item>
- <el-row :gutter="48">
- <el-col :span="24">
- <el-form-item label="开发语言:">
- <el-radio-group v-model="formJi.devlang" class="custom-radio-group" style="width: 100%;">
- <el-radio label="java" size="large">java</el-radio>
- <el-radio label="nodeJs" size="large">nodeJs</el-radio>
- <el-radio label="python" size="large">python</el-radio>
- <el-radio label="c/c++" size="large">c/c++</el-radio>
- <el-radio label="1" size="large">
- <div class="custom-input-wrapper">
- <span>其它</span>
- <el-input
- v-model="elseLan"
- class="underline-input"
- v-show="isElse"
- />
- </div>
- </el-radio>
- </el-radio-group>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="48">
- <el-col :span="16">
- <el-form-item label="简介:">
- <el-input v-model="formJi.intro" style="width: 100%;" :rows="3" resize="none" type="textarea"/>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- </div>
-
- <div class="card-header">
- <span style="font-size: 20px;margin-left: 1%;">单位</span>
- <el-divider style="margin-top: 1%;"/>
- </div>
- <div style="margin-top: 0%;">
- <el-form size="mini" :key="tableKey" style="margin-top: 0%;width: 98%;" :model="formJi" label-position="right" label-width="120px" :rules="rulesJi">
- <el-row :gutter="48">
- <el-col :span="11">
- <el-form-item label="模型归属单位:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input v-model="formJi.mdUnit" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="11">
- <el-form-item label="联系方式:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input v-model="formJi.mdContact" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="48">
- <el-col :span="11">
- <el-form-item label="技术支持单位:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input v-model="formJi.devUnit" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="11">
- <el-form-item label="联系方式:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input v-model="formJi.devContact" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- </div>
- <el-tabs
- v-model="activeName"
- type="card"
- style="margin-top: 1%;"
- >
- <el-tab-pane label="部署情况" name="first">
- <el-form size="mini" :key="tableKey" style="margin-top: 0%;width: 98%;" :model="formJi" label-position="right" label-width="120px" :rules="rulesJi">
- <el-row :gutter="48">
- <el-col :span="11">
- <el-form-item label="服务器IP:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input v-model="formJi.deployIp" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="11">
- <el-form-item label="端口:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input placeholder="可填写多个端口,以“,”分隔" v-model="formJi.deployPort" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="48">
- <el-col :span="15">
- <el-form-item label="部署位置:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input v-model="formJi.deployDir" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="10">
- </el-col>
- </el-row>
- <el-row :gutter="48">
- <el-col :span="15">
- <el-form-item label="服务访问地址:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input v-model="formJi.mirrorImageUrl" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="48">
- <el-col :span="15">
- <el-form-item label="服务器运行命令:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-input v-model="formJi.mdRunCmd" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <div style="display: flex;margin-top: -5%;">
- <div class="card-header" style="margin-top: 5%;display: flex;justify-content: inherit;margin-left: 2%">
- <span style="font-size: 20px;margin-top: 5%; writing-mode: vertical-rl;position: relative;top: 15%;">运行环境</span>
- </div>
- <el-form size="mini" :key="tableKey" style="margin-top: 5%;width: 85%;" :model="formJi" label-position="right" label-width="120px" :rules="rulesJi">
- <el-row :gutter="48">
- <el-col :span="12">
- <el-form-item label="操作系统:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-select
- v-model="formJi.envOs"
-
- style="width: 75%;margin-left: 0%;"
- >
- <el-option
- v-for="item in optionsEnv"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="运行架构:" prop="" style="">
- <div style="display: flex;width: 100%;justify-content: space-between;">
- <el-radio-group v-model="formJi.evnArmX86" class="ml-4" size="small" style="" >
- <el-radio label="X86" size="large">X86</el-radio>
- <el-radio label="ARM" size="large">ARM</el-radio>
- </el-radio-group>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="24">
- <el-col :span="8">
- <el-form-item label="硬盘:" prop="" style="">
- <div style="display: flex;width: 100%;" >
- <el-input-number
- v-model="formJi.envDisk"
- :min="100"
- :max="2048"
- size="mini"
- controls-position="right"
- @change="handleChange"
- />
- <div style="margin-left: 4%;font-size: 15px;">
- G
- </div>
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="CPU核数:" prop="" style="">
- <div style="display: flex;width: 100%;" >
- <el-input-number
- v-model="formJi.envCpuNum"
- :max="64"
- :min="2"
- size="mini"
- controls-position="right"
- @change="handleChange"
- />
- <div style="margin-left: 4%;font-size: 15px;">
- 个
- </div>
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="内存:" prop="" style="">
- <div style="display: flex;width: 100%;" >
- <el-input-number
- v-model="formJi.envMem"
- :max="512"
- :min="1"
- size="mini"
- controls-position="right"
- @change="handleChange"
- />
- <div style="margin-left: 4%;font-size: 15px;">
- G
- </div>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="24">
- <el-col :span="8">
- <el-form-item label="GPU型号:" prop="" style="">
- <div style="display: flex;width: 100%;">
- <el-input v-model="formJi.envGpuType" style="width: 100%;"/>
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="GPU数量:" prop="" style="">
- <div style="display: flex;width: 100%;" >
- <el-input-number
- v-model="formJi.envGpuNum"
- :min="1"
- :max="64"
- size="mini"
- controls-position="right"
- @change="handleChange"
- />
- <div style="margin-left: 4%;font-size: 15px;">
- 个
- </div>
- </div>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="GUP显存:" prop="" style="">
- <div style="display: flex;width: 100%;" >
- <el-input-number
- v-model="formJi.envGpuMem"
- :min="1"
- size="mini"
- :max="512"
- controls-position="right"
- @change="handleChange"
- />
- <div style="margin-left: 4%;font-size: 15px;">
- G
- </div>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- </div>
- </el-tab-pane>
- <el-tab-pane label="输入" name="second">
- <el-form style="margin-left: 5%;margin-top: 2%;" label-position="right" label-width="120px" :model="formZu" class="demo-form-inline" ref="formRefZu" :rules="rulesZu">
- <el-form-item label="输入文档:" prop="">
- <div style="width: 75%;">
- <el-upload
- ref="uploadRef"
- :limit="1"
- accept=".xlsx, .xls"
- :headers="upload.headers"
- :on-change="handleChange"
- :file-list="fileList"
- :action="upload.url + '?file=' + upload.updateSupport"
- :on-progress="handleFileUploadProgress"
- :on-success="handleFileSuccess"
- :auto-upload="false"
- drag
- >
- <el-icon class="el-icon--upload"><upload-filled /></el-icon>
- <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
- </el-upload>
- </div>
- <div style="color: #b1b3b8;width: 100%;">
- 注:请上传后缀名为.docx .pdf .txt的文件
- </div>
- <el-link type="primary" @click="downIn">{{formJi.mdInName}}</el-link>
- </el-form-item>
- <el-form-item label="说明:" prop="" style="margin-left: -1%;">
- <el-input v-model="formJi.mdInNote" style="width: 75%;" placeholder="请输入组件执行路径" :rows="2" type="textarea" resize="none"/>
- </el-form-item>
- </el-form>
- </el-tab-pane>
- <el-tab-pane label="输出" name="third">
- <el-form style="margin-left: 5%;margin-top: 2%;" label-position="right" label-width="120px" :model="formZu" class="demo-form-inline" ref="formRefZu" :rules="rulesZu">
- <el-form-item label="输出文档:" prop="">
- <div style="width: 75%;">
- <el-upload
- ref="uploadRef1"
- :limit="1"
- accept=".xlsx, .xls"
- :headers="upload.headers"
- :on-change="handleChange1"
- :file-list="fileList1"
- :action="upload.url + '?file=' + upload.updateSupport"
- :on-progress="handleFileUploadProgress"
- :on-success="handleFileSuccess1"
- :auto-upload="false"
- drag
- >
- <el-icon class="el-icon--upload"><upload-filled /></el-icon>
- <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
- </el-upload>
- </div>
- <div style="color: #b1b3b8;width: 100%;">
- 注:请上传后缀名为.docx .pdf .txt的文件
- </div>
- <el-link type="primary" @click="downOut">{{formJi.mdOutName}}</el-link>
- </el-form-item>
- <el-form-item label="说明:" prop="" style="margin-left: -1%;">
- <el-input v-model="formJi.mdOutNote" style="width: 75%;" placeholder="请输入组件执行路径" :rows="2" type="textarea" resize="none"/>
- </el-form-item>
- </el-form>
- </el-tab-pane>
- </el-tabs>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="dialogVisible = false">取消</el-button>
- <el-button type="primary" @click="submit" v-if="!isEdit">
- 提交
- </el-button>
- <el-button type="primary" @click="subEdit" v-if="isEdit">
- 提交
- </el-button>
- </span>
- </template>
- </el-dialog>
- <el-dialog v-model="dialogVisibleDe" title="" width="50%" @close="" destroy-on-close class="custom-dialog-bg">
- <el-descriptions title="基本信息" :column="3" style="margin-top: 0%;margin-left: 1%;background: transparent;">
- <el-descriptions-item label="模型名称:">{{formJi.name}}</el-descriptions-item>
- <el-descriptions-item label="英文名:">{{formJi.enname}}</el-descriptions-item>
- <el-descriptions-item label="版本号:">{{formJi.version}}</el-descriptions-item>
- <el-descriptions-item label="接口分类:">{{formJi.type}}</el-descriptions-item>
- <el-descriptions-item label="开发语言:" span="2">{{formJi.devlang}}</el-descriptions-item>
- <el-descriptions-item label="简介:" span="3">{{formJi.intro}}</el-descriptions-item>
- </el-descriptions>
- <el-divider style="margin-top: 0%;"/>
- <el-descriptions title="单位" :column="2" style="margin-top: 1%;margin-left: 1%;background-color: transparent;">
- <el-descriptions-item label="模型归属单位:">{{formJi.mdUnit}}</el-descriptions-item>
- <el-descriptions-item label="联系方式:">{{formJi.mdContact}}</el-descriptions-item>
- <el-descriptions-item label="技术支持单位:">{{formJi.devUnit}}</el-descriptions-item>
- <el-descriptions-item label="联系方式:">{{formJi.devContact}}</el-descriptions-item>
- </el-descriptions>
- <el-tabs
- v-model="activeName"
- type="card"
- style="margin-top: 1%;background-color: transparent;"
- >
- <el-tab-pane label="部署情况" name="first" style="background-color: transparent;">
- <el-descriptions title="" :column="3" style="margin-top: 0%;margin-left: 1%;background-color: transparent;">
- <el-descriptions-item label="服务器IP:" span="2">{{formJi.deployIp}}</el-descriptions-item>
- <el-descriptions-item label="端口:">{{formJi.deployPort}}</el-descriptions-item>
- <el-descriptions-item label="部署位置:" span="2">{{formJi.deployDir}}</el-descriptions-item>
- <el-descriptions-item label="服务访问地址:">{{formJi.mirrorImageUrl}}</el-descriptions-item>
- <el-descriptions-item label="服务器运行命令:" span="3">{{formJi.mdRunCmd}}</el-descriptions-item>
- <el-descriptions-item label="操作系统:" span="2">{{formJi.envOs}}</el-descriptions-item>
- <el-descriptions-item label="运行架构:" span="3">{{formJi.evnArmX86}}</el-descriptions-item>
- <el-descriptions-item label="硬盘:" span="">
- {{formJi.envDisk + 'G'}}
- </el-descriptions-item>
- <el-descriptions-item label="CPU核心数:">
- {{formJi.envCpuNum + '个'}}
- </el-descriptions-item>
- <el-descriptions-item label="内存:">
- {{formJi.envMem + 'G'}}
- </el-descriptions-item>
- <el-descriptions-item label="GPU型号:">{{formJi.envGpuType}}</el-descriptions-item>
- <el-descriptions-item label="GPU数量:">
- {{formJi.envGpuNum + '个'}}
- </el-descriptions-item>
- <el-descriptions-item label="GUP显存:">
- {{formJi.envGpuMem + 'G'}}
- </el-descriptions-item>
- </el-descriptions>
- </el-tab-pane>
- <el-tab-pane label="输入" name="second">
- <el-descriptions title="" :column="2" style="margin-top: 0%;margin-left: 1%;">
- <el-descriptions-item label="输入文档:" span="2">
- <el-link type="primary" @click="downIn">{{formJi.mdInName}}</el-link>
- </el-descriptions-item>
- <el-descriptions-item label="说明:">{{formJi.mdInNote}}</el-descriptions-item>
- </el-descriptions>
- </el-tab-pane>
- <el-tab-pane label="输出" name="third">
- <el-descriptions title="" :column="2" style="margin-top: 0%;margin-left: 1%;">
- <el-descriptions-item label="输出文档:" span="2">
- <el-link type="primary" @click="downOut">{{formJi.mdOutName}}</el-link>
- </el-descriptions-item>
- <el-descriptions-item label="说明:">{{formJi.mdOutNote}}</el-descriptions-item>
- </el-descriptions>
- </el-tab-pane>
- </el-tabs>
- </el-dialog>
- <el-dialog @close="clearForm" v-model="dialogVisiblePei" width="70%" title="参数配置">
- <el-tabs v-model="activeName" type="border-card">
- <el-tab-pane label="基本信息" name="first">
- <el-descriptions title="" :column="3" style="margin-top: 0%;margin-left: 1%;background: transparent;">
- <el-descriptions-item label="模型名称:">{{formJi.name}}</el-descriptions-item>
- <el-descriptions-item label="英文名:">{{formJi.enname}}</el-descriptions-item>
- <el-descriptions-item label="版本号:">{{formJi.version}}</el-descriptions-item>
- <el-descriptions-item label="接口分类:">{{formJi.type}}</el-descriptions-item>
- <el-descriptions-item label="开发语言:" span="2">{{formJi.devlang}}</el-descriptions-item>
- <el-descriptions-item label="简介:" span="3">{{formJi.intro}}</el-descriptions-item>
- </el-descriptions>
- <el-divider style="margin-top: 0%;"/>
- <el-descriptions title="" :column="2" style="margin-top: 1%;margin-left: 1%;background-color: transparent;">
- <el-descriptions-item label="模型归属单位:">{{formJi.mdUnit}}</el-descriptions-item>
- <el-descriptions-item label="联系方式:">{{formJi.mdContact}}</el-descriptions-item>
- <el-descriptions-item label="技术支持单位:">{{formJi.devUnit}}</el-descriptions-item>
- <el-descriptions-item label="联系方式:">{{formJi.devContact}}</el-descriptions-item>
- </el-descriptions>
- </el-tab-pane>
- <el-tab-pane label="模型参数" style="height: 50vh;" :key="activeTabKey">
- <div style="display: flex;justify-content: space-between;margin-right: 2%;align-items: center;background-color: #e9e9eb;;width: 100%;">
- <div style="display: flex;align-items: center;margin-left: 1%;">
- <el-checkbox v-model="checked1" label="参数是否分组" size="large" @change="gatherTable"/>
- <el-button @click="showAddFenzu" style="margin-left: 10%;" type="success" size="mini" plain v-if="checked1">新增分组</el-button>
- </div>
- <div style="display: flex;justify-content: flex-end;margin-right: 1%;">
- <el-button @click="addCan" style="margin-left: 5%;" type="success" size="mini" plain :disabled="selFen">新增参数</el-button>
- <el-button @click="delAllCan" style="margin-top: 0%;" type="danger" size="mini" plain>删除</el-button>
- </div>
- </div>
- <div style="display: flex;">
- <div v-if="checked1" style="margin-top:1%;width: 10%;background-color: #F2F6FC;height:45vh;">
- <el-tree :expand-on-click-node="false" ref="treeRef" :filter-node-method="filterNode" :current-node-key="currentNodeKey" class="treeLeft"
- :data="groupTreeData" @node-click="handleNodeClick" node-key="id" style="margin-left: 0%;margin-top: 1%;width: 100%;background-color: transparent;" default-expand-all :key="valueKet">
- <template #default="{ node, data }">
- <span style="justify-content: space-between;display: flex;width: 100%;align-items: center;margin-left: -10%;">
- <div class="custom-tree-node" style="align-items: center;line-height: 1.5;">
- <span style="">{{ node.label }}</span>
- </div>
- <div style="margin-right: 1%;position: absolute;left:78%;">
- <el-dropdown trigger="hover" @click.stop v-if="currentNodeKey === data.mgid">
- <el-icon><MoreFilled /></el-icon>
- <!-- <svg-icon icon-class="zhankai"/> -->
- <template #dropdown>
- <el-dropdown-menu>
- <el-dropdown-item style="display: flex;" @click="showEditFen">
- <el-icon class="el-icon--right" style="color: black;">
- <Connection />
- </el-icon>
- <div>
- 编辑分组
- </div>
- </el-dropdown-item>
- <divider/>
- <el-dropdown-item style="display: flex;" @click="delFenZu" divided>
- <el-icon class="el-icon--right" style="color: black;">
- <CircleClose />
- </el-icon>
- <div>
- 删除分组
- </div>
- </el-dropdown-item>
- </el-dropdown-menu>
- </template>
- </el-dropdown>
- </div>
- </span>
- </template>
- </el-tree>
- </div>
- <div style="width: 90%;flex: 1;">
- <el-table
- style="margin-top: 1%;width: 100%;margin-left: 1%;overflow: auto;"
- :data="tableDataCan"
- :cell-style="{ textAlign: 'center',padding:'3px 0px' }"
- :header-cell-style="{ textAlign: 'center', }"
- max-height="45vh"
- :row-style="{ height: heightAll*0.01+'px',fontSize: '16px',textAlign:'center' }"
- border>
- <el-table-column prop="parName" label="*参数英文名">
- <template #default="scope" style="width: 120%;">
- <el-input v-model="scope.row.parEnname" style="width: 120%;margin-left: -10%;"/>
- </template>
- </el-table-column>
- <el-table-column prop="parName" label="*参数名称">
- <template #default="scope">
- <el-input v-model="scope.row.parName" style="width: 120%;margin-left: -10%;"/>
- </template>
- </el-table-column>
- <el-table-column prop="parType" label="*参数类型" >
- <template #default="scope">
- <el-input v-model="scope.row.parType" style="width: 120%;margin-left: -10%;"/>
- </template>
- </el-table-column>
- <el-table-column prop="parLine" label="行号">
- <template #default="scope">
- <el-input v-model="scope.row.parLine" style="width: 120%;margin-left: -10%;"/>
- </template>
- </el-table-column>
- <el-table-column prop="parNote" label="维度">
- <template #default="scope">
- <el-input v-model="scope.row.parDimen" style="width: 120%;margin-left: -10%;"/>
- </template>
- </el-table-column>
- <el-table-column prop="parNote" label="表达式">
- <template #default="scope">
- <el-input v-model="scope.row.parExpr" style="width: 120%;margin-left: -10%;"/>
- </template>
- </el-table-column>
- <el-table-column prop="parNote" label="*默认值">
- <template #default="scope">
- <el-input v-model="scope.row.parDefVal" style="width: 120%;margin-left: -10%;"/>
- </template>
- </el-table-column>
- <el-table-column prop="parNote" label="参数范围">
- <template #default="scope">
- <el-input v-model="scope.row.parRange" style="width: 120%;margin-left: -10%;"/>
- </template>
- </el-table-column>
- <el-table-column prop="parNote" label="版本号">
- <template #default="scope">
- <el-input v-model="scope.row.parVersion" style="width: 120%;margin-left: -10%;"/>
- </template>
- </el-table-column>
- <el-table-column prop="parNote" label="操作" width="85">
- <template #default="scope">
- <el-button type="danger" @click="delCan(scope.$index, scope.row)" text size="mini" style="margin-left: 0%;">删除</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </div>
- </el-tab-pane>
- <el-tab-pane label="模型状态">Role</el-tab-pane>
- </el-tabs>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="dialogVisiblePei = false">取消</el-button>
- <el-button type="primary" @click="saveChangePar">
- 提交
- </el-button>
- </span>
- </template>
- </el-dialog >
- <el-dialog v-model="dialogVisibleFen" :title="titleFen" width="30%" @close="clearFromTree" destroy-on-close :key="tableKey">
- <el-form :label-width="100" label-position="right" style="margin-left: 5%;margin-top: 2%;" :model="formTree" class="demo-form-inline" ref="formRefTree" :rules="rulesTree">
- <el-form-item label="名称:" prop="parGroupName" style="">
- <el-input v-model="formTree.parGroupName" @blur="handleBlur" style="width: 75%;" placeholder="" resize="none"/>
- </el-form-item>
- <el-form-item label="组编码:" prop="parGroupCode" style="">
- <el-input v-model="formTree.parGroupCode" style="width: 75%;" placeholder="" resize="none"/>
- </el-form-item>
- <el-form-item label="说明:" prop="parGroupNote">
- <el-input v-model="formTree.parGroupNote" style="width: 75%;" placeholder="" type="textarea" resize="none"/>
- </el-form-item>
- <el-form-item label="排序:" prop="parGroupSort">
- <el-input-number v-model="formTree.parGroupSort" :min="1" style="width: 50%;"/>
- </el-form-item>
- </el-form>
- <template #footer>
- <span class="dialog-footer">
- <el-button size="mini" @click="dialogVisibleFen = false">取消</el-button>
- <el-button type="primary" @click="submitFen" size="mini">
- 提交
- </el-button>
- </span>
- </template>
- </el-dialog>
- </div>
- </div>
- </template>
- <script setup>
- import { getModelList,addModel,delMdid,getModelDetail,updateModel,addGroup,getParamsList,changePar,delAllPar,getModelParList,delFen,changeShenhe } from "@/api/register/regCom";
- import { ref, onMounted, onUnmounted, nextTick } from 'vue';
- import { Search } from '@element-plus/icons-vue'
- import {
- ArrowLeft,
- Plus
- } from '@element-plus/icons-vue'
- import { reactive } from 'vue'
- import { forwardRefProps } from 'element-plus/es/components/tooltip-v2/src/forward-ref.mjs';
- import { getToken } from "@/utils/auth";
- import { fa } from "element-plus/es/locales.mjs";
- import { column } from "element-plus/es/components/table-v2/src/common.mjs";
- import { TRUE } from "sass";
- import { editGroup } from "../../../api/register/regCom";
- import pinyin from 'pinyin';
- const { proxy } = getCurrentInstance();
- const dialogVisibleFen = ref(false)
- const dragTableRef = ref()
- const isaddFen = ref(false)
- const dialogVisible = ref(false)
- const dialogVisibleDe = ref(false)
- const dialogVisiblePei = ref(false)
- const active = ref(0)
- const isEdit = ref(true)
- const name = ref('')
- const isAdd = ref(true)
- const mdUnit = ref('')
- const isElse = ref(false)
- const elseLan = ref('')
- const tableDataCan = ref([])
- const selFen = ref(true)
- const groupTreeData = ref([])
- const parRow = ref({})
- const formJi = ref({
- name:'',
- version:'',
- enname:'',
- devlang:'',
- intro:'',
- type:'',
- mdContact:'',
- mdUnit:'',
- devUnit:'',
- devContact:'',
- deployDir:'',
- deployIp:'',
- deployPort:'',
- mirrorImageUrl:'',
- mdRunCmd:'',
- envOs:'',
- envDisk:'',
- envGpuMem:'11',
- evnArmX86:'',
- envCpuNum:'',
- envGpuType:'',
- envGpuNum:'2',
- envMem:'',
- mdInNote:'',
- mdOutNote:''
- });
- const activeTabKey = ref(0)
- const rulesJi = reactive({
- name: [{ required: true, message: '必填', trigger: 'blur' }],
- enname: [{ required: true, message: '必填', trigger: 'blur' }],
- });
- const formRefJi = ref();
- const formZu = ref({
- mirrorImageEurl:'',
- mdCPU:'',
- mdGPU:''
- });
- const rulesZu = reactive({
- mirrorImageEurl: [{ required: true, message: '必填', trigger: 'blur' }],
- mdCPU: [{ required: true, message: '必填', trigger: 'blur' }],
- });
- const formRefZu = ref();
- const formTree = ref({
- parGroupSort:1,
- parGroupNote:'',
- parGroupName:'',
- parGroupCode:''
- });
- const rulesTree = reactive({
- parGroupName: [{ required: true, message: '必填', trigger: 'blur' }],
- parGroupSort: [{ required: true, message: '必填', trigger: 'blur' }],
- parGroupCode: [{ required: true, message: '必填', trigger: 'blur' }],
- });
- const formRefTree = ref();
- const activeName = ref('first')
- const titleFen = ref('');
- const upload = reactive({
- // 是否显示弹出层(用户导入)
- open: false,
- // 弹出层标题(用户导入)
- title: "",
- // 是否禁用上传
- isUploading: false,
- // 是否更新已经存在的用户数据
- updateSupport: '',
- // 设置上传的请求头部
- headers: { Authorization: "Bearer " + getToken() },
- // 上传的地址
- url: import.meta.env.VITE_APP_BASE_API + "/common/upload"
- });
- const downUrl = ref(import.meta.env.VITE_APP_BASE_API)
- const tableKey = ref(0);
- const totalComReg = ref()
- const currentPage = ref(1)
- const tableData2 = ref([
- { date1:'流域拓扑', date2:'', date3:'single', date4:'基于水文响应' },
- { date1:'雨量站', date2:'', date3:'single', date4:'基于水文响应' },
- { date1:'水库', date2:'', date3:'single', date4:'基于水文响应' }
- ]);
- const tableData3 = ref([
- { date1:'流域拓扑', date2:'', date3:'single', date4:'基于水文响应' },
- { date1:'水库', date2:'', date3:'single', date4:'基于水文响应' },
- { date1:'雨量站', date2:'', date3:'single', date4:'基于水文响应' }
- ]);
- const checked1 = ref(false)
- const tableData1= [{date1:'初始状态',
- date2:'sts',
- date3:'数据项',
- date4:'初始状态',
- date5:'是',
- date6:'否',
- date7:'2023-09-08'
- }]
- const checkGroup = [
- {label:'水文预报'},
- {label:'维水动力'},
- {label:'二维水动力'},
- {label:'机器学习'},
- ]
- let tableData = ref([{name:'1'}])
- const heightAll = window.innerHeight
- const valueHelpSel = '';
- const tableheight = window.innerHeight*0.8
- const optionsType = [
- {
- value: '1',
- label: '水利专业模型',
- },
- {
- value: '2',
- label: '排水专业模型',
- },
- {
- value: '3',
- label: '供水专业模型',
- },
- {
- value: '4',
- label: '海洋专业模型',
- },
- ]
- const optionsEnv = ref([
- {
- value: 'windwos',
- label: 'windwos',
- },
- {
- value: 'Linux',
- label: 'Linux',
- },
- {
- value: 'Ubuntu',
- label: 'Ubuntu',
- },
- {
- value: 'CentOS',
- label: 'CentOS',
- },
- {
- value: 'Debian',
- label: 'Debian',
- },
- {
- value: 'RedHat',
- label: 'RedHat',
- },
- {
- value: '统信',
- label: '统信',
- },
- {
- value: '麒麟',
- label: '麒麟',
- },
- {
- value: '欧拉',
- label: '欧拉',
- },
- ])
- const uploadRef = ref(null);
- const fileList = ref([]);
- const fileList1 = ref([]);
- const tableDataCanAll = ref([]);
- const parForm = ref('')
- const currentNodeKey = ref('')
- const parTree = ref({})
- onMounted(() => {
- getModelListTable()
- // addNewModel()
- });
- const handleChange = (file, files) => {
- fileList.value = files;
- };
- const handleChange1 = (file, files) => {
- fileList1.value = files;
- };
- function getChineseInitials(str) {
- if (!str || typeof str !== 'string') return '';
-
- // 拆分字符串为字符数组
- const chars = str.split('');
- const result = chars.map(char => {
- // 判断是否为中文(Unicode范围:\u4e00-\u9fa5)
- if (/[\u4e00-\u9fa5]/.test(char)) {
- // 获取中文首字母拼音(忽略多音字)
- const pinyinArr = pinyin(char, {
- style: pinyin.STYLE_FIRST_LETTER,
- heteronym: false
- });
- return pinyinArr[0][0]; // 返回首字母
- }
- return char; // 非中文字符直接保留(若需忽略英文可改为空字符串)
- });
- return result.join('');
- }
- function shenhe(row){
- var par = {
- srvIds:row.mdid,
- audit:'2',
- devkind:'SYS'
- }
- changeShenhe(par).then(res=>{
- if(res.code===200){
- proxy.$modal.msgSuccess("已可测试!");
- }
- })
- }
- function handleBlur(){
- formTree.value.parGroupCode = getChineseInitials(formTree.value.parGroupName)
- }
- function gatherTable(){
- if(checked1.value===false){
- var keyArray = []
- tableDataCanAll.value.forEach(item=>{
- keyArray.push(item.key)
- })
- tableDataCanAll.value.forEach(item=>{
- tableDataCan.value.forEach(item2=>{
- if(item2.key===item.key){
- item = item2
- }
- })
- })
- tableDataCan.value.forEach(item=>{
- if(!keyArray.includes(item.key)){
- tableDataCanAll.value.push(item)
- }
- })
- currentNodeKey.value = null
- selFen.value = true
- tableDataCan.value = tableDataCanAll.value
- }
- }
- function handleNodeClick(node, data){
- var keyArray = []
- selFen.value = false
- tableDataCanAll.value.forEach(item=>{
- keyArray.push(item.key)
- })
- tableDataCanAll.value.forEach(item=>{
- tableDataCan.value.forEach(item2=>{
- if(item2.key===item.key){
- item = item2
- }
- })
- })
- tableDataCan.value.forEach(item=>{
- if(!keyArray.includes(item.key)){
- tableDataCanAll.value.push(item)
- }
- })
- parTree.value = data.data
- tableDataCan.value = []
- tableDataCanAll.value.forEach(item=>{
- if(item.parGroup==data.data.parGroupCode){
- tableDataCan.value.push(item)
- }
- })
- currentNodeKey.value = data.data.mgid
- }
- function submitFen(){
- formTree.value.mdid = parForm.value.mdid
- console.log(isaddFen.value)
- if(isaddFen.value===true){
- addGroup(formTree.value).then(res=>{
- if(res.code===200){
- var par = {
- mdid:parForm.value.mdid
- }
- getModelParList(par).then(res1=>{
- proxy.$modal.msgSuccess("新增成功");
- groupTreeData.value = res1.data
- groupTreeData.value.forEach((item, index, array) => {
- item.label = item.parGroupName
- item.value = item.parGroupCode
- dialogVisibleFen.value = false
- })
- })
- }
- })
- }
- else{
- editGroup(formTree.value).then(res=>{
- if(res.code===200){
- var par = {
- mdid:parForm.value.mdid
- }
- getModelParList(par).then(res1=>{
- proxy.$modal.msgSuccess("修改成功");
- groupTreeData.value = res1.data
- groupTreeData.value.forEach((item, index, array) => {
- item.label = item.parGroupName
- item.value = item.parGroupCode
- dialogVisibleFen.value = false
- })
- })
- }
- })
- }
-
- }
- function showEditFen(){
- isaddFen.value = false
- dialogVisibleFen.value = true
- formTree.value = parTree.value
- }
- function showAddFenzu(){
- isaddFen.value = true
- dialogVisibleFen.value = true
- }
- function delFenZu(){
- proxy.$modal.confirm('是否确认删除所有参数?').then(function () {
- return delFen(parTree.value.mgid);
- }).then(() => {
- var par = {
- mdid:parForm.value.mdid
- }
- getModelParList(par).then(res1=>{
- groupTreeData.value = res1.data
- groupTreeData.value.forEach((item, index, array) => {
- item.label = item.parGroupName
- item.value = item.parGroupCode
- dialogVisibleFen.value = false
- })
- })
- proxy.$modal.msgSuccess("删除成功");
- }).catch(() => {});
- }
- function delAllCan(){
- proxy.$modal.confirm('是否确认删除所有参数?').then(function () {
- return delAllPar(parForm.value.mdid);
- }).then(() => {
- tableDataCan.value = []
- proxy.$modal.msgSuccess("删除成功");
- }).catch(() => {});
- }
- function saveChangePar(){
- tableDataCanAll.value.forEach((item, index, array) => {
- item.mdid = parForm.value.mdid
- item.parCate = 'int'
- })
- changePar(tableDataCanAll.value).then(res=>{
- if(res.code===200){
- proxy.$modal.msgSuccess("修改成功");
- dialogVisiblePei.value = false
- getModelListTable()
- }
- })
- }
- async function showPei(row){
- dialogVisiblePei.value = true
- parRow.value = row
- var par = {
- mdid:row.mdid
- }
- await getModelParList(par).then(res=>{
- groupTreeData.value = res.data
- groupTreeData.value.forEach((item, index, array) => {
- item.label = item.parGroupName
- item.value = item.parGroupCode
- })
- })
- await getModelDetail(row.mdid).then(res=>{
- parForm.value = res.data
- formJi.value = res.data
- })
-
- await getParamsList(par).then(res=>{
- tableDataCan.value = res.data
- tableDataCan.value.forEach(item=>{
- item.key = Math.random()
- })
- })
- tableDataCanAll.value = JSON.parse(JSON.stringify(tableDataCan.value))
- }
- function delCan(index,row){
- tableDataCan.value.splice(index, 1)
- tableDataCanAll.value.forEach((item,index,array)=>{
- if(item.key===row.key){
- array.splice(index,1)
- }
- })
- }
- function showDe(row){
- dialogVisibleDe.value = true
- getModelDetail(row.mdid).then(res=>{
- parForm.value = res.data
- formJi.value = res.data
- if(formJi.value.devlang!=='java'&&formJi.value.devlang!=='nodeJs'&&formJi.value.devlang!=='python'&&formJi.value.devlang!=='c/c++'){
- isElse.value = true
- formJi.value.devlang = 1
- }
- })
- }
- function addCan(){
- tableDataCan.value.push({
- key:Math.random(),
- mdid:parForm.value.mdid,
- parGroup:parTree.value.parGroupCode
- })
- console.log(tableDataCan.value)
- }
- function downOut(){
- var url = window.location.host + formJi.value.mdOutFile
- console.log(url)
- const link = document.createElement('a');
- link.href = 'http://' + url.toString();
- link.download = formJi.value.mdOutName; // 自定义文件名(可选)
- document.body.appendChild(link);
- link.click();
- document.body.removeChild(link);
- }
- function downIn(){
- var url = window.location.host + formJi.value.mdInFile
- console.log(url)
- const link = document.createElement('a');
- link.href = 'http://' + url.toString();
- link.download = formJi.value.mdInName; // 自定义文件名(可选)
- document.body.appendChild(link);
- link.click();
- document.body.removeChild(link);
- }
- function delModel(row){
- proxy.$modal.confirm('是否确认删除?').then(function () {
- return delMdid(row.mdid);
- }).then(() => {
- getModelListTable();
- proxy.$modal.msgSuccess("删除成功");
- }).catch(() => {});
- }
- async function showEdit(row){
- dialogVisible.value = true
- isEdit.value = true
- await nextTick()
- getModelDetail(row.mdid).then(res=>{
- formJi.value = res.data
- if(formJi.value.devlang!=='java'&&formJi.value.devlang!=='nodeJs'&&formJi.value.devlang!=='python'&&formJi.value.devlang!=='c/c++'){
- console.log(formJi.value.devlang)
- isElse.value = true
- formJi.value.devlang = '1'
- }
- })
- }
- async function subEdit(){
- if(fileList.value.length>0&&fileList1.value.length===0){
- await proxy.$refs["uploadRef"].submit();
- }
- else if(fileList.value.length>0&&fileList.value.length===0){
- await proxy.$refs["uploadRef1"].submit();
- }
- else if(fileList.value.length>0&&fileList.value.length>0){
- await proxy.$refs["uploadRef1"].submit();
- await proxy.$refs["uploadRef"].submit();
- }
- else{
- await formRefJi.value.validate((valid) => {
- if(valid){
- if(formJi.value.devlang==='1'){
- formJi.value.devlang = elseLan.value
- }
- delete formJi.value.msort
- formJi.value.devkind = 'SYS'
- updateModel(formJi.value).then(res=>{
- if(res.code===200){
- proxy.$modal.msgSuccess("修改成功");
- dialogVisible.value = false
- getModelListTable()
- }
- })
- }
- });
- }
- }
- async function submit(){
- formRefJi.value.validate((valid) => {
- console.log(formJi.value,valid)
- if(valid){
- if(formJi.value.devlang==='1'){
- formJi.value.devlang = elseLan.value
- }
- delete formJi.value.msort
- formJi.value.devkind = 'SYS'
- formJi.value.cateid = 'eec8aee5-d859-4b44-b0a1-56a22e0c29bb'
- addModel(formJi.value).then(res=>{
- if(res.code===200){
- proxy.$modal.msgSuccess("新增成功");
- dialogVisible.value = false
- getModelListTable()
- }
- })
- }
- })
- }
- async function handleFileSuccess1(response, file, fileList){
- formJi.value.mdOutFile = response.originalFilename
- formJi.value.mdOutName = response.fileName
- await formRefJi.value.validate((valid) => {
- if(valid){
- if(formJi.value.devlang==='1'){
- formJi.value.devlang = elseLan.value
- }
- delete formJi.value.msort
- formJi.value.devkind = 'SYS'
- updateModel(formJi.value).then(res=>{
- if(res.code===200){
- proxy.$modal.msgSuccess("修改成功");
- dialogVisible.value = false
- getModelListTable()
- }
- })
- }
- });
- };
- async function handleFileSuccess(response, file, fileList){
- formJi.value.mdInFile = response.originalFilename
- formJi.value.mdInName = response.fileName
- await formRefJi.value.validate((valid) => {
- if(valid){
- if(formJi.value.devlang==='1'){
- formJi.value.devlang = elseLan.value
- }
- delete formJi.value.msort
- formJi.value.devkind = 'SYS'
- updateModel(formJi.value).then(res=>{
- if(res.code===200){
- proxy.$modal.msgSuccess("修改成功");
- dialogVisible.value = false
- getModelListTable()
- }
- })
- }
- });
- };
- function clearFromTree(){
- formTree.value = {}
- }
- function clearForm(){
- tableDataCan.value = []
- activeName.value = 'first'
- fileList.value = []
- fileList1.value = []
- formJi.value = {
- name:'',
- version:'',
- enname:'',
- devlang:'',
- intro:'',
- type:'',
- mdContact:'',
- mdUnit:'',
- devUnit:'',
- devContact:'',
- deployDir:'',
- deployIp:'',
- deployPort:'',
- mirrorImageUrl:'',
- mdRunCmd:'',
- envOs:'',
- envDisk:'',
- envGpuMem:'',
- evnArmX86:'',
- envCpuNum:'',
- envGpuType:'',
- envGpuNum:'',
- envMem:'',
- mdInNote:'',
- mdOutNote:''
- }
- }
- function reg(){
- isEdit.value = false
- dialogVisible.value = true
- }
- function getModelListTable(){
- tableData.value = []
- var par = {
- pageNum:1,
- pageSize:20,
- name:name.value,
- mdUnit:mdUnit.value,
- devkind:'SYS'
- }
- getModelList(par).then(res=>{
- tableData.value = res.rows
- totalComReg.value = res.total
- console.log(tableData)
- })
- }
- const seledMo = ['primary','plain','plain','plain','plain','plain','plain']
- </script>
- <style scoped>
- :deep(.treeLeft) .el-tree-node__content {
- display: flex !important;
- height: 28px; /* 按设计稿调整高度 */
- align-items: center;
- padding-top: 0 !important;
- }
- :deep(.treeLeft) .el-tree-node__content:hover {
- background-color: #e9e9eb;
- }
- :deep(.treeLeft) .el-tree-node__content:active {
- background-color: rgka(69,157,255,0.1) !important;
- }
- /* 选中态(Active) */
- :deep(.treeLeft) .el-tree-node.is-current > .el-tree-node__content {
- background-color: #c6e2ff !important;
- }
- .tabs-wrapper {
- position: relative; /* 确保内容层在伪元素上方 */
- z-index: 1; /* 关键:高于背景图 */
- }
- .tabs-wrapper :deep(.el-tabs),
- .tabs-wrapper :deep(.el-tabs__content) {
- background-color: red !important;
- }
- :deep(.el-tabs){
- background-color: transparent !important;
- }
- :deep(.el-tabs__content){
- background-color: transparent !important;
- }
- :deep(.custom-dialog-bg) {
- z-index: 1000;
- background-image: url('@/assets/images/backDia.jpg') !important;
- background-position-x: left;
- background-position-y: bottom;
- background-size: initial;
- background-repeat: repeat-x;
- background-attachment: initial;
- background-origin: initial;
- background-clip: initial;
- background-color: rgb(255, 255, 255);
- }
- :deep(.custom-dialog-bg .el-dialog__header) {
-
- }
- :deep(.custom-dialog-bg .el-dialog__body) {
-
- color: #ecf0f1 !important; ; /* 内容文字颜色 */
- }
- /* 横向排列单选框标签和输入框 */
- .custom-input-wrapper {
- display: flex;
- align-items: center;
- gap: 10px; /* 调整间距 */
- }
- /* 输入框仅显示底部横线 */
- .underline-input :deep(.el-input__wrapper) {
- padding: 0;
- box-shadow: none !important;
- border-bottom: 1px solid #dcdfe6; /* 横线颜色 */
- border-radius: 0;
- background: transparent;
- }
- .underline-input :deep(.el-input__inner) {
- height: 24px;
- padding: 0 5px;
- }
- :deep(.el-table__body tr:hover > td) {
- background-color: #eaf7ff !important;
- }
- .drag-handle {
- cursor: move;
- }
- .ghost {
- opacity: 0.5;
- background: #c8ebfb;
- }
- /* 防止文字选中 */
- :deep(.el-table__row) {
- user-select: none;
- -webkit-user-select: none;
- }
- </style>
- <style scoped lang="scss">
- .el-table .el-table__row td {
- height: 60px !important; /* 行高 */
- }
- .custom-tree-node {
- display: flex; /* 启用 Flex 布局 */
- align-items: center; /* 垂直居中 */
- gap: 8px; /* 图标与文字间距 */
- }
- :deep(.svg-icon) {
- outline: none;
- }
- :deep(.svg-icon svg) {
- stroke: none;
- }
- </style>
|