allitems.vue 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <template>
  2. <view class="allpage">
  3. <view class="listtop pfixed">
  4. <tab-searchone @getSearch='getSearch' :name="name"></tab-searchone>
  5. <tab-list :tablist='tablist' :tabidx="tabidx" @getCheck="goCheck" :height='130'></tab-list>
  6. <time-year @bindDateChange="bindDateChange" :timedate="time"></time-year>
  7. </view>
  8. <view class="zhanline"></view>
  9. <view class="alllist">
  10. <!-- l列表 -->
  11. <project-list :datalist="list" :wtdt='wtdt' @getDetail='goDetail'></project-list>
  12. </view>
  13. </view>
  14. </template>
  15. <script>
  16. import projectList from "@/components/projectlist/list.vue"
  17. import tabList from "@/components/toptab/tab.vue"
  18. import tabSearchone from "@/components/toptab/searchone.vue"
  19. import timeYear from "@/components/timedata/timeyear.vue"
  20. import { getsbbzblist,getqyxxlist,getkgxxlist,gettcxxlist } from '@/api/work/clue.js'
  21. import {getCommonCensus} from "@/api/work/index.js"
  22. export default{
  23. data(){
  24. return{
  25. pageSize: 10,
  26. pageNum: 1,
  27. reachflag:true,
  28. itemslist:[],
  29. wtdt:'',
  30. tabidx:0,
  31. date:'',
  32. list:[],
  33. tablist:[{tit:'全部',val:0,txt:0,limt:'projectV2:sbbzb:list'},{tit:'线索',val:1,txt:0,limt:'projectV2:sbbzb:list'},{tit:'签约',val:2,txt:0,limt:'projectV2:sbbzb:list'},{tit:'开工',val:3,txt:0,limt:'projectV2:sbbzb:list'},{tit:'投产',val:4,txt:0,limt:'projectV2:sbbzb:list'},],
  34. year:'',
  35. beginTime:'',
  36. endTime:'',
  37. name:'',
  38. census:'',
  39. deptId:this.$store.state.user.deptId,
  40. time:""
  41. }
  42. },
  43. components:{
  44. projectList,tabList,tabSearchone,timeYear
  45. },
  46. onUnload(){
  47. uni.$off('refreshdatalist')
  48. },
  49. onLoad(e) {
  50. this.tabidx=Number(e.idx);
  51. if(e.xmmc){
  52. this.name=e.xmmc;
  53. }
  54. var y='';
  55. if(e.time){
  56. y=e.time
  57. }else{
  58. let date = new Date();
  59. y = date.getFullYear();
  60. }
  61. this.beginTime=y+'0101';
  62. this.endTime=y+'1231';
  63. this.time=y;
  64. this.getDataFn();
  65. this.getCommonCensus();
  66. uni.$on('refreshdatalist',(e) => {
  67. this.reachflag=true;
  68. this.pageNum=1;
  69. this.list=[];
  70. this.getDataFn();
  71. if(e&&e=='ldps'){
  72. }else{
  73. this.getCommonCensus();
  74. }
  75. })
  76. },
  77. onReachBottom() {
  78. if (this.reachflag) {
  79. this.pageNum++
  80. this.getDataFn()
  81. }
  82. },
  83. methods:{
  84. getCommonCensus(){
  85. var params={
  86. deptId:this.deptId,
  87. xmxsmc:this.name,
  88. params:{
  89. 'beginTime':this.beginTime,
  90. 'endTime':this.endTime
  91. }
  92. }
  93. // params['params[beginTime]']=this.beginTime
  94. // params['params[endTime]']=this.endTime
  95. getCommonCensus(params).then(res=>{
  96. if(res.code==200){
  97. this.census=res.data;
  98. var newArr=this.tablist;
  99. newArr.forEach(ite=>{
  100. if(ite.val==0){
  101. ite.txt=res.data.all||0
  102. }else if(ite.val==1){
  103. ite.txt=res.data.st||0
  104. }else if(ite.val==2){
  105. ite.txt=res.data.qy||0
  106. }else if(ite.val==3){
  107. ite.txt=res.data.kg||0
  108. }else if(ite.val==4){
  109. ite.txt=res.data.tc||0
  110. }
  111. })
  112. }else{
  113. this.$toast(res.msg)
  114. }
  115. })
  116. },
  117. getDataFn(){
  118. var params={
  119. pageSize:this.pageSize,
  120. pageNum: this.pageNum,
  121. xmxsmc:this.name,
  122. deptId:this.$store.state.user.deptId
  123. }
  124. params['params[beginTime]']=this.beginTime
  125. params['params[endTime]']=this.endTime
  126. if(this.tabidx==0){
  127. }else if(this.tabidx==1){//线索
  128. params.progress='1,2'
  129. }else if(this.tabidx==2){//签约
  130. params.progress='3'
  131. }else if(this.tabidx==3){//开工
  132. params.progress='4'
  133. }else if(this.tabidx==4){//投产
  134. params.progress='5'
  135. }
  136. //1:项目首谈 2:项目承接 3:项目签约 4:项目开工 5:项目投产
  137. getsbbzblist(params).then(res=>{
  138. if(res.code==200){
  139. if (res.rows.length < this.pageSize) {
  140. this.reachflag = false
  141. this.wtdt = '到底了~';
  142. } else {
  143. var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum - 1)
  144. if (num < res.total) {
  145. this.reachflag = true
  146. this.wtdt = '上拉加载更多'
  147. } else {
  148. this.reachflag = false
  149. this.wtdt = '到底了~';
  150. }
  151. }
  152. if (this.pageNum == 1) {
  153. this.list = res.rows;
  154. } else {
  155. this.list = this.list.concat(res.rows)
  156. }
  157. }else{
  158. this.$toast(res.msg)
  159. }
  160. })
  161. },
  162. getSearch(e){
  163. this.name=e;
  164. this.reachflag=true;
  165. this.pageNum=1;
  166. this.list=[];
  167. this.getDataFn();
  168. this.getCommonCensus();
  169. },
  170. bindDateChange(e){
  171. this.year=e;
  172. this.beginTime=e+'0101';
  173. this.endTime=e+'1231';
  174. this.reachflag=true;
  175. this.pageNum=1;
  176. this.list=[];
  177. this.getDataFn()
  178. this.getCommonCensus();
  179. },
  180. goCheck(data){
  181. this.tabidx=data;
  182. this.reachflag=true;
  183. this.pageNum=1;
  184. this.list=[];
  185. this.getDataFn()
  186. // this.getCommonCensus();
  187. },
  188. goDetail(e){
  189. this.$tab.navigateTo('/pages/work/cluedetails?id='+e.id)
  190. // this.$tab.navigateTo('/pages/work/cluedetails?id='+e+"&tabidx="+this.tabidx)
  191. }
  192. }
  193. }
  194. </script>
  195. <style lang="scss" scoped>
  196. .allpage{min-height: 100vh;background: #ffffff;padding-top:320rpx;box-sizing: border-box;}
  197. .listtopa{border: 6rpx solid #FD5001;border-radius: 36rpx;height:72rpx;box-sizing: border-box;padding:0 140rpx 0 32rpx ;position: relative;
  198. input{}
  199. image{width: 30rpx;height: 30rpx;margin-right: 24rpx;}
  200. .btn{background: #FA5F03;border-radius: 36rpx;width: 140rpx;position: absolute;right: -2rpx;top: -2rpx;bottom:-2rpx;}
  201. }
  202. .listtopb{
  203. .tit{flex: 1;height: 130rpx;display: flex;flex-direction: column;justify-content: center;position: relative;
  204. view{text-align: center;}
  205. .tits{color: #666666;}
  206. .txt{color: #aaaaaa;}
  207. &.act{
  208. &::after{content: '';width: 100rpx;height: 6rpx;background:#FE5706 ;position: absolute;left: 50%;margin-left: -50rpx;bottom: 0;}
  209. .tits{color: #343434;}
  210. .txt{color: #FE5706;}
  211. }
  212. }
  213. }
  214. .alllist{padding-top:10rpx ;}
  215. </style>