xw_admin/src/views/docsManager/save.vue
2024-07-29 16:27:34 +08:00

104 lines
2.6 KiB
Vue

<template>
<el-dialog :title="titleMap[mode]" v-model="visible" :width="460" draggable destroy-on-close @closed="$emit('closed')">
<el-form :model="form" :rules="rules" :disabled="mode=='show'" ref="dialogForm" label-width="120px" label-position="top">
<el-form-item label="请输入文件名称" prop="file_name" v-if="mode =='rename'">
<el-input v-model="form.file_name" placeholder="请输入文件名称" clearable></el-input>
</el-form-item>
<el-form-item label="请输入文件夹名称" prop="name" v-else>
<el-input v-model="form.name" placeholder="请输入文件夹名称" clearable></el-input>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="visible=false" >取 消</el-button>
<el-button v-if="mode!='show'" type="primary" :loading="isSave" @click="submit()"> </el-button>
</template>
</el-dialog>
</template>
<script>
export default {
emits: ['success', 'closed'],
data() {
return {
mode: "add",
titleMap: {
add: '新建文件夹',
edit: '编辑',
rename: '修改文件名'
},
visible: false,
isSave: false,
file_type:'',
//表单数据
form: {
parent_id:"",
name: "",
file_id:'',
file_name:'',
},
//验证规则
rules: {
name: [
{required: true, message: '请输入文件夹名称'}
],
file_name:[
{required: true, message: '请输入文件名称'}
]
}
}
},
mounted() {
},
methods: {
//显示
open(mode='add'){
this.mode = mode;
this.visible = true;
return this
},
//表单提交方法
submit(){
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
this.isSave = true;
let res
if(this.mode == 'rename'){
delete this.form.name;
delete this.form.id;
res = await this.$API.docs.manager.rename.post(this.form);
}else{
let params = this.$TOOL.objCopy(this.form);
delete params.file_id;
delete params.file_name;
res = await this.$API.docs.manager.add.post(this.form);
}
this.isSave = false;
if(res.code == 200){
this.$emit('success', this.form, this.mode)
this.visible = false;
this.$message.success("操作成功")
}
}
})
},
//表单注入数据
setData(data){
this.form.parent_id = data.folder_id;
this.form.name = data.name;
if(this.mode == 'edit' || this.mode == 'rename'){
this.form.parent_id = data.parent_id;
this.form.id = data.id;
if(data.type == 'file'){
this.form.file_name = data.client_file_name;
this.form.file_id = data.id;
}
}
}
}
}
</script>
<style>
</style>