micro-ui/src/views/monitor/project/projectEdit.vue
2024-01-02 18:49:25 +08:00

130 lines
3.8 KiB
Vue

<template>
<el-card class="box-card" shadow="always">
<div slot="header" class="clearfix">
<span>{{ title }}</span>
<el-button-group style="float: right;">
<el-button type="primary" size="mini" icon="el-icon-finished" :loading="loadingOptions.loading" :disabled="loadingOptions.isDisabled" @click="submitForm">{{ loadingOptions.loadingText }}</el-button>
<el-button size="mini" icon="el-icon-back" @click="showCard">返回</el-button>
</el-button-group>
</div>
<div class="body-wrapper">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<div style="padding: 20px 200px">
<el-form-item label="项目名称" prop="projectName">
<el-input v-model="form.projectName" placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目描述" prop="projectDescription">
<el-input v-model="form.projectDescription" type="textarea" placeholder="请输入项目描述" />
</el-form-item>
</div>
</el-form>
</div>
</el-card>
</template>
<script>
import { getProjectById, updateProject } from '@/api/monitor/projectApi'
export default {
name: 'ProjectEdit',
props: {
data: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
title: '项目修改',
// 展示切换
showOptions: {
data: {},
showList: true,
showAdd: false,
showEdit: false,
showDetail: false
},
// 保存按钮
loadingOptions: {
loading: false,
loadingText: '保存',
isDisabled: false
},
// 表单参数
form: {
id: undefined,
projectName: undefined,
projectDescription: undefined,
subjectId: undefined,
deleted: undefined
},
// 表单校验
rules: {
projectName: [
{ required: true, message: '项目名称不能为空', trigger: 'change' }
]
}
}
},
created() {
},
mounted() {
this.getProjectById(this.data.id)
},
methods: {
showCard() {
this.$emit('showCard', this.showOptions)
},
/** 获取详情 */
async getProjectById(id) {
this.form = await getProjectById(id).then(response => {
if (response.code === 200) {
return response.data
}
})
},
/** 提交按钮 */
submitForm: function() {
this.$refs['form'].validate(valid => {
if (valid) {
this.loadingOptions.loading = true
this.loadingOptions.loadingText = '保存中...'
this.loadingOptions.isDisabled = true
updateProject(this.form).then(response => {
if (response.code === 200) {
this.$message.success('保存成功')
setTimeout(() => {
// 2秒后跳转列表页
this.$emit('showCard', this.showOptions)
}, 2000)
} else {
this.$message.error('保存失败')
this.loadingOptions.loading = false
this.loadingOptions.loadingText = '保存'
this.loadingOptions.isDisabled = false
}
}).catch(() => {
this.loadingOptions.loading = false
this.loadingOptions.loadingText = '保存'
this.loadingOptions.isDisabled = false
})
}
})
}
}
}
</script>
<style lang="scss" scoped>
.el-card ::v-deep .el-card__body {
height: calc(100vh - 230px);
overflow-y: auto;
}
.choosedDbType{
border: 1px solid #165DFF;
}
</style>