ClassList.vue 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. <style lang="scss">
  2. .area{
  3. .el-select{
  4. width: 120px;
  5. display: inline-block;
  6. margin-right: 6px;
  7. }
  8. }
  9. </style>
  10. <template>
  11. <section class="content">
  12. <div class="breadcrumb">
  13. <el-breadcrumb separator="/">
  14. <el-breadcrumb-item><a href="/">学校管理</a></el-breadcrumb-item>
  15. <el-breadcrumb-item>班级管理</el-breadcrumb-item>
  16. </el-breadcrumb>
  17. </div>
  18. <el-form :model="queryParams" size="mini" label-width="80px" class="filter-form" :inine="true">
  19. <el-row>
  20. <el-col :span="4">
  21. <el-form-item label="学校">
  22. <el-select placeholder="请选择学校">
  23. <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
  24. </el-select>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="4">
  28. <el-form-item label="年级" v-model="queryParams.grade_id">
  29. <el-select placeholder="请选择年级">
  30. <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
  31. </el-select>
  32. </el-form-item>
  33. </el-col>
  34. <el-col :span="4">
  35. <el-form-item label="创建时间" v-model="queryParams.grade_id">
  36. <el-date-picker
  37. v-model="queryParams.ctime"
  38. type="datetime"
  39. placeholder="选择日期时间">
  40. </el-date-picker>
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="11">
  44. <el-form-item label-width="10" style="margin-left: 10px">
  45. <el-button type="primary" @click="getData" size="mini"
  46. >搜索</el-button
  47. >
  48. <el-button
  49. type="info"
  50. size="mini"
  51. @click="handleAdd"
  52. >重置</el-button
  53. >
  54. <el-button style="float: right;"
  55. type="primary"
  56. plain
  57. icon="el-icon-plus"
  58. size="mini"
  59. @click="handleAdd"
  60. >添加班级</el-button>
  61. </el-form-item>
  62. </el-col>
  63. </el-row>
  64. </el-form>
  65. <el-table
  66. v-loading="loading"
  67. :data="list"
  68. style="width: 100%; margin-top: 10px"
  69. height="50vh"
  70. >
  71. <el-table-column align="center" prop="name" label="班级名称" />
  72. <el-table-column align="center" prop="phone" label="年级" />
  73. <el-table-column label="所属学校">
  74. </el-table-column>
  75. <el-table-column label="教师人数"></el-table-column>
  76. <el-table-column label="学生人数"></el-table-column>
  77. <el-table-column align="center" prop="ctime" label="创建时间" />
  78. <el-table-column align="center" prop="date" label="操作" width="320">
  79. <template slot-scope="scope">
  80. <el-button @click="edit(scope.row.id)" size="mini" type="info" plain
  81. >编辑</el-button
  82. >
  83. <el-button @click="del(scope.row.id)" size="mini" type="info" plain
  84. >删除</el-button
  85. >
  86. </template>
  87. </el-table-column>
  88. </el-table>
  89. <Page
  90. ref="pageButton"
  91. :current="form.page"
  92. :page_size="form.page_size"
  93. :total="total"
  94. @pageChange="gopage"
  95. />
  96. <!-- 新增班级-->
  97. <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
  98. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  99. <el-form-item label="所属学校" prop="name">
  100. <el-select
  101. v-model="form.parent_id"
  102. placeholder="请选择学校"
  103. clearable
  104. filterable
  105. >
  106. <el-option
  107. v-for="item in doctorList"
  108. :key="item.value"
  109. :label="item.name"
  110. :value="item.id"
  111. >
  112. </el-option>
  113. </el-select>
  114. </el-form-item>
  115. <el-form-item label="所属年级">
  116. <el-select
  117. v-model="form.parent_id"
  118. placeholder="请选择"
  119. clearable
  120. filterable
  121. >
  122. <el-option
  123. v-for="item in doctorList"
  124. :key="item.value"
  125. :label="item.name"
  126. :value="item.id"
  127. >
  128. </el-option>
  129. </el-select>
  130. </el-form-item>
  131. <el-form-item label="班级数量" prop="">
  132. <el-input-number v-model="form.number" controls-position="right" :min="1" >
  133. </el-input-number>
  134. </el-form-item>
  135. <el-form-item label="班级名称" prop="hospital_name">
  136. <el-input
  137. clearable
  138. v-model="form.hospital_name"
  139. placeholder="请输入班级名称"
  140. ></el-input>
  141. </el-form-item>
  142. </el-form>
  143. <div slot="footer" class="dialog-footer">
  144. <el-button type="primary" @click="submitForm">保存</el-button>
  145. <el-button @click="open = false">取 消</el-button>
  146. </div>
  147. </el-dialog>
  148. </section>
  149. </template>
  150. <script>
  151. import Page from "../../components/Page";
  152. export default {
  153. components: {
  154. Page,
  155. },
  156. data() {
  157. return {
  158. loading: false,
  159. queryParams: {
  160. page: 1,
  161. },
  162. form: {},
  163. form1: {},
  164. form2: {},
  165. list: [{}, {}],
  166. total: 0,
  167. title: "新增学校",
  168. open: false,
  169. open2: false,
  170. doctorList: [],
  171. rules: {},
  172. };
  173. },
  174. methods: {
  175. del(id) {
  176. this.$confirm("确认删除?", "提示", {
  177. type: "warning",
  178. }).then(() => {
  179. this.$api
  180. .delDoctorInfo({
  181. id: id,
  182. })
  183. .then((res) => {
  184. if (!res.data.code) {
  185. this.$msgSuccess("删除成功");
  186. this.getData();
  187. } else {
  188. this.$msgError(res.data.message);
  189. }
  190. });
  191. });
  192. },
  193. gopage(size) {
  194. if (size) {
  195. this.queryParams.page_size = size;
  196. }
  197. this.queryParams.page = this.$refs.pageButton.page;
  198. this.getData();
  199. },
  200. getData() {
  201. this.loading = true;
  202. this.$api.getDoctorsList(this.queryParams).then((res) => {
  203. this.list = res.data.data.list;
  204. this.total = res.data.data.total;
  205. this.loading = false;
  206. });
  207. this.$api
  208. .getDoctorsSearchList({
  209. })
  210. .then((res) => {
  211. this.doctorList = res.data.data;
  212. this.$set(this.doctorList, res.data.data);
  213. // this.loading = false;
  214. });
  215. },
  216. handleAdd() {
  217. this.open = true;
  218. this.title = "新增班级";
  219. this.form = {};
  220. },
  221. edit(id) {
  222. this.title = "编辑";
  223. this.$api
  224. .getDoctorInfo({
  225. id: id,
  226. })
  227. .then((res) => {
  228. this.form = res.data.data;
  229. this.open = true;
  230. });
  231. },
  232. /** 提交按钮 */
  233. submitForm() {
  234. this.$refs["form"].validate((valid) => {
  235. if (valid) {
  236. if (this.form.id != null) {
  237. this.$api.editDoctorInfo(this.form).then((res) => {
  238. if (res.data.code == 0) {
  239. this.msgSuccess("成功!");
  240. this.open = false;
  241. this.getData();
  242. } else {
  243. this.msgError(res.data.message);
  244. }
  245. });
  246. } else {
  247. this.$api.addDoctorInfo(this.form).then((res) => {
  248. if (res.data.code == 0) {
  249. this.msgSuccess("成功!");
  250. this.open = false;
  251. this.getData();
  252. } else {
  253. this.msgError(res.data.message);
  254. }
  255. });
  256. }
  257. }
  258. });
  259. },
  260. remoteMethod(query) {
  261. if (query !== "") {
  262. // this.loading = true;
  263. this.$api
  264. .getDoctorsSearchList({
  265. name: query,
  266. })
  267. .then((res) => {
  268. this.doctorList = res.data.data;
  269. this.$set(this.doctorList, res.data.data);
  270. // this.loading = false;
  271. });
  272. } else {
  273. this.doctorList = [];
  274. }
  275. },
  276. },
  277. created() {
  278. this.getData();
  279. },
  280. };
  281. </script>