Kaynağa Gözat

feat: 登录弹窗调整及适配

zhangyuhan 1 yıl önce
ebeveyn
işleme
3687290360

+ 7 - 0
src/assets/style/common.scss

@@ -242,3 +242,10 @@ button[disabled] {
     border-radius: 1px;
   }
 }
+
+.custom-cell-container {
+  & > .h5-div,
+  .unset-button {
+    width: 100%;
+  }
+}

+ 6 - 3
src/components/create-order/SubmitBar.vue

@@ -101,12 +101,13 @@
               >{{ cancelBtnText }}</van-button
             >
 
-            <use-login :custom-button="true">
+            <use-login :custom-button="true" @success="onConfirmBtn">
               <template v-slot="loginProps">
-                <van-button
+                <button
                   id="btn"
                   type="primary"
                   size="large"
+                  class="van-button van-button--primary"
                   :disabled="confirmDisabled"
                   @click="() => { loginProps.isLogin ? onConfirmBtn() : null }"
                   :open-type="loginProps.openType"
@@ -116,7 +117,7 @@
                   <div class="confirm-button-tip-text" v-if="confirmBtnTipText">
                     {{ confirmBtnTipText }}
                   </div>
-                </van-button>
+                </button>
               </template>
             </use-login>
           </div>
@@ -295,6 +296,7 @@ export default {
     },
     // 右侧提交事件
     onConfirmBtn() {
+      console.log('xxxxxxx')
       this.$emit('confirmBtn')
     },
     onCheckboxInput(v) {
@@ -466,6 +468,7 @@ export default {
     flex: 1;
     padding: 5px 10px;
     white-space: nowrap;
+    border: none;
   }
   .van-button--default {
     margin-right: 8px;

+ 1 - 0
src/components/login/useLogin.vue

@@ -38,6 +38,7 @@ export default {
     ...mapActions('user', ['doSetUserPhone']),
     doGetUserPhoneInfo(e) {
       const code = e.detail?.code
+      console.log('getPhone', code)
       if (code) {
         this.doSetUserPhone({
           code: code

+ 35 - 26
src/components/search/result/list-item/index.vue

@@ -6,31 +6,32 @@
     :visited="visited"
     @click="onCellClick(item, 'buyer')"
   />
-  <ProjectCell
-    v-else
-    :keys="searchKey"
-    card-type="detailed"
-    class="list-project-cell"
-    :visited="visited"
-    v-bind="item"
-    @click="onCellClick(item, 'bidding')"
-  >
-    <template #buyerText="{ item }">
-      <span class="buyer-item link-clickable">
-        {{ item.text }}
-      </span>
-    </template>
-    <template #winnerText="{ item }">
-      <span
-        v-for="(winner, index) in item.children"
-        :key="index"
-        class="winner-item highlight-text link-clickable j-splitter"
-        data-j-splitter="、"
-      >
-        {{ winner.text }}
-      </span>
-    </template>
-  </ProjectCell>
+  <use-login v-else class="custom-cell-container"  @click="onCellClick(item, 'bidding')" @success="onCellClick(item, 'bidding')">
+    <ProjectCell
+      :keys="searchKey"
+      card-type="detailed"
+      class="list-project-cell"
+      :visited="visited"
+      v-bind="item"
+    >
+      <template #buyerText="{ item }">
+        <span class="buyer-item link-clickable">
+          {{ item.text }}
+        </span>
+      </template>
+      <template #winnerText="{ item }">
+        <span
+          v-for="(winner, index) in item.children"
+          :key="index"
+          class="winner-item highlight-text link-clickable j-splitter"
+          data-j-splitter="、"
+        >
+          {{ winner.text }}
+        </span>
+      </template>
+    </ProjectCell>
+  </use-login>
+
 </template>
 
 <script>
@@ -39,10 +40,12 @@ import Taro from '@tarojs/taro'
 import { checkArticleReadMax } from '@/api/modules/search'
 import { showDialog, showToast } from '@/utils/'
 import { mixinVisited } from '@/utils/mixins/visited'
+import UseLogin from "../../../login/useLogin.vue";
 
 export default {
   name: 'SearchFiltersContainer',
   components: {
+    UseLogin,
     [ProjectCell.name]: ProjectCell,
     [BuyerCell.name]: BuyerCell
   },
@@ -72,7 +75,7 @@ export default {
     return {
       loading: false,
       visited: false,
-      // 类型  1:标讯详情 2:画像详情页 3:情报详情页 
+      // 类型  1:标讯详情 2:画像详情页 3:情报详情页
       reqMap: {
         bidding: 1,
         buyer: 2,
@@ -117,6 +120,11 @@ export default {
         id,
         type: this.reqMap[this.cellType]
       })
+
+      if (code === 1001) {
+        return -1
+      }
+
       if (data) {
         return data.isView // 0可正常访问。-1:未登录,-2:配置错误,-3:付费次数用完,-4:免费次数用完,-5 免费用户配置可读的是0
       } else {
@@ -131,6 +139,7 @@ export default {
       this.loading = true
       try {
         const status = await this.checkArticleReadMax(id)
+        console.log(status, 'sss')
         if (status === -5) {
           // 免费用户配置免费可读的是0,直接跳转去购买
           this.toBuyVip()

+ 3 - 3
src/composables/search-list/index.js

@@ -47,10 +47,10 @@ class BiddingSearchModel extends baseModel {
       item?.type || item?.subtype,
     ].filter((v) => v)
 
-    result.tags = item.tagList
+    result.tags = result.tagList
 
-    result.dateTime = item.publishTime ? item.publishTime * 1000 : ''
-    result.time = item.dateTime
+    result.dateTime = item.publishtime ? item.publishtime * 1000 : ''
+    result.time = result.dateTime
 
     // 整理企业画像数据
     let winnerList = Array.isArray(item.winnerInfo) ? item.winnerInfo : []

+ 1 - 1
src/pages/subscribe/manage/index.vue

@@ -115,7 +115,7 @@ export default {
       if (Array.isArray(industry) && industry.length > 0) {
         arr.push(industry.join('、'))
       } else {
-        arr.push('-')
+        arr.push('全部')
       }
       return arr.join('')
     },

+ 7 - 1
src/pages/tabbar/home/index.vue

@@ -14,7 +14,9 @@
         <template #header-before-filter>
           <top-search :readonly="true" :placeholder="searchInputPlaceholder" @clickInput="goSearch" v-model="topSearch.input">
             <template #actions>
-              <button class="subscribe-manage-button" @click.stop.prevent="toSubscribeManagePage">订阅管理</button>
+              <use-login @click="toSubscribeManagePage" @success="toSubscribeManagePage">
+                <div class="subscribe-manage-button">订阅管理</div>
+              </use-login>
             </template>
           </top-search>
         </template>
@@ -62,9 +64,11 @@ import TopSearch from "@/components/search/TopSearch.vue";
 import SearchResultList from '@/components/search/result/list'
 import SearchResultCell from '@/components/search/result/list-item'
 import { useDifferentSearchTypeList } from '@/composables/search-list/index'
+import UseLogin from "../../../components/login/useLogin.vue";
 
 export default {
   components: {
+    UseLogin,
     [Popup.name]: Popup,
     adSingle,
     TopSearch,
@@ -209,6 +213,8 @@ export default {
   }
 
   .subscribe-manage-button {
+    margin-left: 16px;
+    margin-right: 16px;
     color: $black;
     font-size: 18px;
     line-height: 24px;

+ 12 - 5
src/pages/tabbar/mine/index.vue

@@ -39,11 +39,13 @@
               <img class="cell-icon-img" src="https://cdn-common.jianyu360.com/cdn/assets/mini-app/images/icon/icon_area.png">
             </template>
           </van-cell>
-          <van-cell :border="false" is-link title="我的订单" value="查看" @click="goItem('order')">
-            <template #icon>
-              <img class="cell-icon-img" src="https://cdn-common.jianyu360.com/cdn/assets/mini-app/images/icon/icon_order.png">
-            </template>
-          </van-cell>
+          <use-login class="custom-cell-container" @click="goItem('order')" @success="goItem('order')">
+            <van-cell :border="false" is-link title="我的订单" value="查看">
+              <template #icon>
+                <img class="cell-icon-img" src="https://cdn-common.jianyu360.com/cdn/assets/mini-app/images/icon/icon_order.png">
+              </template>
+            </van-cell>
+          </use-login>
         </van-cell-group>
       </div>
 
@@ -318,6 +320,11 @@ export default {
       padding-left: 16px;
     }
 
+    .van-cell__title {
+      line-height: 26px;
+      text-align: left;
+    }
+
     .van-cell-group--inset {
       margin: 0;
     }

+ 1 - 1
src/store/modules/user.js

@@ -78,7 +78,7 @@ export default {
         dispatch('doGetIpArea')
       }
     },
-    async doGetUserOpenId ({ commit, dispatch }, payload) {
+    async doGetUserOpenId ({ commit, dispatch }, payload = {}) {
       const { phone = false } = payload
       await new Promise(resolve => {
         Taro.login({

+ 2 - 0
src/ui/project-cell/index.vue

@@ -388,6 +388,7 @@ export default {
     .title {
       flex: 1;
       font-size: 16px;
+      text-align: left;
     }
     .title-file {
       margin-right: 4px;
@@ -488,6 +489,7 @@ export default {
     font-size: 13px;
     line-height: 20px;
     color: $gray_9;
+    text-align: left;
   }
   .detail-label {
     color: $gray_7;