许成详 vor 6 Jahren
Ursprung
Commit
9f6311550a

+ 15
- 0
package-lock.json Datei anzeigen

@@ -3859,6 +3859,11 @@
3859 3859
         "event-emitter": "0.3.5"
3860 3860
       }
3861 3861
     },
3862
+    "es6-promise": {
3863
+      "version": "4.2.4",
3864
+      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
3865
+      "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ=="
3866
+    },
3862 3867
     "es6-set": {
3863 3868
       "version": "0.1.5",
3864 3869
       "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
@@ -14740,6 +14745,16 @@
14740 14745
         }
14741 14746
       }
14742 14747
     },
14748
+    "vue-fullcalendar": {
14749
+      "version": "1.0.9",
14750
+      "resolved": "https://registry.npmjs.org/vue-fullcalendar/-/vue-fullcalendar-1.0.9.tgz",
14751
+      "integrity": "sha1-qFO7JZRiUid1M7mZTvUDz6ywEjM=",
14752
+      "requires": {
14753
+        "es6-promise": "4.2.4",
14754
+        "vue": "2.5.17",
14755
+        "vue-fullcalendar": "1.0.9"
14756
+      }
14757
+    },
14743 14758
     "vue-hot-reload-api": {
14744 14759
       "version": "2.3.0",
14745 14760
       "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz",

+ 1
- 0
package.json Datei anzeigen

@@ -21,6 +21,7 @@
21 21
     "vue": "^2.5.2",
22 22
     "vue-amap": "^0.5.8",
23 23
     "vue-cookie": "^1.1.4",
24
+    "vue-fullcalendar": "^1.0.9",
24 25
     "vue-router": "^3.0.1",
25 26
     "vuex": "^3.0.1"
26 27
   },

+ 160
- 0
src/pages/system/courseManager/scheduleManager/index.vue Datei anzeigen

@@ -0,0 +1,160 @@
1
+<template>
2
+  <div class="subPage">
3
+    <div class="system-table-search">
4
+      <div class="flex-h">
5
+        <div class="flex-item flex-h">
6
+          <el-button size="mini" type="success" @click="addSchedule">新增排课</el-button>
7
+        </div>
8
+      </div>
9
+      <div class="moreFilter"></div>
10
+      <full-calendar :events="fcEvents" locale="zh" @eventClick="eventClick"></full-calendar>
11
+    </div>
12
+    <el-dialog
13
+      title="课时信息"
14
+      :visible.sync="centerDialogVisible"
15
+      width="500px"
16
+      center>
17
+      <div>
18
+        <ul class="courseDetailForm">
19
+          <li class="flex-h">
20
+            <span>课程名称:</span>
21
+            <div class="flex-item">
22
+              <div>
23
+                <el-input
24
+                  placeholder="请输入课程名称"
25
+                  v-model="currentCourseItem.CourseName"
26
+                  clearable>
27
+                </el-input>
28
+              </div>
29
+            </div>
30
+          </li>
31
+          <li class="flex-h">
32
+            <span>课时名称:</span>
33
+            <div class="flex-item">
34
+              <div>
35
+                <el-input
36
+                  placeholder="请输入课时名称"
37
+                  v-model="currentCourseItem.DetailName"
38
+                  clearable>
39
+                </el-input>
40
+              </div>
41
+            </div>
42
+          </li>
43
+          <li class="flex-h">
44
+            <span>课时简介:</span>
45
+            <div class="flex-item">
46
+              <div>
47
+                <el-input
48
+                  type="textarea"
49
+                  placeholder="请输入课时简介"
50
+                  v-model="currentCourseItem.DetailDesc"
51
+                  clearable>
52
+                </el-input>
53
+              </div>
54
+            </div>
55
+          </li>
56
+          <li class="flex-h">
57
+            <span>案场名称:</span>
58
+            <div class="flex-item">
59
+              <div>
60
+                <el-input
61
+                  placeholder="请输入案场名称"
62
+                  v-model="currentCourseItem.CaseName"
63
+                  clearable>
64
+                </el-input>
65
+              </div>
66
+            </div>
67
+          </li>
68
+          <li class="flex-h">
69
+            <span>案场地址:</span>
70
+            <div class="flex-item">
71
+              <div>
72
+                <el-input
73
+                  placeholder="请输入案场地址"
74
+                  v-model="currentCourseItem.CaseAddress"
75
+                  clearable>
76
+                </el-input>
77
+              </div>
78
+            </div>
79
+          </li>
80
+          <li class="flex-h">
81
+            <span>开始时间:</span>
82
+            <div class="flex-item">
83
+              <div>
84
+                <el-date-picker
85
+                  v-model="currentCourseItem.BeginDate"
86
+                  type="date"
87
+                  placeholder="选择开始日期">
88
+                </el-date-picker>
89
+              </div>
90
+            </div>
91
+          </li>
92
+          <li class="flex-h">
93
+            <span>结束时间:</span>
94
+            <div class="flex-item">
95
+              <div>
96
+                <el-date-picker
97
+                  v-model="currentCourseItem.EndDate"
98
+                  type="date"
99
+                  placeholder="选择结束日期">
100
+                </el-date-picker>
101
+              </div>
102
+            </div>
103
+          </li>
104
+        </ul>
105
+      </div>
106
+      <span slot="footer" class="dialog-footer">
107
+        <el-button type="danger" @click="centerDialogVisible = false">删除该课时</el-button>
108
+        <el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
109
+      </span>
110
+    </el-dialog>
111
+  </div>
112
+</template>
113
+
114
+<script>
115
+import fullCalendar from 'vue-fullcalendar'
116
+
117
+export default {
118
+  name: '',
119
+  data () {
120
+    return {
121
+      currentCourseItem: {
122
+        CourseName: 'xxx', // 课程名称
123
+        DetailName: 'xxx', // 课时名称
124
+        DetailDesc: 'xxx', // 课时简介
125
+        CaseName: 'xxx', // 案场名称
126
+        CaseAddress: 'xxx', // 案场地点
127
+        BeginDate: 'xxx', // 开始时间
128
+        EndDate: 'xxx', // 结束时间
129
+      },
130
+      centerDialogVisible: false,
131
+      fcEvents: [{
132
+        title: '课程名称',
133
+        start: '2018-09-25',
134
+        end: '2018-09-25',
135
+      }, {
136
+        title: '课程名称1',
137
+        start: '2018-09-25',
138
+        end: '2018-09-25',
139
+      }]
140
+    }
141
+  },
142
+  components: {
143
+    fullCalendar,
144
+  },
145
+  methods: {
146
+    addSchedule () { // 新增排课
147
+
148
+    },
149
+    eventClick (event, jsEvent, pos) { // 点击日历
150
+      console.log(event, jsEvent, pos)
151
+      this.centerDialogVisible = true
152
+    },
153
+  }
154
+}
155
+</script>
156
+
157
+<!-- Add "scoped" attribute to limit CSS to this component only -->
158
+<style lang="scss" scoped>
159
+@import "page.scss";
160
+</style>

