sys_notice.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <template>
  2. <!-- 系统通知 -->
  3. <el-container>
  4. <el-main class="el-main-padding">
  5. <el-form
  6. :model="ruleForm"
  7. :rules="rules"
  8. ref="ruleForm"
  9. label-width="200px"
  10. class="demo-ruleForm"
  11. :inline-message="true"
  12. >
  13. <el-form-item label="有效期" prop="examDatetimeRange">
  14. <el-date-picker
  15. class="input"
  16. v-model="examDatetimeRange"
  17. type="datetimerange"
  18. range-separator="至"
  19. start-placeholder="开始日期"
  20. end-placeholder="结束日期"
  21. value-format="yyyy-MM-dd HH:mm:ss"
  22. :clearable="false"
  23. ></el-date-picker>
  24. </el-form-item>
  25. <el-form-item label="标题" prop="title">
  26. <el-input
  27. type="text"
  28. placeholder="请输入标题"
  29. v-model="ruleForm.title"
  30. maxlength="20"
  31. show-word-limit
  32. ></el-input>
  33. </el-form-item>
  34. <el-form-item label="通知内容" prop="content">
  35. <el-input
  36. type="textarea"
  37. placeholder="请输入内容"
  38. v-model="ruleForm.content"
  39. maxlength="200"
  40. show-word-limit
  41. ></el-input>
  42. </el-form-item>
  43. <el-form-item label="状态" prop="enable">
  44. <el-radio-group class="pull_right_sm" v-model="ruleForm.enable">
  45. <el-radio :label="true">启用</el-radio>
  46. <el-radio :label="false">禁用</el-radio>
  47. </el-radio-group>
  48. </el-form-item>
  49. <el-form-item style="margin-top:10px;">
  50. <el-button type="primary" @click="submitForm('ruleForm')"
  51. >保 存</el-button
  52. >
  53. </el-form-item>
  54. </el-form>
  55. </el-main>
  56. </el-container>
  57. </template>
  58. <script>
  59. import { mapState } from "vuex";
  60. import moment from "moment";
  61. import { CORE_API } from "@/constants/constants.js";
  62. let _this = null;
  63. export default {
  64. name: "sys_notice",
  65. data() {
  66. let validateExamDatetimeRange = (rule, value, callback) => {
  67. let examDatetimeRange = _this.examDatetimeRange;
  68. if (!examDatetimeRange) {
  69. callback(new Error("请输入有效期"));
  70. } else {
  71. callback();
  72. }
  73. };
  74. return {
  75. examDatetimeRange: [],
  76. ruleForm: {
  77. id: null,
  78. rootOrgId: -1,
  79. content: "",
  80. startTime: null,
  81. endTime: null,
  82. enable: true,
  83. title: ""
  84. },
  85. rules: {
  86. title: [{ required: true, trigger: "blur" }],
  87. content: [{ required: true, trigger: "blur" }],
  88. enable: [{ required: true, trigger: "blur" }],
  89. examDatetimeRange: [
  90. {
  91. required: true,
  92. validator: validateExamDatetimeRange,
  93. trigger: "blur"
  94. }
  95. ]
  96. }
  97. };
  98. },
  99. methods: {
  100. submitForm(formName) {
  101. this.$refs[formName].validate(valid => {
  102. if (valid) {
  103. this.ruleForm.startTime = this.examDatetimeRange[0];
  104. this.ruleForm.endTime = this.examDatetimeRange[1];
  105. this.$httpWithMsg
  106. .put(CORE_API + "/sys/notice/saveSysNotice", this.ruleForm)
  107. .then(
  108. () => {
  109. this.$notify({
  110. message: "保存成功",
  111. type: "success"
  112. });
  113. },
  114. () => {}
  115. );
  116. } else {
  117. return false;
  118. }
  119. });
  120. },
  121. initForm() {
  122. var url = CORE_API + "/sys/notice/getSysNotice/?rootOrgId=-1";
  123. this.$httpWithMsg.get(url).then(response => {
  124. if (response && response.data) {
  125. let data = response.data;
  126. (this.ruleForm.rootOrgId = data.rootOrgId),
  127. (this.ruleForm.content = data.content);
  128. this.ruleForm.id = data.id;
  129. this.ruleForm.startTime = data.startTime;
  130. this.ruleForm.endTime = data.endTime;
  131. this.ruleForm.title = data.title;
  132. this.ruleForm.enable = data.enable;
  133. this.examDatetimeRange = [
  134. this.ruleForm.startTime,
  135. this.ruleForm.endTime
  136. ];
  137. } else {
  138. let now = moment().format("YYYY-MM-DD HH:mm:ss");
  139. this.examDatetimeRange = [now, now];
  140. }
  141. });
  142. }
  143. },
  144. created() {
  145. _this = this;
  146. this.initForm();
  147. },
  148. watch: {},
  149. computed: {
  150. ...mapState({ user: state => state.user })
  151. }
  152. };
  153. </script>
  154. <style scoped>
  155. .input-width {
  156. width: 638px;
  157. }
  158. </style>