This commit is contained in:
那些花儿
2025-09-12 15:58:49 +08:00
parent 276f4b7190
commit 52715e3e9a
16 changed files with 653 additions and 27 deletions
@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>
@@ -0,0 +1,135 @@
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
<guava ref="guava">
<el-card shadow="never">
<search @search="doSearch">
<search-item label="名称">
<el-input placeholder="名称" clearable v-model="pageForm.searchKeyword"></el-input>
</search-item>
</search>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="数据列表">
<el-button type="primary" size="small" icon="el-icon-plus" @click="onOpen">新增</el-button>
</table-tool>
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" ref="table" row-key="id" style="width: 100%">
<el-table-column :index="indexMethod" align="center" header-align="center" label="序号" type="index" width="80px"></el-table-column>
<el-table-column label="名称" prop="name" sortable></el-table-column>
<el-table-column label="模板内容" prop="template" width="400px"></el-table-column>
<el-table-column label="定时任务" prop="cron" width="150px"></el-table-column>
<el-table-column label="是否启用" prop="enabled" sortable width="150px">
<template scope="{row}">
<el-tag :type="row.enabled ? 'success' : 'danger'" size="mini">{{row.enabled ? '是' : '否'}}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" width="200px">
<template scope="{row}">
<el-button size="mini" type="primary" @click="onEdit(row)">修改</el-button>
<el-button size="mini" type="danger" @click="onDelete(row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</guava>
<el-dialog :title="formData.id ? '编辑' : '新增'" :visible.sync="dialogVisible" :close-on-click-modal="false" width="60%">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="80px">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="名称"></el-input>
</el-form-item>
<el-form-item label="模板内容" prop="template">
<el-input v-model="formData.template" placeholder="模板内容" type="textarea" rows="5"></el-input>
</el-form-item>
<el-form-item label="定时任务" prop="cron">
{{formData.cron}}
<el-select v-model="formData.cron" placeholder="请选择定时任务或者输入cron表达式" allow-create filterable>
<el-option label="早上8点" value="0 0 8 * * ?"></el-option>
<el-option label="早上9点" value="0 0 9 * * ?"></el-option>
<el-option label="早上10点" value="0 0 10 * * ?"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否启用" prop="enabled">
<el-switch v-model="formData.enabled"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="onSubmit">确 定</el-button>
</div>
</el-dialog>
</div>
<script>
new Vue({
el: "#app",
mixins: [initTableMixins],
data() {
return {
dialogVisible: false,
formRules: {
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
template: [{ required: true, message: "请输入模板内容", trigger: "blur" }],
cron: [{ required: true, message: "请选择定时任务或者输入cron表达式", trigger: "blur" }],
enabled: [{ required: true, message: "请选择是否启用", trigger: "blur" }]
}
}
},
methods: {
onOpen() {
this.dialogVisible = true
this.$nextTick(() => {
this.formData = {}
this.$refs.formRef.resetFields()
})
},
onEdit(row) {
this.dialogVisible = true
this.$nextTick(() => {
this.formData = { ...row }
})
},
onSubmit() {
this.$refs.formRef.validate((valid) => {
if (valid) {
this.$axios.post("/platform/birthdayWishes/plan/" + (this.formData.id ? "update" : "insert"), this.formData).then((res) => {
if (res.code === 0) {
this.$message.success(res.msg)
this.dialogVisible = false
this.doSearch()
} else {
this.$message.error(res.msg)
}
})
}
})
},
onDelete(id) {
this.$confirm("确定删除吗?", "提示", {
type: "warning",
confirmButtonText: "确定",
cancelButtonText: "取消"
}).then(() => {
this.$axios.post("/platform/birthdayWishes/plan/delete", { id }).then((res) => {
if (res.code === 0) {
this.$message.success(res.msg)
this.doSearch()
} else {
this.$message.error(res.msg)
}
})
})
}
},
created() {
this.pageData()
}
})
</script>
<!--#
}
#-->
@@ -7,7 +7,7 @@ layout("/layouts/platform.html"){
<el-card shadow="never">
<search @search="doSearch">
<search-item label="名称">
<el-input v-model="pageForm.displayName" placeholder="名称" clearable></el-input>
<el-input v-model="pageForm.searchKeyword" placeholder="名称" clearable></el-input>
</search-item>
</search>
</el-card>
@@ -41,18 +41,26 @@ layout("/layouts/platform.html"){
<el-form-item label="标题" prop="title" :rules="{ required: true, message: '请输入标题', trigger: 'blur' }">
<el-input v-model="formData.title" placeholder="请输入标题"></el-input>
</el-form-item>
<el-form-item label="封面图" prop="cover" :rules="{ required: true, message: '请上传封面图', trigger: 'blur' }">
<el-form-item label="封面图" prop="cover"
:rules="{ required: true, message: '请上传封面图', trigger: 'blur' }">
<file-upload
:value.sync="formData.cover"
:upload_number="1"
upload_mode="image"
upload_result_category="interval"
upload_result_type="url"
:value.sync="formData.cover"
:upload_number="1"
upload_mode="image"
upload_result_category="interval"
upload_result_type="url"
></file-upload>
</el-form-item>
<el-form-item label="内容" prop="content" :rules="{ required: true, message: '请输入内容', trigger: 'blur' }">
<el-form-item label="内容" prop="content"
:rules="{ required: true, message: '请输入内容', trigger: 'blur' }">
<text-editor v-model="formData.content"></text-editor>
</el-form-item>
<el-form-item label="可见人员" prop="groupId">
<permission-group :value.sync="formData.groupId"></permission-group>
</el-form-item>
<el-form-item label="外部链接" prop="link">
<el-input v-model="formData.link" placeholder="请输入外部链接" maxlength="255"></el-input>
</el-form-item>
<el-form-item label="是否启用" prop="enable">
<el-switch v-model="formData.enable"></el-switch>
</el-form-item>
@@ -82,10 +90,24 @@ layout("/layouts/platform.html"){
},
onEdit(row) {
this.dialogVisible = true
this.formData = { ...row }
this.formData = {...row}
},
onDelete(row) {
this.$confirm("您确定删除吗?", "提示", {
type: "warning",
confirmButtonText: "确定",
cancelButtonText: "取消"
}).then(() => {
this.$axios.post("/platform/huimin/manage/delete", {id: row.id}).then((res) => {
if (res.code === 0) {
this.$message.success(res.msg)
this.pageData()
}
})
})
},
onSubmit() {
$.post("/platform/huimin/manage/" + (this.formData.id ? "update" : "insert"), { data: JSON.stringify(this.formData) }).then((res) => {
this.$axios.post("/platform/huimin/manage/" + (this.formData.id ? "update" : "insert"), {data: JSON.stringify(this.formData)}).then((res) => {
if (res.code === 0) {
this.$message.success(res.msg)
this.pageData()