ljc 3 tygodni temu
rodzic
commit
7ac71e0c47

+ 2 - 2
components/cwg-combox.vue

@@ -55,7 +55,7 @@ const emit = defineEmits(['update:value', 'change'])
  * 内部状态
  */
 const innerValue = ref(props.value)
-const innerText = ref(t('placeholder.choose'))
+const innerText = ref()
 
 /**
  * 提取 text 列表(给 combox 用)
@@ -139,7 +139,7 @@ const handleComboxChange = (text) => {
 
 .cwg-combox {
     font-size: px2rpx(16);
-    background-color: var(--bs-secondary-bg);
+    //background-color: var(--bs-secondary-bg);
 
     /* 穿透修改 uni-data-select 内部列表最大高度,使其可以滚动 */
     :deep(.uni-select__selector-scroll) {

+ 51 - 3
components/cwg-complex-search.vue

@@ -3,7 +3,7 @@
         <!-- PC/平板端:直接显示表单 -->
         <cwg-match-media :min-width="991">
             <view class="search-bar search-form">
-                <view v-for="(row, rowIndex) in formRows" :key="rowIndex" class="form-row">
+                <view v-for="(row, rowIndex) in displayRows" :key="rowIndex" class="form-row">
                     <view v-for="field in row" :key="field.key" class="form-item">
                         <view class="search-bar">
                             <!-- 根据字段类型渲染不同组件 -->
@@ -41,7 +41,9 @@
                     </view>
                 </view>
                 <view class="form-actions">
-                    <!-- <button class="reset-btn" @click="resetForm" v-t="'Documentary.tradingCenter.item4'" /> -->
+                    <button v-if="hasMoreFields" class="search-btn" @click="toggleShowAll">
+                        <text>{{ showAllFields ? t('Btn.Hide') : t('Btn.More') }}</text>
+                    </button>
                     <button class="search-btn" @click="handleSearch" v-t="'Btn.Search'" />
                 </view>
             </view>
@@ -194,6 +196,8 @@ const formData = ref({})
 const tempFormData = ref({})
 // 移动端弹窗是否可见
 const visible = ref(false)
+// 是否显示所有字段
+const showAllFields = ref(false)
 
 // 将字段按列数分组(仅用于PC布局)
 const formRows = computed(() => {
@@ -203,6 +207,29 @@ const formRows = computed(() => {
     }
     return rows
 })
+const winWidth = computed(() => {
+  console.log(window.innerWidth)
+  return window.innerWidth
+})
+
+// 显示的行(根据 showAllFields 决定)
+const displayRows = computed(() => {
+    if (showAllFields.value) {
+        return formRows.value
+    }
+    // 默认只显示第一行
+   return  winWidth.value>1500 ?formRows.value.slice(0,4):formRows.value.slice(0,3)
+})
+
+// 是否有更多字段可以展开
+const hasMoreFields = computed(() => {
+    return formRows.value.length > 3
+})
+
+// 切换显示/隐藏状态
+const toggleShowAll = () => {
+    showAllFields.value = !showAllFields.value
+}
 
 const selectChip = (key, value) => {
     // 如果点击的是当前已选中的项,可以保持不变,也可以置空(根据需求)
@@ -439,15 +466,36 @@ onMounted(() => {
     .form-actions {
         display: flex;
         justify-content: flex-end;
+        align-items: center;
         gap: px2rpx(10);
 
         .reset-btn,
         .search-btn {
             background-color: var(--btn-color);
-          color: var(--btn-color);
             line-height: px2rpx(35);
             font-size: px2rpx(14);
         }
+
+        .toggle-btn {
+            display: inline-flex;
+            align-items: center;
+            gap: px2rpx(4);
+            background: transparent;
+            border: none;
+            color: #666;
+            font-size: px2rpx(14);
+            line-height: px2rpx(35);
+            padding: 0 px2rpx(12);
+            cursor: pointer;
+
+            &::after {
+                border: none;
+            }
+
+            &:active {
+                opacity: 0.7;
+            }
+        }
     }
 }
 

+ 3 - 1
locale/cn.json

@@ -710,7 +710,9 @@
     "Single": "[详情]",
     "AgainApply": "重新申请",
     "ResetPassword": "重置交易密码",
-    "Upload": "上传文件"
+    "Upload": "上传文件",
+    "More": "更多",
+    "Hide": "隐藏"
   },
   "State": {
     "ToBeProcessed": "待处理",

+ 3 - 1
locale/en.json

@@ -697,7 +697,9 @@
     "AgainApply": "Re-apply",
     "ResetPassword": "Reset Trading Password",
     "Upload": "Upload Files",
-    "Search": "Search"
+    "Search": "Search",
+    "More": "More",
+    "Hide": "Hide"
   },
   "State": {
     "ToCertified": "Video Verification",

+ 37 - 78
pages/follow/index.vue

@@ -3,48 +3,17 @@
     <cwg-header :title="t('Documentary.console.item1')" :showBack="false" />
     <uni-loading v-if="loading" />
     <uni-row v-else class="demo-uni-row uni-row1" :gutter="20">
+      <uni-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24" class="mb-3">
+        <cwg-combox :clearable="false" :filterable="true" v-model:value="login"
+                    :options="loginOptions.map(item => ({
+                    text: item.platform + ' - ' + item.login + ' - ' + groupTypeName(item.type) + ' - ' + t('Custom.Deposit.AvailableBalance') + groupCurrency(item.currency) + item.balance,
+                    value: item
+                  }))" :placeholder="locale === 'es'?'Selecciona':t('placeholder.choose')" @change="handleCommand"/>
+
+      </uni-col>
       <uni-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="uni-col-left">
         <uni-row :gutter="10">
-          <uni-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <view class="custom-number">
-              <view class="title">
-                <view class="tit">
-                  <text>{{ t('Documentary.console.item4') }}</text>
-                </view>
-                <view class="select">
-                  <cwg-dropdown :menu-list="loginOptions.map(item => ({
-                    label: item.platform + ' - ' + item.login + ' - ' + groupTypeName(item.type) + ' - ' + t('Custom.Deposit.AvailableBalance') + groupCurrency(item.currency) + item.balance,
-                    value: item
-                  }))" @menuClick="handleCommand">
-                    <view class="el-dropdown-link crm-cursor">
-                      <text v-if="locale === 'es'">Selecciona</text>
-                      <text v-else>{{ t('placeholder.choose') }}</text>
-                      <cwg-icon name="crm-chevron-down" :size="14" color="#6c8595" />
-                    </view>
-                  </cwg-dropdown>
-                </view>
-              </view>
-              <view class="content" style="
-                  height: 40px;
-                  display: inline-block;
-                  font-size: 15px;
-                  color: #eb3f57;
-                  font-weight: bold;
-                ">
-                <view style="margin-bottom: 5px">
-                  {{ ChartSet.platform || '--' }} - {{ ChartSet.login || '--' }} -
-                  {{ groupTypeName(ChartSet.type) || '--' }}
-                </view>
-                <view>
-                  <text>{{ t('Custom.Deposit.AvailableBalance') }}</text>
-                  :
-                  {{ groupCurrency1(ChartSet.currency) }}
-                  {{ numberFormat(ChartSet.balance || '0.00') }}
-                </view>
-              </view>
-            </view>
-          </uni-col>
-          <uni-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+          <uni-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
             <view class="custom-money">
               <view class="left">
                 <view class="tit">
