li.shaoyi 2 سال پیش
والد
کامیت
c00983cfd6
28فایلهای تغییر یافته به همراه223 افزوده شده و 647 حذف شده
  1. 1 1
      oem/qxst/config/appconfig.json
  2. 1 1
      public/config/appconfig.json
  3. 2 2
      src/packages/gstj/views/mine/Index.vue
  4. 0 0
      src/packages/mobile/components/layouts/login/index.less
  5. 109 0
      src/packages/mobile/components/layouts/login/index.vue
  6. 2 2
      src/packages/mobile/views/bank/wallet/Index.vue
  7. 3 3
      src/packages/mobile/views/bank/wallet/components/deposit/Index.vue
  8. 1 1
      src/packages/mobile/views/bank/wallet/components/withdraw/Index.vue
  9. 2 2
      src/packages/mobile/views/mine/Index.vue
  10. 30 18
      src/packages/pc/views/auth/login/index.vue
  11. 5 5
      src/packages/pc/views/footer/capital/summary/deposit/index.vue
  12. 2 2
      src/packages/pc/views/footer/capital/summary/index.vue
  13. 2 2
      src/packages/qdhs/views/mine/Index.vue
  14. 5 78
      src/packages/qdhs/views/user/login/Index.vue
  15. 2 2
      src/packages/qxst/views/mine/Index.vue
  16. 4 73
      src/packages/qxst/views/user/login/Index.vue
  17. 0 87
      src/packages/qxst/views/user/login/index.less
  18. 2 2
      src/packages/sbyj/views/mine/index.vue
  19. 30 12
      src/packages/sbyj/views/user/login/Index.vue
  20. 1 1
      src/packages/sbyj/views/user/login/index.less
  21. 2 2
      src/packages/tc/views/mine/Index.vue
  22. 5 78
      src/packages/tc/views/user/login/Index.vue
  23. 0 96
      src/packages/tc/views/user/login/index.less
  24. 2 2
      src/packages/zrwyt/views/mine/Index.vue
  25. 5 78
      src/packages/zrwyt/views/user/login/Index.vue
  26. 0 96
      src/packages/zrwyt/views/user/login/index.less
  27. 3 1
      src/shims-vue.d.ts
  28. 2 0
      src/stores/modules/position.ts

+ 1 - 1
oem/qxst/config/appconfig.json

@@ -2,7 +2,7 @@
   "appName": "贵茶数字化",
   "version": "1.0.0",
   "versionCode": "100000",
