TeacherApporval.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. <!-- 活动解析 -->
  2. <template>
  3. <div>
  4. <!-- table 表格 -->
  5. <el-row :gutter="20" class="main-items" >
  6. <!--数据监控-->
  7. <el-col :span="20" class="main" :offset="2">
  8. <el-row :gutter="20" class="main-header">
  9. <el-col :span="3"><div class="main-header-item" @click="isShow(1)">注册老师数:18人</div></el-col>
  10. <el-col :span="3"><div class="main-header-item" @click="isShow(2)">活跃老师数:16人</div></el-col>
  11. <el-col :span="4"><div class="main-header-item">注册用户数:1128人</div></el-col>
  12. <el-col :span="4"><div class="main-header-item">活跃用户数:1008人</div></el-col>
  13. </el-row>
  14. <el-table
  15. :data="dataList"
  16. highlight-current-row
  17. size="medium"
  18. border
  19. stripe
  20. >
  21. <el-table-column
  22. label="小组管理员"
  23. header-align="center"
  24. >
  25. <template scope="scope">
  26. <img :src="scope.row.img" alt="" class="table-img">
  27. </template>
  28. </el-table-column>
  29. <el-table-column
  30. prop="names"
  31. label="小组人数"
  32. header-align="center"
  33. >
  34. </el-table-column>
  35. <el-table-column
  36. prop="number"
  37. label="老师出勤率"
  38. header-align="center"
  39. ></el-table-column>
  40. <el-table-column
  41. prop="time"
  42. label="作业批改总份数"
  43. header-align="center">
  44. </el-table-column>
  45. <el-table-column
  46. prop="allTime"
  47. label="作业批改总张数"
  48. header-align="center"
  49. >
  50. </el-table-column>
  51. <el-table-column
  52. prop="rate"
  53. label="批改平均用时"
  54. header-align="center"></el-table-column>
  55. <el-table-column
  56. prop="status"
  57. label="家长平均评分"
  58. header-align="center"></el-table-column>
  59. <el-table-column
  60. prop="status"
  61. label="是否在线"
  62. header-align="center"></el-table-column>
  63. <el-table-column prop="status" label="" header-align="center" width="250">
  64. <template scope="scope">
  65. <el-button type="success" plain round>小组详情</el-button>
  66. <el-button type="success" round>管理员详情</el-button>
  67. </template>
  68. </el-table-column>
  69. </el-table>
  70. </el-col>
  71. <!-- 分页显示 -->
  72. <!--<el-pagination-->
  73. <!--background-->
  74. <!--class="all_pagination"-->
  75. <!--@size-change="handleSizeChange"-->
  76. <!--@current-change="pageChange"-->
  77. <!--:page-sizes="[10, 20, 30, 40]"-->
  78. <!--:page-size="10"-->
  79. <!--layout="total, sizes, prev, pager, next, jumper"-->
  80. <!--:total="filters.count">-->
  81. <!--</el-pagination>-->
  82. </el-row>
  83. <!--可分配老师-->
  84. <div class='showModel' @click="allShowModel(1)" v-if="hiddenModel"></div>
  85. <div class='model' v-if="hiddenModel">
  86. <div class='model-text'>
  87. <div class="model-text-head">
  88. <div>可分配老师</div>
  89. <div>二年级数学</div>
  90. </div>
  91. <div class="model-items">
  92. <div class="model-items-left">
  93. <div class="model-items-left-top">
  94. <div>
  95. <img src="../../assets/img/user.jpg" alt="" class="model-items-left-top-img">
  96. <div style="display: inline-block">
  97. <div style="font-size: 24px">李大柱</div>
  98. <div class="model-items-left-top-number">等待学生:0</div>
  99. </div>
  100. </div>
  101. <div> <el-button type="success">分配</el-button></div>
  102. </div>
  103. </div>
  104. <div class="model-items-left">
  105. <div class="model-items-left-top">
  106. <div>
  107. <img src="../../assets/img/user.jpg" alt="" class="model-items-left-top-img">
  108. <div style="display: inline-block">
  109. <div style="font-size: 24px">李大柱</div>
  110. <div class="model-items-left-top-number">等待学生:0</div>
  111. </div>
  112. </div>
  113. <div> <el-button type="success">分配</el-button></div>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. <!--所有未批改作业-->
  120. <div class='showModel' @click="allShowModel(2)" v-if="isPigai"></div>
  121. <div class='model' v-if="isPigai">
  122. <div class='model-text'>
  123. <div class="model-text-head">
  124. <div>所有未批改作业</div>
  125. </div>
  126. <el-table
  127. :data="tableData"
  128. style="width: 100%">
  129. <el-table-column
  130. prop="date"
  131. label="日期"
  132. width="180">
  133. </el-table-column>
  134. <el-table-column
  135. prop="name"
  136. label="姓名"
  137. width="180">
  138. </el-table-column>
  139. <el-table-column
  140. prop="address"
  141. label="地址">
  142. </el-table-column>
  143. </el-table>
  144. </div>
  145. </div>
  146. </div>
  147. </template>
  148. <script>
  149. import { mapGetters, mapActions } from "vuex";
  150. export default {
  151. components: { },
  152. name: "actvResolveLabel",
  153. props: {},
  154. data() {
  155. return {
  156. hiddenModel:false,
  157. isPigai:false,
  158. ItemList: [
  159. {
  160. text:'数据监控'
  161. },
  162. {
  163. text:'当天'
  164. },
  165. {
  166. text:'当月'
  167. },
  168. ],
  169. dataList:[
  170. {
  171. img:'../../assets/img/user.jpg',
  172. names:'阿三',
  173. number:'3',
  174. time:'14:22',
  175. allTime:'14:22',
  176. rate:'222',
  177. status:'22'
  178. },
  179. {
  180. img:'../../assets/img/user.jpg',
  181. names:'阿三',
  182. number:'3',
  183. time:'14:22',
  184. allTime:'14:22',
  185. rate:'222',
  186. status:'22'
  187. }
  188. ],
  189. filters: {
  190. actvNm: "",
  191. actvCrtUserId: "",
  192. actvType: "",
  193. actvSmallType: "",
  194. // 排序
  195. pageNo: 1,
  196. pageSize: 10,
  197. count: 0,
  198. orderField: "",
  199. orderAD: ""
  200. }
  201. };
  202. },
  203. watch: {},
  204. computed: {
  205. ...mapGetters(["getUser"])
  206. },
  207. methods: {
  208. ...mapActions(["setUser"]),
  209. selectTitle(k) {
  210. console.log(k);
  211. this.checkindex = k;
  212. },
  213. isShow(str){
  214. let _this = this;
  215. console.log(str)
  216. if (str == 1){
  217. _this.hiddenModel = true;
  218. } else if (str == 2){
  219. _this.isPigai = true;
  220. }
  221. },
  222. //关闭弹框
  223. allShowModel(str) {
  224. let _this = this;
  225. if (str == 1){
  226. _this.hiddenModel = false;
  227. } else if (str == 2){
  228. _this.isPigai = false;
  229. }
  230. },
  231. // 输入框按键方法
  232. keyCodeMethod(e) {
  233. if (e.keyCode === 13) return this.itemListReshow();
  234. },
  235. expandChange(row, expandRows) {
  236. for (let item of expandRows) {
  237. if (row === item) {
  238. this.expandRowKeys = [row.nodId];
  239. }
  240. }
  241. },
  242. // 分页
  243. pageChange(val) {
  244. this.filters.pageNo = val;
  245. this.itemListReshow();
  246. },
  247. changeDateSlot(dateSlot) {
  248. if (dateSlot) {
  249. this.filters.startDate = dateSlot[0];
  250. this.filters.endDate = dateSlot[1];
  251. } else {
  252. this.filters.startDate = null;
  253. this.filters.endDate = null;
  254. }
  255. },
  256. actvTypeChange(typeList) {
  257. switch (typeList.length) {
  258. case 1:
  259. this.filters.actvType = typeList[0];
  260. this.filters.actvSmallType = null;
  261. break;
  262. case 2:
  263. this.filters.actvType = null;
  264. this.filters.actvSmallType = typeList[1];
  265. break;
  266. default:
  267. this.filters.actvType = null;
  268. this.filters.actvSmallType = null;
  269. break;
  270. }
  271. },
  272. handleSizeChange(val) {
  273. this.filters.pageSize = val;
  274. this.itemListReshow();
  275. },
  276. // 排序
  277. sortChange(sort) {
  278. this.filters.orderField = sort.prop;
  279. this.filters.orderAD = sort.order != null ? sort.order : "";
  280. this.itemListReshow();
  281. },
  282. clearSearch() {
  283. this.filters.actvNm = null;
  284. this.filters.actvCrtUserId = null;
  285. this.filters.actvType = null;
  286. this.filters.actvSmallType = null;
  287. this.filtersActvType = [];
  288. this.createDateSlot = null;
  289. },
  290. // 获取创建人列表
  291. // async getUserNameList() {
  292. // let {
  293. // userNameList = []
  294. // } = await this.$dao.actv.marketActDao.getUserNameList();
  295. // this.userNameList = userNameList || [];
  296. // let { list = [] } = await this.$dao.bsnsActvTypeAllList();
  297. // this.actvTypeList = list || [];
  298. // }
  299. },
  300. mounted() {
  301. // this.getsetDictByType2();
  302. // this.getUserNameList();
  303. // this.itemListReshow();
  304. }
  305. };
  306. </script>
  307. <!-- Add "scoped" attribute to limit CSS to this component only -->
  308. <style scoped>
  309. .main{
  310. background-color: #fff;
  311. margin-top: 16px;
  312. padding: 0 !important;
  313. border: 1px solid #E1E1E1;
  314. min-height: 980px;
  315. }
  316. .table-aside{
  317. color: #666666;
  318. font-size: 18px;
  319. text-align: center;
  320. line-height: 60px;
  321. }
  322. el-table{
  323. color: #999999;
  324. font-size: 18px;
  325. }
  326. .main-items{
  327. color: #393939;
  328. text-align: center;
  329. line-height: 80px;
  330. }
  331. .main-header-item{
  332. font-size: 16px;
  333. color: #7E7E7E;
  334. }
  335. .main-header-link{
  336. color: #52CC60;
  337. font-size: 18px;
  338. margin-left: 10px;
  339. text-decoration:underline
  340. }
  341. .el-select{
  342. width: 100px;
  343. margin: 0 5px;
  344. }
  345. .input-with-select .el-input-group__prepend {
  346. background-color: #fff;
  347. }
  348. .active{
  349. background-color: #52CC60;
  350. color: #fff;
  351. }
  352. .el-input__inner{
  353. height: 32px;
  354. }
  355. .cell{
  356. font-size: 18px !important;
  357. }
  358. .table-img{
  359. width:36px;
  360. height:36px;
  361. border-radius:6px;
  362. }
  363. .showModel{
  364. width: 100%;
  365. height: 100%;
  366. position: fixed;
  367. top: 0;
  368. left: 0;
  369. background: #000000;
  370. opacity: 0.2;
  371. overflow: hidden;
  372. z-index: 1000;
  373. color: #fff;
  374. }
  375. .model{
  376. z-index: 1001;
  377. width:854px;
  378. height:auto;
  379. position: relative;
  380. /*right: auto;*/
  381. margin:auto;
  382. background: #fff;
  383. border-radius:30px;
  384. text-align: center;
  385. }
  386. .model-text{
  387. background:rgba(255,255,255,1);
  388. border-radius:10px;
  389. }
  390. .model-text-head{
  391. padding: 40px 50px;
  392. display: flex;
  393. color: #393939;
  394. font-size: 24px;
  395. justify-content: space-between;
  396. }
  397. .model-items-left{
  398. width: 45%;
  399. color: #393939;
  400. font-size: 24px;
  401. }
  402. .model-items-left-top{
  403. display: flex;;
  404. justify-content: space-between;
  405. }
  406. .model-items{
  407. padding: 0 50px 10px 50px;
  408. display: flex;;
  409. justify-content: space-between;
  410. }
  411. .model-items-left-top-img{
  412. width:68px;
  413. height:68px;
  414. border-radius:8px;
  415. position: relative;
  416. bottom: 25px;
  417. }
  418. .model-items-left-top-number{
  419. color: #7E7E7E;
  420. font-size: 18px;
  421. margin-left: 10px;
  422. }
  423. .today-time{
  424. color: #7E7E7E;
  425. font-size: 18px;
  426. margin: 0 20px;
  427. }
  428. </style>