convertList.vue 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. <template>
  2. <div>
  3. <save-form
  4. :inline="true"
  5. class="searchForm"
  6. save-key="teamDetails-convertList"
  7. @submit="search"
  8. @reset="onReSet"
  9. :model="searchForm"
  10. >
  11. <el-form-item prop="search">
  12. <el-input
  13. v-model.trim="searchForm.search"
  14. clearable
  15. placeholder="转换前班级名称"
  16. @keyup.enter.native="
  17. (e) => {
  18. e.target.blur();
  19. $refs.searchForm.save();
  20. search();
  21. }
  22. "
  23. ></el-input>
  24. </el-form-item>
  25. <el-form-item prop="operator">
  26. <el-input
  27. v-model.trim="searchForm.operator"
  28. clearable
  29. placeholder="操作人"
  30. @keyup.enter.native="
  31. (e) => {
  32. e.target.blur();
  33. $refs.searchForm.save();
  34. search();
  35. }
  36. "
  37. ></el-input>
  38. </el-form-item>
  39. <el-form-item>
  40. <el-date-picker
  41. v-model.trim="searchForm.date"
  42. style="width: 400"
  43. type="daterange"
  44. align="right"
  45. unlink-panels
  46. range-separator="-"
  47. start-placeholder="操作开始日期"
  48. end-placeholder="操作结束日期"
  49. value-format="yyyy-MM-dd"
  50. :picker-options="pickerOptions"
  51. >
  52. </el-date-picker>
  53. </el-form-item>
  54. <el-form-item>
  55. <el-button @click="search" type="danger">搜索</el-button>
  56. <el-button type="primary" native-type="reset">重置</el-button>
  57. </el-form-item>
  58. </save-form>
  59. <!-- 查询列表 -->
  60. <!-- 列表 -->
  61. <div class="tableWrap">
  62. <el-table
  63. :data="tableList"
  64. :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
  65. >
  66. <el-table-column align="center" label="转换前班级" prop="oldClassName">
  67. </el-table-column>
  68. <el-table-column
  69. align="center"
  70. prop="convertCourseNum"
  71. label="转换课时数"
  72. >
  73. </el-table-column>
  74. <el-table-column
  75. align="center"
  76. prop="convertAfterClassNum"
  77. label="转换后班级数"
  78. >
  79. </el-table-column>
  80. <el-table-column
  81. align="center"
  82. prop="convertAfterCourseNum"
  83. label="转换后课时数"
  84. >
  85. </el-table-column>
  86. <el-table-column align="center" prop="operatorName" label="操作人">
  87. </el-table-column>
  88. <el-table-column align="center" prop="createTime" label="操作时间">
  89. </el-table-column>
  90. <el-table-column align="center" label="操作">
  91. <template slot-scope="scope">
  92. <div>
  93. <!-- -->
  94. <el-button
  95. type="text"
  96. :disabled="scope.row.revokeFlag"
  97. v-if="permission('courseScheduleConvert/revoke')"
  98. @click="revokeCourse(scope.row)"
  99. >还原</el-button
  100. >
  101. <el-button
  102. type="text"
  103. v-if="permission('courseScheduleConvert/queryCourse')"
  104. @click="lookDetail(scope.row)"
  105. >查看</el-button
  106. >
  107. </div>
  108. </template>
  109. </el-table-column>
  110. </el-table>
  111. <pagination
  112. save-key="teamDetails-convertList"
  113. :total.sync="rules.total"
  114. :page.sync="rules.page"
  115. :limit.sync="rules.limit"
  116. :page-sizes="rules.page_size"
  117. @pagination="getList"
  118. />
  119. <converDetail ref='converDetail'/>
  120. </div>
  121. </div>
  122. </template>
  123. <script>
  124. import pagination from "@/components/Pagination/index";
  125. import { permission } from "@/utils/directivePage";
  126. import { getConvertList, revokeConvert,getConvertDeatil } from "../api";
  127. import converDetail from './modals/converDetail'
  128. import { getTimes } from "@/utils";
  129. export default {
  130. name: "tsalaryList",
  131. data() {
  132. return {
  133. dialogTableVisible: false,
  134. innerVisible: false,
  135. searchForm: {
  136. timer: [], // 时间选择器返回的值
  137. operator: "",
  138. search: "",
  139. },
  140. pickerOptions: {
  141. firstDayOfWeek: 1,
  142. }, // 时间选择器默认选项
  143. tableList: [], // table列表
  144. rules: {
  145. // 分页规则
  146. limit: 10, // 限制显示条数
  147. page: 1, // 当前页
  148. total: 0, // 总条数
  149. page_size: [10, 20, 40, 50], // 选择限制显示条数
  150. },
  151. searchLsit: [],
  152. courseScheduleId: "",
  153. tempSelectRow: {}, // 选中班级数据
  154. };
  155. },
  156. components: {
  157. pagination,
  158. converDetail
  159. },
  160. mounted() {
  161. this.getList();
  162. },
  163. methods: {
  164. permission(str) {
  165. return permission(str);
  166. },
  167. search() {
  168. this.rules.page = 1;
  169. this.getList();
  170. },
  171. onReSet() {
  172. this.$refs.searchForm.resetFields();
  173. this.search();
  174. },
  175. getList() {
  176. this.teamid = this.$route.query.id;
  177. const { timer, ...rest } = this.searchForm;
  178. // try {
  179. // const res = await getLiveBroadcastList({
  180. // ...rest,
  181. // ...getTimes(timer, ["startTime", "endTime"]),
  182. // rows: this.rules.limit,
  183. // page: this.rules.page,
  184. // });
  185. // this.tableList = res.data.rows;
  186. // this.rules.total = res.data.total;
  187. // } catch (e) {
  188. // console.log(e);
  189. // }
  190. // searchForm.date
  191. // if (!this.searchForm.date) {
  192. // this.searchForm.date = [];
  193. // }
  194. let obj = {
  195. musicGroupId: this.teamid,
  196. ...rest,
  197. ...getTimes(timer, ["startTime", "endTime"]),
  198. page: this.rules.page,
  199. rows: this.rules.limit,
  200. };
  201. getConvertList(obj).then((res) => {
  202. if (res.code == 200) {
  203. this.tableList = res.data.rows;
  204. this.rules.total = res.data.total;
  205. }
  206. });
  207. },
  208. async revokeCourse(row) {
  209. try {
  210. await this.$confirm("是否确还原转换课程?", "提示", {
  211. type: "warning",
  212. });
  213. const res = await revokeConvert({ courseConvertId: row.id });
  214. this.getList();
  215. } catch (e) {
  216. console.log(e);
  217. }
  218. },
  219. lookDetail(row){
  220. this.$refs.converDetail.openDialog(row)
  221. }
  222. },
  223. };
  224. </script>
  225. <style lang="scss" scope>
  226. </style>