edit.vue 5.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. <template>
  2. <div class="subPage">
  3. <div class="system-table-search">
  4. <div class="flex-h">
  5. <div class="flex-item flex-h"></div>
  6. <ul>
  7. <li>
  8. <el-select v-model="postData.caseid" placeholder="请选择">
  9. <el-option
  10. v-for="item in cases"
  11. :key="item.CaseId"
  12. :label="item.CaseName"
  13. :value="item.CaseId">
  14. </el-option>
  15. </el-select>
  16. </li>
  17. <li>
  18. <el-input
  19. placeholder="请输入课程名称"
  20. v-model="postData.name"
  21. >
  22. </el-input>
  23. </li>
  24. </ul>
  25. <el-button
  26. size="mini"
  27. type="primary" @click="search">搜索</el-button>
  28. </div>
  29. <div class="moreFilter"></div>
  30. </div>
  31. <div class="system-table-box">
  32. <el-table
  33. :data="currentList"
  34. stripe
  35. style="width: 100%">
  36. <el-table-column
  37. prop="CourseName"
  38. label="课程名称">
  39. </el-table-column>
  40. <el-table-column
  41. prop="Price"
  42. label="课程价格">
  43. </el-table-column>
  44. <el-table-column
  45. prop="CourseNum"
  46. label="课时数">
  47. </el-table-column>
  48. <el-table-column
  49. prop="ScheduleNum"
  50. label="已排课时数">
  51. </el-table-column>
  52. <el-table-column
  53. prop="LocationId"
  54. label="课程分类">
  55. </el-table-column>
  56. <el-table-column
  57. prop="CaseName"
  58. label="所在案场">
  59. </el-table-column>
  60. <el-table-column
  61. label="操作">
  62. <template slot-scope="scope">
  63. <el-button
  64. size="mini"
  65. type="success"
  66. @click="setCourseDate(item)">设置课程时间</el-button>
  67. </template>
  68. </el-table-column>
  69. </el-table>
  70. </div>
  71. <el-pagination
  72. @current-change="handleCurrentChange"
  73. :current-page.sync="postData.page"
  74. :page-size="postData.pagesize"
  75. layout="prev, pager, next, jumper"
  76. :total="total">
  77. </el-pagination>
  78. <el-dialog
  79. title="设置课时时间"
  80. :visible.sync="centerDialogVisible"
  81. width="500px"
  82. center>
  83. <div>
  84. <ul class="courseDetailForm">
  85. <li class="flex-h">
  86. <span>开始时间:</span>
  87. <div class="flex-item">
  88. <div>
  89. <el-date-picker
  90. v-model="currentCourseItem.BeginDate"
  91. type="date"
  92. placeholder="选择开始日期">
  93. </el-date-picker>
  94. </div>
  95. </div>
  96. </li>
  97. <li class="flex-h">
  98. <span>结束时间:</span>
  99. <div class="flex-item">
  100. <div>
  101. <el-date-picker
  102. v-model="currentCourseItem.EndDate"
  103. type="date"
  104. placeholder="选择结束日期">
  105. </el-date-picker>
  106. </div>
  107. </div>
  108. </li>
  109. <li class="flex-h">
  110. <span>课时名称:</span>
  111. <div class="flex-item">
  112. <div>
  113. <el-input
  114. placeholder="请输入课时名称"
  115. v-model="currentCourseItem.DetailName"
  116. clearable>
  117. </el-input>
  118. </div>
  119. </div>
  120. </li>
  121. <li class="flex-h">
  122. <span>课时描述:</span>
  123. <div class="flex-item">
  124. <div>
  125. <el-input
  126. type="textarea"
  127. placeholder="请输入课时描述"
  128. v-model="currentCourseItem.DetailDesc"
  129. clearable>
  130. </el-input>
  131. </div>
  132. </div>
  133. </li>
  134. </ul>
  135. </div>
  136. <span slot="footer" class="dialog-footer">
  137. <el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
  138. <el-button type="danger" @click="centerDialogVisible = false">取 消</el-button>
  139. </span>
  140. </el-dialog>
  141. </div>
  142. </template>
  143. <script>
  144. import { mapState } from 'vuex'
  145. export default {
  146. name: '',
  147. data () {
  148. return {
  149. currentCourseItem: { // 当前设置课程时间
  150. BeginDate: null,
  151. EndDate: null,
  152. DetailName: null,
  153. DetailDesc: null,
  154. },
  155. centerDialogVisible: false,
  156. total: 0,
  157. postData: { // 表格搜索条件
  158. caseid: '', // 案场id
  159. page: 1, // 当前页码
  160. pagesize: 10, // 请求数据量
  161. typeid: '', // 课程类型
  162. name: '', // 课程名称
  163. },
  164. currentList: [{
  165. CourseName: 'xxx',
  166. Price: 'xxx',
  167. CourseNum: 'xxx',
  168. ScheduleNum: 'xxx',
  169. LocationId: 'xxx',
  170. CaseName: 'xxx',
  171. }],
  172. courseTypeList: [],
  173. }
  174. },
  175. mounted () {
  176. this.$nextTick(function () {
  177. this.getList()
  178. })
  179. },
  180. computed: {
  181. ...mapState({
  182. cases: x => x.app.cases.list,
  183. defaultCaseId: x => x.app.cases.default
  184. }),
  185. CaseId: {
  186. get () {
  187. return this.postData.caseid || this.defaultCaseId
  188. },
  189. set (val) {
  190. this.postData.caseid = val
  191. }
  192. }
  193. },
  194. methods: {
  195. setCourseDate (item) { // 设置课程时间
  196. this.centerDialogVisible = true
  197. },
  198. search () { // 搜索
  199. this.postData.page = 1
  200. this.currentList = []
  201. this.getList()
  202. },
  203. getList () { // 获取列表
  204. },
  205. handleCurrentChange (val) { // 跳转到分页
  206. this.getList()
  207. },
  208. }
  209. }
  210. </script>
  211. <!-- Add "scoped" attribute to limit CSS to this component only -->
  212. <style lang="scss" scoped>
  213. @import "page.scss";
  214. </style>