zhangwei
2025-01-16 e3f6581c48b1dfb65c55e8a1a6ce1761a7dc26b4
src/pages/index/index.vue
@@ -1,79 +1,107 @@
<template>
   <view class="full-page">
      <up-sticky bgColor="#fff">
         <view class="coreshop-ff c-p-10">
            <!-- <up-search placeholder="请点击选择日期" @clear='clear' @clickIcon='clickTime' @custom='search'
               v-model="workTime" search-icon="calendar" @search='search'></up-search> -->
            <up-search placeholder="请输入工作名称" @clear='clear' @custom='search' v-model="state.orderName"
               @search='search'></up-search>
         </view>
      </up-sticky>
      <scroll-view enable-flex="true" v-if="listO.orderList">
         <view class="list chuany-flex chuany-flex-direction chuany-align-center c-p-b-30 "
            v-if="listO.orderList.length>0">
            <view class="content c-p-b-18" v-for="(item,index) in listO.orderList" @click='toDetail(item.id)'
               :key='item.id'>
               <view
                  class="bgblue c-p-l-18 c-p-r-18  c-p-b-10 c-p-t-10 chuany-flex chuany-justify-between chuany-font30">
                  <view class="chuany-flex chuany-flex-direction">
                     <text class=''>
                        {{$util.formatDate(item.startTime)}}
                     </text>
                  </view>
                  <text>
                     招{{item.worderCounted}}/{{item.worderCount}}人
                  </text>
               </view>
               <view class="c-p-l-18 c-p-t-10 c-p-b-10 c-p-r-18 chuany-font32">
                  {{item.orderComName}}
               </view>
               <view class="c-p-l-18 c-p-r-18 c-p-b-10 chuany-font32">
                  {{item.orderName}}
               </view>
               <!-- <view class="chuany-flex c-p-l-18">
                  <up-tag class='c-p-r-14' :text="item" plain v-for="(item,index) in item.tags" :key="index">
                  </up-tag>
               </view> -->
               <view class="chuany-flex chuany-flex-direction chuany-font28">
                  <text class='c-p-l-18 c-p-r-18 text-69 c-p-b-10'>
                     日期:{{item.wordStartTimeName}} 至 {{item.wordEndTimeName}}
                  </text>
                  <text class='c-p-l-18 c-p-r-18 text-69 c-p-b-10'>
                     时间:{{item.startTimeName}} 至 {{item.endTimeName}}
                  </text>
               </view>
               <view class="chuany-flex chuany-flex-direction chuany-font28">
                  <text class='c-p-l-18 c-p-r-18 text-69 c-p-b-10'>
                     要求:{{item.demand}}
                  </text>
                  <text class='c-p-l-18 c-p-r-18 text-69 c-p-b-10'>
                     地址:{{item.worderAddress}}
                  </text>
               </view>
               <view class='chuany-flex chuany-justify-between c-p-l-18 c-p-r-18'>
                  <view class="redcla">
                     <text class="chuany-font40">
                        {{item.workPrice}}
                     </text>
                     <text class='chuany-font20'>
                        {{item.workerType==0?'元/小时':'元/件'}}
                     </text>
                  </view>
                  <up-tag text="去抢活" v-if="identity !== 'enterprise'" type="warning" shape="circle"
                     @click.stop='deliver(item.id)'></up-tag>
                  <!-- <up-tag text="去抢活" type="warning" shape="circle"></up-tag> -->
               </view>
   <view class="full-page" scroll-y using-sticky>
      <view class="">
         <up-sticky bgColor="#fff">
            <view class="coreshop-ff c-p-10">
               <!-- <up-search placeholder="请点击选择日期" @clear='clear' @clickIcon='clickTime' @custom='search'
                  v-model="workTime" search-icon="calendar" @search='search'></up-search> -->
               <up-search placeholder="请输入工作名称" @clear='clear' @custom='search' v-model="state.orderName"
                  @search='search'></up-search>
            </view>
            <up-loadmore :status="loadStatus" />
         </up-sticky>
         <view v-if="listO.orderList" class="full-page-content">
            <view class="list chuany-flex chuany-flex-direction chuany-align-center c-p-b-30 "
               v-if="listO.orderList.length>0">
               <view class="content c-p-b-18" v-for="(item,index) in listO.orderList" @click='toDetail(item)'
                  :key='item.id'>
                  <view
                     class="bgblue c-p-l-18 c-p-r-18  c-p-b-10 c-p-t-10 chuany-flex chuany-justify-between chuany-font30">
                     <view class="chuany-flex chuany-flex-direction">
                        <text class=''>
                           {{$util.formatDate(item.startTime)}}
                        </text>
                     </view>
                     <text>
                        招{{item.worderCounted}}/{{item.worderCount}}人
                     </text>
                  </view>
                  <view class="c-p-l-18 c-p-t-10 c-p-b-10 c-p-r-18 chuany-font32">
                     {{item.orderComName}}
                  </view>
                  <view class="c-p-l-18 c-p-r-18 c-p-b-10 chuany-font32">
                     {{item.orderName}}
                  </view>
                  <!-- <view class="chuany-flex c-p-l-18">
                     <up-tag class='c-p-r-14' :text="item" plain v-for="(item,index) in item.tags" :key="index">
                     </up-tag>
                  </view> -->
                  <view class="chuany-flex chuany-flex-direction chuany-font28">
                     <text class='c-p-l-18 c-p-r-18 text-69 c-p-b-10'>
                        日期:{{item.wordStartTimeName}} 至 {{item.wordEndTimeName}}
                     </text>
                     <!-- <text class='c-p-l-18 c-p-r-18 text-69 c-p-b-10'>
                        时间:{{item.startTimeName}} 至 {{item.endTimeName}}
                     </text> -->
                     <view class="c-p-l-18 c-p-r-18 text-69 c-p-b-10" v-if="item.zixinganpai">
                        时间:{{item.zixinganpaiName}}
                     </view>
                     <view class="c-p-l-18 c-p-r-18 text-69 c-p-b-10" v-else>
                        时间:{{item.startTimeName}} 至 {{item.endTimeName}}
                     </view>
                  </view>
                  <view class="chuany-flex chuany-flex-direction chuany-font28">
                     <text class='c-p-l-18 c-p-r-18 text-69 c-p-b-10'>
                        要求:{{item.demand}}
                     </text>
                     <text class='c-p-l-18 c-p-r-18 text-69 c-p-b-10' v-if="identity !== 'enterprise'">
                        地址:{{item.worderAddress}}
                     </text>
                  </view>
                  <view class='chuany-flex chuany-justify-between c-p-l-18 c-p-r-18'>
                     <view class="redcla">
                        <view class="">
                           <text class="chuany-font40">
                              {{item.workPrice}}<template
                                 v-if="item.workPriceMax">~{{item.workPriceMax}}</template>
                           </text>
                           <text class='chuany-font20'>
                              {{item.workerType==0?'元/小时':'元/件'}}
                           </text>
                        </view>
                        <!-- <text class="chuany-font40">
                           {{item.workPrice}}
                        </text>
                        <text class='chuany-font20'>
                           {{item.workerType==0?'元/小时':'元/件'}}
                        </text> -->
                     </view>
                     <up-tag text="去抢活" v-if="identity !== 'enterprise'&&!item.isSelectedName" type="warning"
                        shape="circle" @click.stop='deliver(item.id)'></up-tag>
                     <view class="" v-else>
                        <up-text :type="item.isSelectedName=='审核中'?'info':item.isSelectedName=='不录用'?'error':'success'"
                           :text="item.isSelectedName" size='12'></up-text>
                     </view>
                     <view class="" v-if="identity == 'enterprise'">
                        <up-badge type="error" max="99" :value="item.workerDaiCount"></up-badge>
                     </view>
                     <!-- <up-tag text="去抢活" type="warning" shape="circle"></up-tag> -->
                  </view>
               </view>
               <up-loadmore :status="loadStatus" />
            </view>
            <view v-else>
               <up-empty text='暂无' icon="/static/order.png">
               </up-empty>
            </view>
         </view>
      </scroll-view>
      <view v-else>
         <up-empty text='暂无' icon="/static/order.png">
         </up-empty>
         <view v-else>
            <up-empty text='暂无' icon="/static/order.png">
            </up-empty>
         </view>
         <fui-date-picker range :show="datePickerShow" type="5" @change="changePicker"
            @cancel="cancel"></fui-date-picker>
      </view>
      <fui-date-picker range :show="datePickerShow" type="5" @change="changePicker"
         @cancel="cancel"></fui-date-picker>
   </view>
