credit1.vue 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <template>
  2. <!-- 学分登记修改 -->
  3. <div class="credit1">
  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. changeScoreTable:{
  149. id:"",
  150. class:"",
  151. name:"",
  152. phone:"",
  153. score:"",
  154. },
  155. tableData:{
  156. title:"",
  157. type:"",
  158. pro_leader:"",
  159. phone:"",
  160. money:"",
  161. course_student:[],
  162. class:"",
  163. begin_at:"",
  164. },
  165. }
  166. },
  167. methods:{
  168. selectProject(){
  169. localStorage.setItem('pid',JSON.stringify(this.$route.query["Id"]))
  170. this.$router.push(`/ProjectManagement1`)
  171. },
  172. setCredit(row){
  173. this.changeScoreTable = row;
  174. this.changeScoreDialog = true;
  175. },
  176. getData(){
  177. this.ajax.get(this.$store.state.api+"/GetProjectEndByID",{
  178. uid:this.$store.state.userInfo.userid,
  179. pid:this.$route.query["Id"]
  180. }).then(res=>{
  181. let data = res.data[0][0]
  182. data['course_student'] = JSON.parse(data['course_student'])
  183. this.tableData = data;
  184. }).catch(err=>{
  185. console.log(err)
  186. })
  187. },
  188. changeScore(){
  189. if(this.changeScoreTable.score<0||this.changeScoreTable.score>100)return this.$message.warning("学分只在0~100之间")
  190. let newData = [...this.tableData.course_student];
  191. newData.forEach(item=>item = item.id==this.changeScoreTable.id?this.changeScoreTable:item);
  192. this.ajax.post(this.$store.state.api+"/UpdateStudentScore",{
  193. uid:this.$store.state.userInfo.userid,
  194. pid:this.$route.query["Id"],
  195. st:JSON.stringify(newData)
  196. }).then(res=>{
  197. if(res.data==1){
  198. this.$message.success("修改分数成功")
  199. this.changeScoreDialog = false;
  200. }else{
  201. this.$message.error("修改分数失败")
  202. }
  203. this.getData();
  204. }).catch(err=>{
  205. console.log(err)
  206. })
  207. }
  208. },
  209. mounted(){
  210. this.getData();
  211. }
  212. }
  213. </script>
  214. <style lang="less">
  215. .MAputIn{ //提交对话框样式
  216. .deleteContent{
  217. width: 100%;
  218. text-align: center;
  219. font-size: 25px;
  220. color: #000;
  221. }
  222. .addDialogLogo{
  223. width: 60px;
  224. height: 30px;
  225. display: flex;
  226. justify-content: center;
  227. line-height: 30px;
  228. border-radius: 5px;
  229. background: #f2f2f2;
  230. position: absolute;
  231. left: 20px; top: 15px;
  232. }
  233. .el-dialog__title{
  234. color:#fff;
  235. display: flex;
  236. justify-content: center;
  237. font-size: 18px;
  238. position: relative;
  239. top: -2px;
  240. }
  241. .dialog-footer{
  242. display: flex;
  243. justify-content: center;
  244. // .btn5{
  245. // // background: #0e72e6;
  246. // height: 40px;
  247. // width: 200px;
  248. // font-size: 16px;
  249. // }
  250. }
  251. }
  252. </style>