index.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <template>
  2. <div>
  3. <div class="addbox">
  4. <!-- 步骤条 -->
  5. <div class="steps">
  6. <div class="step" :class="{'finish':active>idx+1,'act':active==idx+1}" v-for="(ite,idx) in step" :key="idx" >
  7. <div class="tit flexc"><span>{{idx+1}}</span>{{ite.tit}}
  8. <div class="line"></div>
  9. </div>
  10. <div class="list" v-for="(aite,aidx) in ite.desc" :key="aidx">
  11. <span class="cir"></span>{{aite.tit}}
  12. </div>
  13. </div>
  14. </div>
  15. <!-- 标签页 -->
  16. <div class="tabs">
  17. <!-- <div class="flex1" style="overflow: hidden;"> -->
  18. <el-tabs v-model="activeName" @tab-click="handleClick">
  19. <el-tab-pane name="first">
  20. <div slot="label" class="tab flexc">
  21. <img class="tabimg" v-if="activeName=='first'" src="@/assets/images/project/taba_.png"/>
  22. <img class="tabimg" v-else src="@/assets/images/project/taba.png"/>
  23. <span>签约环节
  24. </span>
  25. </div>
  26. <first-info-form ref="firstInfo" :info="info"></first-info-form>
  27. </el-tab-pane>
  28. <el-tab-pane name="second">
  29. <div slot="label" class="tab flexc">
  30. <img class="tabimg" v-if="activeName=='second'" src="@/assets/images/project/tabb_.png"/>
  31. <img class="tabimg" v-else src="@/assets/images/project/tabb.png"/>
  32. <span>开工环节
  33. </span>
  34. </div>
  35. <second-info-form ref="secondInfo" :info="info"></second-info-form>
  36. </el-tab-pane>
  37. <el-tab-pane name="third">
  38. <div slot="label" class="tab flexc">
  39. <img class="tabcimg" v-if="activeName=='third'" src="@/assets/images/project/tabc_.png"/>
  40. <img class="tabcimg" v-else src="@/assets/images/project/tabc.png"/>
  41. <span>建设环节
  42. </span>
  43. </div>
  44. <third-info-form ref="thirdInfo" :info="info"></third-info-form>
  45. </el-tab-pane>
  46. <el-tab-pane name="fourth">
  47. <div slot="label" class="tab flexc">
  48. <img class="tabdimg" v-if="activeName=='fourth'" src="@/assets/images/project/tabd_.png"/>
  49. <img class="tabdimg" v-else src="@/assets/images/project/tabd.png"/>
  50. <span>投产环节
  51. </span>
  52. </div>
  53. <fourth-info-form ref="fourthInfo" :info="info"></fourth-info-form>
  54. </el-tab-pane>
  55. </el-tabs>
  56. <!-- </div> -->
  57. </div>
  58. </div>
  59. </div>
  60. </template>
  61. <script>
  62. import firstInfoForm from "./firstInfoForm"
  63. import secondInfoForm from "./secondInfoForm"
  64. import thirdInfoForm from "./thirdInfoForm"
  65. import fourthInfoForm from "./fourthInfoForm"
  66. export default{
  67. components:{
  68. firstInfoForm,secondInfoForm,thirdInfoForm,fourthInfoForm
  69. },
  70. data() {
  71. return{
  72. active:2,
  73. step:[
  74. {tit:'立项',desc:[{tit:'新建'},{tit:'审核'}]},
  75. {tit:'签约',desc:[{tit:'签约双方信息'},{tit:'签约项目信息'},{tit:'附件上传'}]},
  76. {tit:'开工',desc:[{tit:'开工前相关手续办理'},{tit:'开工信息'},{tit:'附件上传'}]},
  77. {tit:'建设',desc:[{tit:'建设信息'},{tit:'附件上传'}]},
  78. {tit:'投产',desc:[{tit:'投产信息'},{tit:'附件上传'}]},
  79. {tit:'完成',desc:[{tit:'提交'},{tit:'审核'}]},
  80. ],
  81. activeName:'first',
  82. // 表详细信息
  83. info: {}
  84. }
  85. },
  86. methods:{
  87. handleClick(){
  88. }
  89. }
  90. }
  91. </script>
  92. <style lang="scss" scoped>
  93. ::v-deep {
  94. .el-button{padding: 8px 14px;font-size: 14px;}
  95. .tabs{width: 100%;
  96. .el-button--small{background-color: #00A854;}
  97. .el-tabs__item{padding-right: 0;color: #666666;line-height: 45px;height: 45px;padding-left: 0;}
  98. .el-tabs__active-bar{background: #2777D0;}
  99. .is-active{color: #2777D0;font-weight: bold;}
  100. }
  101. }
  102. .flex{display: flex;}
  103. .flexc{display: flex;align-items: center;}
  104. .flex1{flex: 1;}
  105. .addbox{padding: 14px 12px 25px;
  106. .steps{background: #FFFFFF;border-radius: 4px;padding: 30px 60px 24px 85px;display: flex;
  107. .step{flex-basis: 50%;position: relative;
  108. &.finish,&.act{
  109. .tit{color: #3D455B;
  110. span{background: #1890FF;color: #FFFFFF;border: none;}
  111. }
  112. }
  113. &.finish{
  114. .line{background-color: #1890FF !important;}
  115. .list{
  116. .cir{background: #00A854;}
  117. }
  118. }
  119. &:last-child{
  120. .line{display: none !important;}
  121. }
  122. .tit{font-weight: bold;font-size: 16px;color: #666666;margin-bottom: 10px;
  123. span{width: 24px;height: 24px;background: #FFFFFF;border-radius: 50%;border: 1px solid #DADADA;font-weight: bold;display: flex;align-items: center;justify-content: center;flex: 0 0 auto;
  124. font-size: 14px;color: #AAAAAA;margin-right: 12px;}
  125. .line{height: 2px;margin-left: 18px;margin-right: 18px;flex: 1;
  126. background: #E6E6E6;}
  127. }
  128. }
  129. .list{font-weight: 500;font-size: 12px;color: #9B9B9B;line-height: 24px;padding-left: 8px;
  130. .cir{width: 8px;height: 8px;background: #BFBFBF;border-radius: 50%;display: inline-block;margin-right: 8px;}
  131. }
  132. }
  133. }
  134. .tabs{position: relative;
  135. .tab{padding: 0 21px;}
  136. .tabimg{width: 14px;height: 14px;margin-right: 8px;}
  137. .tabcimg{width: 13px;height: 13px;margin-right: 9px;}
  138. .tabdimg{width: 14px;height: 15px;margin-right: 8px;}
  139. .btns{height: 45px;border-bottom: 2px solid #dfe4ed;box-sizing: border-box;position: absolute;right: 0;top: 0;
  140. }
  141. }
  142. </style>