@@ -56,7 +25,8 @@
               </view>
             </view>
           </uni-col>
-          <uni-col :xs="24" :sm="12" :md="isDealLogin ? 8 : 12" :lg="isDealLogin ? 4 : 6" :xl="isDealLogin ? 4 : 6">
+<!--          <uni-col :xs="24" :sm="12" :md="isDealLogin ? 8 : 12" :lg="isDealLogin ? 4 : 6" :xl="isDealLogin ? 4 : 6">-->
+          <uni-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
             <view class="custom-money">
               <view class="left">
                 <view class="tit">
@@ -76,7 +46,8 @@
               </view>
             </view>
           </uni-col>
-          <uni-col :xs="24" :sm="12" :md="isDealLogin ? 8 : 12" :lg="isDealLogin ? 4 : 6" :xl="isDealLogin ? 4 : 6">
+<!--          <uni-col :xs="24" :sm="12" :md="isDealLogin ? 8 : 12" :lg="isDealLogin ? 4 : 6" :xl="isDealLogin ? 4 : 6">-->
+          <uni-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
             <view class="custom-money">
               <view class="left">
                 <view class="tit">
@@ -96,26 +67,26 @@
               </view>
             </view>
           </uni-col>
-          <uni-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4" v-if="isDealLogin">
-            <view class="custom-money">
-              <view class="left">
-                <view class="tit">
-                  <text>{{ t('Documentary.console.item8') }}</text>
-                </view>
-                <view class="num">
-                  <text>{{ numberFormat(ChartSetDate.profit || '0.00') }}</text>
-                </view>
-              </view>
-              <view class="right">
-                <view class="tit">
-                  <text>{{ t('Documentary.console.item9') }}</text>
-                </view>
-                <view class="num">
-                  <text>{{ numberFormat(ChartSetDate.profitIncrement || '0.00') }}</text>
-                </view>
-              </view>
-            </view>
-          </uni-col>
+<!--          <uni-col :xs="24" :sm="12" :md="8" :lg="4" :xl="4" v-if="isDealLogin">-->
+<!--            <view class="custom-money">-->
+<!--              <view class="left">-->
+<!--                <view class="tit">-->
+<!--                  <text>{{ t('Documentary.console.item8') }}</text>-->
+<!--                </view>-->
+<!--                <view class="num">-->
+<!--                  <text>{{ numberFormat(ChartSetDate.profit || '0.00') }}</text>-->
+<!--                </view>-->
+<!--              </view>-->
+<!--              <view class="right">-->
+<!--                <view class="tit">-->
+<!--                  <text>{{ t('Documentary.console.item9') }}</text>-->
+<!--                </view>-->
+<!--                <view class="num">-->
+<!--                  <text>{{ numberFormat(ChartSetDate.profitIncrement || '0.00') }}</text>-->
+<!--                </view>-->
+<!--              </view>-->
+<!--            </view>-->
+<!--          </uni-col>-->
         </uni-row>
       </uni-col>
       <uni-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="uni-col-right">
