2023-01-10 23:15:39 +08:00

122 lines
4.2 KiB
Vue

<template>
<div>
<div style="text-align: right">
<el-button type="primary" @click="showEditAddModal = true">新增模板</el-button>
</div>
<el-table :data="applicationRuleList" style="width: 100%">
<el-table-column prop="createdDate" label="创建时间" width="130" :formatter="formatDateTime" />
<el-table-column prop="updatedDate" label="更新时间" width="130" :formatter="formatDateTime" />
<el-table-column prop="name" label="名称" width="180" />
<el-table-column prop="comment" label="备注" />
<el-table-column label="操作" width="250">
<template #default="scope">
<el-button text type="primary" style="margin-left: 0" size="small"
@click="ruleTemplateAction('chose', scope.row)">选择</el-button>
<el-button text type="primary" style="margin-left: 0" size="small"
@click="ruleTemplateAction('edit', scope.row)">编辑</el-button>
<el-button text type="warning" style="margin-left: 0" size="small"
@click="ruleTemplateAction('delete', scope.row)">删除</el-button>
<el-button v-if="defaultTemplateId != scope.row.id" text type="primary" size="small"
@click="ruleTemplateAction('default', scope.row)">设为默认</el-button>
</template>
</el-table-column>
</el-table>
</div>
<el-dialog :title="curEdit != null ? '修改' : '新增模板'" v-model="showEditAddModal" width="40em" @close="closeAddEdit"
append-to-body>
<el-form-item label="名称">
<el-input v-model="templateForm.name"></el-input>
</el-form-item>
<el-form-item label="描述">
<el-input v-model="templateForm.comment"></el-input>
</el-form-item>
<template #footer>
<span class="dialog-footer">
<el-button @click="saveTemplateDilalogShow = false">取消</el-button>
<el-button type="primary" @click="templateSubmit">提交</el-button>
</span>
</template>
</el-dialog>
</template>
<script>
import HttpUtil from "@/utils/HttpUtil";
import dayjs from "dayjs";
export default {
name: "ApplicationRuleList",
props: ["curId"],
emits: ["templateUpdate"],
data () {
return {
applicationRuleList: [],
curEdit: null,
defaultTemplateId: null,
showEditAddModal: false,
templateForm: {
name: "",
comment: "",
},
};
},
async created () {
await this.init();
},
methods: {
async init () {
this.defaultTemplateId = parseInt(await HttpUtil.get("/config/code?code=defaultTempleteId"));
this.applicationRuleList = await HttpUtil.get("/applicationRule");
},
formatDateTime (row, column, value) {
return dayjs(value).format("YYYY-MM-DD");
},
//操作
async ruleTemplateAction (action, rowData) {
if (action === "chose") {
await this.$emit("templateUpdate", rowData);
} else if (action === "default") {
let body = { code: "defaultTempleteId", val: rowData.id.toString() };
await HttpUtil.post("/config/update", null, body);
this.defaultTemplateId = rowData.id;
} else if (action === "edit") {
this.curEdit = rowData;
this.templateForm.name = rowData.name;
this.templateForm.comment = rowData.comment;
this.showEditAddModal = true;
} else {
if (this.curId == rowData.id) {
this.$message({ message: "当前模板使用中,无法删除", type: "warning" });
return;
}
await HttpUtil.delete("/applicationRule/" + rowData.id);
await this.init();
}
},
//表单提交
async templateSubmit () {
let body;
if (this.curEdit) {
body = JSON.parse(JSON.stringify(this.curEdit));
body.name = this.templateForm.name;
body.comment = this.templateForm.comment;
} else {
body = this.templateForm;
body.content = "[]";
}
await HttpUtil.post("/applicationRule", null, body);
await this.init();
this.closeAddEdit();
this.$message.success("操作成功");
},
closeAddEdit () {
this.curEdit = null;
this.showEditAddModal = false;
this.templateForm = { name: "", templte: "" };
},
},
};
</script>
<style>
</style>