makerActvityApply.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. <template>
  2. <!-- 创客创新-活动申请基础信息表单 -->
  3. <div class="makerActvityApplyPAapply">
  4. <div class="pAmid">
  5. <!-- 左边栏导航区开始 -->
  6. <div class="left">
  7. <div class="sx">
  8. <div class="qiu"></div>
  9. </div>
  10. <div class="leftTits">
  11. <span @click="toPage(1)">活动信息填写</span>
  12. <span @click="toPage(2)">活动指导老师</span>
  13. <span @click="toPage(3)">活动介绍</span>
  14. <span @click="toPage(4)">下一步</span>
  15. </div>
  16. </div>
  17. <!-- 左边导航区结束 -->
  18. <!-- 右边填写信息区域开始 -->
  19. <div class="right">
  20. <div id="a" class="vfpHeader">
  21. <div class="titleOne">创客创新-活动申请</div>
  22. <el-button type="primary" @click="$router.back()">返回</el-button>
  23. </div>
  24. <hr>
  25. <!-- 活动申请填写信息区域开始 -->
  26. <div class="select">
  27. <div class="selectTop">
  28. <div class="label">活动名称</div>
  29. <el-input v-model="data.select.activityName" placeholder="请输入内容"></el-input>
  30. </div>
  31. <div class="selectMid">
  32. <div class="selectLeft">
  33. <div class="inpBlock">
  34. <div class="label">所属项目</div>
  35. <el-select v-model="data.select.pid" style="width: 100%;" placeholder="请选择">
  36. <el-option
  37. v-for="item in data.project"
  38. :key="item.courseId"
  39. :label="item.title"
  40. :value="item.courseId">
  41. </el-option>
  42. </el-select>
  43. </div>
  44. <div class="inpBlock">
  45. <div class="label">预算经费</div>
  46. <el-input type="number" v-model.number="data.select.fund" placeholder="请输入内容"></el-input>
  47. <div style="position: absolute;right: -30px;top: 10px;">(万)</div>
  48. </div>
  49. <div class="inpBlock">
  50. <div class="label">负责人</div>
  51. <el-input v-model="data.select.leader" placeholder="请输入内容"></el-input>
  52. </div>
  53. <div class="inpBlock">
  54. <div class="label">所在部门</div>
  55. <el-select v-model="data.select.value" style="width: 100%;" placeholder="请选择">
  56. <el-option
  57. v-for="item in data.class"
  58. :key="item.id"
  59. :label="item.name"
  60. :value="item.id">
  61. </el-option>
  62. </el-select>
  63. </div>
  64. </div>
  65. <div class="selectRight">
  66. <div class="inpBlock">
  67. <div class="label">项目开始时间</div>
  68. <el-date-picker
  69. v-model="data.select.time"
  70. type="datetime"
  71. value-format="yyyy-MM-dd HH:mm:ss"
  72. style="width: 100%;"
  73. placeholder="选择日期">
  74. </el-date-picker>
  75. </div>
  76. <div class="inpBlock">
  77. <div class="label">参加学生人数</div>
  78. <el-input type="number" v-model.number="data.select.people" placeholder="请输入内容"></el-input>
  79. </div>
  80. <div class="inpBlock">
  81. <div class="label">联系电话</div>
  82. <el-input v-model="data.select.tel" @blur="checkPhone(data.select.tel)" placeholder="请输入内容"></el-input>
  83. </div>
  84. </div>
  85. </div>
  86. </div>
  87. <!-- 活动申请填写信息区域结束 -->
  88. <!-- 活动指导老师开始 -->
  89. <div id="s" class="tabTit">
  90. <div><p>活动指导老师</p></div>
  91. <el-button type="primary" @click="addTeacher" size="mini">添加教师</el-button>
  92. </div>
  93. <hr>
  94. <el-table
  95. :data="data.select.teacher"
  96. tooltip-effect="dark"
  97. stripe
  98. class="fontSize"
  99. :header-cell-style="{ background: '#f2f2f2',color:'#000' }"
  100. >
  101. <el-table-column
  102. prop="Name"
  103. label="姓名"
  104. align="center"
  105. >
  106. </el-table-column>
  107. <el-table-column
  108. prop="work"
  109. label="工作单位"
  110. align="center"
  111. >
  112. </el-table-column>
  113. <el-table-column
  114. prop="takeCharge"
  115. label="活动分工"
  116. align="center"
  117. >
  118. </el-table-column>
  119. <el-table-column
  120. prop="operation"
  121. align="center"
  122. label="操作"
  123. >
  124. <template #default="scope">
  125. <div class="operations">
  126. <el-button type="primary" size="mini" @click="updateTeacher(scope.row.Id)">修改</el-button>
  127. <el-button type="primary" size="mini" @click="deleteRow(scope.row.Id)">删除</el-button>
  128. </div>
  129. </template>
  130. </el-table-column>
  131. </el-table>
  132. <!-- 活动指导老师结束 -->
  133. <!-- 活动介绍区域开始 -->
  134. <div id="d" class="tabTit">
  135. <div><p>活动介绍</p></div>
  136. </div>
  137. <hr>
  138. <div class="textArea">
  139. <el-input
  140. type="textarea"
  141. :rows="6"
  142. resize="none"
  143. class="textArea"
  144. placeholder="请输入内容"
  145. v-model="data.select.introduce">
  146. </el-input>
  147. </div>
  148. <!-- 活动介绍区域结束 -->
  149. <div id="f" class="baseBtn">
  150. <div class="blockWidth">
  151. <el-button type="primary" @click="backBtn1" size:small>上一步</el-button>
  152. <el-button type="primary" @click="next()" size:small>下一步</el-button>
  153. </div>
  154. </div>
  155. </div>
  156. <!-- 右边填写信息区域结束 -->
  157. </div>
  158. <!--添加成员dialog对话框开始 -->
  159. <el-dialog
  160. :title="Member.Id==''?'添加指导老师':'修改指导老师'"
  161. :visible.sync="addMemberDialog"
  162. class="AddMember"
  163. :before-close="handleClose">
  164. <div class="littleBlock">
  165. <div class="dialogLabel">姓名</div>
  166. <div>
  167. <el-input v-model="Member.Name"></el-input>
  168. </div>
  169. </div>
  170. <div class="littleBlock">
  171. <div class="dialogLabel">工作单位</div>
  172. <div>
  173. <el-input v-model="Member.work"></el-input>
  174. </div>
  175. </div>
  176. <div class="littleBlock">
  177. <div class="dialogLabel">活动分工</div>
  178. <div>
  179. <el-input v-model="Member.takeCharge"></el-input>
  180. </div>
  181. </div>
  182. <div slot="footer" class="footer">
  183. <el-button v-if="Member.Id==''" type="primary" @click="commit" class="diaBtn" size="small">确认提交</el-button>
  184. <el-button v-if="!Member.Id==''" type="primary" @click="change" class="diaBtn" size="small">确认修改</el-button>
  185. <el-button @click="handleClose" class="diaBtn" size="small">取消</el-button>
  186. </div>
  187. </el-dialog>
  188. <!--添加成员dialog对话框结束 -->
  189. </div>
  190. </template>
  191. <script>
  192. import { uuid } from 'vue-uuid';
  193. export default {
  194. props:["next","data","checkPhone"],
  195. data() {
  196. return {
  197. addMemberDialog:false,
  198. Member:{
  199. Id:"",
  200. Name:'',
  201. work:'',
  202. takeCharge:''
  203. },
  204. }
  205. },
  206. methods:{
  207. handleSelectionChange(val) {
  208. this.multipleSelection = val;
  209. },
  210. addTeacher(){
  211. this.addMemberDialog=true;
  212. },
  213. backBtn1(){
  214. this.$router.push('/makerActvity')
  215. },
  216. commit(){
  217. //判断是否全部填写
  218. for(let a in this.Member)if(a!='Id'&&/^\s*$/g.test(this.Member[a]))return this.$message.error("请不要留空")
  219. this.Member.Id = uuid.v1();
  220. let pushData={};
  221. Object.assign(pushData,this.Member)
  222. this.data.select.teacher.push(pushData);
  223. for(let i in this.Member)this.Member[i] = '';
  224. this.addMemberDialog=false;
  225. this.$message({
  226. message:"添加成功",
  227. type:"success"
  228. });
  229. },
  230. change(){
  231. if(this.Member.Id=='')return this.$message.error("错误");
  232. for(let a in this.Member)if(/^\s*$/g.test(this.Member[a]))return this.$message.error("请不要留空")
  233. Object.assign(this.data.select.teacher.filter(item=>item.Id==this.Member.Id)[0],this.Member)
  234. for(let i in this.Member)this.Member[i]='';
  235. this.addMemberDialog = true;
  236. this.$message({message:"修改成功",type:"success"})
  237. this.addMemberDialog = false;
  238. },
  239. handleClose(){
  240. for(let i in this.Member)this.Member[i] = '';
  241. this.addMemberDialog=false;
  242. },
  243. updateTeacher(Id){
  244. Object.assign(this.Member,this.data.select.teacher.filter(item=>item.Id==Id)[0])
  245. this.addMemberDialog = true;
  246. },
  247. deleteRow(Id){
  248. this.data.select.teacher = this.data.select.teacher.filter(item=>item.Id!=Id);
  249. this.$message({message:"删除成功",type:"success"})
  250. },
  251. toPage(val){
  252. if (val==1) {
  253. document.getElementById("a").scrollIntoView({ behavior: "smooth" });
  254. }else if(val==2){
  255. document.getElementById("s").scrollIntoView({ behavior: "smooth" });
  256. }else if(val==3){
  257. document.getElementById("d").scrollIntoView({ behavior: "smooth" });
  258. }else if(val==4){
  259. document.getElementById("f").scrollIntoView({ behavior: "smooth" });
  260. }
  261. }
  262. },
  263. // created(){
  264. // this.value=(this.options[0].value)
  265. // }
  266. }
  267. </script>
  268. <style lang="less">
  269. .makerActvityApplyPAapply{
  270. width: 100%;
  271. position: relative;
  272. }
  273. </style>