Browse Source

fix(cell、grid): cdn router warn bug #1070

richard1015 3 years ago
parent
commit
e1c35b8f01

+ 5 - 20
src/packages/__VUE/cell/index.vue

@@ -1,11 +1,7 @@
 <template>
   <view :class="classes" :style="baseStyle" @click="handleClick">
     <slot>
-      <view
-        class="nut-cell__title"
-        :class="{ icon: icon || $slots.icon }"
-        v-if="title || subTitle || icon"
-      >
+      <view class="nut-cell__title" :class="{ icon: icon || $slots.icon }" v-if="title || subTitle || icon">
         <slot v-if="$slots.icon" name="icon"></slot>
         <nut-icon v-else-if="icon" class="icon" :name="icon"></nut-icon>
         <template v-if="subTitle">
@@ -16,19 +12,10 @@
           {{ title }}
         </template>
       </view>
-      <view
-        v-if="desc"
-        class="nut-cell__value"
-        :style="{ 'text-align': descTextAlign }"
-        >{{ desc }}</view
-      >
+      <view v-if="desc" class="nut-cell__value" :style="{ 'text-align': descTextAlign }">{{ desc }}</view>
 
       <slot v-if="$slots.link" name="link"></slot>
-      <nut-icon
-        v-else-if="isLink || to"
-        class="nut-cell__link"
-        name="right"
-      ></nut-icon>
+      <nut-icon v-else-if="isLink || to" class="nut-cell__link" name="right"></nut-icon>
     </slot>
   </view>
 </template>
@@ -36,7 +23,7 @@
 <script lang="ts">
 import { computed } from 'vue';
 import { createComponent } from '../../utils/create';
-import { useRouter } from 'vue-router';
+import { useRouter } from '@/packages/utils/useRoute';
 import { pxCheck } from '@/packages/utils/pxCheck';
 const { componentName, create } = createComponent('cell');
 export default create({
@@ -80,9 +67,7 @@ export default create({
         //    router.push(props.to)
         // }
       } else if (props.url) {
-        props.replace
-          ? location.replace(props.url)
-          : (location.href = props.url);
+        props.replace ? location.replace(props.url) : (location.href = props.url);
       }
     };
 

+ 1 - 1
src/packages/__VUE/griditem/index.vue

@@ -17,7 +17,7 @@
 
 <script lang="ts">
 import { computed, CSSProperties } from 'vue';
-import { useRouter } from 'vue-router';
+import { useRouter } from '@/packages/utils/useRoute';
 import { createComponent } from '../../utils/create';
 import { pxCheck } from '../../utils/pxCheck';
 import { useInject } from '../../utils/useRelation/useInject';

+ 6 - 2
src/packages/__VUE/tabbaritem/index.vue

@@ -41,7 +41,7 @@
 </template>
 <script lang="ts">
 import { createComponent } from '../../utils/create';
-import { useRouter } from 'vue-router';
+import { useRouter } from '@/packages/utils/useRoute';
 import { ComponentInternalInstance, computed, getCurrentInstance, inject, onMounted, reactive, watch } from 'vue';
 const { create } = createComponent('tabbar-item');
 export default create({
@@ -119,7 +119,11 @@ export default create({
         }
         if (parent.children[value].to) {
           let to = parent.children[value].to;
-          router.push(to);
+          if (to && router) {
+            router.push(to);
+          } else {
+            location.replace(to);
+          }
         }
       });
     });

+ 6 - 0
src/packages/utils/useRoute/index.ts

@@ -0,0 +1,6 @@
+import { getCurrentInstance } from 'vue';
+
+export function useRouter() {
+  const proxy = getCurrentInstance()!.proxy as any;
+  return proxy.$router || null;
+}