system-setting.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <div id="system-setting">
  3. <detail-frame :title="pageTitle">
  4. <data-form :data="form" :fields="fields" :rules="rules" @save="handleSave" labelWidth="150px" :reset="false">
  5. <template #options="{item,form}">
  6. <el-option v-for="(i, index) in termList" :key="index" :label="`第${i.term}期`" :value="i._id"></el-option>
  7. </template>
  8. </data-form>
  9. </detail-frame>
  10. </div>
  11. </template>
  12. <script>
  13. import detailFrame from '@frame/layout/admin/detail-frame';
  14. import dataForm from '@frame/components/form';
  15. import { mapState, createNamespacedHelpers } from 'vuex';
  16. const { mapActions: setting } = createNamespacedHelpers('setting');
  17. export default {
  18. name: 'system-setting',
  19. props: {},
  20. components: { dataForm, detailFrame },
  21. data: function() {
  22. return {
  23. form: {},
  24. termList: [],
  25. fields: [
  26. { label: '服务器邮箱', required: true, model: 'user_email' },
  27. { label: '服务器邮箱授权码', required: true, model: 'auth_code' },
  28. { label: '上午考勤开始时间', required: true, model: 'am_start', type: 'time' },
  29. { label: '上午考勤结束时间', required: true, model: 'am_end', type: 'time' },
  30. { label: '下午开始时间', required: true, model: 'pm_start', type: 'time' },
  31. { label: '下午结束时间', required: true, model: 'pm_end', type: 'time' },
  32. { label: '寝室开始时间', required: true, model: 'bd_start', type: 'time' },
  33. { label: '寝室结束时间', required: true, model: 'bd_end', type: 'time' },
  34. { label: '班级模板设置', model: 'template_term', type: 'select' },
  35. ],
  36. rules: {
  37. email: [{ required: true, message: '请输入系统邮箱' }],
  38. emailpw: [{ required: true, message: '请输入系统邮箱密码' }],
  39. am_start: [{ required: true, message: '请选择上午考勤开始时间' }],
  40. am_end: [{ required: true, message: '请选择上午考勤结束时间' }],
  41. pm_start: [{ required: true, message: '请选择下午开始时间' }],
  42. pm_end: [{ required: true, message: '请选择下午结束时间' }],
  43. bd_start: [{ required: true, message: '请选择寝室开始时间' }],
  44. bd_end: [{ required: true, message: '请选择寝室结束时间' }],
  45. },
  46. };
  47. },
  48. created() {
  49. this.search();
  50. this.getOtherList();
  51. },
  52. methods: {
  53. ...setting({ fetch: 'fetch', update: 'update', getTermList: 'termList' }),
  54. async search() {
  55. let res = await this.fetch();
  56. if (this.$checkRes(res)) this.$set(this, `form`, res.data);
  57. },
  58. async handleSave({ data }) {
  59. let res = await this.update(data);
  60. this.$checkRes(res, `修改成功`, res.errmsg);
  61. },
  62. async getOtherList() {
  63. const res = await this.getTermList();
  64. if (this.$checkRes(res)) this.$set(this, `termList`, res.data);
  65. },
  66. },
  67. computed: {
  68. ...mapState(['user']),
  69. pageTitle() {
  70. return `${this.$route.meta.title}`;
  71. },
  72. },
  73. metaInfo() {
  74. return { title: this.$route.meta.title };
  75. },
  76. };
  77. </script>
  78. <style lang="less" scoped></style>