</template>
@@ -126,6 +154,7 @@
      datePickerShow.value = !datePickerShow.value
   }
   let loadStatus = ref('loadmore')
   let tokenVal = $db.get('userToken') || ''
   onReachBottom(() => {
      if (loadStatus.value != 'nomore') {
         PostListPage();
@@ -141,6 +170,10 @@
   })
   onShow(() => {
      identity.value = $db.get('identity')
      tokenVal = $db.get('userToken')
      state.pageIndex = 1
      state.pageSize = 20
      loadStatus.value = 'loadmore'
      console.log(identity.value);
      PostListPage()
   })
@@ -152,6 +185,7 @@
      let data = {
         pageIndex: state.pageIndex,
         pageSize: state.pageSize,
         isEn: true
      }
      if (orderStatus) {
         data.orderStatus = orderStatus
@@ -160,14 +194,14 @@
         data.orderName = state.orderName
      }
      loadStatus.value = 'loading';
      if (identity.value == 'enterprise') {
      if (identity.value == 'enterprise' && tokenVal) {
         $api.PostMyListPageCompany(data).then(res => {
            if (res.code == 1) {
               console.log(res, res.code, '-----------123’');
               if (state.pageIndex == 1) {
                  listO.orderList = res.data.items
               } else {
                  listO.orderList.concat(...res.data.items)
                  listO.orderList = listO.orderList.concat(...res.data.items)
               }
               console.log(listO.orderList, 'listO.orderList’');
               // totalPages.value = res.data.totalCount
@@ -190,7 +224,7 @@
               if (state.pageIndex == 1) {
                  listO.orderList = res.data.items
               } else {
                  listO.orderList.concat(...res.data.items)
                  listO.orderList = listO.orderList.concat(...res.data.items)
               }
               console.log(listO.orderList, 'listO.orderList’');
               // totalPages.value = res.data.totalCount
@@ -218,14 +252,20 @@
   const change = (e) => {
      state.currentIdex = e.index
   }
   const toDetail = (val) => {
   const toDetail = (item) => {
      if (!tokenVal) {
         return false
      }
      // if (item.isSelectedName && identity.value !== 'enterprise') {
      //    return false
      // }
      if (identity.value !== 'enterprise') {
         uni.navigateTo({
            url: `/pages/detail/detail?orderid=${val}`
            url: `/pages/detail/detail?orderid=${item.id}`
         })
      } else {
         uni.navigateTo({
            url: `/pages/order/detail?orderid=${val}`
            url: `/pages/order/detail?orderid=${item.id}`
         });
      }
   }
@@ -244,11 +284,12 @@
   }
   .content {
      width: 93%;
      min-height: 330rpx;
      width: 90%;
      /* width: 90%; */
      background-color: #fff;
      border-radius: 20rpx;
      margin: 30rpx 30rpx 0 30rpx;
      margin: 28rpx 28rpx 0 28rpx;
   }
   .bgblue {