projectSettlement1.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  1. <template>
  2. <!-- 项目结项 项目基本内容 -->
  3. <div class="projectSettlement1" v-loading="loading">
  4. <!-- 详情页 -->
  5. <div class="vfpHeader">
  6. <div class="titleOne">项目管理</div>
  7. <div class="smallTitle" style="left: 100px;">项目详情</div>
  8. <el-button type="primary" @click="back">返回</el-button>
  9. </div>
  10. <hr>
  11. <div class="AppBar">
  12. <div @click="content" class="AppBarActive">项目基本内容</div>
  13. <div @click="remark">项目详情</div>
  14. <div @click="remark2">项目附件</div>
  15. <div @click="remark4">项目结题附件</div>
  16. <div @click="remark5">结项评语</div>
  17. </div>
  18. <div class="psSmallTit">
  19. <span style="margin-right: 10px;">结题时间:</span>{{ select.endTime }}
  20. </div>
  21. <!-- 活动申请填写信息区域开始 -->
  22. <div class="select">
  23. <div class="selectTop">
  24. <div class="label">项目名称</div>
  25. <el-input v-model="select.project" placeholder="请输入内容"></el-input>
  26. </div>
  27. <div class="selectMid">
  28. <div class="selectLeft">
  29. <div class="inpBlock">
  30. <div class="label">负责人</div>
  31. <el-input v-model="select.person" placeholder="请输入内容"></el-input>
  32. </div>
  33. <div class="inpBlock">
  34. <div class="label">所在部门</div>
  35. <el-select v-model="select.departmentData" style="width: 100%;" placeholder="请选择">
  36. <el-option
  37. v-for="item in select.department"
  38. :key="item.id"
  39. :label="item.name"
  40. :value="item.id">
  41. </el-option>
  42. </el-select>
  43. </div>
  44. <div class="inpBlock">
  45. <div class="label">联系电话</div>
  46. <el-input v-model="select.tel" placeholder="请输入内容"></el-input>
  47. </div>
  48. </div>
  49. <div class="selectRight">
  50. <div class="inpBlock">
  51. <div class="label">项目开始时间</div>
  52. <el-date-picker
  53. v-model="select.Date"
  54. type="datetime"
  55. disabled
  56. style="width: 100%;"
  57. placeholder="选择日期">
  58. </el-date-picker>
  59. </div>
  60. <div class="inpBlock" style="position: relative;">
  61. <div class="label">预算总经费</div>
  62. <el-input disabled v-model="select.Fund" placeholder="请输入内容"></el-input>
  63. <span style="position: absolute;right: -20px;top: 9px;">万</span>
  64. </div>
  65. <div class="inpBlock">
  66. <div class="label">选择分类</div>
  67. <!-- <el-select v-model="select.sort" style="width: 100%;" placeholder="请选择">
  68. <el-option
  69. v-for="item in select.sortOptions"
  70. :key="item.id"
  71. :label="item.name"
  72. :value="item.id">
  73. </el-option>
  74. </el-select> -->
  75. <el-cascader v-model="select.sort" :options="select.sortOptions" clearable></el-cascader>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. <!-- 活动申请填写信息区域结束 -->
  81. <!-- 项目成员区域开始 -->
  82. <div class="tabTit">
  83. <div><p>项目成员</p></div>
  84. </div>
  85. <hr>
  86. <el-table
  87. :data="tableData"
  88. tooltip-effect="dark"
  89. stripe
  90. class="fontSize"
  91. :header-cell-style="{ background: '#f2f2f2',color:'#000' }"
  92. >
  93. <el-table-column
  94. prop="name"
  95. label="姓名"
  96. align="center"
  97. >
  98. </el-table-column>
  99. <el-table-column
  100. prop="class"
  101. label="班级"
  102. align="center"
  103. >
  104. </el-table-column>
  105. <el-table-column
  106. prop="phone"
  107. label="电话"
  108. align="center"
  109. >
  110. </el-table-column>
  111. <el-table-column
  112. prop="score"
  113. label="学分"
  114. align="center"
  115. >
  116. </el-table-column>
  117. <!-- <el-table-column
  118. prop="operation"
  119. align="center"
  120. label="操作"
  121. >
  122. <template #default="scope">
  123. <div class="operations">
  124. <el-button type="primary" @click="lookDetail(scope.rows.id)" size="mini" style="background: #477edd">查看详情</el-button>
  125. </div>
  126. </template>
  127. </el-table-column> -->
  128. </el-table>
  129. <!-- 项目成员区域结束 -->
  130. <!-- 项目简介区域开始 -->
  131. <div class="tabTit">
  132. <div><p>项目简介</p></div>
  133. </div>
  134. <hr>
  135. <el-input
  136. type="textarea"
  137. :rows="6"
  138. class="textArea"
  139. resize="none"
  140. placeholder="请输入内容"
  141. v-model="textarea">
  142. </el-input>
  143. <!-- 项目简介区域结束 -->
  144. <div class="baseBtn">
  145. <div class="blockWidth">
  146. <el-button type="primary" class="backBtn" @click="back">返回</el-button>
  147. <el-button type="primary" class="backBtn" @click="submitAmend">修改</el-button>
  148. </div>
  149. </div>
  150. <!-- 修改对话框开始 -->
  151. <el-dialog
  152. title="提示"
  153. :visible.sync="submitHint"
  154. width="600px"
  155. class="projectApplicationfundAddDialog"
  156. :before-close="init">
  157. <div class="addDialogLogo">LOGO</div>
  158. <div class="deleteContent">确定修改项目基本信息?</div>
  159. <span slot="footer" class="dialog-footer">
  160. <el-button type="primary" @click="submitAll" class="AllDialogBtn">确认提交</el-button>
  161. <el-button @click="submitHint=false" size="small" class="AllDialogBtn">取消</el-button>
  162. </span>
  163. </el-dialog>
  164. <!-- 修改对话框结束 -->
  165. </div>
  166. </template>
  167. <script>
  168. export default {
  169. data() {
  170. return {
  171. submitHint:false,
  172. loading:false,
  173. select:{ //数据详情框数据
  174. project:'',
  175. person:'',
  176. departmentData:"", //部门框值
  177. sort:[], //分类值
  178. tel:'',
  179. Date:'',
  180. Fund:'',
  181. // sortOptions: [], //分类下拉框
  182. sortOptions: [
  183. {
  184. value:"",
  185. label:'',
  186. children: [{
  187. value: 0,
  188. label: '创意组',
  189. },
  190. {
  191. value: 1,
  192. label: '初创组',
  193. }
  194. ]},
  195. {
  196. value:"",
  197. label:'',
  198. children: [{
  199. value: 0,
  200. label: '已建设',
  201. }, {
  202. value: 1,
  203. label: '待建设',
  204. }]
  205. }],
  206. department:[],
  207. endTime:''
  208. },
  209. textarea:'', //项目简介
  210. tableData:[], //项目成员列表
  211. value: '中德学院',
  212. input:'',
  213. }
  214. },
  215. methods:{
  216. init(){
  217. this.submitHint=false
  218. },
  219. submitAmend(){
  220. this.submitHint=true
  221. },
  222. submitAll(){
  223. let tidId=this.select.sort[0];
  224. let typeName=this.select.sort[1];
  225. let param={
  226. uid:this.$store.state.userInfo.userid,
  227. pid:JSON.parse(localStorage.getItem('pid')),
  228. projectName:this.select.project,
  229. leader:this.select.person,
  230. department:this.select.departmentData,
  231. tel:this.select.tel,
  232. tid:tidId,
  233. tidName:typeName,
  234. intro:this.textarea
  235. }
  236. this.ajax
  237. .post(this.$store.state.api+'/UpdateSettlementDetail',param)
  238. .then(res=>{
  239. console.log(res);
  240. this.submitHint=false
  241. if (res.data==1) {
  242. this.$message.success('修改成功')
  243. this.getData()
  244. }else{
  245. this.$message.error('修改失败')
  246. console.log(res.data);
  247. }
  248. },err=>{
  249. console.log(err);
  250. })
  251. console.log(param);
  252. },
  253. getData(){
  254. this.loading = true;
  255. let param={
  256. uid:this.$store.state.userInfo.userid,
  257. pid:JSON.parse(localStorage.getItem('pid'))
  258. }
  259. // console.log(param);
  260. this.ajax
  261. .get(this.$store.state.api+'/GetProjectBase',param)
  262. .then(res=>{
  263. console.log(res);
  264. let data=res.data[0][0]
  265. // console.log(data);
  266. this.select.project=data.title;
  267. this.select.Fund=data.money;
  268. this.select.person=data.pro_leader;
  269. this.select.Date=data.begintime;
  270. this.textarea=data.brief;
  271. this.tableData=JSON.parse(data.course_student)
  272. this.select.tel=data.phone;
  273. this.select.endTime=data.endTime
  274. this.select.departmentData = data['classid']
  275. this.select.sort = [data['typeid'],data['typeName']]
  276. console.log(this.select.sort);
  277. this.loading=false;
  278. },err=>{
  279. console.log(err);
  280. })
  281. },
  282. getProjectDepartmentData(){ //获取项目立项申请基础信息页面所在部门数据
  283. let param={
  284. uid:this.$store.state.userInfo.userid
  285. }
  286. this.ajax
  287. .get(this.$store.state.api+'/SelectAllDepartment',param)
  288. .then(res=>{
  289. this.select.department=res.data[0]
  290. },err=>{
  291. console.log(err);
  292. })
  293. },
  294. getProjectTypeData(){ //获取项目立项申请基础信息页面分类数据
  295. let param={
  296. uid:this.$store.state.userInfo.userid
  297. }
  298. this.ajax
  299. .get(this.$store.state.api+'/SelectAllType',param)
  300. .then(res=>{
  301. // this.select.sortOptions=res.data[0]
  302. this.select.sortOptions[0].value=res.data[0][0].id
  303. this.select.sortOptions[0].label=res.data[0][0].name
  304. this.select.sortOptions[1].value=res.data[0][1].id
  305. this.select.sortOptions[1].label=res.data[0][1].name
  306. // console.log(this.select.sortOptions);
  307. },err=>{
  308. console.log(err);
  309. })
  310. },
  311. lookDetail(){
  312. },
  313. content(){
  314. this.$router.push('/projectSettlement1')
  315. },
  316. remark(){
  317. this.$router.push('/projectSettlement2')
  318. },
  319. remark2(){
  320. this.$router.push('/projectSettlement3')
  321. },
  322. remark4(){
  323. this.$router.push('/projectSettlement4')
  324. },
  325. remark5(){
  326. this.$router.push('/projectSettlement5')
  327. },
  328. back(){
  329. this.$router.push('/projectSettlement')
  330. },
  331. handleSelectionChange(val) {
  332. this.multipleSelection = val;
  333. },
  334. },
  335. mounted(){
  336. this.getData();
  337. this.getProjectDepartmentData();
  338. this.getProjectTypeData();
  339. // this.value=(this.options[0].value)
  340. }
  341. }
  342. </script>
  343. <style lang="less">
  344. .projectSettlement1{
  345. .psSmallTit{
  346. width: 100%;
  347. margin: 15px 0px 20px 0px;
  348. text-align: left;
  349. font-size: 16px;
  350. }
  351. }
  352. .projectApplicationfundAddDialog{
  353. .el-dialog__header{
  354. background: #32455b;
  355. }
  356. .el-dialog{
  357. border-radius:5px ;
  358. overflow: hidden;
  359. }
  360. .deleteContent{
  361. width: 100%;
  362. text-align: center;
  363. font-size: 22px;
  364. color: #000;
  365. }
  366. .addDialogLogo{
  367. width: 60px;
  368. height: 30px;
  369. border-radius: 5px;
  370. display: flex;
  371. justify-content: center;
  372. line-height: 30px;
  373. background: #f2f2f2;
  374. position: absolute;
  375. left: 20px; top: 15px;
  376. }
  377. .el-dialog__title{
  378. color:#fff;
  379. display: flex;
  380. justify-content: center;
  381. font-size: 18px;
  382. position: relative;
  383. top: -2px;
  384. }
  385. .addDialogMid{
  386. box-sizing: border-box;
  387. padding:0 60px 0 10px;
  388. .addDialogTit{
  389. display: flex;
  390. span{
  391. width: 80px;
  392. line-height: 40px;
  393. text-align: left;
  394. }
  395. }
  396. .addDialogTit1{
  397. display: flex;
  398. justify-content: space-between;
  399. margin-bottom: 15px;
  400. }
  401. .addDialogTit2{
  402. margin-top: 10px;
  403. font-size: 18px;
  404. color: #000;
  405. text-indent: 2em;
  406. }
  407. .addDialogCon{
  408. margin-top: 20px;
  409. }
  410. }
  411. .dialog-footer{
  412. display: flex;
  413. justify-content: center;
  414. }
  415. }
  416. </style>