ljc il y a 3 semaines
Parent
commit
a3ec58736f

+ 5 - 3
locale/cn.json

@@ -13,7 +13,7 @@
     "item11": "最大杠杆",
     "item12": "最小点差",
     "item13": "更多打开方式",
-    "item14": "当前转出账户为 ( 美分账户 Cent) ",
+    "item14": "当前选择账户为 ( 美分账户 Cent) ",
     "item15": "余额单位为 Cent(1 USD = 100 Cent)。",
     "item16": "请确认您输入的转账金额单位是否正确,以避免因单位差异导致转账失败。"
   },
@@ -397,6 +397,7 @@
     "item3": "启动",
     "TransactionRecord": "交易详情",
     "DeleteAccount": "删除账户列表",
+    "ArchivedAccount": "归档账户",
     "AttributionCode": "归属推荐码",
     "tips": "归属推荐码,无任何加佣加点关联"
   },
@@ -470,7 +471,7 @@
     "Read": "请阅读并同意条款",
     "Logout": "登录过期,请重新登录!",
     "NetworkStatus": "网络状态不佳,请稍后重试。",
-    "nickname": "最多24位字母或数字"
+    "nickname": "请输入6~24位字母或数字"
   },
   "newLoop": {
     "item11": "交易账户",
@@ -751,7 +752,7 @@
     "item8": "下载适用于",
     "item9": "Android的MT4",
     "item10": "ios的MT4",
-    "item11": "CWG MetaTrader 5 Windows版",
+    "item11": "CWG MetaTrader 5 桌面版",
     "item12": "在全球最受欢迎的交易平台之一进行交易,30多个国家的银行和数百万交易员选择MT5作为他们首选的外汇交易平台。为了提高交易质量,顺应国际潮流,投资者选择MT5。 只需下载、安装并开始交易!",
     "item13": "其他设备上的MetaTrader 5",
     "item14": "Android的MT5",
@@ -1680,6 +1681,7 @@
       "LoginPwd": "交易密码",
       "InvestorPwd": "投资者密码",
       "LoginPwdOld": "原交易密码",
+      "LoginPwdOld1": "主交易密码",
       "InvestorPwdOld": "原投资者密码",
       "NewPwd": "新密码",
       "InvestorNewPwd": "新投资者密码",

+ 5 - 3
locale/en.json

@@ -13,7 +13,7 @@
     "item11": "Maximum Leverage",
     "item12": "Minimum Spread",
     "item13": "More opening methods",
-    "item14": "The current withdrawal account is a (Cent Account).",
+    "item14": "The current selected account is a (Cent Account).",
     "item15": "The balance unit is Cent (1 USD = 100 Cent).",
     "item16": "Please confirm that the transfer amount you entered is in the correct unit to avoid transfer failures caused by unit discrepancies."
   },
@@ -396,6 +396,7 @@
     "item3": "Active",
     "TransactionRecord": "Transaction Details",
     "DeleteAccount": "Deleted Account List",
+    "ArchivedAccount": "Archived Account List",
     "AttributionCode": "Referral Code",
     "tips": "Referral code, not linked to any extra commission or markup."
   },
@@ -467,7 +468,7 @@
     "Read": "Please confirm that you have read and agreed to the terms and conditions",
     "Logout": "Login expired, please login again!",
     "NetworkStatus": "The network is not in good condition. Please try again later.",