-  "apiUrl": "http://8.130.72.213:8280/cfg?key=mtp_20",
+  "apiUrl": "http://192.168.31.204:8080/cfg?key=test_204",
   "tradeChannel": "ws",
   "modules": [
     "register"

+ 1 - 1
public/config/appconfig.json

@@ -3,7 +3,7 @@
   "version": "1.0.14",
   "versionCode": "100014",
   "apiUrl": "http://192.168.31.204:8080/cfg?key=test_204",
-  "tradeChannel": "http",
+  "tradeChannel": "ws",
   "modules": [
     "register",
     "delivery"

+ 2 - 2
src/packages/gstj/views/mine/Index.vue

@@ -40,8 +40,8 @@
                     </div>
                 </div>
                 <div class="button">
-                    <Button size="small" round @click="doInOutMoney('0')">充值</Button>
-                    <Button type="danger" size="small" round @click="doInOutMoney('1')">提现</Button>
+                    <Button type="danger" size="small" round @click="doInOutMoney('0')">入金</Button>
+                    <Button size="small" round @click="doInOutMoney('1')">提现</Button>
                 </div>
             </div>
         </div>

+ 0 - 0
src/packages/qdhs/views/user/login/index.less → src/packages/mobile/components/layouts/login/index.less


+ 109 - 0
src/packages/mobile/components/layouts/login/index.vue

@@ -0,0 +1,109 @@
+<template>
+  <app-statusbar class="login">
+    <app-navback class="login-navback" />
+    <div class="login-logo">
+      <img :src="logoSrc" />
+    </div>
+    <Form class="login-form" @submit="formSubmit">
+      <CellGroup inset>
+        <Field v-model="formData.userName" name="account" label="用户名" label-align="top" size="large" placeholder="请输入用户名"
+          :rules="[{ required: true, message: '请输入用户名' }]" />
+        <Field v-model="formData.password" name="password" type="password" label="密码" label-align="top" size="large"
+          placeholder="请输入密码" :rules="[{ required: true, message: '请输入密码' }]" autocomplete="off" />
+        <Field>
+          <template #input>
+            <SliderVerify @statu="slide" style="max-width: 100%;margin: auto;" />
+          </template>
+        </Field>
+      </CellGroup>
+      <div class="button-submit">
+        <Button type="primary" native-type="submit" round block>登录</Button>
+      </div>
+    </Form>
+    <div class="login-link">
+      <span @click="navigationTo('user-register')" v-if="service.hasSystemModule('register')">用户注册</span>
+      <span @click="navigationTo('user-forget')">忘记密码</span>
+    </div>
+    <div class="login-footer">
+      <div class="login-footer__trem">
+        <Checkbox shape="square" icon-size=".32rem" v-model="checked">我已阅读并同意</Checkbox>
+        <span @click="routerTo('rules-zcxy')">《用户注册协议》</span>
+        <span>、</span>
+        <span @click="routerTo('rules-yhkhfxgzs')">《用户开户风险告知书》</span>
+        <span>、</span>
+        <span @click="routerTo('rules-yszc')">《隐私政策》</span>
+      </div>
+      <div class="login-footer__version" v-if="plus.getSystemInfo('os') !== 'Web'">
+        <span>v{{ appVersion }}</span>
+      </div>
+    </div>
+  </app-statusbar>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef } from 'vue'
+import { Button, Field, CellGroup, Form, Checkbox, showFailToast, showSuccessToast, showToast } from 'vant'
+import { fullloading } from '@/utils/vant'
+import { useLogin } from '@/business/login'
+import { useNavigation } from '@mobile/router/navigation'
+import service from '@/services'
+import plus from '@/utils/h5plus'
+import SliderVerify from '@/components/base/slider-verify/index.vue' // 临时调用,待优化
+import logoImage from '../../../assets/images/login-logo.png'
+
+defineProps({
+  logoSrc: {
+    type: String,
+    default: logoImage
+  }
+})
+
+const { routerBack, routerTo } = useNavigation()
+const { formData, userLogin } = useLogin()
+const checked = shallowRef(false) // 是否同意协议管理
+const appVersion = plus.getSystemInfo('version') // 应用版本号
+const sliderVerifyStatus = shallowRef(false) // 滑块验证状态
+
+// 导航跳转
+const navigationTo = (name: string) => {
+  fullloading((hideLoading) => {
+    service.onReady().then(() => {
+      hideLoading()
+      routerTo(name)
+    }).catch(() => {
+      showFailToast('初始化失败')
+    })
+  }, '加载中...')
+}
+
+// 滑块验证 
+const slide = (vfcStatu: { statu: string }) => {
+  if (vfcStatu.statu === 'success') {
+    sliderVerifyStatus.value = true
+  } else {
+    sliderVerifyStatus.value = false
+  }
+}
+
+const formSubmit = () => {
+  if (sliderVerifyStatus.value) {
+    if (checked.value) {
+      fullloading((hideLoading) => {
+        userLogin().then(() => {
+          hideLoading()
+          routerBack()
+          showSuccessToast('登录成功')
+        }).catch((err) => {
+          showFailToast(err)
+        })
+      }, '登录中...')
+    } else {
+      showToast('请先同意使用条款')
+    }
+  }
+}
+</script>
+
+<style lang="less">
+@import './index.less';
+</style>

+ 2 - 2
src/packages/mobile/views/bank/wallet/Index.vue

@@ -1,10 +1,10 @@
 <template>
     <app-view>
         <template #header>
-            <app-navbar title="充值提现" />
+            <app-navbar title="入金提现" />
         </template>
         <Tabs v-model:active="active">
-            <Tab title="充值">
+            <Tab title="入金">
                 <app-deposit />
             </Tab>
             <Tab title="提现">

+ 3 - 3
src/packages/mobile/views/bank/wallet/components/deposit/Index.vue

@@ -2,7 +2,7 @@
     <app-view class="g-form bank-wallet-deposit">
         <Form ref="formRef" v-if="cusBank.caninamount === 1" class="g-form__container" @submit="doDepositWarning">
             <CellGroup inset>
-                <Field type="number" v-model="formData.Amount" label="充值金额" placeholder="请填写充值金额"
+                <Field type="number" v-model="formData.Amount" label="入金金额" placeholder="请填写入金金额"
                     :rules="formRules.Amount" />
                 <Field label="凭证" :rules="formRules.filePath">
                     <template #input>
@@ -20,7 +20,7 @@
             <span>{{ msg }}</span>
         </div>
         <div class="g-form__time">
-            <label>充值提现时间:{{ start }} - {{ end }}</label>
+            <label>入金时间:{{ start }} - {{ end }}</label>
         </div>
         <div class="g-form__bank" v-if="false">
             <table cellspacing="10" cellpadding="0">
@@ -95,7 +95,7 @@ const userStore = useUserStore()
 const formRules: { [key in keyof Proto.t2bBankDepositReq | 'filePath']?: FieldRule[] } = {
     Amount: [{
         required: true,
-        message: '请填写充值金额',
+        message: '请填写入金金额',
     }],
     filePath: [{
         message: '请上传转账凭证',

+ 1 - 1
src/packages/mobile/views/bank/wallet/components/withdraw/Index.vue

@@ -34,7 +34,7 @@
             <span>{{ msg }}</span>
         </div>
         <div class="g-form__time">
-            <label>充值提现时间:{{ start }} - {{ end }}</label>
+            <label>提现时间:{{ start }} - {{ end }}</label>
         </div>
         <template #footer>
             <div class="g-form__footer inset">

+ 2 - 2
src/packages/mobile/views/mine/Index.vue

@@ -40,8 +40,8 @@
                     </div>
                 </div>
                 <div class="button">
-                    <Button size="small" round @click="doInOutMoney('0')">充值</Button>
-                    <Button type="danger" size="small" round @click="doInOutMoney('1')">提现</Button>
+                    <Button type="danger" size="small" round @click="doInOutMoney('0')">入金</Button>
+                    <Button size="small" round @click="doInOutMoney('1')">提现</Button>
                 </div>
             </div>
         </div>

+ 30 - 18
src/packages/pc/views/auth/login/index.vue

@@ -13,7 +13,7 @@
         </el-input>
       </el-form-item>
       <el-form-item>
-        <SliderVerify />
+        <SliderVerify @statu="slide" />
       </el-form-item>
       <el-form-item>
         <div class="text-link">
@@ -54,7 +54,7 @@ import service from '@/services'
 import SignLayout from '../components/layout/index.vue'
 import Forget from "../forget/index.vue"
 import AppQrcode from '@/components/base/qrcode/index.vue'
-import SliderVerify from '@/components/base/slider-verify/index.vue'
+import SliderVerify from '@/components/base/slider-verify/index.vue' // 临时调用,待优化
 
 const { formData, userLogin } = useLogin()
 const route = useRoute()
@@ -67,6 +67,7 @@ const islogin = shallowRef(true)
 const isRegister = shallowRef(false)
 const qrContent = shallowRef('')
 const rloading = shallowRef(false)
+const sliderVerifyStatus = shallowRef(false) // 滑块验证状态
 
 const formRules: FormRules = {
   userName: [
@@ -87,25 +88,36 @@ const click = () => {
   })
 }
 
+// 滑块验证 
+const slide = (vfcStatu: { statu: string }) => {
+  if (vfcStatu.statu === 'success') {
+    sliderVerifyStatus.value = true
+  } else {
+    sliderVerifyStatus.value = false
+  }
+}
+
 const formSubmit = () => {
-  formRef.value?.validate(async (valid) => {
-    if (valid) {
-      try {
-        loading.value = true
-        await userLogin()
-        await menuStore.getUserMenuList()
-        const redirect = route.query.redirect
-        if (redirect) {
-          router.replace(redirect.toString())
-        } else {
-          router.replace('/')
+  if (sliderVerifyStatus.value) {
+    formRef.value?.validate(async (valid) => {
+      if (valid) {
+        try {
+          loading.value = true
+          await userLogin()
+          await menuStore.getUserMenuList()
+          const redirect = route.query.redirect
+          if (redirect) {
+            router.replace(redirect.toString())
+          } else {
+            router.replace('/')
+          }
+        } catch (err) {
+          loading.value = false
+          ElMessage.error(err as string)
         }
-      } catch (err) {
-        loading.value = false
-        ElMessage.error(err as string)
       }
-    }
-  })
+    })
+  }
 }
 
 service.systemInfoAsync.then(() => {

+ 5 - 5
src/packages/pc/views/footer/capital/summary/deposit/index.vue

@@ -1,9 +1,9 @@
-<!-- 资金信息-资金汇总-充值 -->
+<!-- 资金信息-资金汇总-入金 -->
 <template>
-    <app-drawer title="充值" :width="500" v-model:show="show" :loading="loading">
+    <app-drawer title="入金" :width="500" v-model:show="show" :loading="loading">
         <el-form ref="formRef" v-if="cusBank.caninamount === 1" class="el-form--vertical" label-width="120px"
             :model="formData" :rules="formRules">
-            <el-form-item prop="Amount" label="充值金额">
+            <el-form-item prop="Amount" label="入金金额">
                 <el-input-number placeholder="请输入" :max="9999999999" :precision="2" v-model="formData.Amount"
                     :rules="formRules.Amount" />
             </el-form-item>
@@ -16,7 +16,7 @@
                     <el-input :name="item.fieldcode" placeholder="请输入" v-model="item.value" />
                 </el-form-item>
             </template>
-            <el-form-item label="充值提现时间:">
+            <el-form-item label="入金提现时间:">
                 <span>{{ start }} - {{ end }}</span>
             </el-form-item>
         </el-form>
@@ -57,7 +57,7 @@ const limitMsg = getSystemParamValue('1002')
 const end = getSystemParamValue('1003') ?? ''
 
 const formRules: FormRules = {
-    Amount: [{ required: true, message: '请输入充值金额' }],
+    Amount: [{ required: true, message: '请输入入金金额' }],
 }
 
 const onUploadChange = (file: { filePath: string }) => {

+ 2 - 2
src/packages/pc/views/footer/capital/summary/index.vue

@@ -17,7 +17,7 @@
         <!-- 展开行 -->
         <template #expand>
             <div class="buttonbar">
-                <el-button type="danger" size="small" @click="doInOutMoney('deposit')">充值</el-button>
+                <el-button type="danger" size="small" @click="doInOutMoney('deposit')">入金</el-button>
                 <el-button type="primary" size="small" @click="doInOutMoney('withdraw')">提现</el-button>
             </div>
         </template>
@@ -42,7 +42,7 @@ import AppTable from '@pc/components/base/table/index.vue'
 import { ElMessage } from 'element-plus'
 
 const componentMap = new Map<string, unknown>([
-    ['deposit', defineAsyncComponent(() => import('./deposit/index.vue'))], // 充值
+    ['deposit', defineAsyncComponent(() => import('./deposit/index.vue'))], // 入金
     ['withdraw', defineAsyncComponent(() => import('./withdraw/index.vue'))], // 提现
 ])
 

+ 2 - 2
src/packages/qdhs/views/mine/Index.vue

@@ -40,8 +40,8 @@
                     </div>
                 </div>
                 <div class="button">
-                    <Button size="small" round @click="doInOutMoney('0')">充值</Button>
-                    <Button type="danger" size="small" round @click="doInOutMoney('1')">出金</Button>
+                    <Button type="danger" size="small" round @click="doInOutMoney('0')">入金</Button>
+                    <Button size="small" round @click="doInOutMoney('1')">出金</Button>
                 </div>
             </div>
         </div>

+ 5 - 78
src/packages/qdhs/views/user/login/Index.vue

@@ -1,86 +1,13 @@
 <template>
-  <app-statusbar class="login">
-    <app-navback class="login-navback" />
-    <div class="login-logo">
-      <img src="../../../assets/images/login-logo.png" />
-    </div>
-    <Form class="login-form" @submit="formSubmit">
-      <CellGroup inset>
-        <Field v-model="formData.userName" name="account" label="用户名" label-align="top" size="large" placeholder="请输入用户名"
-          :rules="[{ required: true, message: '请输入用户名' }]" />
-        <Field v-model="formData.password" name="password" type="password" label="密码" label-align="top" size="large"
-          placeholder="请输入密码" :rules="[{ required: true, message: '请输入密码' }]" autocomplete="off" />
-      </CellGroup>
-      <div class="button-submit">
-        <Button type="primary" native-type="submit" round block>登录</Button>
-      </div>
-    </Form>
-    <div class="login-link">
-      <span @click="navigationTo('user-register')" v-if="service.hasSystemModule('register')">用户注册</span>
-      <span @click="navigationTo('user-forget')">忘记密码</span>
-    </div>
-    <div class="login-footer">
-      <div class="login-footer__trem">
-        <Checkbox shape="square" icon-size=".32rem" v-model="checked">我已阅读并同意</Checkbox>
-        <span @click="routerTo('rules-zcxy')">《用户注册协议》</span>
-        <span>、</span>
-        <span @click="routerTo('rules-yhkhfxgzs')">《用户开户风险告知书》</span>
-        <span>、</span>
-        <span @click="routerTo('rules-yszc')">《隐私政策》</span>
-      </div>
-      <div class="login-footer__version" v-if="plus.getSystemInfo('os') !== 'Web'">
-        <span>v{{ appVersion }}</span>
-      </div>
-    </div>
-  </app-statusbar>
+  <AppLogin :logo-src="logoImage" />
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, onMounted, onUnmounted } from 'vue'
-import { Button, Field, CellGroup, Form, Checkbox, showFailToast, showSuccessToast, showToast } from 'vant'
-import { fullloading } from '@/utils/vant'
-import { useLogin } from '@/business/login'
-import { useNavigation } from '@mobile/router/navigation'
-import service from '@/services'
+import { onMounted, onUnmounted } from 'vue'
 import plus from '@/utils/h5plus'
-
-const { routerBack, routerTo } = useNavigation()
-const { formData, userLogin } = useLogin()
-const checked = shallowRef(false) // 是否同意协议管理
-const appVersion = plus.getSystemInfo('version') // 应用版本号
-
-// 导航跳转
-const navigationTo = (name: string) => {
-  fullloading((hideLoading) => {
-    service.onReady().then(() => {
-      hideLoading()
-      routerTo(name)
-    }).catch(() => {
-      showFailToast('初始化失败')
-    })
-  }, '加载中...')
-}
-
-const formSubmit = () => {
-  if (checked.value) {
-    fullloading((hideLoading) => {
-      userLogin().then(() => {
-        hideLoading()
-        routerBack()
-        showSuccessToast('登录成功')
-      }).catch((err) => {
-        showFailToast(err)
-      })
-    }, '登录中...')
-  } else {
-    showToast('请先同意使用条款')
-  }
-}
+import AppLogin from '@mobile/components/layouts/login/index.vue'
+import logoImage from '../../../assets/images/login-logo.png'
 
 onMounted(() => plus.setStatusBarStyle('dark'))
 onUnmounted(() => plus.setStatusBarStyle('light'))
-</script>
-
-<style lang="less">
-@import './index.less';
-</style>
+</script>

+ 2 - 2
src/packages/qxst/views/mine/Index.vue

@@ -40,8 +40,8 @@
                     </div>
                 </div>
                 <div class="button">
-                    <Button size="small" round @click="doInOutMoney('0')">充值</Button>
-                    <Button type="danger" size="small" round @click="doInOutMoney('1')">提现</Button>
+                    <Button type="danger" size="small" round @click="doInOutMoney('0')">入金</Button>
+                    <Button size="small" round @click="doInOutMoney('1')">提现</Button>
                 </div>
             </div>
         </div>

+ 4 - 73
src/packages/qxst/views/user/login/Index.vue

@@ -1,81 +1,12 @@
 <template>
-  <app-statusbar class="login">
-    <app-navback class="login-navback" />
-    <div class="login-logo">
-      <img src="../../../assets/images/login-logo.png" />
-    </div>
-    <Form class="login-form" @submit="formSubmit">
-      <CellGroup inset>
-        <Field v-model="formData.userName" name="account" label="用户名" label-align="top" size="large" placeholder="请输入用户名"
-          :rules="[{ required: true, message: '请输入用户名' }]" />
-        <Field v-model="formData.password" name="password" type="password" label="密码" label-align="top" size="large"
-          placeholder="请输入密码" :rules="[{ required: true, message: '请输入密码' }]" autocomplete="off" />
-      </CellGroup>
-      <div class="button-submit">
-        <Button type="primary" native-type="submit" round block>登录</Button>
-      </div>
-    </Form>
-    <div class="login-link">
-      <span @click="navigationTo('user-register')">用户注册</span>
-      <span @click="navigationTo('user-forget')">忘记密码</span>
-    </div>
-    <div class="login-footer">
-      <div class="login-footer__trem">
-        <Checkbox shape="square" icon-size=".32rem" v-model="checked">我已阅读并同意</Checkbox>
-        <span @click="routerTo('rules-zcxy')">《用户注册协议》</span>
-        <span>、</span>
-        <span @click="routerTo('rules-yhkhfxgzs')">《用户开户风险告知书》</span>
-        <span>、</span>
-        <span @click="routerTo('rules-yszc')">《隐私政策》</span>
-      </div>
-      <div class="login-footer__version" v-if="plus.getSystemInfo('os') !== 'Web'">
-        <span>v{{ appVersion }}</span>
-      </div>
-    </div>
-  </app-statusbar>
+  <AppLogin :logo-src="logoImage" />
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, onMounted, onUnmounted } from 'vue'
-import { Button, Field, CellGroup, Form, Checkbox, showFailToast, showSuccessToast, showToast } from 'vant'
-import { fullloading } from '@/utils/vant'
-import { useLogin } from '@/business/login'
-import { useNavigation } from '@mobile/router/navigation'
-import service from '@/services'
+import { onMounted, onUnmounted } from 'vue'
 import plus from '@/utils/h5plus'
-
-const { routerBack, routerTo } = useNavigation()
-const { formData, userLogin } = useLogin()
-const checked = shallowRef(false) // 是否同意协议管理
-const appVersion = plus.getSystemInfo('version') // 应用版本号
-
-// 导航跳转
-const navigationTo = (name: string) => {
-  fullloading((hideLoading) => {
-    service.onReady().then(() => {
-      hideLoading()
-      routerTo(name)
-    }).catch(() => {
-      showFailToast('初始化失败')
-    })
-  }, '加载中...')
-}
-
-const formSubmit = () => {
-  if (checked.value) {
-    fullloading((hideLoading) => {
-      userLogin().then(() => {
-        hideLoading()
-        routerBack()
-        showSuccessToast('登录成功')
-      }).catch((err) => {
-        showFailToast(err)
-      })
-    }, '登录中...')
-  } else {
-    showToast('请先同意使用条款')
-  }
-}
+import AppLogin from '@mobile/components/layouts/login/index.vue'
+import logoImage from '../../../assets/images/login-logo.png'
 
 onMounted(() => plus.setStatusBarStyle('dark'))
 onUnmounted(() => plus.setStatusBarStyle('light'))

+ 0 - 87
src/packages/qxst/views/user/login/index.less

@@ -1,96 +1,9 @@
 .login {
-    display: flex;
-    flex-direction: column;
     background: linear-gradient(35deg, #a5d9f4, #fff 65%, #e8f7f1);
 
-    &-navback {
-        >.van-icon {
-            color: #333;
-        }
-    }
-
     &-logo {
-        text-align: center;
-        padding: 1rem 0;
-
         img {
             height: 1.3rem;
         }
     }
-
-    &-form {
-        background-color: #fff;
-        border-radius: .32rem;
-        padding: .32rem;
-        margin: 0 .36rem;
-
-        .van-cell {
-            &::after {
-                display: none;
-            }
-
-            &-group--inset {
-                margin: 0;
-            }
-        }
-
-        .van-field {
-            &__control {
-                background-color: #f3f8fa;
-                border-radius: .1rem;
-                padding: .12rem .2rem;
-            }
-        }
-
-        .button {
-            &-link {
-                display: flex;
-                justify-content: space-between;
-                padding: .32rem 0;
-
-                a {
-                    color: #333;
-                }
-            }
-
-            &-submit {
-                --van-button-primary-background: #00577c;
-                //--van-button-primary-background: linear-gradient(to right, #dc364a, #1973e1);
-                padding: .24rem;
-                padding-top: .48rem;
-            }
-        }
-    }
-
-    &-link {
-        display: flex;
-        justify-content: space-between;
-        font-size: .26rem;
-        padding: .28rem .48rem;
-        margin: 0 .48rem;
-    }
-
-    &-footer {
-        padding: .36rem;
-        margin-top: auto;
-
-        &__trem {
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            flex-wrap: wrap;
-            font-size: .24rem;
-
-            .van-checkbox {
-                margin-right: .12rem;
-            }
-        }
-
-        &__version {
-            font-size: .24rem;
-            color: #999;
-            text-align: center;
-            margin-top: .08rem;
-        }
-    }
 }

+ 2 - 2
src/packages/sbyj/views/mine/index.vue

@@ -40,8 +40,8 @@
                     </div>
                 </div>
                 <div class="button">
-                    <Button size="small" round @click="doInOutMoney('0')">充值</Button>
-                    <Button type="danger" size="small" round @click="doInOutMoney('1')">提现</Button>
+                    <Button type="danger" size="small" round @click="doInOutMoney('0')">入金</Button>
+                    <Button size="small" round @click="doInOutMoney('1')">提现</Button>
                 </div>
             </div>
         </div>

+ 30 - 12
src/packages/sbyj/views/user/login/Index.vue

@@ -10,6 +10,11 @@
           :rules="[{ required: true, message: '请输入用户名' }]" />
         <Field v-model="formData.password" name="password" type="password" label="密码" label-align="top" size="large"
           placeholder="请输入密码" :rules="[{ required: true, message: '请输入密码' }]" autocomplete="off" />
+        <Field>
+          <template #input>
+            <SliderVerify @statu="slide" style="max-width: 100%;margin: auto;" />
+          </template>
+        </Field>
       </CellGroup>
     </Form>
     <div class="login-link">
@@ -43,12 +48,14 @@ import { useLogin } from '@/business/login'
 import { useNavigation } from '@mobile/router/navigation'
 import service from '@/services'
 import plus from '@/utils/h5plus'
+import SliderVerify from '@/components/base/slider-verify/index.vue' // 临时调用,待优化
 
 const { routerBack, routerTo } = useNavigation()
 const { formData, userLogin } = useLogin()
 const formRef = shallowRef<FormInstance>()
 const checked = shallowRef(false) // 是否同意协议管理
 const appVersion = plus.getSystemInfo('version') // 应用版本号
+const sliderVerifyStatus = shallowRef(false) // 滑块验证状态
 
 // 导航跳转
 const navigationTo = (name: string) => {
@@ -62,19 +69,30 @@ const navigationTo = (name: string) => {
   }, '加载中...')
 }
 
-const formSubmit = () => {
-  if (checked.value) {
-    fullloading((hideLoading) => {
-      userLogin().then(() => {
-        hideLoading()
-        routerBack()
-        showSuccessToast('登录成功')
-      }).catch((err) => {
-        showFailToast(err)
-      })
-    }, '登录中...')
+// 滑块验证 
+const slide = (vfcStatu: { statu: string }) => {
+  if (vfcStatu.statu === 'success') {
+    sliderVerifyStatus.value = true
   } else {
-    showToast('请先同意使用条款')
+    sliderVerifyStatus.value = false
+  }
+}
+
+const formSubmit = () => {
+  if (sliderVerifyStatus.value) {
+    if (checked.value) {
+      fullloading((hideLoading) => {
+        userLogin().then(() => {
+          hideLoading()
+          routerBack()
+          showSuccessToast('登录成功')
+        }).catch((err) => {
+          showFailToast(err)
+        })
+      }, '登录中...')
+    } else {
+      showToast('请先同意使用条款')
+    }
   }
 }
 

+ 1 - 1
src/packages/sbyj/views/user/login/index.less

@@ -1,7 +1,7 @@
 .login {
     display: flex;
     flex-direction: column;
-    background-color: #fff;
+    background: #fff;
 
     &::before {
         content: '';

+ 2 - 2
src/packages/tc/views/mine/Index.vue

@@ -40,8 +40,8 @@
                     </div>
                 </div>
                 <div class="button">
-                    <Button size="small" round @click="doInOutMoney('0')">充值</Button>
-                    <Button type="danger" size="small" round @click="doInOutMoney('1')">提现</Button>
+                    <Button type="danger" size="small" round @click="doInOutMoney('0')">入金</Button>
+                    <Button size="small" round @click="doInOutMoney('1')">提现</Button>
                 </div>
             </div>
         </div>

+ 5 - 78
src/packages/tc/views/user/login/Index.vue

@@ -1,86 +1,13 @@
 <template>
-  <app-statusbar class="login">
-    <app-navback class="login-navback" />
-    <div class="login-logo">
-      <img src="../../../assets/images/login-logo.png" />
-    </div>
-    <Form class="login-form" @submit="formSubmit">
-      <CellGroup inset>
-        <Field v-model="formData.userName" name="account" label="用户名" label-align="top" size="large" placeholder="请输入用户名"
-          :rules="[{ required: true, message: '请输入用户名' }]" />
-        <Field v-model="formData.password" name="password" type="password" label="密码" label-align="top" size="large"
-          placeholder="请输入密码" :rules="[{ required: true, message: '请输入密码' }]" autocomplete="off" />
-      </CellGroup>
-      <div class="button-submit">
-        <Button type="primary" native-type="submit" round block>登录</Button>
-      </div>
-    </Form>
-    <div class="login-link">
-      <span @click="navigationTo('user-register')">用户注册</span>
-      <span @click="navigationTo('user-forget')">忘记密码</span>
-    </div>
-    <div class="login-footer">
-      <div class="login-footer__trem">
-        <Checkbox shape="square" icon-size=".32rem" v-model="checked">我已阅读并同意</Checkbox>
-        <span @click="routerTo('rules-zcxy')">《用户注册协议》</span>
-        <span>、</span>
-        <span @click="routerTo('rules-yhkhfxgzs')">《用户开户风险告知书》</span>
-        <span>、</span>
-        <span @click="routerTo('rules-yszc')">《隐私政策》</span>
-      </div>
-      <div class="login-footer__version" v-if="plus.getSystemInfo('os') !== 'Web'">
-        <span>v{{ appVersion }}</span>
-      </div>
-    </div>
-  </app-statusbar>
+  <AppLogin :logo-src="logoImage" />
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, onMounted, onUnmounted } from 'vue'
-import { Button, Field, CellGroup, Form, Checkbox, showFailToast, showSuccessToast, showToast } from 'vant'
-import { fullloading } from '@/utils/vant'
-import { useLogin } from '@/business/login'
-import { useNavigation } from '@mobile/router/navigation'
-import service from '@/services'
+import { onMounted, onUnmounted } from 'vue'
 import plus from '@/utils/h5plus'
-
-const { routerBack, routerTo } = useNavigation()
-const { formData, userLogin } = useLogin()
-const checked = shallowRef(false) // 是否同意协议管理
-const appVersion = plus.getSystemInfo('version') // 应用版本号
-
-// 导航跳转
-const navigationTo = (name: string) => {
-  fullloading((hideLoading) => {
-    service.onReady().then(() => {
-      hideLoading()
-      routerTo(name)
-    }).catch(() => {
-      showFailToast('初始化失败')
-    })
-  }, '加载中...')
-}
-
-const formSubmit = () => {
-  if (checked.value) {
-    fullloading((hideLoading) => {
-      userLogin().then(() => {
-        hideLoading()
-        routerBack()
-        showSuccessToast('登录成功')
-      }).catch((err) => {
-        showFailToast(err)
-      })
-    }, '登录中...')
-  } else {
-    showToast('请先同意使用条款')
-  }
-}
+import AppLogin from '@mobile/components/layouts/login/index.vue'
+import logoImage from '../../../assets/images/login-logo.png'
 
 onMounted(() => plus.setStatusBarStyle('dark'))
 onUnmounted(() => plus.setStatusBarStyle('light'))
-</script>
-
-<style lang="less">
-@import './index.less';
-</style>
+</script>

+ 0 - 96
src/packages/tc/views/user/login/index.less

@@ -1,96 +0,0 @@
-.login {
-    display: flex;
-    flex-direction: column;
-    background: linear-gradient(35deg, #a5d9f4, #fff 65%, #f8e7e7);
-
-    &-navback {
-        >.van-icon {
-            color: #333;
-        }
-    }
-
-    &-logo {
-        text-align: center;
-        padding: 1rem 0;
-
-        img {
-            height: 1.2rem;
-        }
-    }
-
-    &-form {
-        background-color: #fff;
-        border-radius: .32rem;
-        padding: .32rem;
-        margin: 0 .36rem;
-
-        .van-cell {
-            &::after {
-                display: none;
-            }
-
-            &-group--inset {
-                margin: 0;
-            }
-        }
-
-        .van-field {
-            &__control {
-                background-color: #f3f8fa;
-                border-radius: .1rem;
-                padding: .12rem .2rem;
-            }
-        }
-
-        .button {
-            &-link {
-                display: flex;
-                justify-content: space-between;
-                padding: .32rem 0;
-
-                a {
-                    color: #333;
-                }
-            }
-
-            &-submit {
-                --van-button-primary-background: #00577c;
-                //--van-button-primary-background: linear-gradient(to right, #dc364a, #1973e1);
-                padding: .24rem;
-                padding-top: .48rem;
-            }
-        }
-    }
-
-    &-link {
-        display: flex;
-        justify-content: space-between;
-        font-size: .26rem;
-        padding: .28rem .48rem;
-        margin: 0 .48rem;
-    }
-
-    &-footer {
-        padding: .36rem;
-        margin-top: auto;
-
-        &__trem {
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            flex-wrap: wrap;
-            font-size: .24rem;
-
-            .van-checkbox {
-                margin-right: .12rem;
-            }
-        }
-
-        &__version {
-            font-size: .24rem;
-            color: #999;
-            text-align: center;
-            margin-top: .08rem;
-        }
-    }
-}

+ 2 - 2
src/packages/zrwyt/views/mine/Index.vue

@@ -40,8 +40,8 @@
                     </div>
                 </div>
                 <div class="button">
-                    <Button size="small" round @click="doInOutMoney('0')">充值</Button>
-                    <Button type="danger" size="small" round @click="doInOutMoney('1')">提现</Button>
+                    <Button type="danger" size="small" round @click="doInOutMoney('0')">入金</Button>
+                    <Button size="small" round @click="doInOutMoney('1')">提现</Button>
                 </div>
             </div>
         </div>

+ 5 - 78
src/packages/zrwyt/views/user/login/Index.vue

@@ -1,86 +1,13 @@
 <template>
-  <app-statusbar class="login">
-    <app-navback class="login-navback" />
-    <div class="login-logo">
-      <img src="../../../assets/images/login-logo.png" />
-    </div>
-    <Form class="login-form" @submit="formSubmit">
-      <CellGroup inset>
-        <Field v-model="formData.userName" name="account" label="用户名" label-align="top" size="large" placeholder="请输入用户名"
-          :rules="[{ required: true, message: '请输入用户名' }]" />
-        <Field v-model="formData.password" name="password" type="password" label="密码" label-align="top" size="large"
-          placeholder="请输入密码" :rules="[{ required: true, message: '请输入密码' }]" autocomplete="off" />
-      </CellGroup>
-      <div class="button-submit">
-        <Button type="primary" native-type="submit" round block>登录</Button>
-      </div>
-    </Form>
-    <div class="login-link">
-      <span @click="navigationTo('user-register')">用户注册</span>
-      <span @click="navigationTo('user-forget')">忘记密码</span>
-    </div>
-    <div class="login-footer">
-      <div class="login-footer__trem">
-        <Checkbox shape="square" icon-size=".32rem" v-model="checked">我已阅读并同意</Checkbox>
-        <span @click="routerTo('rules-zcxy')">《用户注册协议》</span>
-        <span>、</span>
-        <span @click="routerTo('rules-yhkhfxgzs')">《用户开户风险告知书》</span>
-        <span>、</span>
-        <span @click="routerTo('rules-yszc')">《隐私政策》</span>
-      </div>
-      <div class="login-footer__version" v-if="plus.getSystemInfo('os') !== 'Web'">
-        <span>v{{ appVersion }}</span>
-      </div>
-    </div>
-  </app-statusbar>
+  <AppLogin :logo-src="logoImage" />
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, onMounted, onUnmounted } from 'vue'
-import { Button, Field, CellGroup, Form, Checkbox, showFailToast, showSuccessToast, showToast } from 'vant'
-import { fullloading } from '@/utils/vant'
-import { useLogin } from '@/business/login'
-import { useNavigation } from '@mobile/router/navigation'
-import service from '@/services'
+import { onMounted, onUnmounted } from 'vue'
 import plus from '@/utils/h5plus'
-
-const { routerBack, routerTo } = useNavigation()
-const { formData, userLogin } = useLogin()
-const checked = shallowRef(false) // 是否同意协议管理
-const appVersion = plus.getSystemInfo('version') // 应用版本号
-
-// 导航跳转
-const navigationTo = (name: string) => {
-  fullloading((hideLoading) => {
-    service.onReady().then(() => {
-      hideLoading()
-      routerTo(name)
-    }).catch(() => {
-      showFailToast('初始化失败')
-    })
-  }, '加载中...')
-}
-
-const formSubmit = () => {
-  if (checked.value) {
-    fullloading((hideLoading) => {
-      userLogin().then(() => {
-        hideLoading()
-        routerBack()
-        showSuccessToast('登录成功')
-      }).catch((err) => {
-        showFailToast(err)
-      })
-    }, '登录中...')
-  } else {
-    showToast('请先同意使用条款')
-  }
-}
+import AppLogin from '@mobile/components/layouts/login/index.vue'
+import logoImage from '../../../assets/images/login-logo.png'
 
 onMounted(() => plus.setStatusBarStyle('dark'))
 onUnmounted(() => plus.setStatusBarStyle('light'))
-</script>
-
-<style lang="less">
-@import './index.less';
-</style>
+</script>

+ 0 - 96
src/packages/zrwyt/views/user/login/index.less

@@ -1,96 +0,0 @@
-.login {
-    display: flex;
-    flex-direction: column;
-    background: linear-gradient(35deg, #a5d9f4, #fff 65%, #f8e7e7);
-
-    &-navback {
-        >.van-icon {
-            color: #333;
-        }
-    }
-
-    &-logo {
-        text-align: center;
-        padding: 1rem 0;
-
-        img {
-            height: 1.2rem;
-        }
-    }
-
-    &-form {
-        background-color: #fff;
-        border-radius: .32rem;
-        padding: .32rem;
-        margin: 0 .36rem;
-
-        .van-cell {
-            &::after {
-                display: none;
-            }
-
-            &-group--inset {
-                margin: 0;
-            }
-        }
-
-        .van-field {
-            &__control {
-                background-color: #f3f8fa;
-                border-radius: .1rem;
-                padding: .12rem .2rem;
-            }
-        }
-
-        .button {
-            &-link {
-                display: flex;
-                justify-content: space-between;
-                padding: .32rem 0;
-
-                a {
-                    color: #333;
-                }
-            }
-
-            &-submit {
-                --van-button-primary-background: #00577c;
-                //--van-button-primary-background: linear-gradient(to right, #dc364a, #1973e1);
-                padding: .24rem;
-                padding-top: .48rem;
-            }
-        }
-    }
-
-    &-link {
-        display: flex;
-        justify-content: space-between;
-        font-size: .26rem;
-        padding: .28rem .48rem;
-        margin: 0 .48rem;
-    }
-
-    &-footer {
-        padding: .36rem;
-        margin-top: auto;
-
-        &__trem {
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            flex-wrap: wrap;
-            font-size: .24rem;
-
-            .van-checkbox {
-                margin-right: .12rem;
-            }
-        }
-
-        &__version {
-            font-size: .24rem;
-            color: #999;
-            text-align: center;
-            margin-top: .08rem;
-        }
-    }
-}

+ 3 - 1
src/shims-vue.d.ts

@@ -19,4 +19,6 @@ declare module 'worker-loader!*' {
 
 declare module 'element-plus/dist/locale/zh-cn.mjs'
 declare module 'hqchart'
-declare module 'protobufjs'
+declare module 'protobufjs'
+declare module '*.jpg'
+declare module '*.png'

+ 2 - 0
src/stores/modules/position.ts

@@ -64,6 +64,8 @@ export const usePositionStore = defineStore(() => {
     // 接收头寸变化通知
     const posChangedNtf = eventBus.$on('PosChangedNtf', () => getTradePosition())
 
+    // 接收登出通知清空数据
+
     return {
         ...toRefs(state),
         getTradePosition,