SchoolManager.vue 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635
  1. <!-- 活动解析 -->
  2. <template>
  3. <div>
  4. <!-- table 表格 -->
  5. <el-row :gutter="20" class="main-items">
  6. <el-col class="aside" :span="3" :offset="2" style="padding: 0 !important;">
  7. <div
  8. class="table-aside"
  9. v-for="(v, k) in ItemList"
  10. :key="k"
  11. :class="{active:k == modelindex}"
  12. @click="selectTitle(k)"
  13. >{{v.text}}</div>
  14. </el-col>
  15. <!--数据监控-->
  16. <el-col :span="17" class="main" v-if="modelindex == 0">
  17. <el-row :gutter="20" class="main-header">
  18. <el-col :span="3" :offset="1">
  19. <div class="main-header-item">在线:{{monitorTeacherList.onlineCount}}人</div>
  20. </el-col>
  21. <el-col :span="3">
  22. <div class="main-header-item">离线:{{monitorTeacherList.offlineCount}}人</div>
  23. </el-col>
  24. <el-col :span="7">
  25. <div class="main-header-item">
  26. <span>分配未批改作业:{{monitorTeacherList.unCorrectCount}}份</span>
  27. <span @click="allocation()" class="main-header-link">去分配</span>
  28. </div>
  29. </el-col>
  30. <el-col :span="8" :offset="1">
  31. <el-input placeholder="请输入老师名字" v-model="filters.inputValue" class="input-with-select">
  32. <el-select
  33. v-model="filters.OptionsValue"
  34. @change="InfoWatch"
  35. slot="prepend"
  36. placeholder="选年级"
  37. minlength="20"
  38. >
  39. <el-option
  40. v-for="(item, k) in options"
  41. :key="k"
  42. :label="item.label"
  43. :value="item.str"
  44. ></el-option>
  45. </el-select>
  46. <el-select
  47. v-model="filters.gradesValue"
  48. @change="InfoWatch"
  49. slot="prepend"
  50. placeholder="选科目"
  51. minlength="20"
  52. >
  53. <el-option
  54. v-for="(item, k) in grades"
  55. :key="k"
  56. :label="item.label"
  57. :value="item.str"
  58. ></el-option>
  59. </el-select>
  60. <el-button @click="InfoWatch" slot="append" icon="el-icon-search"></el-button>
  61. </el-input>
  62. </el-col>
  63. <!--<div class="block">-->
  64. <!--<el-date-picker-->
  65. <!--v-model="filters.MaxtimeValue"-->
  66. <!--value-format="yyyy-MM-dd HH:mm:ss"-->
  67. <!--type="date"-->
  68. <!--@change="InfoWatch"-->
  69. <!--placeholder="选择日期"-->
  70. <!--&gt;</el-date-picker>-->
  71. <!--</div>-->
  72. </el-row>
  73. <el-row :gutter="20" class="main-header">
  74. <el-col :span="24">
  75. <div class="table">
  76. <div class="table-head">
  77. <div>头像</div>
  78. <div>姓名</div>
  79. <div>等待作业数</div>
  80. <div>作业最长等待时长</div>
  81. <div>今日累计批改时间</div>
  82. <div>今日响应速度</div>
  83. <div>状态</div>
  84. </div>
  85. <div class="tr" v-for="(v, k) of monitorTeacherList.list" :key="k">
  86. <!-- 在线 -->
  87. <div v-if="v.status == '1'" class="tr-first" :class="{BgcColor:k%2 !== 1}">
  88. <div>
  89. <i
  90. style="cursor:pointer;"
  91. :class="[isDown && isDownindex === k?'el-icon-caret-bottom':'el-icon-caret-right']"
  92. @click="dropDown(v,k)"
  93. ></i>
  94. <img
  95. :src="BASE_URL + v.imgUrl"
  96. alt
  97. class="table-img"
  98. v-if="v.imgUrl"
  99. @click="isShow(v,3)"
  100. >
  101. <img src="../../assets/img/user.jpg" alt v-if="!v.imgUrl" class="table-img">
  102. </div>
  103. <div>{{v.name}}</div>
  104. <div>{{v.waitCount}}份</div>
  105. <div class="tr-active">{{v.maxWaitTime}}</div>
  106. <div style="width:200px;">{{v.totalCorrectTime}}</div>
  107. <div>{{v.respSpeed}}</div>
  108. <div>在线</div>
  109. </div>
  110. <!-- 离线 -->
  111. <div
  112. v-if="v.status == '2'"
  113. style="color:#BEBEBE"
  114. class="tr-first"
  115. :class="{BgcColor:k%2 !== 1}"
  116. >
  117. <div>
  118. <i
  119. style="cursor:pointer;"
  120. :class="[isDown && isDownindex === k?'el-icon-caret-bottom':'el-icon-caret-right']"
  121. @click="dropDown(v,k)"
  122. ></i>
  123. <img :src="BASE_URL + v.imgUrl" alt class="table-img" @click="isShow(v,3)">
  124. </div>
  125. <div>{{v.name}}</div>
  126. <div>{{v.waitCount}}份</div>
  127. <div>{{v.maxWaitTime}}</div>
  128. <div style="width:200px;">{{v.totalCorrectTime}}</div>
  129. <div>{{v.respSpeed}}</div>
  130. <div>离线</div>
  131. </div>
  132. <!-- 封号 -->
  133. <div
  134. v-if="v.status == '3'"
  135. style="color:#FF6767"
  136. class="tr-first"
  137. :class="{BgcColor:k%2 !== 1}"
  138. >
  139. <div>
  140. <i
  141. style="cursor:pointer;"
  142. :class="[isDown && isDownindex === k?'el-icon-caret-bottom':'el-icon-caret-right']"
  143. @click="dropDown(v,k)"
  144. ></i>
  145. <img :src="BASE_URL + v.imgUrl" alt class="table-img" @click="isShow(v,3)">
  146. </div>
  147. <div>{{v.name}}</div>
  148. <div>{{v.waitCount}}份</div>
  149. <div>{{v.maxWaitTime}}</div>
  150. <div style="width:200px;">{{v.totalCorrectTime}}</div>
  151. <div>{{v.respSpeed}}</div>
  152. <div>已封号</div>
  153. </div>
  154. <div
  155. class="tr-setNo"
  156. v-if="isDownindex === k && isDown && TeacherHomeworkList.list.length == 0"
  157. >暂无数据!</div>
  158. <div v-if="isDownindex === k && isDown">
  159. <div class="tr-second" v-for="(v, k) of TeacherHomeworkList.list" :key="k">
  160. <div class="tr-seconds" style="width:50px;">{{k+1}}</div>
  161. <div class="tr-seconds tr-w120">
  162. <span @click="isShow(v,4)" style="cursor: pointer;" class="tr-second-check">查看</span>
  163. <span>{{v.name}}</span>
  164. </div>
  165. <div
  166. v-if="v.status && !(v.status === 1 && k == 0) "
  167. class="tr-secondsA"
  168. >{{v.spendTime}}</div>
  169. <div
  170. v-if="v.status === 1 && k == 0"
  171. class="tr-secondsA"
  172. style="color:#52CC60"
  173. >{{v.spendTime}}</div>
  174. <div class="tr-seconds width40">{{v.subject}}</div>
  175. <div class="tr-seconds width40">{{v.grade}}</div>
  176. <div v-if="v.status === 1" class="tr-seconds width40">未批改</div>
  177. <div v-if="v.status === 2" class="tr-seconds width40" style="color:#FFC303">批改中</div>
  178. <div v-if="v.status === 3" class="tr-seconds width40">已批改</div>
  179. <div class="tr-sw180" v-if="v.status === 1">
  180. <el-button type plain @click="ToAppovalOline(v)">去批改</el-button>
  181. <el-button @click="isShow(v,1)" type="success">去分配</el-button>
  182. </div>
  183. <div class="tr-sw180" v-if="v.status === 3 && v.isCheck ===1">
  184. <span>{{v.checkCount}}</span>
  185. <span style="color:#bbbbbb;">/{{v.picTotal}}</span>
  186. <el-button type="info">
  187. <a
  188. style="text-decoration:none;color:#ffffff;"
  189. :href="APPOR_BASE_URL+'?homeworkId='+v.homeworkId+'&unionid='+unionid+'&teacherId='+homeworkLIst.teacherId+'&state='+2"
  190. >已检查</a>
  191. </el-button>
  192. <span style="color:red;font-size:12px;">报错{{v.wrongCount}}</span>
  193. </div>
  194. <div class="tr-sw180" v-if="v.status === 3 && v.isCheck ===0">
  195. <el-button type="warning">
  196. <a
  197. style="text-decoration:none;color:#ffffff;"
  198. :href="APPOR_BASE_URL+'?homeworkId='+v.homeworkId+'&unionid='+unionid+'&teacherId='+homeworkLIst.teacherId+'&state='+2"
  199. >去检查</a>
  200. </el-button>
  201. </div>
  202. </div>
  203. <!-- 分页显示 -->
  204. <el-pagination
  205. background
  206. @size-change="handleSizeChange3"
  207. @current-change="pageChange3"
  208. :page-sizes="[10, 20]"
  209. layout="total, sizes, prev, pager, next, jumper"
  210. :total="parseInt(TeacherHomeworkList.pages)"
  211. :hide-on-single-page="true"
  212. ></el-pagination>
  213. </div>
  214. </div>
  215. </div>
  216. <!-- 分页显示 -->
  217. <el-pagination
  218. background
  219. @size-change="handleSizeChange"
  220. @current-change="pageChange"
  221. :page-sizes="[10]"
  222. layout="total, sizes, prev, pager, next, jumper"
  223. :total="parseInt(monitorTeacherList.pages)"
  224. :hide-on-single-page="true"
  225. ></el-pagination>
  226. <div style="clear:both;"></div>
  227. </el-col>
  228. </el-row>
  229. </el-col>
  230. <!--当天-->
  231. <el-col :span="18" class="main" v-if="modelindex == 1">
  232. <el-row :gutter="20" class="main-header">
  233. <el-col :span="5">
  234. <div class="main-header-item">
  235. 今日报错总次数:
  236. <span style="color:red;">{{DayTeacherList.wrongCount}}次</span>
  237. </div>
  238. </el-col>
  239. <el-col :span="6" :offset="5">
  240. <!-- <input type="text" placeholder="请输入老师名字" v-model="filters1.inputValue" class="input-with-new">
  241. <el-button @click="InfoWatchDay" type="primary" icon="el-icon-search"></el-button>-->
  242. <el-input placeholder="请输入老师名字" v-model="filters1.inputValue" class="input-with-select">
  243. <el-button @click="InfoWatchDay" slot="append" icon="el-icon-search"></el-button>
  244. </el-input>
  245. </el-col>
  246. <el-col :span="4">
  247. <div class="block">
  248. <el-date-picker
  249. @change="InfoWatchDay"
  250. v-model="filters1.MaxtimeValue"
  251. value-format="yyyy-MM-dd"
  252. type="date"
  253. placeholder="filters1.MaxtimeValue"
  254. ></el-date-picker>
  255. </div>
  256. </el-col>
  257. </el-row>
  258. <el-row :gutter="20" class="main-header">
  259. <el-col :span="24">
  260. <div class="table">
  261. <div class="table-head">
  262. <div>头像</div>
  263. <div>姓名</div>
  264. <div>被报错</div>
  265. <div>科目</div>
  266. <div>批改总份数</div>
  267. <div>批改总张数</div>
  268. <div style="width:240px;">平均批改时间</div>
  269. <div>出勤</div>
  270. </div>
  271. <div class="tr" v-for="(v, k) of DayTeacherList.list" :key="k">
  272. <div class="tr-first" :class="{BgcColor:k%2 !== 1}">
  273. <div>
  274. <img :src="BASE_URL + v.imgUrl" alt v-if="v.imgUrl" class="table-img">
  275. <img src="../../assets/img/user.jpg" alt v-if="!v.imgUrl" class="table-img">
  276. </div>
  277. <div>{{v.name}}</div>
  278. <div v-if="v.wrongCount == 0">{{v.wrongCount}}次</div>
  279. <div style="color:red;" v-if="v.wrongCount > 0">{{v.wrongCount}}次</div>
  280. <div class="tr-active">{{v.subject}}</div>
  281. <div>{{v.homeworkCount}}</div>
  282. <div>{{v.homeworkPicCount}}/张</div>
  283. <div style="width:240px;">{{v.avgTime}}</div>
  284. <div>{{v.attendance}}</div>
  285. <!-- <div v-if="v.attendance == 正常">{{v.attendance}}</div>
  286. <div style="color:#52cc60;" v-if="v.attendance == 未出勤">{{v.attendance}}</div>-->
  287. </div>
  288. </div>
  289. </div>
  290. <!-- 分页显示 -->
  291. <el-pagination
  292. background
  293. @size-change="handleSizeChange1"
  294. @current-change="pageChange1"
  295. :page-sizes="[10]"
  296. layout="total, sizes, prev, pager, next, jumper"
  297. :total="parseInt(DayTeacherList.pages)"
  298. :hide-on-single-page="true"
  299. ></el-pagination>
  300. <!-- <div style="float:right;margin-left:15px;">
  301. <el-button @click="myVisible = false" size="small">取 消</el-button>
  302. <el-button type="primary" size="small" @click="submit">确定</el-button>
  303. </div>-->
  304. <div style="clear:both;"></div>
  305. </el-col>
  306. </el-row>
  307. </el-col>
  308. <!--当月-->
  309. <el-col :span="18" class="main" v-if="modelindex == 2">
  310. <el-row :gutter="20" class="main-header">
  311. <el-col :span="6">
  312. <div class="main-header-item">
  313. 当月报错总次数:
  314. <span style="color:red;">{{MothTeacherList.totalWrongCount}}次</span>
  315. </div>
  316. </el-col>
  317. <el-col :span="6" :offset="5">
  318. <el-input placeholder="请输入老师名字" v-model="filters2.inputValue" class="input-with-select">
  319. <el-button @click="InfoWatchMoth" slot="append" icon="el-icon-search"></el-button>
  320. </el-input>
  321. </el-col>
  322. <el-col :span="4" >
  323. <div class="block">
  324. <el-date-picker
  325. @change="InfoWatchMoth"
  326. v-model="filters2.MaxtimeValue"
  327. type="month"
  328. value-format="yyyy-MM"
  329. placeholder="filters2.MaxtimeValue"
  330. ></el-date-picker>
  331. </div>
  332. </el-col>
  333. </el-row>
  334. <el-row :gutter="20" class="main-header">
  335. <el-col :span="4" :offset="1">
  336. <div class="main-header-item">月出勤率:{{MothTeacherList.totalAttendanceRate}}</div>
  337. </el-col>
  338. <!-- <el-col :span="4">
  339. <div class="main-header-item">批改总份数:{{MothTeacherList.totalHomeworkCount}}</div>
  340. </el-col>-->
  341. <el-col :span="4">
  342. <div class="main-header-item">批改总张数:{{MothTeacherList.totalHomeworkPicCount }}</div>
  343. </el-col>
  344. <el-col :span="6">
  345. <div class="main-header-item">批改平均时间:{{MothTeacherList.totalAvgTime}}</div>
  346. </el-col>
  347. <el-col :span="4">
  348. <div class="main-header-item">平均满意度:{{MothTeacherList.totalSatisfactionDegree}}</div>
  349. </el-col>
  350. <el-col :span="4">
  351. <div class="main-header-item">正确率:{{MothTeacherList.totalAccuracyRate}}</div>
  352. </el-col>
  353. </el-row>
  354. <el-row :gutter="20" class="main-header">
  355. <el-col :span="24">
  356. <div class="table">
  357. <div class="table-head">
  358. <div>头像</div>
  359. <div>姓名</div>
  360. <div>被报错</div>
  361. <div>科目</div>
  362. <div>批改总份数</div>
  363. <div>批改总张数</div>
  364. <div>正确率</div>
  365. <div>满意度</div>
  366. <div style="width:240px;">平均批改时间</div>
  367. <div>出勤率</div>
  368. </div>
  369. <div class="tr" v-for="(v, k) of MothTeacherList.list" :key="k">
  370. <div class="tr-first" :class="{BgcColor:k%2 !== 1}">
  371. <div>
  372. <img :src="BASE_URL + v.imgUrl" alt v-if="v.imgUrl" class="table-img">
  373. <img src="../../assets/img/user.jpg" alt v-if="!v.imgUrl" class="table-img">
  374. </div>
  375. <div>{{v.name}}</div>
  376. <div v-if="v.wrongCount == 0">{{v.wrongCount}}次</div>
  377. <div style="color:red;" v-if="v.wrongCount > 0">{{v.wrongCount}}次</div>
  378. <div class="tr-active">{{v.subject}}</div>
  379. <div>{{v.homeworkCount}}</div>
  380. <div>{{v.homeworkPicCount}}/张</div>
  381. <div>{{v.accuracyRate}}</div>
  382. <div>{{v.satisfactionDegree}}</div>
  383. <div style="width:240px;">{{v.avgTime}}</div>
  384. <div>{{v.attendance}}</div>
  385. </div>
  386. </div>
  387. </div>
  388. <!-- 分页显示 -->
  389. <el-pagination
  390. background
  391. @size-change="handleSizeChange2"
  392. @current-change="pageChange2"
  393. :page-sizes="[10]"
  394. layout="total, sizes, prev, pager, next, jumper"
  395. :total="parseInt(MothTeacherList.pages)"
  396. :hide-on-single-page="true"
  397. ></el-pagination>
  398. <!-- <div style="float:right;margin-left:15px;">
  399. <el-button @click="myVisible = false" size="small">取 消</el-button>
  400. <el-button type="primary" size="small" @click="submit">确定</el-button>
  401. </div>-->
  402. <div style="clear:both;"></div>
  403. </el-col>
  404. </el-row>
  405. </el-col>
  406. <!-- 分页显示 -->
  407. </el-row>
  408. <!--可分配老师-->
  409. <div class="showModel" @click="allShowModel(1)" v-if="hiddenModel"></div>
  410. <div class="model" style="width:40%; height:40%;top:5%" v-if="hiddenModel">
  411. <div class="model-text">
  412. <div class="model-text-head">
  413. <div>可分配老师</div>
  414. <div>{{allotList.Allotgarde}}{{allotList.Allotsubjct}}</div>
  415. </div>
  416. <div class="tr-setNo" v-if="TeacherAllotList.list.length == 0">暂无数据!</div>
  417. <div
  418. class="model-itemss"
  419. style="margin:10px;"
  420. v-for="(v, k) in TeacherAllotList.list"
  421. :key="k"
  422. >
  423. <div class="model-items-left">
  424. <div class="model-items-left-top">
  425. <div>
  426. <img
  427. :src="BASE_URL + v.imgUrl"
  428. v-if="v.imgUrl"
  429. alt
  430. class="model-items-left-top-img"
  431. >
  432. <img
  433. src="../../assets/img/user.jpg"
  434. v-if="!v.imgUrl"
  435. alt
  436. class="model-items-left-top-img"
  437. >
  438. <div style="display: inline-block;text-align: left">
  439. <div style="font-size: 24px">{{v.name}}</div>
  440. <div class="model-items-left-top-number">等待学生:{{v.waitCount}}</div>
  441. </div>
  442. </div>
  443. <div>
  444. <el-button v-show="v.type && v.type === 1" disabled type="info">已分配</el-button>
  445. <el-button
  446. v-show="!v.type || v.type !== 1"
  447. @click="GOtoTeacherAllot(v,k)"
  448. type="success"
  449. >分配</el-button>
  450. </div>
  451. </div>
  452. </div>
  453. </div>
  454. <!-- 分页显示 -->
  455. <el-pagination
  456. background
  457. @size-change="handleSizeChange4"
  458. @current-change="pageChange4"
  459. :page-sizes="[10]"
  460. layout="total, sizes, prev, pager, next, jumper"
  461. :total="parseInt(TeacherAllotList.pages)"
  462. :hide-on-single-page="true"
  463. ></el-pagination>
  464. </div>
  465. </div>
  466. <!-- 无未批改作业 v-if="isNocheck"-->
  467. <div class="no-homework" id="noHomework">
  468. <div>无可分配作业</div>
  469. <img src="../../assets/img/wu_fen_pei_zuo_ye.png" alt>
  470. </div>
  471. <!--所有未批改作业-->
  472. <div class="showModel" @click="allShowModel(2)" v-if="isPigai"></div>
  473. <div class="model" style="width:50%" v-if="isPigai">
  474. <div class="model-text">
  475. <div class="model-text-head">
  476. <div>所有未批改作业</div>
  477. </div>
  478. <div>
  479. <!-- UnallotHomeworkInfo -->
  480. <!-- <div class="tr-setNo" v-if="UnallotHomeworkInfo.list.length == 0">
  481. 暂无数据!
  482. </div>-->
  483. <div class="table-heads1">
  484. <div>学生</div>
  485. <div>等待时长</div>
  486. <div>科目</div>
  487. <div>年级</div>
  488. <div>未批改老师</div>
  489. </div>
  490. <div class="tr-set" v-for="(v, k) of UnallotHomeworkInfo.list" :key="k">
  491. <div class="tr-secon">{{k+1}}</div>
  492. <div class="tr-secon" style="width:50px;">
  493. <span>{{v.name}}</span>
  494. </div>
  495. <div class="tr-secon" style="width:60px;">等待:{{v.spendTime}}</div>
  496. <div class="tr-secon">{{v.subject}}</div>
  497. <div class="tr-secon">{{v.grade}}</div>
  498. <div v-if="v.status === 1" class="tr-secon">未批改</div>
  499. <div v-if="v.status === 2" class="tr-secon">批改中</div>
  500. <div v-if="v.status === 3" class="tr-secon">已批改</div>
  501. <div class="tr-secon">{{v.teacherName}}</div>
  502. <div class>
  503. <el-button type="success" @click="ToAppovalOline(v)" plain>去批改</el-button>
  504. <el-button type="success" @click="isShow(v,5)">去分配</el-button>
  505. </div>
  506. </div>
  507. <el-pagination
  508. background
  509. @size-change="handleSizeChange3"
  510. @current-change="pageChange3"
  511. :page-sizes="[10]"
  512. layout="total, sizes, prev, pager, next, jumper"
  513. :total="parseInt(UnallotHomeworkInfo.pages)"
  514. :hide-on-single-page="true"
  515. ></el-pagination>
  516. </div>
  517. </div>
  518. </div>
  519. <!--所有未批改可分配老师列表弹框-->
  520. <div class="showModel" @click="allShowModel(5)" v-if="NoAllotManagerModel"></div>
  521. <div class="model" style="width:40%!important" v-if="NoAllotManagerModel">
  522. <div class="model-text" style="padding: 0 10px">
  523. <div class="model-manager">
  524. <div>作业可分配老师</div>
  525. <div>
  526. <img src="../../assets/img/del@2x.png" alt @click="allShowModel(5)">
  527. </div>
  528. </div>
  529. <div class="allocation-items" v-for="(v, k) in TeacherAllotList.list" :key="k">
  530. <div class="model-items-left">
  531. <div class="model-items-left-top">
  532. <div>
  533. <img
  534. :src="BASE_URL + v.imgUrl"
  535. v-if="v.imgUrl"
  536. alt
  537. class="model-items-left-top-img"
  538. >
  539. <img
  540. src="../../assets/img/user.jpg"
  541. v-if="!v.imgUrl"
  542. alt
  543. class="model-items-left-top-img"
  544. >
  545. <div style="display: inline-block;text-align: left;">
  546. <div style="font-size: 24px;margin-left: 10px">{{v.name}}</div>
  547. <div class="model-items-left-top-number">等待张数:{{v.teacherCount}}</div>
  548. </div>
  549. </div>
  550. <div>
  551. <el-button v-show="v.type && v.type === 1" disabled type="info">已分配</el-button>
  552. <el-button
  553. v-show="!v.type || v.type !== 1"
  554. @click="GOtoTeacherAllotAppovar(v,k)"
  555. type="success"
  556. >分配</el-button>
  557. </div>
  558. </div>
  559. </div>
  560. </div>
  561. <el-pagination
  562. background
  563. @size-change="handleSizeChange6"
  564. @current-change="pageChange6"
  565. :page-sizes="[10]"
  566. layout="total, sizes, prev, pager, next, jumper"
  567. :total="parseInt(TeacherAllotList.pages)"
  568. :hide-on-single-page="true"
  569. ></el-pagination>
  570. </div>
  571. </div>
  572. <!-- 老师详情弹框 -->
  573. <div class="showModel" @click="allShowModel(3)" v-if="ModelAppor"></div>
  574. <div class="model" style="width:35%;left: 32.5%" v-if="ModelAppor">
  575. <div class="model-text">
  576. <div class="model-manager">
  577. <div>批改老师</div>
  578. <div>
  579. <img src="../../assets/img/del@2x.png" alt @click="allShowModel(3)">
  580. </div>
  581. </div>
  582. <div class="model-items" style="width: 100%">
  583. <div class="model-items-first">
  584. <div>
  585. <img
  586. :src="BASE_URL + GetTeacherDetail.imgUrl"
  587. v-if="GetTeacherDetail.imgUrl"
  588. alt
  589. class="model-items-first-img"
  590. >
  591. <img
  592. src="../../assets/img/user.jpg"
  593. v-if="!GetTeacherDetail.imgUrl"
  594. alt
  595. class="model-items-first-img"
  596. >
  597. <div class="model-items-first-left">
  598. <div class="Onlinename">{{GetTeacherDetail.name}}</div>
  599. <div v-if="GetTeacherDetail.status ===1" class="Online">(在线)</div>
  600. <div v-if="GetTeacherDetail.status ===0" class="Online">(离线)</div>
  601. <div class="model-items-first-left-down">{{GetTeacherDetail.school}}</div>
  602. </div>
  603. </div>
  604. </div>
  605. <div class="model-items-other model-active">批改科目 : {{GetTeacherDetail.subject}}</div>
  606. <div class="model-items-other">
  607. 批改年级 :
  608. <span v-for="(v, k) of arrGrade" :key="k">{{v}},</span>
  609. </div>
  610. <div class="model-items-other model-active">
  611. 可批改时间:
  612. <div class="buttonAppoval" v-show="arrPeriod.length >= 0">
  613. <el-button type="info" size="mini" round v-for="(v, k) of arrPeriod" :key="k">{{v}}</el-button>
  614. </div>
  615. </div>
  616. <div class="model-items-other">手机号 : {{GetTeacherDetail.phone}}</div>
  617. <div class="model-items-other model-active">上次登录时间 : {{GetTeacherDetail.lastOnlineTime}}</div>
  618. <div class="model-items-other">批改正确率 : {{GetTeacherDetail.accuracyRate}}</div>
  619. <div class="model-items-other model-active">被报错总次数 : {{GetTeacherDetail.wrongCount}}</div>
  620. <div class="model-items-other">满意度 : {{GetTeacherDetail.satisfactionDegree}}</div>
  621. </div>
  622. </div>
  623. </div>
  624. <!-- 学生详情弹框 -->
  625. <div class="showModel" @click="allShowModel(4)" v-if="ModelStudet"></div>
  626. <div class="model" style="width:35%;left: 32.5%" v-if="ModelStudet">
  627. <div class="model-text">
  628. <div class="model-manager">
  629. <div>学生详情</div>
  630. <div>
  631. <img src="../../assets/img/del@2x.png" alt @click="allShowModel(4)">
  632. </div>
  633. </div>
  634. <div class="model-items">
  635. <div class="model-items-first">
  636. <div>
  637. <img :src="BASE_URL + GetStudentDetail.imgUrl" alt class="model-items-first-img">
  638. <img
  639. src="../../assets/img/user.jpg"
  640. v-if="!GetStudentDetail.imgUrl"
  641. alt
  642. class="model-items-first-img"
  643. >
  644. <div class="model-items-first-left">
  645. <div class="Onlinename">{{GetStudentDetail.name}}</div>
  646. <div class="model-items-first-left-down">{{GetStudentDetail.school}}</div>
  647. </div>
  648. </div>
  649. </div>
  650. <div class="model-items-other model-active">所读年级 : {{GetStudentDetail.grade}}</div>
  651. <div class="model-items-other">性别 : {{GetStudentDetail.sex==1?'男':'女'}}</div>
  652. <div class="model-items-other model-active">联系方式 : {{GetStudentDetail.phone}}</div>
  653. </div>
  654. </div>
  655. </div>
  656. </div>
  657. </template>
  658. <script>
  659. import { IMG_BASE_URL, APPOR_BASE_URL } from "@/ImgConfig";
  660. import { mapGetters, mapActions } from "vuex";
  661. export default {
  662. components: {},
  663. name: "actvResolveLabel",
  664. props: {},
  665. data() {
  666. return {
  667. unionid: localStorage.getItem("unionid"),
  668. accessToken: localStorage.getItem("accessToken"), //token
  669. managerId: "", // 超级管理员登陆ID
  670. ApporhomeworkId: "",
  671. BASE_URL: IMG_BASE_URL,
  672. APPOR_BASE_URL: APPOR_BASE_URL,
  673. isDownindex: "",
  674. modelindex: 0,
  675. values: [],
  676. arrGrade: [],
  677. NoAllotManagerModel: false, //未批改作业可分配老师弹框
  678. hiddenModel: false, //分配老师弹框
  679. isPigai: false, //未批改作业弹框
  680. ModelAppor: false, //批改老师详情信息弹框
  681. ModelStudet: false, //学生详情弹框
  682. isNocheck: false, //没有未批改作业
  683. isDown: false,
  684. options: [
  685. {
  686. value: "0",
  687. label: "1~2年级",
  688. str: "一年级,二年级"
  689. },
  690. {
  691. value: "1",
  692. label: "3~4年级",
  693. str: "三年级,四年级"
  694. },
  695. {
  696. value: "2",
  697. label: "5~6年级",
  698. str: "五年级,六年级"
  699. },
  700. {
  701. value: "3",
  702. label: "全部"
  703. // str:''
  704. }
  705. ],
  706. grades: [
  707. {
  708. value: "0",
  709. label: "语文",
  710. str: "语文"
  711. },
  712. {
  713. value: "1",
  714. label: "数学",
  715. str: "数学"
  716. },
  717. {
  718. value: "2",
  719. label: "英语",
  720. str: "英语"
  721. },
  722. {
  723. value: "3",
  724. label: "全部"
  725. // str:""
  726. }
  727. ],
  728. ItemList: [
  729. {
  730. text: "数据监控"
  731. },
  732. {
  733. text: "当天"
  734. },
  735. {
  736. text: "当月"
  737. }
  738. ],
  739. filters: {
  740. //超级管理员的当天数据
  741. // 排序
  742. MaxtimeValue: "",
  743. OptionsValue: "",
  744. gradesValue: "",
  745. inputValue: "",
  746. pageNo: 1,
  747. pageSize: 10,
  748. count: 100,
  749. orderField: "",
  750. orderAD: "",
  751. managerId: ""
  752. },
  753. filters1: {
  754. //超级管理员的当天数据
  755. // 排序
  756. MaxtimeValue: this.dayFormatDate(),
  757. OptionsValue: "",
  758. gradesValue: "",
  759. inputValue: "",
  760. pageNo: 1,
  761. pageSize: 10,
  762. count: 0,
  763. orderField: "",
  764. orderAD: ""
  765. },
  766. filters2: {
  767. //超级管理员的当月数据
  768. // 排序
  769. MaxtimeValue: this.monthFormatDate(),
  770. OptionsValue: "",
  771. gradesValue: "",
  772. inputValue: "",
  773. pageNo: 1,
  774. pageSize: 10,
  775. count: 0,
  776. orderField: "",
  777. orderAD: ""
  778. },
  779. filters3: {
  780. //超级管理员查看学员列表
  781. // 排序
  782. MaxtimeValue: "",
  783. OptionsValue: "",
  784. gradesValue: "",
  785. inputValue: "",
  786. pageNo: 1,
  787. pageSize: 10,
  788. count: 0,
  789. orderField: "",
  790. orderAD: ""
  791. },
  792. homeworkLIst: {
  793. pageNo: 1,
  794. pageSize: 10,
  795. teacherId: ""
  796. },
  797. allotList: {
  798. Allotgarde: "",
  799. Allotsubjct: "",
  800. pageNo: 1,
  801. pageSize: 10,
  802. homeworkId: ""
  803. },
  804. allNoapprovalList: {
  805. Allotgarde: "",
  806. Allotsubjct: "",
  807. pageNo: 1,
  808. pageSize: 10,
  809. homeworkId: ""
  810. },
  811. AllotButton: ""
  812. };
  813. },
  814. created() {
  815. const managerId = this.$route.query.managerId;
  816. this.managerId = managerId;
  817. },
  818. watch: {
  819. getTeacherIdStatus(val, oldVal) {
  820. //普通的watch监听
  821. this.InfoWatch();
  822. },
  823. BeforetoTeacherAllotCode(val, oldVal) {
  824. //普通的watch监听
  825. window.open(
  826. APPOR_BASE_URL +
  827. "?homeworkId=" +
  828. this.ApporhomeworkId +
  829. "&unionid=" +
  830. this.unionid +
  831. "&teacherId=" +
  832. this.homeworkLIst.teacherId +
  833. "&state=" +
  834. 1
  835. );
  836. },
  837. BeforetoTeacherstatues(val, oldVal) {
  838. //普通的watch监听
  839. // 查看老师批改作业列表
  840. this.$store.dispatch("TeacherHomeworkList", {
  841. teacherId: this.homeworkLIst.teacherId,
  842. maxCreateTime: this.filters.MaxtimeValue,
  843. pageNo: this.homeworkLIst.pageNo,
  844. pageSize: this.homeworkLIst.pageSize
  845. });
  846. },
  847. InfoTeacherstatues(val, oldVal) {
  848. //普通的watch监听
  849. this.pesiorFun();
  850. },
  851. },
  852. computed: {
  853. ...mapGetters([
  854. "getUser",
  855. "monitorTeacherList",
  856. "TeacherHomeworkList",
  857. "TeacherAllotList",
  858. "TeacherAllotstatus",
  859. "DayTeacherList",
  860. "MothTeacherList",
  861. "UnallotHomeworkInfo",
  862. "GetTeacherDetail",
  863. "GetStudentDetail",
  864. "getTeacherIdStatus",
  865. "BeforetoTeacherAllotCode",
  866. "BeforetoTeacherstatues",
  867. "InfoTeacherstatues"
  868. ])
  869. },
  870. methods: {
  871. ...mapActions(["setUser"]),
  872. // 去批改前分配老师
  873. async ToAppovalOline(v) {
  874. let ApporhomeworkId = v.homeworkId;
  875. this.ApporhomeworkId = ApporhomeworkId;
  876. this.$store.dispatch("BeforetoTeacherAllot", {
  877. teacherId: localStorage.getItem("userId"),
  878. homeworkId: v.homeworkId
  879. });
  880. },
  881. // 点击下拉
  882. dropDown(v, k) {
  883. this.isDown = !this.isDown;
  884. // console.log(!this.isDown)
  885. this.isDownindex = k;
  886. // if (this.isDown = true){
  887. // this.isDown = true;
  888. // }
  889. this.TeacherHomework(v);
  890. },
  891. // // 分页
  892. // pageChange(val) {
  893. // this.filters.pageNo = val;
  894. // this.itemListReshow();
  895. // },
  896. // changeDateSlot(dateSlot) {
  897. // if (dateSlot) {
  898. // this.filters.startDate = dateSlot[0];
  899. // this.filters.endDate = dateSlot[1];
  900. // } else {
  901. // this.filters.startDate = null;
  902. // this.filters.endDate = null;
  903. // }
  904. // },
  905. // 获取校区管理员监控数据
  906. async InfoWatch() {
  907. this.isDown = false;
  908. this.$store.dispatch("InfoWatch", {
  909. grade: this.filters.OptionsValue,
  910. subject: this.filters.gradesValue,
  911. teacherName: this.filters.inputValue,
  912. maxCreateTime: "",
  913. pageNo: this.filters.pageNo,
  914. pageSize: this.filters.pageSize,
  915. managerId: this.managerId || ""
  916. });
  917. },
  918. // 获取校区管理员当天数据
  919. async InfoWatchDay() {
  920. this.$store.dispatch("InfoWatchDay", {
  921. grade: this.filters.OptionsValue,
  922. subject: this.filters.gradesValue,
  923. teacherName: this.filters1.inputValue,
  924. maxCreateTime: "",
  925. oneDay: this.filters1.MaxtimeValue,
  926. pageNo: this.filters1.pageNo,
  927. pageSize: this.filters1.pageSize,
  928. managerId: this.managerId || ""
  929. });
  930. },
  931. // 获取校区管理员当月数据
  932. async InfoWatchMoth() {
  933. this.$store.dispatch("InfoWatchMoth", {
  934. grade: this.filters.OptionsValue,
  935. subject: this.filters.gradesValue,
  936. teacherName: this.filters2.inputValue,
  937. maxCreateTime: "",
  938. oneMonth: this.filters2.MaxtimeValue,
  939. pageNo: this.filters2.pageNo,
  940. pageSize: this.filters2.pageSize,
  941. managerId: this.managerId || ""
  942. });
  943. },
  944. // 查看老师批改作业列表
  945. async TeacherHomework(v) {
  946. this.homeworkLIst.teacherId = v.teacherId;
  947. this.$store.dispatch("TeacherHomeworkList", {
  948. teacherId: v.teacherId,
  949. maxCreateTime: "",
  950. pageNo: 1,
  951. pageSize: this.homeworkLIst.pageSize
  952. });
  953. },
  954. // 分页查看老师批改作业列表
  955. async TeacherHomeworkfy() {
  956. this.$store.dispatch("TeacherHomeworkList", {
  957. teacherId: this.homeworkLIst.teacherId,
  958. maxCreateTime: this.filters.MaxtimeValue,
  959. pageNo: this.homeworkLIst.pageNo,
  960. pageSize: this.homeworkLIst.pageSize
  961. });
  962. },
  963. // 可分配老师列表
  964. async TeacherAllot(v) {
  965. this.$store.dispatch("TeacherAllotList", {
  966. grade: v.grade,
  967. subject: v.subject,
  968. maxCreateTime: this.filters.MaxtimeValue,
  969. pageNo: this.allotList.pageNo,
  970. pageSize: this.allotList.pageSize
  971. });
  972. },
  973. // 可分配老师列表分页
  974. async TeacherAllotfy() {
  975. this.$store.dispatch("TeacherAllotList", {
  976. grade: this.allotList.Allotgarde,
  977. subject: this.allotList.Allotsubjct,
  978. maxCreateTime: this.filters.MaxtimeValue,
  979. pageNo: this.allotList.pageNo,
  980. pageSize: this.allotList.pageSize
  981. });
  982. },
  983. // 未批改作业列表列表
  984. async UnallotHomework() {
  985. this.$store.dispatch("UnallotHomeworkList", {
  986. maxCreateTime: this.filters.MaxtimeValue,
  987. pageNo: this.homeworkLIst.pageNo,
  988. pageSize: this.homeworkLIst.pageSize
  989. });
  990. },
  991. // 未批改作业分配老师
  992. async GOtoTeacherAllotAppovar(v, k) {
  993. this.$store.dispatch("toTeacherAllot", {
  994. teacherId: v.teacherId,
  995. homeworkId: this.allNoapprovalList.homeworkId
  996. });
  997. v.type = 1;
  998. this.$set(this.TeacherAllotList.list, k, v);
  999. this.NoAllotManagerModel = false;
  1000. this.UnallotHomework();
  1001. this.isPigai = true;
  1002. },
  1003. // 分配老师
  1004. async GOtoTeacherAllot(v, k) {
  1005. this.$store.dispatch("toTeacherAllot", {
  1006. teacherId: v.teacherId,
  1007. homeworkId: this.allotList.homeworkId
  1008. });
  1009. v.type = 1;
  1010. this.$set(this.TeacherAllotList.list, k, v);
  1011. this.hiddenModel = false;
  1012. },
  1013. // 查看老师详情信息
  1014. async GetTeacherInfo(v) {
  1015. this.$store.dispatch("GetTeacherDetail", {
  1016. teacherId: v.teacherId
  1017. });
  1018. },
  1019. async pesiorFun(){
  1020. var arr = this.GetTeacherDetail.grade.split(",");
  1021. this.arrPeriod = this.GetTeacherDetail.period.split(",");
  1022. var arrList = [];
  1023. for (var i in arr) {
  1024. if (arr[i] == "一年级" || arr[i] == "二年级") {
  1025. arrList.push("1-2年级");
  1026. } else if (arr[i] == "三年级" || arr[i] == "四年级") {
  1027. arrList.push("3-4年级");
  1028. } else if (arr[i] == "五年级" || arr[i] == "六年级") {
  1029. arrList.push("5-6年级");
  1030. }
  1031. }
  1032. this.arrGrade = this.uniq(arrList) || [];
  1033. },
  1034. // 查看学生详情信息
  1035. async GetStudentInfo(v) {
  1036. this.$store.dispatch("GetStudentDetail", {
  1037. vipId: v.vipId
  1038. });
  1039. },
  1040. selectTitle(k) {
  1041. this.modelindex = k;
  1042. if (k === 0) {
  1043. this.filters.pageNo = 1;
  1044. this.InfoWatch();
  1045. }
  1046. if (k === 1) {
  1047. this.filters1.pageNo = 1;
  1048. this.InfoWatchDay();
  1049. }
  1050. if (k === 2) {
  1051. this.filters2.pageNo = 1;
  1052. this.InfoWatchMoth();
  1053. }
  1054. },
  1055. isShow(v, str) {
  1056. let _this = this;
  1057. // scroll= (window).scrollTop();
  1058. // $ ( ‘html’ ).css({ ‘overflow’ : ’hidden’ , ’position’: ’fixed’, ’top’: ’- ‘+scroll+’px’})
  1059. if (str == 1) {
  1060. _this.hiddenModel = true;
  1061. this.TeacherAllot(v);
  1062. this.allotList.Allotgarde = v.grade;
  1063. this.allotList.Allotsubjct = v.subject;
  1064. this.allotList.homeworkId = v.homeworkId;
  1065. } else if (str == 2) {
  1066. _this.isPigai = true;
  1067. this.UnallotHomework();
  1068. } else if (str == 3) {
  1069. _this.ModelAppor = true;
  1070. this.GetTeacherInfo(v);
  1071. } else if (str == 4) {
  1072. _this.ModelStudet = true;
  1073. this.GetStudentInfo(v);
  1074. } else if (str == 5) {
  1075. this.allNoapprovalList.Allotgarde = v.grade;
  1076. this.allNoapprovalList.Allotsubjct = v.subject;
  1077. this.allNoapprovalList.homeworkId = v.homeworkId;
  1078. _this.NoAllotManagerModel = true;
  1079. _this.isPigai = false;
  1080. this.NoapporvalTeacherAllot(v);
  1081. // this.GetAllotManagerInfo()
  1082. }
  1083. },
  1084. // 未批改作业可分配老师列表
  1085. async NoapporvalTeacherAllot(v) {
  1086. this.$store.dispatch("TeacherAllotList", {
  1087. grade: v.grade || this.allNoapprovalList.Allotgarde,
  1088. subject: v.subject || this.allNoapprovalList.Allotsubjct,
  1089. maxCreateTime: this.filters.MaxtimeValue,
  1090. pageNo: 1,
  1091. pageSize: this.allNoapprovalList.pageSize
  1092. });
  1093. },
  1094. // 未批改作业可分配老师分页列表
  1095. async NoapporvalTeacherAllotfy() {
  1096. this.$store.dispatch("TeacherAllotList", {
  1097. grade: this.allNoapprovalList.Allotgarde,
  1098. subject: this.allNoapprovalList.Allotsubjct,
  1099. maxCreateTime: this.filters.MaxtimeValue,
  1100. pageNo: this.allNoapprovalList.pageNo,
  1101. pageSize: this.allNoapprovalList.pageSize
  1102. });
  1103. },
  1104. // 去分配
  1105. allocation() {
  1106. var noHomework = document.getElementById("noHomework");
  1107. this.InfoWatch();
  1108. if (this.monitorTeacherList.unCorrectCount == 0) {
  1109. noHomework.style.display = "block";
  1110. setTimeout(function() {
  1111. noHomework.style.display = "none";
  1112. }, 1000);
  1113. } else {
  1114. this.isShow(this.monitorTeacherList, 2);
  1115. }
  1116. },
  1117. //年月日时间封装
  1118. dayFormatDate: function() {
  1119. let date = new Date();
  1120. let y = date.getFullYear();
  1121. let MM = date.getMonth() + 1;
  1122. MM = MM < 10 ? "0" + MM : MM;
  1123. let d = date.getDate();
  1124. d = d < 10 ? "0" + d : d;
  1125. return y + "-" + MM + "-" + d;
  1126. },
  1127. //年月时间封装
  1128. monthFormatDate: function() {
  1129. let date = new Date();
  1130. let y = date.getFullYear();
  1131. let MM = date.getMonth() + 1;
  1132. MM = MM < 10 ? "0" + MM : MM;
  1133. return y + "-" + MM;
  1134. },
  1135. //关闭弹框
  1136. allShowModel(str) {
  1137. let _this = this;
  1138. if (str == 1) {
  1139. _this.hiddenModel = false;
  1140. } else if (str == 2) {
  1141. _this.isPigai = false;
  1142. } else if (str == 3) {
  1143. _this.ModelAppor = false;
  1144. } else if (str == 4) {
  1145. _this.ModelStudet = false;
  1146. } else if (str == 5) {
  1147. _this.NoAllotManagerModel = false;
  1148. }
  1149. },
  1150. // 数组去重
  1151. uniq(array) {
  1152. var temp = []; //一个新的临时数组
  1153. for (var i = 0; i < array.length; i++) {
  1154. if (temp.indexOf(array[i]) == -1) {
  1155. temp.push(array[i]);
  1156. }
  1157. }
  1158. return temp;
  1159. },
  1160. // 输入框按键方法
  1161. keyCodeMethod(e) {
  1162. if (e.keyCode === 13) return this.itemListReshow();
  1163. },
  1164. expandChange(row, expandRows) {
  1165. for (let item of expandRows) {
  1166. if (row === item) {
  1167. this.expandRowKeys = [row.nodId];
  1168. }
  1169. }
  1170. },
  1171. changeDateSlot(dateSlot) {
  1172. if (dateSlot) {
  1173. this.filters.startDate = dateSlot[0];
  1174. this.filters.endDate = dateSlot[1];
  1175. } else {
  1176. this.filters.startDate = null;
  1177. this.filters.endDate = null;
  1178. }
  1179. },
  1180. actvTypeChange(typeList) {
  1181. switch (typeList.length) {
  1182. case 1:
  1183. this.filters.actvType = typeList[0];
  1184. this.filters.actvSmallType = null;
  1185. break;
  1186. case 2:
  1187. this.filters.actvType = null;
  1188. this.filters.actvSmallType = typeList[1];
  1189. break;
  1190. default:
  1191. this.filters.actvType = null;
  1192. this.filters.actvSmallType = null;
  1193. break;
  1194. }
  1195. },
  1196. handleSizeChange(val) {
  1197. this.filters.pageSize = val;
  1198. this.InfoWatch();
  1199. },
  1200. handleSizeChange1(val) {
  1201. this.filters1.pageSize = val;
  1202. this.InfoWatchDay();
  1203. },
  1204. handleSizeChange2(val) {
  1205. this.filters2.pageSize = val;
  1206. this.InfoWatchMoth();
  1207. },
  1208. handleSizeChange3(val) {
  1209. this.homeworkLIst.pageSize = val;
  1210. this.TeacherHomeworkfy();
  1211. },
  1212. handleSizeChange4(val) {
  1213. this.allotList.pageSize = val;
  1214. this.TeacherAllotfy();
  1215. },
  1216. handleSizeChange6(val) {
  1217. this.allNoapprovalList.pageSize = val;
  1218. this.NoapporvalTeacherAllotfy();
  1219. },
  1220. // 分页
  1221. pageChange(val) {
  1222. this.filters.pageNo = val;
  1223. this.InfoWatch();
  1224. }, // 分页
  1225. pageChange1(val) {
  1226. this.filters1.pageNo = val;
  1227. this.InfoWatchDay();
  1228. }, // 分页
  1229. pageChange2(val) {
  1230. this.filters2.pageNo = val;
  1231. this.InfoWatchMoth();
  1232. },
  1233. pageChange3(val) {
  1234. this.homeworkLIst.pageNo = val;
  1235. this.TeacherHomeworkfy();
  1236. },
  1237. pageChange4(val) {
  1238. this.allotList.pageNo = val;
  1239. this.TeacherAllotfy();
  1240. },
  1241. pageChange6(val) {
  1242. this.allNoapprovalList.pageNo = val;
  1243. this.NoapporvalTeacherAllotfy();
  1244. },
  1245. // 排序
  1246. sortChange(sort) {
  1247. this.filters.orderField = sort.prop;
  1248. this.filters.orderAD = sort.order != null ? sort.order : "";
  1249. this.itemListReshow();
  1250. }
  1251. // 获取创建人列表
  1252. // async getUserNameList() {
  1253. // let {
  1254. // userNameList = []
  1255. // } = await this.$dao.actv.marketActDao.getUserNameList();
  1256. // this.userNameList = userNameList || [];
  1257. // let { list = [] } = await this.$dao.bsnsActvTypeAllList();
  1258. // this.actvTypeList = list || [];
  1259. // }
  1260. },
  1261. mounted() {
  1262. this.InfoWatch();
  1263. // this.getsetDictByType2();
  1264. // this.getUserNameList();
  1265. // this.itemListReshow();
  1266. }
  1267. };
  1268. </script>
  1269. <!-- Add "scoped" attribute to limit CSS to this component only -->
  1270. <style>
  1271. html,
  1272. body {
  1273. height: 100%;
  1274. overflow: hidden;
  1275. }
  1276. ul {
  1277. text-align: center;
  1278. margin: 0 !important;
  1279. }
  1280. .aside {
  1281. background-color: #fff;
  1282. margin-top: 16px;
  1283. padding: 0;
  1284. min-height: 880px;
  1285. }
  1286. .main {
  1287. background-color: #fff;
  1288. margin: 16px;
  1289. padding: 0 !important;
  1290. min-height: 980px;
  1291. }
  1292. .table-aside {
  1293. color: #666666;
  1294. font-size: 18px;
  1295. text-align: center;
  1296. line-height: 60px;
  1297. cursor: pointer;
  1298. }
  1299. el-table {
  1300. color: #999999;
  1301. font-size: 18px;
  1302. }
  1303. .main-items {
  1304. color: #393939;
  1305. text-align: center;
  1306. line-height: 80px;
  1307. }
  1308. .main-header-item {
  1309. font-size: 16px;
  1310. /* font-weight: 700; */
  1311. }
  1312. .model-manager {
  1313. display: flex;
  1314. justify-content: space-between;
  1315. margin: 30px;
  1316. color: #393939;
  1317. font-size: 24px;
  1318. }
  1319. .main-header-link {
  1320. color: #52cc60;
  1321. font-size: 18px;
  1322. margin-left: 10px;
  1323. cursor: pointer;
  1324. text-decoration: underline;
  1325. }
  1326. .el-select {
  1327. width: 100px;
  1328. margin: -10px !important;
  1329. }
  1330. .input-with-select .el-input-group__prepend {
  1331. background-color: #fff;
  1332. }
  1333. .el-select-dropdown__list {
  1334. padding: 15px 0 !important;
  1335. }
  1336. .input-with-new {
  1337. border: 1px solid #cccccc;
  1338. border-radius: 15px;
  1339. height: 30px;
  1340. line-height: 30px;
  1341. padding: 10px;
  1342. font-size: 12px;
  1343. color: #eeeeee;
  1344. width: 180px;
  1345. }
  1346. .active {
  1347. background-color: #52cc60;
  1348. color: #fff;
  1349. }
  1350. .el-input__inner {
  1351. /* height: 32px; */
  1352. }
  1353. .table-img {
  1354. width: 36px;
  1355. height: 36px;
  1356. border-radius: 6px;
  1357. margin-left: 14px;
  1358. cursor: pointer;
  1359. }
  1360. .table {
  1361. width: 94.5% !important;
  1362. border-top: 1px solid #e5e5e5;
  1363. margin: 0 43px;
  1364. }
  1365. .table-head {
  1366. color: #999999;
  1367. font-size: 18px;
  1368. text-align: center;
  1369. display: flex;
  1370. justify-content: space-around;
  1371. }
  1372. .table-heads1 {
  1373. margin-left: 15%;
  1374. width: 60%;
  1375. color: #3ab548;
  1376. font-size: 14px;
  1377. text-align: center;
  1378. display: flex;
  1379. justify-content: space-around;
  1380. }
  1381. .table-heads1 > div {
  1382. width: 13.528%;
  1383. }
  1384. .table-head > div {
  1385. width: 13.528%;
  1386. }
  1387. .tr {
  1388. width: 100%;
  1389. color: #393939;
  1390. text-align: center;
  1391. font-family: "PingFang-SC-Bold";
  1392. font-size: 16px;
  1393. font-weight: 700;
  1394. }
  1395. .tr-first {
  1396. display: flex;
  1397. justify-content: space-around;
  1398. }
  1399. .tr-first > div {
  1400. width: 13.528%;
  1401. }
  1402. .tr-s {
  1403. display: flex;
  1404. justify-content: space-around;
  1405. }
  1406. .tr-set {
  1407. background-color: #fbfbfb;
  1408. display: flex;
  1409. justify-content: space-around;
  1410. color: #393939;
  1411. font-size: 12px;
  1412. margin: 20px;
  1413. }
  1414. .tr-setNo {
  1415. display: flex;
  1416. justify-content: space-around;
  1417. color: #000000f1;
  1418. font-size: 16px;
  1419. margin: 20px;
  1420. }
  1421. .tr-secon {
  1422. font-size: 12px;
  1423. text-align: center;
  1424. word-wrap: break-word;
  1425. width: 40px;
  1426. }
  1427. .tr-second {
  1428. background-color: #fbfbfb;
  1429. display: flex;
  1430. color: #393939;
  1431. font-size: 20px;
  1432. word-wrap: break-word;
  1433. }
  1434. .tr-seconds {
  1435. text-align: center;
  1436. font-size: 14px;
  1437. word-wrap: break-word;
  1438. margin: 0 50px;
  1439. /* height: 30px; */
  1440. }
  1441. .width40 {
  1442. width: 100px;
  1443. }
  1444. .tr-sw180 {
  1445. width: 230px;
  1446. text-align: center;
  1447. }
  1448. .tr-secondsA {
  1449. text-align: center;
  1450. font-size: 14px;
  1451. word-wrap: break-word;
  1452. width: 280px;
  1453. }
  1454. .tr-w120 {
  1455. width: 200px;
  1456. text-align: left;
  1457. display: inline-block;
  1458. /*height: 80px;*/
  1459. /*line-height: 80px;*/
  1460. }
  1461. .tr-second-check {
  1462. color: #3ab548;
  1463. font-size: 17px;
  1464. text-decoration: underline;
  1465. }
  1466. .Online {
  1467. display: inline-block;
  1468. }
  1469. .Onlinename {
  1470. display: inline-block;
  1471. }
  1472. .tr-active {
  1473. color: #3ab548;
  1474. }
  1475. .BgcColor {
  1476. background-color: #f7fbfc;
  1477. }
  1478. .showModel {
  1479. width: 100%;
  1480. height: 100%;
  1481. position: fixed;
  1482. top: 0;
  1483. left: 0;
  1484. background: #000000;
  1485. opacity: 0.2;
  1486. overflow: hidden;
  1487. z-index: 1000;
  1488. color: #fff;
  1489. }
  1490. .model {
  1491. z-index: 10000;
  1492. width: 60%;
  1493. height: auto;
  1494. position: fixed;
  1495. top: 15%;
  1496. left: 30%;
  1497. margin: auto;
  1498. background: #fff;
  1499. border-radius: 10px;
  1500. text-align: center;
  1501. }
  1502. .model-text {
  1503. background: rgba(255, 255, 255, 1);
  1504. border-radius: 10px;
  1505. }
  1506. .model-items-first {
  1507. padding: 0 34px;
  1508. width: 100%;
  1509. display: flex;
  1510. justify-content: space-between;
  1511. }
  1512. .model-items-first-img {
  1513. width: 68px;
  1514. height: 68px;
  1515. border-radius: 8px;
  1516. position: relative;
  1517. bottom: 20px;
  1518. }
  1519. .model-items-first-left {
  1520. display: inline-block;
  1521. color: #393939;
  1522. font-size: 24px;
  1523. margin-left: 14px;
  1524. text-align: left;
  1525. }
  1526. .model-items-first-left-down {
  1527. color: #7e7e7e;
  1528. font-size: 18px;
  1529. }
  1530. .model-text-head {
  1531. padding: 40px 50px;
  1532. display: flex;
  1533. color: #393939;
  1534. font-size: 24px;
  1535. justify-content: space-between;
  1536. }
  1537. .model-items-other {
  1538. height: 60px;
  1539. line-height: 60px;
  1540. color: #393939;
  1541. font-size: 20px;
  1542. text-align: left;
  1543. padding: 0 34px;
  1544. }
  1545. .model-active {
  1546. background-color: #f6f7fb;
  1547. }
  1548. .model-active-last {
  1549. border-radius: 0 0 30px 30px;
  1550. background-color: #f6f7fb;
  1551. }
  1552. .model-items-left {
  1553. width: 100%;
  1554. color: #393939;
  1555. font-size: 24px;
  1556. }
  1557. .buttonAppoval {
  1558. display: inline-block;
  1559. }
  1560. .el-button.is-round{
  1561. }
  1562. .model-items-left-top {
  1563. display: flex;
  1564. justify-content: space-between;
  1565. }
  1566. .model-items {
  1567. padding: 20px 0;
  1568. display: flex;
  1569. justify-content: space-between;
  1570. display: inline-block;
  1571. width: 100%;
  1572. }
  1573. .model-itemss {
  1574. padding: 10px 0;
  1575. display: flex;
  1576. justify-content: space-between;
  1577. display: inline-block;
  1578. }
  1579. .model-items-left-top-img {
  1580. width: 68px;
  1581. height: 68px;
  1582. border-radius: 8px;
  1583. position: relative;
  1584. bottom: 25px;
  1585. }
  1586. .model-items-left-top-number {
  1587. color: #7e7e7e;
  1588. font-size: 18px;
  1589. margin-left: 10px;
  1590. }
  1591. .today-time {
  1592. color: #7e7e7e;
  1593. font-size: 18px;
  1594. margin: 0 20px;
  1595. }
  1596. .el-pagination {
  1597. padding: 30px;
  1598. }
  1599. .no-homework {
  1600. width: 16.5%;
  1601. height: 328px;
  1602. background: rgba(255, 255, 255, 1);
  1603. box-shadow: 0px 0px 14px 0px rgba(228, 228, 228, 1);
  1604. border-radius: 10px;
  1605. margin: auto;
  1606. position: fixed;
  1607. top: 27%;
  1608. left: 41.75%;
  1609. text-align: center;
  1610. padding: 35px;
  1611. z-index: 1000;
  1612. display: none;
  1613. }
  1614. .no-homework > div {
  1615. margin-bottom: 25px;
  1616. font-size: 24px;
  1617. }
  1618. .no-homework > img {
  1619. width: 226px;
  1620. height: 203px;
  1621. }
  1622. .allocation-items {
  1623. width: 45%;
  1624. display: inline-block;
  1625. margin-right: 20px;
  1626. margin-bottom: 30px;
  1627. }
  1628. </style>