@@ -276,6 +247,7 @@ const getCustomLoginDown = async () => {
   if (res.code === Code.StatusOK) {
     if (res.data?.length > 0) {
       const options = res.data[0]
+      login.value = res.data[0]
       loginOptions.value = res.data
       isDealLogin.value = options.isDealLogin
       ChartSet.value = {
@@ -299,6 +271,7 @@ const ChartSetDate = ref({})
 const isDealLogin = ref(false)
 const dealDate = ref({})
 const SubscribeProfitDate = ref([])
+const login = ref('')
 
 const groupTypeName = (type) => {
   if (!type) return '--'
@@ -326,23 +299,9 @@ const groupCurrency = (type) => {
   }
 }
 
-const groupCurrency1 = (type) => {
-  if (type == "GBP") {
-    return "£";
-  } else if (type == "USD") {
-    return "$";
-  } else if (type == "EUR") {
-    return "€";
-  } else if (type == "USC") {
-    return "¢";
-  } else {
-    return "$";
-  }
-}
 
-const handleCommand = ({ value }) => {
-  const data = { ...value.value }
-  console.log(123, data)
+const handleCommand = (value) => {
+  const data = { ...value }
 
   isDealLogin.value = data.isDealLogin
   ChartSet.value = {

+ 2 - 2
pages/login/reset.vue

@@ -17,8 +17,8 @@
           <image v-else src="/static/images/vu/logo-full-white.svg" class="company-icon" mode="widthFix"></image>
         </view>
         <uni-row class="content">
-          <uni-col :span="20" :offset="2" :sm="{ span: 14, offset: 5 }">
-            <view class="reset-title">{{ t('pages.login.resetTitle') }}</view>
+          <uni-col :span="20" :offset="2" :lg="{ span: 10, offset: 7 }">
+            <view class="reset-title">{{ t('forget.title') }}</view>
             <view class="reset-form">
               <view class="form-label">{{ t('forget.form') }}</view>
               <uni-easyinput v-model="email" :placeholder="t('newSignup.item7')" class="custom-input">

+ 2 - 2
pages/mine/components/FileManagementTab.vue

@@ -1,7 +1,7 @@
 <template>
     <view>
-        <view class="content-title" v-t="'PersonalManagement.Title.FileManagement'"></view>
-        <view class="content-title" v-if="current != 3">
+<!--        <view class="content-title" v-t="'PersonalManagement.Title.FileManagement'"></view>-->
+        <view class="content-title">
             <view/>
             <view class="content-title-btns">
                 <view v-if="!isSHowBtn.isSHowIdentity" class="btn-primary" @click="openAddFileDialog(1)">

+ 5 - 1
pages/mine/components/PersonalInfoTab.vue

@@ -33,7 +33,7 @@
               <uni-col v-if="formData.customType" :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
                 <uni-forms-item :label="t('ImproveImmediately.Label.CustomerType')">
                   <cwg-combox :disabled="isInfo" :clearable="false" v-model:value="formData.customType"
-                    :options="customTypeOptions" :placeholder="t('placeholder.choose')" />
+                    :options="customTypeOptions" :placeholder="t('placeholder.choose')" disabledClass="disabledClass" />
                 </uni-forms-item>
               </uni-col>
               <!-- 公司名称 -->
@@ -586,5 +586,9 @@ onMounted(async () => {
     border: none !important;
     //background-color: rgba(195, 195, 195, 0) !important;
   }
+  .disabled-text{
+    height: 3rem;
+  }
 }
+
 </style>

+ 9 - 7
pages/mine/improveImmediately.vue

@@ -558,7 +558,7 @@
                 <u-button class="btn-primary" type="primary" block @click="cancle">
                   {{ t('Btn.Cancel') }}
                 </u-button>
-                <u-button plain block class="prev-btn btn-primary" @click="goStep(3)">
+                <u-button  block class=" btn-primary" type="primary" @click="goStep(3)">
                   {{ t('Btn.Last') }}
                 </u-button>
                 <u-button type="primary" class="btn-primary" block :loading="loadingStates.submit" @click="Submit">
@@ -573,7 +573,7 @@
                 <u-button class="btn-primary" type="primary" block @click="cancle">
                   {{ t('Btn.Cancel') }}
                 </u-button>
-                <u-button plain block class="prev-btn btn-primary" @click="goStep(2)">
+                <u-button  block class="prev-btn btn-primary" type="primary" @click="goStep(2)">
                   {{ t('Btn.Last') }}
                 </u-button>
                 <u-button class="btn-primary" type="primary" block :loading="loadingStates.next" @click="goStep(4)">
@@ -588,7 +588,7 @@
                 <u-button class="btn-primary" type="primary" block @click="cancle">
                   {{ t('Btn.Cancel') }}
                 </u-button>
-                <u-button plain block class="prev-btn btn-primary" @click="goStep(1)">
+                <u-button  block class="prev-btn btn-primary" type="primary" @click="goStep(1)">
                   {{ t('Btn.Last') }}
                 </u-button>
                 <u-button class="btn-primary" type="primary" block :loading="loadingStates.next" @click="goStep(3)">
@@ -1753,8 +1753,8 @@ onUnmounted(() => {
 }
 
 .prev-btn {
-  border-color: #4a6cf7;
-  color: #4a6cf7;
+  //border-color: #4a6cf7;
+  //color: #4a6cf7;
 }
 
 .address-tip {
@@ -1766,17 +1766,19 @@ onUnmounted(() => {
   display: flex;
   align-items: center;
   margin: px2rpx(20) 0;
+  background-color: var(--table-th-color) ;
+  color: #333;
 
   .tit {
     font-size: px2rpx(18);
     font-weight: 500;
-    color: var(--color-white);
+    color: var(--bs-emphasis-color);
   }
 
   .icon-tip {
     margin-left: px2rpx(10);
     font-size: px2rpx(16);
-    color: var(--color-white);
+    color: var(--bs-emphasis-color);
     cursor: pointer;
   }
 }

+ 7 - 4
pages/mine/info.vue

@@ -1,8 +1,9 @@
 <template>
     <cwg-page-wrapper>
         <view class="info-card">
-            <view class="content-title" v-if="current != 3 && current != 4">
-                <view>{{ tabs[current - 1].name }}</view>
+          <cwg-header v-if=" current != 4" :title="tabs[current - 1].name" />
+<!--            <view class="content-title" v-if="current != 3 && current != 4">-->
+<!--                <view class="content-title">{{ tabs[current - 1].name }}</view>-->
                 <!--                <view class="content-title-btns">-->
                 <!--                    <view v-if="current == 3 && !isSHowIdentity" class="btn-primary" @click="infoSubmit()">-->
                 <!--                        <cwg-icon icon="crm-plus" :size="16" color="#fff" />-->
@@ -17,7 +18,7 @@
                 <!--                        <text v-t="'PersonalManagement.Title.AttachedFile'"></text>-->
                 <!--                    </view>-->
                 <!--                </view>-->
-            </view>
+<!--            </view>-->
             <view v-if="current == 1">
                 <personal-info-tab v-model="PersonalInformation" :is-readonly="isReadonly" @cancel="cancle"
                     @next="next(2)" />
@@ -289,7 +290,9 @@ onMounted(async () => {
 
 <style scoped lang="scss">
 @import "@/uni.scss";
-
+.content-title{
+  font-weight: bold;
+}
 .tab-title {
     display: flex;
     align-items: center;

+ 2 - 5
static/scss/global/global.scss

@@ -196,7 +196,6 @@
     --bs-light-text-emphasis: #495057;
     --bs-dark-text-emphasis: #495057;
     --bs-secondary-bg-subtle: #eaf0ff;
-    --bs-secondary-bg-subtle: #fff2e7;
     --bs-success-bg-subtle: #e9f7f2;
     --bs-info-bg-subtle: #e6f8ff;
     --bs-warning-bg-subtle: #fff8e9;
@@ -278,7 +277,6 @@
 
     --bs-light-text-emphasis: #5e6165;
     --bs-secondary-bg-subtle: #eaf0ff;
-    --bs-secondary-bg-subtle: #fff2e7;
     --bs-light-bg-subtle: #f9fbfe;
     --bs-secondary-border-subtle: #d6e1ff;
     --bs-secondary-border-subtle: #fff2e7;
@@ -289,6 +287,7 @@
     --bs-btn-secondary-hover: #d93618;
     --bs-btn-secondary-border-hover: #d93618;
     --bs-btn-secondary-active: #d93618;
+    --cwg-placeholder-color: #6a6a6a;
 }
 
 .dark {
@@ -461,7 +460,6 @@
     --bs-light-text-emphasis: #495057;
     --bs-dark-text-emphasis: #495057;
     --bs-secondary-bg-subtle: #eaf0ff;
-    --bs-secondary-bg-subtle: #fff2e7;
     --bs-success-bg-subtle: #e9f7f2;
     --bs-info-bg-subtle: #e6f8ff;
     --bs-warning-bg-subtle: #fff8e9;
@@ -558,7 +556,6 @@
     --bs-light-text-emphasis: #888bb2;
     --bs-dark-text-emphasis: #999999;
     --bs-secondary-bg-subtle: #0a1533;
-    --bs-secondary-bg-subtle: #331a03;
     --bs-success-bg-subtle: #072319;
     --bs-info-bg-subtle: #002432;
     --bs-warning-bg-subtle: #332506;
@@ -1287,7 +1284,7 @@ uni-content.collapsed {
 
 .uni-date-x,
 .uni-select__input-text {
-    color: var(--bs-emphasis-color) !important;
+    color: var(--bs-emphasis-color);
 }
 
 // 公共title样式

+ 3 - 3
uni_modules/uni-combox/components/uni-combox/uni-combox.vue

@@ -194,14 +194,14 @@ export default {
 
 .uni-combox__input {
 	flex: 1;
-	font-size: 14px;
+  font-size: 1rem;
 	height: 22px;
 	line-height: 22px;
 }
 
 .uni-combox__input-plac {
-	font-size: 14px;
-	color: var(--bs-heading-color);
+  font-size: 1rem;
+	color: var(--cwg-placeholder-color);
 }
 
 .uni-combox__selector {

+ 1 - 1
uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue

@@ -579,7 +579,7 @@ $uni-border-1: #dcdfe6 !default;
 }
 
 .uni-easyinput__placeholder-class {
-	color: var(--bs-emphasis-color) !important;
+	color: var(--cwg-placeholder-color);
 	font-size: 1rem;
 	// font-weight: 200;
 }

+ 26 - 0
windows/top-window.vue

@@ -5,6 +5,7 @@
         @click="openLeftDrawer" />
       <image class="left-img" v-else src="/static/images/vu/logo-full-white.svg" mode="widthFix" alt="logo"
         @click="openLeftDrawer" />
+      <div class="cid" v-if="visible"  @click="copy(cId)">{{t('newSignin.item1')}} {{ cId}}</div>
     </div>
     <div class="right" v-if="visible">
       <cwg-payment />
@@ -20,12 +21,14 @@
 import { ref, computed, watch, onMounted } from 'vue'
 import { storeToRefs } from 'pinia'
 import useUserStore from '@/stores/use-user-store'
+import { useI18n } from 'vue-i18n'
 const userStore = useUserStore()
 const { userInfo } = storeToRefs(userStore)
 import useGlobalStore from '@/stores/use-global-store'
 const globalStore = useGlobalStore()
 const isDark = computed(() => globalStore.theme === 'dark')
 const visible = ref(true)
+const { t } = useI18n()
 
 watch(() => userInfo.value, (val) => {
   visible.value = !!val
@@ -37,10 +40,29 @@ const props = defineProps({
   },
 })
 
+const cId = computed(() => {
+  const info = userStore.userInfo?.customInfo || {}
+  return info.cId || info.id || '--'
+})
+
 onMounted(()=>{
   uni.$emit('updateSystemList','top')
 })
 
+// 复制文本
+const copy = (text: string) => {
+  uni.setClipboardData({
+    data: text,
+    success: function () {
+      uni.showToast({
+        title: t('Btn.item8'),
+        icon: 'none',
+        duration: 2000
+      });
+    }
+  });
+};
+
 </script>
 
 <style scoped lang="scss">
@@ -59,6 +81,10 @@ onMounted(()=>{
 .left {
   display: flex;
   align-items: center;
+  .cid{
+    margin-left: px2rpx(50);
+    cursor: pointer;
+  }
 }