li.shaoyi před 3 roky
rodič
revize
4eec6bc606

+ 0 - 112
package-lock.json

@@ -41,8 +41,6 @@
         "@vue/cli-plugin-typescript": "~5.0.0",
         "@vue/cli-service": "~5.0.0",
         "@vue/eslint-config-typescript": "^9.1.0",
-        "babel-polyfill": "^6.26.0",
-        "es6-promise": "^4.2.8",
         "eslint": "^7.32.0",
         "eslint-plugin-vue": "^8.0.3",
         "less": "^4.0.0",
@@ -4043,55 +4041,6 @@
         "@babel/core": "^7.0.0-0"
       }
     },
-    "node_modules/babel-polyfill": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
-      "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==",
-      "dev": true,
-      "dependencies": {
-        "babel-runtime": "^6.26.0",
-        "core-js": "^2.5.0",
-        "regenerator-runtime": "^0.10.5"
-      }
-    },
-    "node_modules/babel-polyfill/node_modules/core-js": {
-      "version": "2.6.12",
-      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
-      "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
-      "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
-      "dev": true,
-      "hasInstallScript": true
-    },
-    "node_modules/babel-polyfill/node_modules/regenerator-runtime": {
-      "version": "0.10.5",
-      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
-      "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==",
-      "dev": true
-    },
-    "node_modules/babel-runtime": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
-      "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
-      "dev": true,
-      "dependencies": {
-        "core-js": "^2.4.0",
-        "regenerator-runtime": "^0.11.0"
-      }
-    },
-    "node_modules/babel-runtime/node_modules/core-js": {
-      "version": "2.6.12",
-      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
-      "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
-      "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
-      "dev": true,
-      "hasInstallScript": true
-    },
-    "node_modules/babel-runtime/node_modules/regenerator-runtime": {
-      "version": "0.11.1",
-      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
-      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
-      "dev": true
-    },
     "node_modules/balanced-match": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -5839,12 +5788,6 @@
       "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
       "dev": true
     },
-    "node_modules/es6-promise": {
-      "version": "4.2.8",
-      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
-      "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
-      "dev": true
-    },
     "node_modules/escalade": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -15749,55 +15692,6 @@
         "@babel/helper-define-polyfill-provider": "^0.3.1"
       }
     },
-    "babel-polyfill": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
-      "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.26.0",
-        "core-js": "^2.5.0",
-        "regenerator-runtime": "^0.10.5"
-      },
-      "dependencies": {
-        "core-js": {
-          "version": "2.6.12",
-          "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
-          "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
-          "dev": true
-        },
-        "regenerator-runtime": {
-          "version": "0.10.5",
-          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
-          "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==",
-          "dev": true
-        }
-      }
-    },
-    "babel-runtime": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
-      "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
-      "dev": true,
-      "requires": {
-        "core-js": "^2.4.0",
-        "regenerator-runtime": "^0.11.0"
-      },
-      "dependencies": {
-        "core-js": {
-          "version": "2.6.12",
-          "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
-          "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
-          "dev": true
-        },
-        "regenerator-runtime": {
-          "version": "0.11.1",
-          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
-          "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
-          "dev": true
-        }
-      }
-    },
     "balanced-match": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -17096,12 +16990,6 @@
       "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
       "dev": true
     },
-    "es6-promise": {
-      "version": "4.2.8",
-      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
-      "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
-      "dev": true
-    },
     "escalade": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",

+ 0 - 2
package.json

@@ -43,8 +43,6 @@
     "@vue/cli-plugin-typescript": "~5.0.0",
     "@vue/cli-service": "~5.0.0",
     "@vue/eslint-config-typescript": "^9.1.0",
-    "babel-polyfill": "^6.26.0",
-    "es6-promise": "^4.2.8",
     "eslint": "^7.32.0",
     "eslint-plugin-vue": "^8.0.3",
     "less": "^4.0.0",

+ 5 - 1
src/components/base/modal/index.ts

