|
@@ -9,10 +9,10 @@
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="类型" prop="repoType">
|
|
|
- <el-select v-model="queryParams.repoType" placeholder="类型" clearable>
|
|
|
+ <el-form-item label="组名" prop="groupId">
|
|
|
+ <el-select v-model="queryParams.groupId" placeholder="组名" clearable>
|
|
|
<el-option
|
|
|
- v-for="dict in dict.type.sys_repo_type"
|
|
|
+ v-for="dict in dict.type.sys_repo_group"
|
|
|
:key="dict.value"
|
|
|
:label="dict.label"
|
|
|
:value="dict.value"
|
|
@@ -48,7 +48,11 @@
|
|
|
<el-table-column type="index" label="ID" :show-overflow-tooltip="true" width="60"></el-table-column>
|
|
|
<el-table-column prop="repoName" label="名称" :show-overflow-tooltip="true" width="160"></el-table-column>
|
|
|
<el-table-column prop="version" label="版本" :show-overflow-tooltip="true" width="160"></el-table-column>
|
|
|
- <el-table-column prop="groupId" label="组名" :show-overflow-tooltip="true" width="160"></el-table-column>
|
|
|
+ <el-table-column prop="groupId" label="组名" :show-overflow-tooltip="true" width="160">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <dict-tag :options="dict.type.sys_repo_group" :value="scope.row.groupId"/>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="repoStatus" label="状态" width="160">
|
|
|
<template slot-scope="scope">
|
|
|
<dict-tag :options="dict.type.sys_repo_status" :value="scope.row.repoStatus"/>
|
|
@@ -113,7 +117,14 @@
|
|
|
<el-row>
|
|
|
<el-col :span="12" :disabled="type == 1 || type == 2">
|
|
|
<el-form-item label="组名" prop="groupId">
|
|
|
- <el-input v-model="form.groupId" placeholder="请输入组名"/>
|
|
|
+ <el-select v-model="form.groupId" placeholder="组名" clearable>
|
|
|
+ <el-option
|
|
|
+ v-for="dict in dict.type.sys_repo_group"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -135,14 +146,14 @@
|
|
|
<el-table :data="this.versionList" style="width: 100%" max-height="250">
|
|
|
<el-table-column type="index" label="ID" :show-overflow-tooltip="true" width="60"></el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="fileVersion"
|
|
|
+ prop="version"
|
|
|
label="版本号"
|
|
|
width="120"
|
|
|
:show-overflow-tooltip="true"
|
|
|
>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="repoId"
|
|
|
+ prop="fileName"
|
|
|
label="文件名"
|
|
|
width="150"
|
|
|
:show-overflow-tooltip="true"
|
|
@@ -155,10 +166,17 @@
|
|
|
:show-overflow-tooltip="true"
|
|
|
>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="remark"
|
|
|
+ label="备注"
|
|
|
+ width="120"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
<el-table-column fixed="right" label="操作" width="120">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button size="mini" type="text" icon="el-icon-bottom" @click="handleDownload(scope.row)">下载</el-button>
|
|
|
- <el-button size="mini" type="text" icon="el-icon-delete" @click="handleRollback(scope.row)">回滚</el-button>
|
|
|
+ <template slot-scope="scope2">
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-bottom" @click="handleDownload(scope2.row)">下载</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-delete" @click="handleRollback(scope2.row)">回滚</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -190,13 +208,22 @@
|
|
|
|
|
|
<script>
|
|
|
|
|
|
-import { addRepo, delRepo, getRepo, getVersion, listRepo, updateRepo, updateVersion } from '@/api/system/repo'
|
|
|
+import {
|
|
|
+ addRepo,
|
|
|
+ delRepo, fileDownload,
|
|
|
+ getRepo,
|
|
|
+ getVersion,
|
|
|
+ listRepo,
|
|
|
+ updateRepo,
|
|
|
+ updateVersion,
|
|
|
+ versionRollback
|
|
|
+} from '@/api/system/repo'
|
|
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
|
|
import FileUpload from '@/components/FileUpload'
|
|
|
|
|
|
export default {
|
|
|
name: 'Repo',
|
|
|
- dicts: ['sys_repo_status', 'sys_repo_type'],
|
|
|
+ dicts: ['sys_repo_status', 'sys_repo_type', 'sys_repo_group'],
|
|
|
components: { FileUpload },
|
|
|
data() {
|
|
|
return {
|
|
@@ -224,7 +251,7 @@ export default {
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
repoName: undefined,
|
|
|
- repoType: undefined,
|
|
|
+ groupId: undefined,
|
|
|
repoId: undefined,
|
|
|
},
|
|
|
// 表单参数
|
|
@@ -265,11 +292,12 @@ export default {
|
|
|
repoId: undefined,
|
|
|
repoName: undefined,
|
|
|
version: undefined,
|
|
|
- repoType: undefined,
|
|
|
+ repoType: 'File',
|
|
|
repoStatus: 'Public',
|
|
|
- description: undefined,
|
|
|
+ remark: undefined,
|
|
|
url: undefined,
|
|
|
groupId: undefined,
|
|
|
+ fileName: undefined,
|
|
|
}
|
|
|
this.resetForm('form')
|
|
|
},
|
|
@@ -369,20 +397,48 @@ export default {
|
|
|
}).catch(() => {
|
|
|
})
|
|
|
},
|
|
|
+ /** 文件上传 */
|
|
|
handleFileUpload(updateFileList) {
|
|
|
this.form.url = updateFileList
|
|
|
},
|
|
|
+ /** 对比文件 */
|
|
|
compareFile(){
|
|
|
- this.reset()
|
|
|
getRepo(this.form).then(response => {
|
|
|
this.comparisonMade = true
|
|
|
})
|
|
|
},
|
|
|
- handleDownload(){
|
|
|
-
|
|
|
+ /** 下载文件 */
|
|
|
+ handleDownload(row) {
|
|
|
+ this.reset();
|
|
|
+ fileDownload({ url: row.url, fileName: row.fileName }).then(response => {
|
|
|
+ // 创建一个指向该 Blob 对象的 URL
|
|
|
+ const url = window.URL.createObjectURL(new Blob([response.data]));
|
|
|
+ const link = document.createElement("a");
|
|
|
+ link.style.display = "none";
|
|
|
+ link.href = url;
|
|
|
+ // 使用 row.fileName 作为下载文件的名称
|
|
|
+ link.setAttribute("download", row.fileName);
|
|
|
+ document.body.appendChild(link);
|
|
|
+ link.click();
|
|
|
+ document.body.removeChild(link);
|
|
|
+ // 释放 URL 对象
|
|
|
+ window.URL.revokeObjectURL(url);
|
|
|
+ this.open = false;
|
|
|
+ }).catch(error => {
|
|
|
+ console.error("文件下载失败:", error);
|
|
|
+ });
|
|
|
},
|
|
|
- handleRollback(){
|
|
|
-
|
|
|
+ /** 回滚文件 */
|
|
|
+ handleRollback(row){
|
|
|
+ this.reset()
|
|
|
+ this.form.repoType = undefined
|
|
|
+ this.form.repoStatus = undefined
|
|
|
+ this.form.version = row.version
|
|
|
+ this.form.repoId = row.repoId
|
|
|
+ versionRollback(this.form).then(response => {
|
|
|
+ this.getList()
|
|
|
+ this.open = false
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|