credit1.vue 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. <template>
  2. <!-- 学分登记修改 -->
  3. <div class="credit1" v-loading="loading">
  4. <div class="vfpHeader">
  5. <div class="titleOne">学分登记</div>
  6. <el-button type="primary" @click="$router.back()">返回</el-button>
  7. </div>
  8. <hr>
  9. <!-- 活动申请填写信息区域开始 -->
  10. <div class="select">
  11. <div class="selectTop">
  12. <div class="label">项目名称</div>
  13. <el-input disabled v-model="tableData.title"></el-input>
  14. </div>
  15. <div class="selectMid">
  16. <div class="selectLeft">
  17. <div class="inpBlock">
  18. <div class="label">项目负责人</div>
  19. <el-input disabled v-model="tableData.pro_leader"></el-input>
  20. </div>
  21. <div class="inpBlock">
  22. <div class="label">所在部门</div>
  23. <el-input disabled v-model="tableData.class"></el-input>
  24. </div>
  25. <div class="inpBlock">
  26. <div class="label">联系电话</div>
  27. <el-input disabled v-model="tableData.phone"></el-input>
  28. </div>
  29. </div>
  30. <div class="selectRight">
  31. <div class="inpBlock">
  32. <div class="label">项目开始时间</div>
  33. <el-date-picker
  34. disabled
  35. v-model="tableData.begin_at"
  36. type="date"
  37. style="width: 100%;">
  38. </el-date-picker>
  39. </div>
  40. <div class="inpBlock">
  41. <div class="label">预算总经费</div>
  42. <el-input disabled v-model="tableData.money"></el-input>
  43. </div>
  44. <div class="inpBlock">
  45. <div class="label">分类</div>
  46. <el-input disabled v-model="tableData.type"></el-input>
  47. </div>
  48. </div>
  49. </div>
  50. </div>
  51. <!-- 活动申请填写信息区域结束 -->
  52. <!-- 成员学分登记开始 -->
  53. <div class="tabTit">
  54. <div><p>成员学分登记</p></div>
  55. <el-button @click="selectProject" type="primary" size="mini">项目详情</el-button>
  56. </div>
  57. <hr>
  58. <el-table
  59. :data="tableData.course_student"
  60. tooltip-effect="dark"
  61. stripe
  62. class="fontSize"
  63. :header-cell-style="{ background: '#f2f2f2',color:'#000' }"
  64. >
  65. <el-table-column
  66. prop="name"
  67. label="姓名"
  68. align="center"
  69. >
  70. </el-table-column>
  71. <el-table-column
  72. prop="class"
  73. label="班级"
  74. align="center"
  75. >
  76. </el-table-column>
  77. <el-table-column
  78. prop="phone"
  79. label="电话"
  80. align="center"
  81. >
  82. </el-table-column>
  83. <el-table-column
  84. prop="score"
  85. label="学分"
  86. align="center"
  87. >
  88. </el-table-column>
  89. <el-table-column
  90. prop="operation"
  91. label="操作"
  92. >
  93. <template #default="scope">
  94. <div class="operations">
  95. <el-button type="primary" @click="setCredit(scope.row)" size="mini">设置学分</el-button>
  96. </div>
  97. </template>
  98. </el-table-column>
  99. </el-table>
  100. <!-- 成员学分登记结束 -->
  101. <div class="baseBtn">
  102. <div class="blockWidth">
  103. <el-button type="primary" @click="$router.back()">返回</el-button>
  104. </div>
  105. </div>
  106. <el-dialog
  107. title="查看学分"
  108. :visible.sync="changeScoreDialog"
  109. width="600px"
  110. class="MAputIn AddMember">
  111. <div class="addDialogLogo">LOGO</div>
  112. <div class="littleBlock">
  113. <div class="dialogLabel">姓名</div>
  114. <div>
  115. <el-input disabled v-model="changeScoreTable.name"></el-input>
  116. </div>
  117. </div>
  118. <div class="littleBlock">
  119. <div class="dialogLabel">班级</div>
  120. <div>
  121. <el-input disabled v-model="changeScoreTable.class"></el-input>
  122. </div>
  123. </div>
  124. <div class="littleBlock">
  125. <div class="dialogLabel">电话</div>
  126. <div>
  127. <el-input disabled type="number" class="inputNumber" v-model="changeScoreTable.phone"></el-input>
  128. </div>
  129. </div>
  130. <div class="littleBlock">
  131. <div class="dialogLabel">分数</div>
  132. <div>
  133. <el-input type="number" class="inputNumber" v-model.number="changeScoreTable.score"></el-input>
  134. </div>
  135. </div>
  136. <span slot="footer" class="dialog-footer">
  137. <el-button type="primary" @click="changeScore" class="AllDialogBtn" size="small">修改</el-button>
  138. <el-button @click="changeScoreDialog = false" class="AllDialogBtn" size="small">取消</el-button>
  139. </span>
  140. </el-dialog>
  141. </div>
  142. </template>
  143. <script>
  144. export default {
  145. data() {
  146. return {
  147. changeScoreDialog:false,
  148. loading:false,
  149. changeScoreTable:{
  150. id:"",
  151. class:"",
  152. name:"",
  153. phone:"",
  154. score:"",
  155. },
  156. tableData:{
  157. title:"",
  158. type:"",
  159. pro_leader:"",
  160. phone:"",
  161. money:"",
  162. course_student:[],
  163. class:"",
  164. begin_at:"",
  165. },
  166. }
  167. },
  168. methods:{
  169. selectProject(){
  170. localStorage.setItem('pid',JSON.stringify(this.$route.query["Id"]))
  171. this.$router.push(`/ProjectManagement1`)
  172. },
  173. setCredit(row){
  174. this.changeScoreTable = row;
  175. this.changeScoreDialog = true;
  176. },
  177. getData(){
  178. this.loading = true;
  179. this.ajax.get(this.$store.state.api+"/GetProjectEndByID",{
  180. uid:this.$store.state.userInfo.userid,
  181. pid:this.$route.query["Id"]
  182. }).then(res=>{
  183. let data = res.data[0][0]
  184. data['course_student'] = JSON.parse(data['course_student'])
  185. this.tableData = data;
  186. this.loading = false;
  187. }).catch(err=>{
  188. console.log(err)
  189. })
  190. },
  191. changeScore(){
  192. if(this.changeScoreTable.score<0||this.changeScoreTable.score>100)return this.$message.warning("学分只在0~100之间")
  193. let newData = [...this.tableData.course_student];
  194. newData.forEach(item=>item = item.id==this.changeScoreTable.id?this.changeScoreTable:item);
  195. this.ajax.post(this.$store.state.api+"/UpdateStudentScore",{
  196. uid:this.$store.state.userInfo.userid,
  197. pid:this.$route.query["Id"],
  198. st:JSON.stringify(newData)
  199. }).then(res=>{
  200. if(res.data==1){
  201. this.$message.success("修改分数成功")
  202. this.changeScoreDialog = false;
  203. }else{
  204. this.$message.error("修改分数失败")
  205. }
  206. this.getData();
  207. }).catch(err=>{
  208. console.log(err)
  209. })
  210. }
  211. },
  212. mounted(){
  213. this.getData();
  214. }
  215. }
  216. </script>
  217. <style lang="less">
  218. .MAputIn{ //提交对话框样式
  219. .deleteContent{
  220. width: 100%;
  221. text-align: center;
  222. font-size: 25px;
  223. color: #000;
  224. }
  225. .addDialogLogo{
  226. width: 60px;
  227. height: 30px;
  228. display: flex;
  229. justify-content: center;
  230. line-height: 30px;
  231. border-radius: 5px;
  232. background: #f2f2f2;
  233. position: absolute;
  234. left: 20px; top: 15px;
  235. }
  236. .el-dialog__title{
  237. color:#fff;
  238. display: flex;
  239. justify-content: center;
  240. font-size: 18px;
  241. position: relative;
  242. top: -2px;
  243. }
  244. .dialog-footer{
  245. display: flex;
  246. justify-content: center;
  247. // .btn5{
  248. // // background: #0e72e6;
  249. // height: 40px;
  250. // width: 200px;
  251. // font-size: 16px;
  252. // }
  253. }
  254. }
  255. </style>