@@ -3,6 +3,8 @@ import { ref, computed } from 'vue'
 export function useModal(isShow: boolean, delay: number) {
     // 显示隐藏
     const visible = ref(isShow);
+    // 是否过渡动画中
+    const animation = ref(true);
     // 动画类名
     const transitionClass = ref('');
     // 是否阻止鼠标事件
@@ -16,12 +18,13 @@ export function useModal(isShow: boolean, delay: number) {
 
     // 动画切换
     const transition = (isShow: boolean, callback?: () => void) => {
-        if (isShow) visible.value = true
+        if (isShow) visible.value = true;
         window.setTimeout(() => {
             transitionClass.value = isShow ? 'is-show' : 'is-hide';
             // 阻止鼠标事件,防止动画过程中触发事件
             pointerEvents.value = true;
             window.setTimeout(() => {
+                if (isShow) animation.value = false;
                 pointerEvents.value = false;
                 visible.value = isShow;
                 callback && callback();
@@ -36,6 +39,7 @@ export function useModal(isShow: boolean, delay: number) {
 
     return {
         visible,
+        animation,
         transitionClass,
         transitionStyles,
         transition,

+ 3 - 2
src/components/base/modal/index.vue

@@ -5,7 +5,7 @@
             <div :class="['app-modal__mask', transitionClass]" :style="transitionStyles"></div>
             <div :class="['app-modal__wrapper', direction]" @click.self="onMask">
                 <div :class="['app-modal__container', transitionClass]" :style="containerStyles">
-                    <slot></slot>
+                    <slot :animation="animation"></slot>
                 </div>
             </div>
         </div>
@@ -71,7 +71,7 @@ export default defineComponent({
         },
     },
     setup(props, { emit }) {
-        const { visible, transitionClass, transitionStyles, transition } = useModal(props.show, props.delay);
+        const { visible, animation, transitionClass, transitionStyles, transition } = useModal(props.show, props.delay);
 
         const modalStyles = computed(() => ({
             position: props.fixed ? 'fixed' : 'absolute',
@@ -119,6 +119,7 @@ export default defineComponent({
 
         return {
             visible,
+            animation,
             transitionClass,
             transitionStyles,
             modalStyles,

+ 1 - 6
src/packages/mobile/components/base/html-panel/index.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="app-html" v-html="html" v-if="showHtml"></div>
+    <div class="app-html" v-html="html"></div>
 </template>
 
 <script lang="ts" setup>
@@ -14,7 +14,6 @@ const props = defineProps({
 })
 
 const html = shallowRef()
-const showHtml = shallowRef(false)
 const config: AxiosRequestConfig = {
     url: props.url,
     method: 'get',
@@ -22,10 +21,6 @@ const config: AxiosRequestConfig = {
     responseEncoding: 'utf-8'
 }
 
-setTimeout(() => {
-    showHtml.value = true
-}, 200);
-
 axios(config).then((res) => {
     html.value = res.data
 })

+ 0 - 107
src/packages/mobile/components/base/pull-refresh/index copy.vue

@@ -1,107 +0,0 @@
-<template>
-    <PullRefresh class="app-pull-refresh" v-model="refreshing" @refresh="onRefresh">
-        <slot name="header"></slot>
-        <List v-model:loading="loading" v-model:error="showError" :finished="finished" @load="onLoad">
-            <template v-for="(item, index) in dataList" :key="index">
-                <slot :item="item" :index="index"></slot>
-            </template>
-            <template #finished>
-                <span>{{ finishedText }}</span>
-            </template>
-            <template #error>
-                <span>{{ errorText }}</span>
-            </template>
-        </List>
-        <slot name="footer"></slot>
-        {{ loading }}
-    </PullRefresh>
-</template>
-
-<script lang="ts" setup>
-import { shallowRef, computed, nextTick } from 'vue'
-import { List, PullRefresh } from 'vant'
-
-const props = defineProps({
-    updateList: {
-        type: Array,
-        required: true
-    },
-    pageIndex: {
-        type: Number,
-        default: 1,
-    },
-    pageCount: {
-        type: Number,
-        default: 1,
-    },
-    error: {
-        type: Boolean,
-        default: false,
-    },
-    finishedText: {
-        type: String,
-        default: '没有更多了',
-    },
-    errorText: {
-        type: String,
-        default: '请求失败,点击重新加载',
-    }
-})
-
-const emit = defineEmits(['update:pageIndex', 'update:error', 'refresh', 'updated'])
-const refreshing = shallowRef(false) // 是否处于下拉加载状态
-const finished = shallowRef(false) // 是否已加载完成所有数据
-const loading = shallowRef(false)
-// eslint-disable-next-line
-const dataList = shallowRef<any[]>([])
-
-const showError = computed({
-    get: () => props.error,
-    set: (val) => emit('update:error', val)
-})
-
-const currentPage = computed({
-    get: () => props.pageIndex,
-    set: (val) => emit('update:pageIndex', val)
-})
-
-// 上拉加载
-const onLoad = () => {
-    const callback = () => {
-        if (refreshing.value || currentPage.value === 1) {
-            dataList.value = []
-            refreshing.value = false
-        }
-        if (!showError.value) {
-            currentPage.value++
-            dataList.value.push(...props.updateList)
-            emit('updated', dataList.value)
-        }
-        loading.value = false
-    }
-
-    if (refreshing.value) {
-        currentPage.value = 1
-    }
-
-    nextTick(() => {
-        if (currentPage.value <= props.pageCount) {
-            emit('refresh', callback)
-        } else {
-            refreshing.value = false
-            finished.value = true
-        }
-    })
-}
-
-// 下拉刷新
-const onRefresh = () => {
-    finished.value = false
-    loading.value = true
-    onLoad()
-}
-</script>
-
-<style lang="less">
-@import './index.less';
-</style>

+ 4 - 4
src/packages/mobile/components/layouts/page/index.vue

@@ -2,7 +2,7 @@
   <router-view class="app-page" v-slot="{ Component, route }">
     <transition :name="state.transitionName" @leave="onLeave" @after-enter="onAfterEnter">
       <keep-alive :exclude="state.excludeViews">
-        <component :is="handleComponent(Component, route)" :key="$route.fullPath" :animationstart="animationstart" />
+        <component :is="handleComponent(Component, route)" :key="$route.fullPath" :animation="animation" />
       </keep-alive>
     </transition>
   </router-view>
@@ -14,7 +14,7 @@ import { RouteRecordNormalized, RouteRecordName } from 'vue-router'
 import animateRouter from '@mobile/router/animateRouter'
 
 const { state } = animateRouter
-const animationstart = shallowRef(false)
+const animation = shallowRef(false) // 是否过渡动画中
 
 // 手动给组件添加 name 属性,处理缓存 exclude 无效的问题
 const handleComponent = (component: Record<'type', { name: RouteRecordName | undefined }>, route: RouteRecordNormalized) => {
@@ -25,11 +25,11 @@ const handleComponent = (component: Record<'type', { name: RouteRecordName | und
 }
 
 const onLeave = () => {
-  animationstart.value = true
+  animation.value = true
 }
 
 const onAfterEnter = () => {
-  animationstart.value = false
+  animation.value = false
 }
 </script>
 

+ 8 - 0
src/packages/mobile/components/layouts/view/index.less

@@ -5,6 +5,14 @@
     background-color          : #f6f6f6;
     -webkit-overflow-scrolling: touch;
 
+    &__loading {
+        flex            : 1;
+        display         : flex;
+        justify-content : center;
+        align-items     : center;
+        background-color: #fff;
+    }
+
     &__body {
         flex      : 1;
         overflow-y: auto;

+ 21 - 19
src/packages/mobile/components/layouts/view/index.vue

@@ -1,41 +1,43 @@
 <template>
     <div class="app-view">
-        <slot name="header"></slot>
-        <app-scroll-view :class="['app-view__body', flex && 'flex']">
-            <slot></slot>
-        </app-scroll-view>
-        <slot name="footer"></slot>
+        <template v-if="showLoading">
+            <slot name="loading">
+                <Loading class="app-view__loading" color="#0094ff" />
+            </slot>
+        </template>
+        <template v-else>
+            <slot name="header" :animation="animation"></slot>
+            <app-scroll-view :class="['app-view__body', flex && 'flex']">
+                <slot :animation="animation"></slot>
+            </app-scroll-view>
+            <slot name="footer" :animation="animation"></slot>
+        </template>
     </div>
 </template>
 
 <script lang="ts" setup>
-import { watch } from 'vue'
+import { computed } from 'vue'
+import { Loading } from 'vant'
 
 const props = defineProps({
-    // 是否为过渡动画状态
-    animationstart: {
+    // 是否过渡动画中
+    animation: {
         type: Boolean,
         default: false
     },
-    // 过渡动画是否已结束,用于防止动画过程中渲染数据导致页面切换卡顿
-    animationend: {
+    // 是否等待过渡动画,用于防止动画过程中渲染数据导致页面切换卡顿
+    loading: {
         type: Boolean,
         default: true
     },
     flex: {
         type: Boolean,
         default: false
-    }
+    },
 })
 
-const emit = defineEmits(['update:animationend'])
-
-watch(() => props.animationstart, (status) => {
-    if (!status) {
-        emit('update:animationend', true)
-    }
-}, {
-    immediate: true
+const showLoading = computed(() => {
+    return props.loading ? props.animation : false
 })
 </script>
 

+ 0 - 16
src/packages/mobile/router/index.ts

@@ -158,22 +158,6 @@ const routes: Array<RouteRecordRaw> = [
     ]
   },
   {
-    path: '/market',
-    component: Page,
-    children: [
-      {
-        path: '',
-        name: 'market',
-        component: () => import('../views/market/main/index.vue'),
-      },
-      {
-        path: 'detail',
-        name: 'market-detail',
-        component: () => import('../views/market/details/index.vue'),
-      }
-    ]
-  },
-  {
     path: '/bank',
     component: Page,
     children: [

+ 0 - 1
src/packages/mobile/views/goods/details/index.vue

@@ -125,7 +125,6 @@ const goodsImages = computed(() => {
     return pictureurls.split(',').map((path) => getImageUrl(path))
 })
 
-
 // 预售申请列表
 const presaleApplyDeposits = computed(() => {
     const deposits = details.value.presaleapplydeposits ?? []

+ 0 - 7
src/packages/mobile/views/market/details/index.less

@@ -1,7 +0,0 @@
-.order-detail {
-    background-color: #fff !important;
-
-    &__footer {
-        padding: .28rem;
-    }
-}

+ 0 - 49
src/packages/mobile/views/market/details/index.vue

@@ -1,49 +0,0 @@
-<template>
-  <app-view class="order-details">
-    <template #header>
-      <app-navbar title="详情" />
-    </template>
-    <app-tabs :data-list="chartCycleTypeList" :data-index="1" @change="tabChange">
-      <component :is="componentMap.get('echartsTimeline')" goodscode="cu2208"
-        v-if="selectedCycleType === ChartCycleType.Time" />
-      <component :is="componentMap.get('echartsKline')" goodscode="cu2208" :cycle-type="selectedCycleType" v-else />
-    </app-tabs>
-    <Button @click="backTo('home')">返回首页</Button>
-    <template #footer>
-      <div class="order-detail__footer">
-        <Button @click="openComponent('trade')" type="primary" round block>挂牌求购</Button>
-      </div>
-      <component ref="childComponent" :is="componentMap.get(componentId)" @closed="closeComponent" v-if="componentId" />
-    </template>
-  </app-view>
-</template>
-
-<script lang="ts" setup>
-import { defineAsyncComponent, ref } from 'vue'
-import { Button } from 'vant'
-import { useNavigation } from '@/hooks/navigation'
-import { useComponent } from '@/hooks/component'
-import { ChartCycleType, getChartCycleTypeList } from '@/constants/chart'
-import AppTabs from '@/components/base/tabs/index.vue'
-
-const componentMap = new Map<string, unknown>([
-  ['trade', defineAsyncComponent(() => import('@mobile/components/modules/trade/index.vue'))],
-  ['echartsTimeline', defineAsyncComponent(() => import('@mobile/components/modules/echarts-timeline/index.vue'))],
-  ['echartsKline', defineAsyncComponent(() => import('@mobile/components/modules/echarts-kline/index.vue'))]
-])
-
-const { backTo } = useNavigation()
-const { componentId, openComponent, closeComponent } = useComponent()
-const childComponent = ref()
-const selectedCycleType = ref(ChartCycleType.Minutes) // 当前选中的图表周期
-const chartCycleTypeList = getChartCycleTypeList()
-
-// 指标切换
-const tabChange = (index: number) => {
-  selectedCycleType.value = chartCycleTypeList[index].value
-}
-</script>
-
-<style lang="less">
-@import './index.less';
-</style>

+ 0 - 6
src/packages/mobile/views/market/main/index.less

@@ -1,6 +0,0 @@
-.order {
-    .van-search {
-        background-color: transparent;
-        padding-top     : 0;
-    }
-}

+ 0 - 48
src/packages/mobile/views/market/main/index.vue

@@ -1,48 +0,0 @@
-<template>
-  <app-view class="market" v-model:animationend="animationend">
-    <template #header>
-      <app-navbar title="行情">
-        <template #footer>
-          <Search v-model="state.keyword" placeholder="请输入搜索关键词" shape="round" />
-        </template>
-      </app-navbar>
-    </template>
-    <app-pull-refresh v-model:loading="state.loading" v-model:updateList="state.list" @refresh="onRefresh"
-      v-if="animationend">
-      <template v-for="(item, index) in state.list" :key="index">
-        <Cell :title="item" :to="{ name: 'market-detail', params: { id: 1 } }" />
-      </template>
-    </app-pull-refresh>
-  </app-view>
-</template>
-
-<script lang="ts" setup>
-import { ref, reactive } from 'vue'
-import { Search, Cell } from 'vant'
-import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
-
-const state: {
-  list: number[];
-  loading: boolean;
-  keyword: string;
-} = reactive({
-  list: [],
-  loading: false,
-  keyword: ''
-});
-
-const animationend = ref(false)
-
-const onRefresh = (resolve: (data: number[]) => void) => {
-  state.loading = true
-  setTimeout(() => {
-    const data = Array.from({ length: 20 }, (v, k) => k + 1)
-    resolve(data)
-    state.loading = false
-  }, 1000);
-}
-</script>
-
-<style lang="less">
-@import './index.less';
-</style>

+ 33 - 28
src/packages/mobile/views/mine/address/components/edit/index.vue

@@ -1,42 +1,47 @@
 <template>
     <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
-        <app-view class="g-form">
-            <template #header>
-                <app-navbar :title="selectedRow.autoid ? '修改收货地址' : '新增收货地址'" @back="closed" />
-            </template>
-            <Form ref="formRef" class="g-form__container" @submit="formSubmit">
-                <CellGroup inset>
-                    <Field v-model="formData.ReceiverName" :rules="formRules.ReceiverName" name="ReceiverName"
-                        label="收货人" placeholder="必填" />
-                    <Field v-model="formData.PhoneNum" :rules="formRules.PhoneNum" type="tel" name="PhoneNum"
-                        label="联系电话" placeholder="必填" />
-                    <Field :rules="formRules.Region" name="Region" label="收货地区" is-link>
-                        <template #input>
-                            <app-region v-model="formData.DistrictID" :label="regionName" @finish="onRegionFinish" />
-                        </template>
-                    </Field>
-                    <Field v-model="formData.Address" :rules="formRules.Address" name="Address" label="详细地址"
-                        placeholder="必填" />
-                </CellGroup>
-            </Form>
-            <template #footer>
-                <div class="g-form__footer">
-                    <Button type="warning" @click="formDelete" round block v-if="selectedRow.autoid">删除</Button>
-                    <Button type="primary" @click="formRef?.submit" round block>保存</Button>
-                </div>
-            </template>
-        </app-view>
+        <template #default="{ animation }">
+            <app-view class="g-form">
+                <template #header>
+                    <app-navbar :title="selectedRow.autoid ? '修改收货地址' : '新增收货地址'" @back="closed" />
+                </template>
+                <Form ref="formRef" class="g-form__container" @submit="formSubmit">
+                    <CellGroup inset>
+                        <Field v-model="formData.ReceiverName" :rules="formRules.ReceiverName" name="ReceiverName"
+                            label="收货人" placeholder="必填" />
+                        <Field v-model="formData.PhoneNum" :rules="formRules.PhoneNum" type="tel" name="PhoneNum"
+                            label="联系电话" placeholder="必填" />
+                        <Field :rules="formRules.Region" name="Region" label="收货地区" is-link v-if="!animation">
+                            <template #input>
+                                <component :is="AppRegion" v-model="formData.DistrictID" :label="regionName"
+                                    @finish="onRegionFinish" />
+                            </template>
+                        </Field>
+                        <Field v-model="formData.Address" :rules="formRules.Address" name="Address" label="详细地址"
+                            placeholder="必填" />
+                    </CellGroup>
+                </Form>
+                <template #footer>
+                    <div class="g-form__footer">
+                        <Button type="warning" @click="formDelete" round block v-if="selectedRow.autoid">删除</Button>
+                        <Button type="primary" @click="formRef?.submit" round block>保存</Button>
+                    </div>
+                </template>
+            </app-view>
+        </template>
     </app-modal>
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, PropType } from 'vue'
+import { shallowRef, PropType, defineAsyncComponent } from 'vue'
 import { CellGroup, Button, Field, Form, FormInstance, Toast, FieldRule } from 'vant'
 import { fullloading, dialog } from '@/utils/vant'
 import { validateRules } from '@/constants/regex'
 import { useAddressForm } from '@/business/user'
 import AppModal from '@/components/base/modal/index.vue'
-import AppRegion from '@mobile/components/base/region/index.vue'
+
+// 地区选择
+const AppRegion = defineAsyncComponent(() => import('@mobile/components/base/region/index.vue'))
 
 const props = defineProps({
     selectedRow: {

+ 2 - 2
src/services/api/common/index.ts

@@ -12,7 +12,7 @@ import { CommonParams, HttpParams } from '@/services/http/interface'
  * 获取应用更新信息
  */
 export function GetAppUpdateInfo(params: CommonParams<{ rsp: string }>) {
-    return commonRequest('http://47.116.5.81:8012/PhoneService/GetUpdateInfo', 'get', params);
+    return commonRequest('http://47.116.5.81:8022/PhoneService/GetUpdateInfo', 'get', params);
 }
 
 /**
@@ -46,7 +46,7 @@ export function sendResetVerifyCode(params: CommonParams<{ req: Model.SendResetV
 /**
  * 文件上传
  */
- export function uploadFile(params: CommonParams<{ req: Model.uploadFileReq, rsp: Model.uploadFileRsp }>) {
+export function uploadFile(params: CommonParams<{ req: Model.uploadFileReq, rsp: Model.uploadFileRsp }>) {
     return commonRequest(getServiceUrl('uploadUrl'), 'post', params);
 }
 

+ 0 - 1
src/services/http/index.ts

@@ -26,7 +26,6 @@ const httpService = new (class {
                     const { getToken } = useLoginStore()
                     removePending(config) //在请求开始前,对之前的请求做检查取消操作
                     addPending(config) //将当前请求添加到列表中
-                    console.log('Token', getToken())
                     //请求头签名
                     const sign = {
                         token: getToken(),