addNotice.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <template>
  2. <div>
  3. <div class="body">
  4. <div class="s-body">
  5. <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  6. <el-form-item label="公告名称: " prop="name">
  7. <el-input v-model="ruleForm.name"></el-input>
  8. </el-form-item>
  9. <el-form-item label="发布时间: " required>
  10. <el-date-picker v-model="ruleForm.date" type="date" placeholder="选择日期">
  11. </el-date-picker>
  12. <el-time-picker placeholder="选择时间" v-model="ruleForm.time"></el-time-picker>
  13. </el-form-item>
  14. <el-form-item label="公告内容: " prop="name">
  15. <mavon-editor ref="md" v-model="notice.noticeContent" style="height: calc(100vh - 400px)" />
  16. </el-form-item>
  17. <el-form-item>
  18. <el-button type="danger" @click="confirmGG" style="float: right">发布公告</el-button>
  19. </el-form-item>
  20. </el-form>
  21. <el-dialog title="提示" :visible.sync="dialogVisible" width="20%" :before-close="handleClose">
  22. <span>确认发布公告吗?</span>
  23. <span slot="footer" class="dialog-footer">
  24. <el-button @click="cancel">取 消</el-button>
  25. <el-button type="primary" @click="submitForm">确 定</el-button>
  26. </span>
  27. </el-dialog>
  28. </div>
  29. </div>
  30. </div>
  31. </template>
  32. <script>
  33. import { addNotice } from '../../api/notice/notice'
  34. export default {
  35. name: "Addnotice",
  36. data() {
  37. return {
  38. ruleForm: {
  39. name: '',
  40. date: '',
  41. time: '',
  42. },
  43. notice: {
  44. noticeContent: "",
  45. },
  46. rules: {
  47. name: [
  48. { required: true, message: '请输入公告名称', trigger: 'blur' },
  49. ],
  50. date: [
  51. { required: true, type: 'date', message: '请选择日期', trigger: 'change' }
  52. ],
  53. time: [
  54. { required: true, type: 'date', message: '请选择时间', trigger: 'change' }
  55. ]
  56. },
  57. dialogVisible: false,
  58. };
  59. },
  60. methods: {
  61. submitForm() {
  62. this.$refs.ruleForm.validate((valid) => {
  63. if (valid) {
  64. let nyr = this.$formatDate(this.ruleForm.date, 'yyyy-MM-dd');
  65. let sfm = this.$formatDate(this.ruleForm.time, 'hh:mm:ss');
  66. let notice = {
  67. noticeTitle: this.ruleForm.name,
  68. noticeContent: this.notice.noticeContent,
  69. createTime: nyr + ' ' + sfm
  70. }
  71. addNotice(notice).then(() => {
  72. this.ruleForm.name = '';
  73. this.ruleForm.date = '';
  74. this.ruleForm.time = '';
  75. this.notice.noticeContent = '';
  76. })
  77. this.$notify({
  78. title: '成功',
  79. message: '创建消息成功',
  80. type: 'success'
  81. });
  82. this.$router.push("./noticeList");
  83. } else {
  84. this.$notify({
  85. title: '警告',
  86. message: '请填写内容',
  87. type: 'warning'
  88. });
  89. }
  90. });
  91. this.dialogVisible = false
  92. },
  93. cancel() {
  94. this.dialogVisible = false
  95. },
  96. confirmGG() {
  97. this.dialogVisible = true
  98. },
  99. resetForm(formName) {
  100. this.$refs[formName].resetFields();
  101. },
  102. handleClose(done) {
  103. this.$confirm("确认关闭?")
  104. .then((_) => {
  105. done();
  106. })
  107. .catch((_) => { });
  108. },
  109. },
  110. };
  111. </script>
  112. <style lang="scss" scoped>
  113. .body {
  114. margin: auto;
  115. width: 80%;
  116. border: solid 2px rgb(239, 231, 231);
  117. margin-top: 16px;
  118. border-radius: 10px;
  119. }
  120. .s-body {
  121. margin: 0 auto;
  122. width: 70%;
  123. padding-top: 40px;
  124. }
  125. </style>