ProjectManagement1_MakerSpace.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812
  1. <template>
  2. <!-- 项目管理 项目基本内容 -->
  3. <div class="ProjectManagement1" v-loading="loading">
  4. <!-- 活动申请填写信息区域开始 -->
  5. <div class="select">
  6. <div class="selectTop">
  7. <div class="label">项目名称</div>
  8. <el-input v-model="select.project" placeholder="请输入内容"></el-input>
  9. </div>
  10. <div class="selectMid">
  11. <div class="selectLeft">
  12. <div class="inpBlock">
  13. <div class="label">负责人</div>
  14. <el-input v-model="select.person" placeholder="请输入内容"></el-input>
  15. </div>
  16. <div class="inpBlock">
  17. <div class="label">所在部门</div>
  18. <el-select v-model="select.departmentData" style="width: 100%;" placeholder="请选择">
  19. <el-option
  20. v-for="item in select.department"
  21. :key="item.id"
  22. :label="item.name"
  23. :value="item.id">
  24. </el-option>
  25. </el-select>
  26. </div>
  27. <div class="inpBlock">
  28. <div class="label">学院牵头领导</div>
  29. <el-input v-model="select.lead_leader" placeholder="请输入学院牵头领导"></el-input>
  30. </div>
  31. </div>
  32. <div class="selectRight">
  33. <div class="inpBlock">
  34. <div class="label">项目时间</div>
  35. <el-date-picker
  36. v-model="select.Date"
  37. type="daterange"
  38. style="width: 100%;"
  39. value-format="yyyy-MM-dd HH:mm:ss"
  40. range-separator="至"
  41. start-placeholder="项目起始时间"
  42. end-placeholder="项目完成时间">
  43. </el-date-picker>
  44. <!-- <el-date-picker
  45. v-model="select.Date"
  46. type="datetime"
  47. style="width: 100%;"
  48. value-format="yyyy-MM-dd HH:mm:ss"
  49. placeholder="选择日期">
  50. </el-date-picker> -->
  51. </div>
  52. <div class="inpBlock">
  53. <div class="label">预算总经费</div>
  54. <el-input type="number" v-model.number="select.Fund" placeholder="请输入内容"></el-input>
  55. </div>
  56. <div class="inpBlock">
  57. <div class="label">选择分类</div>
  58. <el-cascader disabled="" v-model="select.sort" :options="select.sortOptions" clearable></el-cascader>
  59. </div>
  60. </div>
  61. </div>
  62. </div>
  63. <!-- 活动申请填写信息区域结束 -->
  64. <!-- 项目封面修改上传开始 -->
  65. <!-- <div style="height: 260px;">
  66. <div class="tabTit">
  67. <div><p>封面上传</p></div>
  68. </div>
  69. <hr>
  70. <div style="margin-bottom: 10px;">修改项目封面</div>
  71. <el-progress v-show="progress.show" :percentage="progress.value" :format="ProgressFormat"></el-progress>
  72. <el-upload
  73. class="avatar-uploader"
  74. action="#"
  75. disabled
  76. style="position: relative;"
  77. :show-file-list="false"
  78. >
  79. <img v-if="dialogImageUrl" :src="dialogImageUrl" class="avatar">
  80. <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  81. <BeUpload :progress="progress" style="position:absolute; width: 301px;height: 180px; opacity: 0;z-index:333;left: 0px;top: 0;" @getFile="getFile" class="uploadPic" :navName="'上传封面'" :accept="accept"></BeUpload>
  82. </el-upload>
  83. </div> -->
  84. <!-- 项目封面修改上传开始结束 -->
  85. <!-- 项目教师开始 -->
  86. <div class="tabTit">
  87. <div><p>项目组-教师团队</p><span>(团队3人以上,至少应包含1名教研室主任)</span></div>
  88. <el-button type="primary" @click="addMember" size="mini">添加教师</el-button>
  89. </div>
  90. <hr>
  91. <el-table
  92. :data="teacherData"
  93. tooltip-effect="dark"
  94. stripe
  95. class="fontSize"
  96. :header-cell-style="{ background: '#f2f2f2',color:'#000' }"
  97. >
  98. <el-table-column
  99. prop="name"
  100. label="姓名"
  101. align="center"
  102. >
  103. </el-table-column>
  104. <el-table-column
  105. prop="speciality"
  106. label="专业"
  107. align="center"
  108. >
  109. </el-table-column>
  110. <el-table-column
  111. prop="title"
  112. label="职称"
  113. align="center"
  114. >
  115. </el-table-column>
  116. <el-table-column
  117. prop="education"
  118. label="学历"
  119. align="center"
  120. >
  121. </el-table-column>
  122. <el-table-column
  123. prop="section"
  124. label="所在教研室"
  125. align="center"
  126. >
  127. </el-table-column>
  128. <el-table-column
  129. prop="work"
  130. label="项目组任务分工"
  131. align="center"
  132. >
  133. </el-table-column>
  134. <el-table-column
  135. prop="operation"
  136. align="center"
  137. label="操作"
  138. >
  139. <template #default="scope">
  140. <div class="operations">
  141. <!-- <el-button type="primary" @click="lookDetail(scope)" size="mini">查看详情</el-button> -->
  142. <el-button type="primary" @click="amendDialogData(scope.$index)" size="mini">修改</el-button>
  143. <el-button type="primary" @click="Del(scope.$index)" size="mini">删除</el-button>
  144. </div>
  145. </template>
  146. </el-table-column>
  147. </el-table>
  148. <!-- 项目教师结束 -->
  149. <!-- 项目学生开始 -->
  150. <div class="tabTit">
  151. <div><p>项目组-学生团队</p><span>(团队5人以上,学生团队年级结构安排合理)</span></div>
  152. <el-button type="primary" @click="addMemberStudent" size="mini">添加学生</el-button>
  153. </div>
  154. <hr>
  155. <el-table
  156. :data="studentData"
  157. tooltip-effect="dark"
  158. stripe
  159. class="fontSize"
  160. :header-cell-style="{ background: '#f2f2f2',color:'#000' }"
  161. >
  162. <el-table-column
  163. prop="name"
  164. label="姓名"
  165. align="center"
  166. >
  167. </el-table-column>
  168. <el-table-column
  169. prop="class"
  170. label="班级"
  171. align="center"
  172. >
  173. </el-table-column>
  174. <el-table-column
  175. prop="age"
  176. label="年龄"
  177. align="center"
  178. >
  179. </el-table-column>
  180. <el-table-column
  181. prop="work"
  182. label="项目组任务分工"
  183. align="center"
  184. >
  185. </el-table-column>
  186. <el-table-column
  187. prop="operation"
  188. align="center"
  189. label="操作"
  190. >
  191. <template #default="scope">
  192. <div class="operations">
  193. <el-button type="primary" @click="updateStudent(scope.$index)" size="mini">修改</el-button>
  194. <el-button type="primary" @click="DelStudent(scope.$index)" size="mini">删除</el-button>
  195. </div>
  196. </template>
  197. </el-table-column>
  198. </el-table>
  199. <!-- 项目学生结束 -->
  200. <!-- 项目简介开始 -->
  201. <div class="tabTit">
  202. <div><p>项目简介</p></div>
  203. </div>
  204. <hr>
  205. <el-input
  206. type="textarea"
  207. :rows="6"
  208. resize="none"
  209. class="textArea"
  210. placeholder="请输入内容"
  211. v-model="textarea">
  212. </el-input>
  213. <!-- 项目简介结束 -->
  214. <div class="baseBtn">
  215. <div class="blockWidth">
  216. <!-- <el-button type="primary" class="backBtn" @click="audit">立即修改</el-button> -->
  217. <!-- <el-button v-show="isUpload==2 || isUpload ==3" type="primary" class="backBtn" @click="submitHint=true">立即修改</el-button> -->
  218. <!-- <el-button v-show="isUpload==1" type="primary" class="backBtn" disabled style="background: #ccc !important;border: none;">立即修改</el-button> -->
  219. <!-- <el-button v-show="isUpload==4" type="primary" class="backBtn" disabled style="background: #ccc !important;border: none;">立即修改</el-button> -->
  220. </div>
  221. </div>
  222. <!--添加教师dialog对话框开始 -->
  223. <el-dialog
  224. :title= "isAddMember==1?'添加教师':'修改教师'"
  225. :visible.sync="addMemberDialog"
  226. :modal="true"
  227. :close-on-click-modal="true"
  228. class="AddMember">
  229. <div class="littleBlock">
  230. <div class="dialogLabel">姓名</div>
  231. <div>
  232. <el-input v-model="teacher.name" placeholder="请输入教师姓名"></el-input>
  233. </div>
  234. </div>
  235. <div class="littleBlock">
  236. <div class="dialogLabel">专业</div>
  237. <div>
  238. <el-input v-model="teacher.speciality" placeholder="请输入教师专业"></el-input>
  239. </div>
  240. </div>
  241. <div class="littleBlock">
  242. <div class="dialogLabel">职称</div>
  243. <div>
  244. <el-input v-model="teacher.title" placeholder="请输入教师职称"></el-input>
  245. </div>
  246. </div>
  247. <div class="littleBlock">
  248. <div class="dialogLabel">学历</div>
  249. <div>
  250. <el-input v-model="teacher.education" placeholder="请输入教师学历"></el-input>
  251. </div>
  252. </div>
  253. <div class="littleBlock">
  254. <div class="dialogLabel" style="transform: translate(0,0);">所在教研室</div>
  255. <div>
  256. <el-input v-model="teacher.section" placeholder="请输入所在教研室"></el-input>
  257. </div>
  258. </div>
  259. <div class="littleBlock">
  260. <div class="dialogLabel" style="transform: translate(0,0);">项目组角色分工</div>
  261. <div>
  262. <el-input v-model="teacher.work" placeholder="请输入项目组角色分工"></el-input>
  263. </div>
  264. </div>
  265. <div slot="footer" class="footer">
  266. <el-button v-show="isAddMember==1" type="primary" @click="commit" class="AllDialogBtn" >确认提交</el-button>
  267. <el-button v-show="isAddMember==2" type="primary" @click="commit2" class="AllDialogBtn" >确认修改</el-button>
  268. <el-button @click="addMemberDialog = false" class="AllDialogBtn">取消</el-button>
  269. </div>
  270. </el-dialog>
  271. <!--添加教师dialog对话框结束 -->
  272. <!-- 添加学生dialog对话框开始 -->
  273. <el-dialog
  274. :title= "isAddStudent==1?'添加学生':'修改学生'"
  275. :visible.sync="addStudentDialog"
  276. :modal="true"
  277. :close-on-click-modal="true"
  278. class="AddMember">
  279. <div class="littleBlock">
  280. <div class="dialogLabel">姓名</div>
  281. <div>
  282. <el-input v-model="student.name" placeholder="请输入学生姓名"></el-input>
  283. </div>
  284. </div>
  285. <div class="littleBlock">
  286. <div class="dialogLabel">班级</div>
  287. <div>
  288. <el-input v-model="student.class" placeholder="请输入学生班级"></el-input>
  289. </div>
  290. </div>
  291. <div class="littleBlock">
  292. <div class="dialogLabel">年龄</div>
  293. <div>
  294. <el-input v-model="student.age" placeholder="请输入学生年龄"></el-input>
  295. </div>
  296. </div>
  297. <div class="littleBlock">
  298. <div class="dialogLabel" style="transform: translate(0,0);">项目组角色分工</div>
  299. <div>
  300. <el-input v-model="student.work" placeholder="请输入项目组角色分工"></el-input>
  301. </div>
  302. </div>
  303. <div slot="footer" class="footer">
  304. <el-button v-show="isAddStudent==1" type="primary" @click="commitStudent" class="AllDialogBtn" >确认提交</el-button>
  305. <el-button v-show="isAddStudent==2" type="primary" @click="commitStudent2" class="AllDialogBtn" >确认修改</el-button>
  306. <el-button @click="addStudentDialog=false" class="AllDialogBtn">取消</el-button>
  307. </div>
  308. </el-dialog>
  309. <!-- 添加学生dialog对话框结束 -->
  310. <!-- 删除教师对话框开始 -->
  311. <el-dialog
  312. title="删除教师"
  313. :visible.sync="delMember"
  314. width="600px"
  315. class="delMemberDialog">
  316. <span class="deleteContent">确定删除该教师?</span>
  317. <span slot="footer" class="dialog-footer">
  318. <el-button type="primary" @click="commitDelMember" class="AllDialogBtn">确认删除</el-button>
  319. <el-button @click="delMember=false" class="AllDialogBtn" >取消</el-button>
  320. </span>
  321. </el-dialog>
  322. <!-- 删除教师对话框结束 -->
  323. <!-- 删除学生成员对话框开始 -->
  324. <el-dialog
  325. title="删除学生成员"
  326. :visible.sync="DelStudentDialog"
  327. width="600px"
  328. class="delMemberDialog">
  329. <span class="deleteContent">确定删除该学生成员?</span>
  330. <span slot="footer" class="dialog-footer">
  331. <el-button type="primary" @click="commitDelStudent" class="AllDialogBtn">确认删除</el-button>
  332. <el-button @click="DelStudentDialog = false" class="AllDialogBtn" >取消</el-button>
  333. </span>
  334. </el-dialog>
  335. <!-- 删除学生成员对话框结束 -->
  336. <!-- 修改对话框开始 -->
  337. <el-dialog
  338. title="提示"
  339. :visible.sync="submitHint"
  340. width="600px"
  341. class="projectApplicationfundAddDialog">
  342. <div class="addDialogLogo">LOGO</div>
  343. <div class="deleteContent">确定修改项目基本信息?</div>
  344. <span slot="footer" class="dialog-footer">
  345. <el-button type="primary" @click="submitAll" class="AllDialogBtn">确认提交</el-button>
  346. <el-button @click="submitHint = false" size="small" class="AllDialogBtn">取消</el-button>
  347. </span>
  348. </el-dialog>
  349. <!-- 修改对话框结束 -->
  350. </div>
  351. </template>
  352. <script>
  353. export default {
  354. data() {
  355. return {
  356. iid:'',
  357. isUpload:'',
  358. accept:"image/*",
  359. isAddMember:1,
  360. isAddStudent:1,
  361. progress:{ //进度条
  362. value:0,
  363. show:false
  364. },
  365. dialogImageUrl:'', //图片地址
  366. index:0,
  367. delMember:false,
  368. DelStudentDialog:false,
  369. amendMemberDialog:false,
  370. addMemberDialog:false,
  371. addStudentDialog:false,
  372. submitHint:false,
  373. loading:false,
  374. select:{ //数据详情框数据
  375. project:'',
  376. person:'',
  377. departmentData:"", //部门框值
  378. sort:[], //分类值
  379. tel:'',
  380. Date:'',
  381. Fund:'',
  382. sortOptions: [],
  383. department:[],
  384. },
  385. textarea:'周四福利大放送', //项目简介
  386. teacherData:[], //成员列表数据
  387. studentData:[],
  388. addTabMember:{ //添加项目成员
  389. // id:'',
  390. name:'',
  391. class:'',
  392. phone:'',
  393. score:0
  394. },
  395. teacher:{ //添加老师团队表
  396. name:"", //姓名
  397. speciality:"",//专业
  398. title:"",//职称
  399. education:"",//学历
  400. section:"",//所在教研室
  401. work:"",//项目组角色分工
  402. },
  403. student:{ //添加学生团队表
  404. name:"",//姓名
  405. class:"",//班级
  406. age:"",//年龄
  407. work:'',//项目组任务分工
  408. }
  409. }
  410. },
  411. methods:{
  412. addMemberStudent(){//添加项目组-学生成员
  413. this.isAddStudent=1;
  414. this.addStudentDialog = true;
  415. },
  416. commitStudent(){//确定添加学生
  417. for(let i in this.student){if(this.student[i]==''||this.student[i]==undefined)return this.$message.error("请填完所有内容");}
  418. let newData={};
  419. for(let a in this.student)newData[a] = this.student[a];
  420. this.studentData.push(newData);
  421. this.$message.success("添加成功");
  422. this.addStudentDialog = false;
  423. //清空表单
  424. for(let j in this.student)this.student[j]='';
  425. },
  426. updateStudent(val){ //修改学生信息
  427. Object.assign(this.student,this.studentData[val]);
  428. this.isAddStudent=2;
  429. this.index=val;
  430. this.addStudentDialog = true;
  431. },
  432. commitStudent2(){//确定修改学生
  433. Object.assign(this.studentData[this.index],this.student)
  434. this.addStudentDialog=false;
  435. for(let k in this.student) this.student[k]=''
  436. this.$message.success('修改成功')
  437. },
  438. DelStudent(val){//删除学生对话框
  439. this.index = val;
  440. this.DelStudentDialog=true;
  441. },
  442. commitDelStudent(){ //对话框确定删除学生成员
  443. this.studentData.splice(this.index,1);
  444. this.$message.success('删除成功');
  445. this.DelStudentDialog=false;
  446. },
  447. addMember(){ //添加教师按钮,显示对话框
  448. this.addMemberDialog=true;
  449. this.isAddMember=1;
  450. },
  451. commit(){ //确定添加教师
  452. for(let i in this.teacher){if(this.teacher[i]==''||this.teacher[i]==undefined)return this.$message.error("请填完所有内容");}
  453. let newData = {};
  454. for(let a in this.teacher)newData[a] = this.teacher[a];
  455. this.teacherData.push(newData);
  456. this.$message.success('添加成功');
  457. this.addMemberDialog = false;
  458. for(let j in this.teacher)this.teacher[j]='';
  459. },
  460. amendDialogData(val){ //修改项目成员信息对话框显示
  461. Object.assign(this.teacher,this.teacherData[val])
  462. this.isAddMember=2;
  463. this.index=val;
  464. this.addMemberDialog=true;
  465. },
  466. commit2(){ //确定修改老师
  467. Object.assign(this.teacherData[this.index],this.teacher)
  468. for(let k in this.teacher) this.teacher[k]=''
  469. this.addMemberDialog=false;
  470. this.$message.success('修改成功')
  471. },
  472. Del(val){ //删除老师按钮
  473. this.index=val;
  474. this.delMember=true;
  475. },
  476. commitDelMember(){ //确定删除老师按钮
  477. this.teacherData.splice(this.index,1)
  478. this.$message.success('删除成功')
  479. this.delMember=false;
  480. },
  481. ProgressFormat(value){ //进度条
  482. return value ==100?'100%':`${value}%`
  483. },
  484. audit(){ //立即修改对话框显示
  485. this.submitHint=true
  486. },
  487. submitAll(){
  488. let param = {
  489. uid:this.$store.state.userInfo.userid,
  490. pid:this.$route.query['pid'],
  491. title:this.select.project,
  492. pro_leader:this.select.person,
  493. lead_leader:this.select.lead_leader,
  494. startTime:this.select.Date[0],
  495. endTime:this.select.Date[1],
  496. cid:this.select.departmentData,
  497. fund:this.select.Fund,
  498. img:this.dialogImageUrl,
  499. teacher:JSON.stringify(this.teacherData),
  500. student:JSON.stringify(this.studentData),
  501. brief:this.textarea,
  502. }
  503. //判断数据
  504. const cEmpty = /^\s*$/g;
  505. for(let i in param){
  506. switch(i){
  507. case 'title':
  508. if(cEmpty.test(param[i]))return this.$message.error("项目名称不能为空")
  509. break;
  510. case 'pro_leader':
  511. if(cEmpty.test(param[i]))return this.$message.error("项目负责人不能为空")
  512. break;
  513. case 'startTime':
  514. if(cEmpty.test(param[i]))return this.$message.error("请选择项目开始时间")
  515. break;
  516. case 'endTime':
  517. if(cEmpty.test(param[i]))return this.$message.error("请选择项目计划结束时间")
  518. break
  519. case 'cid':
  520. if(cEmpty.test(param[i]))return this.$message.error("请选择项目所属部门")
  521. break;
  522. case "lead_leader":
  523. if(cEmpty.test(param[i]))return this.$message.error("请输入学院牵头领导")
  524. break;
  525. case 'img':
  526. if(cEmpty.test(param[i]))return this.$message.error("请选择项目封面图片")
  527. break;
  528. case 'teacher':
  529. if(JSON.parse(param[i]).length<3)return this.$message.error("需要教师团队3人以上,至少应包含1名教研室主任")
  530. break;
  531. case 'student':
  532. if(JSON.parse(param[i]).length<5)return this.$message.error("需要学生团队5人以上")
  533. break;
  534. case 'brief':
  535. if(param[i].length<200&&param[i]<=300)return this.$message.error("项目简介需要200-300字")
  536. break;
  537. }
  538. }
  539. this.ajax.post(this.$store.state.api+'/UpdateProjectMakerSpaceBase',param).then(res=>{
  540. if(res.data==1){
  541. this.$message.success("修改项目信息成功")
  542. this.submitHint = false;
  543. }else{
  544. this.$message.error('修改项目信息失败')
  545. }
  546. this.getData();
  547. }).catch(err=>{
  548. console.log(err)
  549. })
  550. },
  551. getData(){ //初始化完成获取基本数据进行填充
  552. this.loading = true;
  553. let param={
  554. uid:this.$store.state.userInfo.userid,
  555. pid:this.$route.query['pid']
  556. }
  557. this.ajax
  558. .get(this.$store.state.api+'/SelectProjectMakerSpace',param)
  559. .then(res=>{
  560. let data=res.data[0][0]
  561. this.select.project=data.title;
  562. this.select.Fund=data.fund;
  563. this.select.person=data.pro_leader;
  564. this.select.Date=[data.begintime,data.planTime];
  565. this.textarea=data.brief;
  566. this.dialogImageUrl=data.image;
  567. this.select.departmentData = data['classid']
  568. this.select.sort = [data['typeid'],data['typeName']]
  569. this.isUpload=data['isupload']
  570. this.select.lead_leader = data['lead_leader']
  571. this.teacherData = JSON.parse(data['course_teacher'])
  572. this.studentData = JSON.parse(data['course_student'])
  573. this.loading = false;
  574. },err=>{
  575. console.log(err);
  576. })
  577. },
  578. getProjectDepartmentData(){ //获取项目立项申请基础信息页面所在部门数据
  579. let param={
  580. uid:this.$store.state.userInfo.userid
  581. }
  582. this.ajax
  583. .get(this.$store.state.api+'/SelectAllDepartment',param)
  584. .then(res=>{
  585. this.select.department=res.data[0]
  586. },err=>{
  587. console.log(err);
  588. })
  589. },
  590. getProjectTypeData(){ //获取项目立项申请基础信息页面分类数据
  591. let TypeList = [];
  592. let param={
  593. uid:this.$store.state.userInfo.userid
  594. }
  595. this.ajax
  596. .get(this.$store.state.api+'/SelectAllType',param)
  597. .then(res=>{
  598. //获取主分类
  599. let master = res.data[0].filter(item=>item['pid']=='');
  600. //获取子分类
  601. let minion = res.data[0].filter(item=>item['pid']!='');
  602. master.forEach(item=>{
  603. let type = {
  604. value:item['id'],
  605. label:item['name'],
  606. children:[],
  607. }
  608. minion.forEach(min=>{
  609. if(min['pid']==item['id']){
  610. let minType = {
  611. value:min['id'],
  612. label:min['name']
  613. }
  614. type['children'].push(minType);
  615. }
  616. })
  617. TypeList.push(type);
  618. })
  619. this.select.sortOptions = TypeList;
  620. },err=>{
  621. console.log(err);
  622. })
  623. },
  624. },
  625. mounted(){ //数据加载完成后触发
  626. this.getData();
  627. this.getProjectDepartmentData();
  628. this.getProjectTypeData();
  629. },
  630. }
  631. </script>
  632. <style lang="less">
  633. .ProjectManagement1{
  634. .avatar-uploader .el-upload {
  635. border: 1px dashed #d9d9d9;
  636. border-radius: 6px;
  637. cursor: pointer;
  638. // position: relative;
  639. overflow: hidden;
  640. }
  641. .avatar-uploader .el-upload:hover {
  642. border-color: #409EFF;
  643. }
  644. .avatar-uploader-icon {
  645. font-size: 28px;
  646. color: #8c939d;
  647. width: 300px;
  648. // height: 100%;
  649. line-height: 178px;
  650. text-align: center;
  651. }
  652. .avatar {
  653. width: 300px;
  654. height:178px !important;
  655. display: block;
  656. }
  657. .delMemberDialog{ //删除对话框
  658. .el-dialog{
  659. border-radius: 5px;
  660. overflow: hidden;
  661. }
  662. .deleteContent{
  663. margin: 30px 0;
  664. font-size: 22px;
  665. color: #000;
  666. }
  667. .el-dialog__header{
  668. background: #32455b;
  669. display: flex;
  670. justify-content: center;
  671. }
  672. .el-dialog__title{
  673. color:#fff;
  674. display: flex;
  675. justify-content: center;
  676. font-size: 18px;
  677. position: relative;
  678. top: -2px;
  679. }
  680. .el-dialog__body{
  681. display: flex;
  682. justify-content: center;
  683. }
  684. .dialog-footer{
  685. display: flex;
  686. justify-content: center;
  687. box-sizing: border-box;
  688. }
  689. }
  690. //项目修改对话框开始
  691. .projectApplicationfundAddDialog{
  692. .el-dialog__header{
  693. background: #32455b;
  694. }
  695. .el-dialog{
  696. border-radius:5px ;
  697. overflow: hidden;
  698. }
  699. .deleteContent{
  700. width: 100%;
  701. text-align: center;
  702. font-size: 22px;
  703. color: #000;
  704. }
  705. .addDialogLogo{
  706. width: 60px;
  707. height: 30px;
  708. border-radius: 5px;
  709. display: flex;
  710. justify-content: center;
  711. line-height: 30px;
  712. background: #f2f2f2;
  713. position: absolute;
  714. left: 20px; top: 15px;
  715. }
  716. .el-dialog__title{
  717. color:#fff;
  718. display: flex;
  719. justify-content: center;
  720. font-size: 18px;
  721. position: relative;
  722. top: -2px;
  723. }
  724. .addDialogMid{
  725. box-sizing: border-box;
  726. padding:0 60px 0 10px;
  727. .addDialogTit{
  728. display: flex;
  729. span{
  730. width: 80px;
  731. line-height: 40px;
  732. text-align: left;
  733. }
  734. }
  735. .addDialogTit1{
  736. display: flex;
  737. justify-content: space-between;
  738. margin-bottom: 15px;
  739. }
  740. .addDialogTit2{
  741. margin-top: 10px;
  742. font-size: 18px;
  743. color: #000;
  744. text-indent: 2em;
  745. }
  746. .addDialogCon{
  747. margin-top: 20px;
  748. }
  749. }
  750. .dialog-footer{
  751. display: flex;
  752. justify-content: center;
  753. }
  754. }
  755. }
  756. </style>