+ 43
- 0
src/pages/system/courseManager/scheduleManager/page.scss Datei anzeigen

@@ -0,0 +1,43 @@
1
+
2
+.courseDetailForm{
3
+  margin-bottom: 20px;
4
+  >li{
5
+    align-items: flex-start;
6
+    margin: 10px auto 0;
7
+    >span{
8
+      line-height: 40px;
9
+      margin-right: 10px;
10
+    }
11
+  }
12
+}
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+

+ 6
- 0
src/pages/system/page.js Datei anzeigen

@@ -64,6 +64,7 @@ import editFiveA from './courseManager/fiveA/edit' // 全龄生活5A编辑
64 64
 import courseList from './courseManager/courseList/index' // 课程列表
65 65
 import addCourse from './courseManager/courseList/add' // 新增课程
66 66
 import courseTag from './courseManager/courseTag/index' // 课程标签
67
+import scheduleManager from './courseManager/scheduleManager/index' // 排课管理
67 68
 
68 69
 import dataStatistics from './dataStatistics/index' // 数据统计
69 70
 import frontEndUserList from './dataStatistics/frontEndUserList/index' // 课程管理
@@ -358,6 +359,11 @@ export default {
358 359
             component: addCourse,
359 360
             children: []
360 361
           }]
362
+        }, { // 排课管理
363
+          path: 'scheduleManager',
364
+          name: 'scheduleManager',
365
+          component: scheduleManager,
366
+          children: []
361 367
         }, { // 课程标签
362 368
           path: 'courseTag',
363 369
           name: 'courseTag',

+ 14
- 0
src/style/main.css Datei anzeigen

@@ -368,7 +368,21 @@ select:focus {
368 368
   vertical-align: middle;
369 369
 }
370 370
 
371
+.comp-full-calendar{
372
+  padding: 0 !important;
373
+  width: 100%;
374
+  max-width: 100% !important;
375
+}
376
+
377
+.comp-full-calendar .week{
378
+  line-height: 40px;
379
+  background: #409EFF;
380
+  color: #fff;
381
+}
371 382
 
383
+.el-dialog--center .el-dialog__body{
384
+  padding: 0 20px !important;
385
+}
372 386
 
373 387
 
374 388