makerActvityApply.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  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. <el-date-picker
  76. v-model="data.select.time"
  77. type="daterange"
  78. value-format="yyyy-MM-dd"
  79. style="width: 100%;"
  80. range-separator="至"
  81. start-placeholder="开始日期"
  82. end-placeholder="结束日期">
  83. </el-date-picker>
  84. </div>
  85. <div class="inpBlock">
  86. <div class="label">参加学生人数</div>
  87. <el-input type="number" v-model.number="data.select.people" placeholder="请输入内容"></el-input>
  88. </div>
  89. <div class="inpBlock">
  90. <div class="label">联系电话</div>
  91. <el-input v-model="data.select.tel" @blur="checkPhone(data.select.tel)" placeholder="请输入内容"></el-input>
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. <!-- 活动申请填写信息区域结束 -->
  97. <!-- 活动指导老师开始 -->
  98. <div id="s" class="tabTit">
  99. <div><p>活动指导老师</p></div>
  100. <el-button type="primary" @click="addTeacher" size="mini">添加教师</el-button>
  101. </div>
  102. <hr>
  103. <el-table
  104. :data="data.select.teacher"
  105. tooltip-effect="dark"
  106. stripe
  107. class="fontSize"
  108. :header-cell-style="{ background: '#f2f2f2',color:'#000' }"
  109. >
  110. <el-table-column
  111. prop="Name"
  112. label="姓名"
  113. align="center"
  114. >
  115. </el-table-column>
  116. <el-table-column
  117. prop="work"
  118. label="工作单位"
  119. align="center"
  120. >
  121. </el-table-column>
  122. <el-table-column
  123. prop="takeCharge"
  124. label="活动分工"
  125. align="center"
  126. >
  127. </el-table-column>
  128. <el-table-column
  129. prop="operation"
  130. align="center"
  131. label="操作"
  132. >
  133. <template #default="scope">
  134. <div class="operations">
  135. <el-button type="primary" size="mini" @click="updateTeacher(scope.$index)">修改</el-button>
  136. <el-button type="primary" size="mini" @click="deleteRow(scope.$index)">删除</el-button>
  137. </div>
  138. </template>
  139. </el-table-column>
  140. </el-table>
  141. <!-- 活动指导老师结束 -->
  142. <!-- 活动介绍区域开始 -->
  143. <div id="d" class="tabTit">
  144. <div><p>活动介绍</p></div>
  145. </div>
  146. <hr>
  147. <div class="textArea">
  148. <el-input
  149. type="textarea"
  150. :rows="6"
  151. resize="none"
  152. class="textArea"
  153. placeholder="请输入内容"
  154. v-model="data.select.introduce">
  155. </el-input>
  156. </div>
  157. <!-- 活动介绍区域结束 -->
  158. <div id="f" class="baseBtn">
  159. <div class="blockWidth">
  160. <el-button type="primary" @click="backBtn1" size:small>上一步</el-button>
  161. <el-button type="primary" @click="next()" size:small>下一步</el-button>
  162. </div>
  163. </div>
  164. </div>
  165. <!-- 右边填写信息区域结束 -->
  166. </div>
  167. <!--添加成员dialog对话框开始 -->
  168. <el-dialog
  169. :title="isAddTeacher?'添加指导老师':'修改指导老师'"
  170. :visible.sync="addMemberDialog"
  171. class="AddMember"
  172. :before-close="handleClose">
  173. <div class="littleBlock">
  174. <div class="dialogLabel">姓名</div>
  175. <div>
  176. <el-input v-model="Member.Name"></el-input>
  177. </div>
  178. </div>
  179. <div class="littleBlock">
  180. <div class="dialogLabel">工作单位</div>
  181. <div>
  182. <el-input v-model="Member.work"></el-input>
  183. </div>
  184. </div>
  185. <div class="littleBlock">
  186. <div class="dialogLabel">活动分工</div>
  187. <div>
  188. <el-input v-model="Member.takeCharge"></el-input>
  189. </div>
  190. </div>
  191. <div slot="footer" class="footer">
  192. <el-button v-if="isAddTeacher" type="primary" @click="commit" class="diaBtn" size="small">确认提交</el-button>
  193. <el-button v-if="!isAddTeacher" type="primary" @click="change" class="diaBtn" size="small">确认修改</el-button>
  194. <el-button @click="handleClose" class="diaBtn" size="small">取消</el-button>
  195. </div>
  196. </el-dialog>
  197. <!--添加成员dialog对话框结束 -->
  198. </div>
  199. </template>
  200. <script>
  201. export default {
  202. props:["next","data","checkPhone"],
  203. data() {
  204. return {
  205. addMemberDialog:false,
  206. Member:{
  207. Name:'',
  208. work:'',
  209. takeCharge:''
  210. },
  211. isAddTeacher:true,
  212. }
  213. },
  214. methods:{
  215. handleSelectionChange(val) {
  216. this.multipleSelection = val;
  217. },
  218. addTeacher(){
  219. this.addMemberDialog=true;
  220. },
  221. backBtn1(){
  222. this.$router.push('/makerActvity')
  223. },
  224. commit(){
  225. //判断是否全部填写
  226. for(let a in this.Member)if(/^\s*$/g.test(this.Member[a]))return this.$message.error("请不要留空")
  227. let pushData={};
  228. Object.assign(pushData,this.Member)
  229. this.data.select.teacher.push(pushData);
  230. for(let i in this.Member)this.Member[i] = '';
  231. this.addMemberDialog=false;
  232. this.$message({
  233. message:"添加成功",
  234. type:"success"
  235. });
  236. this.isAddTeacher = true;
  237. },
  238. change(){
  239. if(this.isAddTeacher)return this.$message.error("错误");
  240. for(let a in this.Member)if(/^\s*$/g.test(this.Member[a]))return this.$message.error("请不要留空")
  241. Object.assign(this.data.select.teacher[this.Member.index],this.Member)
  242. for(let i in this.Member)this.Member[i]='';
  243. this.addMemberDialog = false;
  244. this.isAddTeacher = true;
  245. },
  246. handleClose(){
  247. for(let i in this.Member)this.Member[i] = '';
  248. this.addMemberDialog=false;
  249. this.isAddTeacher = true;
  250. },
  251. updateTeacher(index){
  252. Object.assign(this.Member,this.data.select.teacher[index]);
  253. this.Member['index'] = index;
  254. this.isAddTeacher = false;
  255. this.addMemberDialog = true;
  256. },
  257. deleteRow(index){
  258. this.data.select.teacher.splice(index,1);
  259. this.$message({message:"删除成功",type:"success"})
  260. },
  261. toPage(val){
  262. if (val==1) {
  263. document.getElementById("a").scrollIntoView({ behavior: "smooth" });
  264. }else if(val==2){
  265. document.getElementById("s").scrollIntoView({ behavior: "smooth" });
  266. }else if(val==3){
  267. document.getElementById("d").scrollIntoView({ behavior: "smooth" });
  268. }else if(val==4){
  269. document.getElementById("f").scrollIntoView({ behavior: "smooth" });
  270. }
  271. }
  272. },
  273. }
  274. </script>
  275. <style lang="less">
  276. .makerActvityApplyPAapply{
  277. width: 100%;
  278. position: relative;
  279. }
  280. </style>