comfyUi版本

master
shenhan000 2025-06-12 16:16:29 +08:00
parent 566375ceb8
commit bd2eaf50ad
3 changed files with 545 additions and 4 deletions

View File

@ -0,0 +1,34 @@
import request from '@/utils/request'
export function list() {
return request({
url: 'SyncFile/list',
method: 'post',
})
}
export function deleteList(data) {
return request({
url: 'SyncFile/delete',
method: 'get',
params: data
})
}
export function updateList(data) {
return request({
url: `SyncFile/update`,
method: 'post',
data: data
})
}
export function add(data) {
return request({
url: `SyncFile/insert`,
method: 'post',
data: data
})
}

View File

@ -0,0 +1,490 @@
<template>
<div class="app-container">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
>新增</el-button
>
</el-col>
</el-row>
<el-table ref="tables" v-loading="loading" :data="list">
<el-table-column
label="版本"
align="center"
width="100"
prop="version"
:show-overflow-tooltip="true"
/>
<el-table-column
label="代码段"
align="center"
width="200"
prop="pyCode"
:show-overflow-tooltip="true"
/>
<el-table-column
label="开始时间"
align="center"
width="200"
prop="startTime"
:show-overflow-tooltip="true"
/>
<el-table-column
label="结束时间"
align="center"
width="200"
prop="endTime"
:show-overflow-tooltip="true"
/>
<el-table-column
label="文件地址"
align="center"
width="200"
prop="filePath"
:show-overflow-tooltip="true"
/>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="onDelete(scope.row)"
>删除</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-close"
@click="shwoEdite(scope.row)"
>修改</el-button
>
</template>
</el-table-column>
</el-table>
<!-- <pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNumber"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/> -->
<el-dialog title="新增版本" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="版本">
<el-input
v-model="form.version"
type="input"
placeholder="请输入版本号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="代码段">
<el-input
v-model="form.pyCode"
:autosize="{ minRows: 2, maxRows: 6 }"
type="textarea"
placeholder="请输入代码段"
></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="开始时间">
<el-date-picker
v-model="form.startTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%;"
placeholder="请选择开始时间"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="结束时间">
<el-date-picker
v-model="form.endTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%;"
placeholder="请选择结束时间"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="添加文件">
<!-- <el-upload
class="upload-demo"
accept="file/*"
ref="upload"
:auto-upload="false"
action="#"
:show-file-list="false"
:limit="1"
:on-change="handleChange"
>
<el-button size="small" type="primary">点击上传</el-button>
</el-upload> -->
<el-upload
multiple
:action="uploadFileUrl"
:before-upload="handleBeforeUpload"
:limit="limit"
:on-error="handleUploadError"
:on-exceed="handleExceed"
:on-success="handleUploadSuccess"
:show-file-list="false"
:headers="headers"
class="upload-file-uploader"
ref="fileUpload"
>
<el-button size="mini" type="primary">选取文件</el-button>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.filePath">
<div>
地址 <a :href="form.filePath" target="_blank">{{form.filePath}}</a>
</div>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="onAdd"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<el-dialog title="编辑版本" :visible.sync="editOpen" width="600px" append-to-body>
<el-form ref="editForm" :model="editForm" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="版本">
<el-input
v-model="editForm.version"
type="input"
placeholder="请输入版本号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="代码段">
<el-input
v-model="editForm.pyCode"
:autosize="{ minRows: 2, maxRows: 6 }"
type="textarea"
placeholder="请输入代码段"
></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="开始时间">
<el-date-picker
v-model="editForm.startTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%;"
placeholder="请选择开始时间"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="结束时间">
<el-date-picker
v-model="editForm.endTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%;"
placeholder="请选择结束时间"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="添加文件">
<!-- <el-upload
class="upload-demo"
accept="file/*"
ref="upload"
:auto-upload="false"
action="#"
:show-file-list="false"
:limit="1"
:on-change="handleChange"
>
<el-button size="small" type="primary">点击上传</el-button>
</el-upload> -->
<el-upload
multiple
:action="uploadFileUrl"
:before-upload="handleBeforeUpload"
:limit="limit"
:on-error="handleUploadError"
:on-exceed="handleExceed"
:on-success="handleUploadSuccess"
:show-file-list="false"
:headers="headers"
class="upload-file-uploader"
ref="fileUpload"
>
<el-button size="mini" type="primary">选取文件</el-button>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="24" v-if="editForm.filePath">
<div>
地址 <a :href="editForm.filePath" target="_blank">{{editForm.filePath}}</a>
</div>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleEdit"></el-button>
<el-button @click="cancelEdit"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { list, add, deleteList, updateList, UrlFile } from "@/api/comfyui/index";
import { Loading } from "element-ui";
import { getToken } from "@/utils/auth";
export default {
name: "comfyuiVersion",
data() {
return {
uploadFileUrl: process.env.VUE_APP_BASE_API + '/file/fileUpload',
limit: 1,
headers: {
Authorization: 'Bearer ' + getToken(),
},
open: false,
editOpen: false,
form: {
version: "",
pyCode:'',
startTime:null,
endTime:null,
filePath:''
},
displayText:'',
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
selectName: "",
//
showSearch: true,
//
total: 0,
//
list: [],
//
dateRange: [],
//
defaultSort: { prop: "loginTime", order: "descending" },
//
queryParams: {
pageNumber: 1,
pageSize: 10,
ipaddr: undefined,
userName: undefined,
status: undefined,
},
deleteAllParams: [],
editForm: {
name: "",
url: "",
id: "",
},
};
},
created() {
this.getList();
},
methods: {
handleBeforeUpload(file) {
console.log('file1',file);
this.uploadLoading = true; // loading
return true; // true
},
handleUploadError(error, file, fileList) {
this.uploadLoading = false;
this.$message.error('上传失败,请重新上传');
},
handleExceed(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
handleUploadSuccess(response, file, fileList) {
if(this.open){
this.form.filePath = response.data.path
}else{
this.editForm.filePath = response.data.path
}
this.uploadLoading = false;
this.$refs.fileUpload.clearFiles(); //
},
handleTextAreaInput(value) {
// this.displayText = value;
// change
// this.form.text =
// const text = value.replace(/\n/g, "[BR]");
this.form.pyCode = value;
},
//
handleTextAreaChange(value) {
// this.form.name = value.replace(/\n/g, "[BR]");
// const text = value.replace(/\n/g, "[BR]");
this.form.pyCode = value;
},
handleChange(file) {
let loadingInstance = Loading.service({text:'正在上传图片'});
const formData = new FormData();
formData.append("file", file.raw); // `file`
UrlFile(formData).then((response) => {
if (response.code === 200) {
this.form.filePath = response.data;
}
}).finally(()=>{
loadingInstance.close();
})
this.$refs.upload.clearFiles();
},
handleEditChange(file) {
let loadingInstance = Loading.service({text:'正在上传图片'});
const formData = new FormData();
formData.append("file", file.raw); // `file`
UrlFile(formData).then((response) => {
if (response.code === 200) {
this.editForm.url = response.data;
}
}).finally(()=>{
loadingInstance.close();
})
this.$refs.upload.clearFiles();
},
cancelEdit() {
this.editOpen = false;
this.editForm.name = "";
this.editForm.url = "";
this.editForm.id = "";
},
handleEdit() {
updateList(this.addDateRange(this.editForm)).then((response) => {
this.$modal.msgSuccess("编辑成功");
this.getList();
this.cancelEdit();
}).catch((err)=>{
debugger
this.$message.error('编辑失败,请重新编辑');
});
},
shwoEdite(row) {
this.editForm = row;
this.$nextTick(()=>{
this.editOpen = true;
})
},
handleAdd() {
this.open = true;
},
cancel() {
this.form.name = "";
this.form.url = "";
this.open = false;
},
handleUpdateStatus(row, status) {
this.form.productId = row.productId;
this.form.type = row.type;
this.form.status = status;
if (status === 1) {
this.open = true;
} else {
updateStatus(this.addDateRange(this.form)).then((response) => {
this.$modal.msgSuccess("已通过");
this.getList();
});
}
},
onAdd() {
add(this.addDateRange(this.form)).then((response) => {
this.$modal.msgSuccess("添加成功");
this.getList();
this.cancel();
});
},
/** 查询登录日志列表 */
getList() {
this.loading = true;
list(this.addDateRange(this.queryParams, this.dateRange)).then((response) => {
this.list = response.data;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNumber = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.queryParams.pageNumber = 1;
this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order);
},
/** 多选框选中数据 */
// handleSelectionChange(selection) {
// this.ids = selection.map((item) => item.infoId);
// this.single = selection.length != 1;
// this.multiple = !selection.length;
// this.selectName = selection.map((item) => item.userName);
// },
/** 排序触发事件 */
handleSortChange(column, prop, order) {
this.queryParams.orderByColumn = column.prop;
this.queryParams.isAsc = column.order;
this.getList();
},
/** 删除按钮操作 */
onDelete(row) {
this.$modal
.confirm("是否确认删除?")
.then(function () {
return deleteList({id:row.id});
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
},
};
</script>
<style>
.addImg {
width: 130px;
height: 130px;
}
</style>

View File

@ -27,7 +27,7 @@
<el-table-column
label="工具名称"
align="center"
width="200"
width="100"
prop="name"
:show-overflow-tooltip="true"
/>
@ -42,20 +42,27 @@
label="工具类型"
align="center"
width="100"
prop="type"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="状态"
align="center"
width="200"
width="100"
prop="status"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
{{scope.row.status === 1 ? '启用' : "禁用"}}
</template>
</el-table-column>
</el-table-column>
<el-table-column
label="描述"
align="center"
width="200"
prop="remark"
:show-overflow-tooltip="true"
/>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button
@ -144,6 +151,10 @@
<el-option v-for="dict in toolTypeList" :key="dict.dictValue" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="描述">
<el-input type="textarea" style="width: 100%;" v-model="form.remark" placeholder="请输入描述"></el-input>
</el-form-item>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
@ -193,6 +204,12 @@
<el-option v-for="dict in toolTypeList" :key="dict.dictValue" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<!-- // -->
<el-form-item label="描述">
<el-input type="textarea" style="width: 100%;" v-model="editForm.remark" placeholder="请输入描述"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>