-    "nickname": "Up to 24 letters or numbers",
+    "nickname": "Please enter 6 to 24 characters of letters or numbers.",
     "SameMonthOnly": "Only dates within the same month can be selected"
   },
   "newLoop": {
@@ -734,7 +735,7 @@
     "item8": "Download",
     "item9": "CWG MT4",
     "item10": "MT4 for iOS",
-    "item11": "CWG MetaTrader 5 for Windows",
+    "item11": "CWG MetaTrader 5 for Desktop",
     "item12": "Trading on one of the most popular trading platforms in the world, the banks of more than 30 countries and millions of traders have chosen MT5 as their preferred forex trading platform to improve the trading quality and meet international trends. Download now, install, and begin trading!",
     "item13": "MetaTrader 5 on Other Devices",
     "item14": "MT5 for Android",
@@ -1647,6 +1648,7 @@
       "LoginPwd": "Trading Password",
       "InvestorPwd": "Investor Password",
       "LoginPwdOld": "Current Trading Password",
+      "LoginPwdOld1": "Master Trading Password",
       "InvestorPwdOld": "Current Investor Password",
       "NewPwd": "New Password",
       "Login": "Trading Account",

+ 1 - 1
pages/customer/components/AccountList.vue

@@ -118,7 +118,7 @@ const isGridLayout = ref(true)
 const tabs = computed(() => ([
     { value: 'real', text: t('vu.item1') },
     { value: 'demo', text: t('vu.item2') },
-    // { value: 'del', text: t('Tips.DeleteAccount') },
+    { value: 'del', text: t('Tips.ArchivedAccount') },
 ]))
 
 const toggleLayout = () => {

+ 2 - 2
pages/customer/components/TerminalChangePasswordDialog.vue

@@ -7,9 +7,9 @@
             <template v-if="props.pwdType != 3">
                 <uni-forms :model="passwordInfo" labelWidth="200" label-position="top" class="crm-form">
                     <uni-forms-item
-                        :label="t('Custom.Settings.LoginPwdOld')">
+                        :label="props.pwdType == 1 ? t('Custom.Settings.LoginPwdOld') : t('Custom.Settings.LoginPwdOld1')">
                         <uni-easyinput type="password" :clearable="false" v-model="passwordInfo.oldPassword"
-                            :placeholder="t('Custom.Settings.LoginPwdOld')" />
+                            :placeholder="props.pwdType == 1 ? t('Custom.Settings.LoginPwdOld') : t('Custom.Settings.LoginPwdOld1')" />
                     </uni-forms-item>
                     <uni-forms-item :label="props.pwdType == 1 ? t('Custom.Settings.NewPwd') : t('Custom.Settings.InvestorNewPwd')">
                         <uni-easyinput type="password" :clearable="false" v-model="passwordInfo.newPassword"

+ 22 - 0
pages/customer/deposit-select.vue

@@ -486,6 +486,7 @@
             @confirm="submitDealResult" />
         <!-- KYC成功弹窗 -->
         <cwg-kyc-popup v-model:visible="dialogKyc" :qrText="text1" />
+      <cwg-confirm-popup />
     </cwg-page-wrapper>
 </template>
 
@@ -516,6 +517,8 @@ import VietnamNoticePopup from './components/VietnamNoticePopup.vue'
 import NewYear24Popup from './components/NewYear24Popup.vue'
 import useRouter from '@/hooks/useRouter'
 const router = useRouter()
+import { useConfirm } from '@/hooks/useConfirm'
+const confirm = useConfirm()
 // 假设原有导入路径保持不变
 import tool from "@/global/tool"
 import { object } from 'uview-plus/libs/function/test'
@@ -1930,11 +1933,30 @@ watch(isStep3, async (newVal) => {
         formRef.value?.clearValidate();   // 再次清除可能因数据重置产生的新错误
     }
 });
+const showCentAccountTransferTip = (login) => {
+  const selectedAccount = loginOptions.value.find(
+    (item) => item.login == login,
+  );
+  if (!selectedAccount) {
+    return;
+  }
+  const isCentAccount =
+    selectedAccount.type == "8" || selectedAccount.currency === "USC";
+  if (isCentAccount) {
+    confirm({
+      title: t("Msg.SystemPrompt"),
+      content: t("vu.item14") + t("vu.item15") + t("vu.item16"),
+      confirmText: t("Btn.Confirm"),
+      cancelText: t("Btn.Cancel"),
+    })
+  }
+}
 // Watch
 watch(loginValue, (login) => {
     if (login) {
         step2.value = true
         getDepositList()
+        showCentAccountTransferTip(login)
         loginOptions.value.forEach(item => {
             if (item.login == login) ACCType.value = item.type
         })

+ 23 - 0
pages/customer/deposit.vue

@@ -379,6 +379,7 @@
         <!-- 数字支付确认弹窗 -->
         <DigitalPayConfirmPopup v-model:visible="dialogDigitalPayConfirm" :WireTransferAccount="WireTransferAccount"
             @close="closeDigitalPayConfirm" @confirm="confirmDigitalPayModal" />
+      <cwg-confirm-popup />
     </cwg-page-wrapper>
 </template>
 
@@ -411,6 +412,8 @@ import DigitalPayConfirmPopup from './components/digitalPayConfirmPopup.vue'
 // 假设原有导入路径保持不变
 import tool from "@/global/tool"
 import { userToken } from '@/composables/config'
+import { useConfirm } from '@/hooks/useConfirm'
+const confirm = useConfirm()
 // import { createUploadRequest } from "@/lib/upload"
 // 常量
 const countries = [
@@ -1136,6 +1139,7 @@ const submitConfirm = async () => {
         $pigeon.MessageWarning(t("news_add_field.Des.item2"))
         return
     }
+
     // if (channelData.code && channelData.code.indexOf('DIGITAL_PAY_TYPE_KEY') === 0 && !imageUrl.value) {
     //     $pigeon.MessageWarning(t("vaildate.depositVoucher.empty"))
     //     return
@@ -1912,6 +1916,24 @@ watch(isStep3, async (newVal) => {
         formRef.value?.clearValidate();
     }
 });
+const showCentAccountTransferTip = (login) => {
+  const selectedAccount = loginOptions.value.find(
+    (item) => item.login == login,
+  );
+  if (!selectedAccount) {
+    return;
+  }
+  const isCentAccount =
+    selectedAccount.type == "8" || selectedAccount.currency === "USC";
+  if (isCentAccount) {
+    confirm({
+      title: t("Msg.SystemPrompt"),
+      content: t("vu.item14") + t("vu.item15") + t("vu.item16"),
+      confirmText: t("Btn.Confirm"),
+      cancelText: t("Btn.Cancel"),
+    })
+  }
+}
 // Watch
 watch(loginValue, (login) => {
     if (login) {
@@ -1919,6 +1941,7 @@ watch(loginValue, (login) => {
         get23nianzhongTwoLogin(login);
         getActivityExtensionGiveLogin(login);
         getActivityExtensionGiveLoginJoin(login);
+      showCentAccountTransferTip(login);
         setTipsAmount()
     }
 })

+ 2 - 2
pages/follow/components/applySignalDialog.vue

@@ -18,7 +18,7 @@
               <uni-forms-item :label="t('Documentary.console.item21')" name="personalSignature">
                 <uni-easyinput type="textarea" v-model="formData.personalSignature" :maxlength="100"
                   @input="val => filterChineseEnglishOnly('personalSignature', val)"
-                  :placeholder="t('placeholder.input')" />
+                  :placeholder="t('placeholder.input')" maxlength="24" minlength="6" />
               </uni-forms-item>
             </view>
           </view>
@@ -397,7 +397,7 @@ const rules = {
       },
       {
         validateFunction: (rule, value, data, callback) => {
-          if (value && /^[0-9a-zA-Z]{1,24}$/.test(value)) {
+          if (value && /^[0-9a-zA-Z]{6,24}$/.test(value)) {
             callback()
           } else {
             callback(t('Msg.nickname'))

+ 12 - 5
uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue

@@ -9,7 +9,7 @@
 			<textarea :enableNative="enableNative" v-if="type === 'textarea'" class="uni-easyinput__content-textarea"
 				:class="{ 'input-padding': inputBorder }" :name="name" :value="val" :placeholder="placeholder"
 				:placeholderStyle="placeholderStyle" :disabled="disabled"
-				placeholder-class="uni-easyinput__placeholder-class" :maxlength="inputMaxlength" :focus="focused"
+				placeholder-class="uni-easyinput__placeholder-class" :minlength="inputMinlength" :maxlength="inputMaxlength" :focus="focused"
 				:autoHeight="autoHeight" :cursor-spacing="cursorSpacing" :adjust-position="adjustPosition"
 				@input="onInput" @blur="_Blur" @focus="_Focus" @confirm="onConfirm"
 				@keyboardheightchange="onkeyboardheightchange" @wheel.prevent></textarea>
@@ -17,7 +17,7 @@
 				class="uni-easyinput__content-input" :style="inputStyle" :name="name" :value="val"
 				:password="!showPassword && type === 'password'" :placeholder="placeholder"
 				:placeholderStyle="placeholderStyle" placeholder-class="uni-easyinput__placeholder-class"
-				:disabled="disabled" :maxlength="inputMaxlength" :focus="focused" :confirmType="confirmType"
+				:disabled="disabled" :minlength="inputMinlength" :maxlength="inputMaxlength" :focus="focused" :confirmType="confirmType"
 				:cursor-spacing="cursorSpacing" :adjust-position="adjustPosition" @focus="_Focus" @blur="_Blur"
 				@input="onInput" @confirm="onConfirm" @keyboardheightchange="onkeyboardheightchange" @wheel.prevent />
 			<!-- #endif -->
@@ -25,14 +25,14 @@
 			<textarea v-if="type === 'textarea'" class="uni-easyinput__content-textarea"
 				:class="{ 'input-padding': inputBorder }" :name="name" :value="val" :placeholder="placeholder"
 				:placeholderStyle="placeholderStyle" :disabled="disabled"
-				placeholder-class="uni-easyinput__placeholder-class" :maxlength="inputMaxlength" :focus="focused"
+				placeholder-class="uni-easyinput__placeholder-class" :minlength="inputMinlength" :maxlength="inputMaxlength" :focus="focused"
 				:autoHeight="autoHeight" :cursor-spacing="cursorSpacing" :adjust-position="adjustPosition"
 				@input="onInput" @blur="_Blur" @focus="_Focus" @confirm="onConfirm"
 				@keyboardheightchange="onkeyboardheightchange" @wheel.prevent></textarea>
 			<input v-else :type="type === 'password' ? 'text' : type" class="uni-easyinput__content-input"
 				:style="inputStyle" :name="name" :value="val" :password="!showPassword && type === 'password'"
 				:placeholder="placeholder" :placeholderStyle="placeholderStyle"
-				placeholder-class="uni-easyinput__placeholder-class" :disabled="disabled" :maxlength="inputMaxlength"
+				placeholder-class="uni-easyinput__placeholder-class" :disabled="disabled" :minlength="inputMinlength" :maxlength="inputMaxlength"
 				:focus="focused" :confirmType="confirmType" :cursor-spacing="cursorSpacing"
 				:adjust-position="adjustPosition" @focus="_Focus" @blur="_Blur" @input="onInput" @confirm="onConfirm"
 				@keyboardheightchange="onkeyboardheightchange" @wheel.prevent />
@@ -78,6 +78,7 @@
  * @property {Boolean}	focus	是否自动获得焦点(默认false)
  * @property {Boolean}	disabled	是否禁用(默认false)
  * @property {Number }	maxlength	最大输入长度,设置为 -1 的时候不限制最大长度(默认140)
+ * @property {Number }	minlength	最小输入长度(默认0)
  * @property {String }	confirmType	设置键盘右下角按钮的文字,仅在type="text"时生效(默认done)
  * @property {Number }	clearSize	清除图标的大小,单位px(默认15)
  * @property {String}	prefixIcon	输入框头部图标
@@ -192,6 +193,10 @@ export default {
 			type: [Number, String],
 			default: 140
 		},
+		minlength: {
+			type: [Number, String],
+			default: 0
+		},
 		confirmType: {
 			type: String,
 			default: 'done'
@@ -287,10 +292,12 @@ export default {
 			// TODO 处理头条 formItem 中 errMsg 不更新的问题
 			return this.localMsg || this.errorMessage;
 		},
-		// 因为uniapp的input组件的maxlength组件必须要数值,这里转为数值,用户可以传入字符串数值
 		inputMaxlength() {
 			return Number(this.maxlength);
 		},
+		inputMinlength() {
+			return Number(this.minlength);
+		},
 
 		// 处理外层样式的style
 		boxStyle() {