Quellcode durchsuchen

Merge remote-tracking branch 'origin/admin_dev' into admin_dev

# Conflicts:
#	static/scss/global/global.scss
ljc vor 2 Monaten
Ursprung
Commit
4b533d128f
4 geänderte Dateien mit 100 neuen und 277 gelöschten Zeilen
  1. 8 31
      pages/customer/transfer.vue
  2. 9 45
      pages/ib/agent-transfer.vue
  3. 12 187
      pages/ib/transfer.vue
  4. 71 14
      static/scss/global/global.scss

+ 8 - 31
pages/customer/transfer.vue

@@ -107,36 +107,12 @@
                     </view>
                 </view>
             </view>
-
-            <!-- 成功/失败弹窗 -->
-            <cwg-popup v-model:visible="dialogCheck" ref="resultPopup" type="center" :mask-click="false"
-                :showFooter="false">
-                <view class="popup-content" v-if="dialogVisible">
-                    <view class="icon"><cwg-icon name="verified" :size="80" color="#009933" /></view>
-                    <view class="des1">{{ t('ApplicationDialog.Des1') }}</view>
-                    <view class="dialog-footer">
-                        <button type="primary" @click="closeDia">{{ t('Btn.Confirm') }}</button>
-                        <button @click="closeDia">{{ t('Btn.Cancel') }}</button>
-                    </view>
-                </view>
-                <view class="popup-content" v-else>
-                    <view class="icon"><cwg-icon name="gy" :size="80" color="#eb3f57" /></view>
-                    <view class="des1">{{ responseMessage }}</view>
-                    <view class="dialog-footer">
-                        <button type="primary" @click="closeDia">{{ t('Btn.Confirm') }}</button>
-                        <button @click="closeDia">{{ t('Btn.Cancel') }}</button>
-                    </view>
-                </view>
-            </cwg-popup>
-
+            <!-- 失败弹窗 -->
+            <cwg-error-popup v-model:visible="dialogError" @confirm="closeDia" />
+            <!-- 成功弹窗 -->
+            <cwg-success-popup v-model:visible="dialogSuccess" @confirm="closeDia" />
             <!-- 等待弹窗 -->
-            <cwg-popup v-model:visible="dialogCheckWait" type="center" :mask-click="false" :showFooter="false">
-                <view class="popup-content wait-popup">
-                    <view class="icon"><cwg-icon name="icon_history" :size="80" color="#eb3f57" /></view>
-
-                    <view class="des1">{{ t('ApplicationDialog.Des38') }}</view>
-                </view>
-            </cwg-popup>
+            <cwg-wait-popup v-model:visible="dialogCheckWait" type="center" :mask-click="false" :showFooters="false" />
         </view>
     </cwg-page-wrapper>
 </template>
@@ -187,6 +163,8 @@ const form = reactive({
     withdrawLogin: null,
     amount: ''
 })
+const dialogSuccess = computed(() => dialogCheck.value && dialogVisible.value)
+const dialogError = computed(() => dialogCheck.value && !dialogVisible.value)
 const dialogCheck = ref(false)
 const dialogVisible = ref(false)
 const dialogCheckWait = ref(false)
@@ -241,7 +219,7 @@ const rules = {
 function validateAmount() {
     const amount = form.amount
     if (!amount) {
-        amountErrorMessage.value = t('vaildate.required')
+        amountErrorMessage.value = t('vaildate.amount.format')
         return false
     }
     const numValue = parseFloat(amount)
@@ -362,7 +340,6 @@ const toTransfer = async () => {
             return
         } else {
             console.log(232312);
-
             responseMessage.value = error.msg;
             dialogCheck.value = true;
             dialogVisible.value = false;

+ 9 - 45
pages/ib/agent-transfer.vue

@@ -156,57 +156,19 @@
                 </view>
             </view>
 
-            <!-- 成功/失败弹窗 -->
-            <cwg-popup v-model:visible="dialogCheck" ref="resultPopup" type="center" :mask-click="false"
-                :showFooter="false">
-                <view class="popup-content" v-if="dialogVisible">
-                    <view class="icon"><cwg-icon name="verified" :size="80" color="#009933" /></view>
-                    <view class="des1">{{ t('ApplicationDialog.Des1') }}</view>
-                    <view class="dialog-footer">
-                        <button type="primary" @click="closeDia">{{ t('Btn.Confirm') }}</button>
-                        <button @click="closeDia">{{ t('Btn.Cancel') }}</button>
-                    </view>
-                </view>
-                <view class="popup-content" v-else>
-                    <view class="icon"><cwg-icon name="gy" :size="80" color="#eb3f57" /></view>
-                    <view class="des1">{{ responseMessage }}</view>
-                    <view class="dialog-footer">
-                        <button type="primary" @click="closeDia">{{ t('Btn.Confirm') }}</button>
-                        <button @click="closeDia">{{ t('Btn.Cancel') }}</button>
-                    </view>
-                </view>
-            </cwg-popup>
+            <!-- 失败弹窗 -->
+            <cwg-error-popup v-model:visible="dialogError" @confirm="closeDia" />
+            <!-- 成功弹窗 -->
+            <cwg-success-popup v-model:visible="dialogSuccess" @confirm="closeDia" />
 
             <!-- 等待弹窗 -->
-            <cwg-popup v-model:visible="dialogCheckWait" type="center" :mask-click="false" :showFooter="false">
-                <view class="popup-content wait-popup">
-                    <view class="icon"><cwg-icon name="icon_history" :size="80" color="#eb3f57" /></view>
-                    <view class="des1">{{ t('ApplicationDialog.Des38') }}</view>
-                </view>
-            </cwg-popup>
+            <cwg-wait-popup v-model:visible="dialogCheckWait" type="center" :mask-click="false" :showFooters="false" />
 
             <!-- 不参加活动弹出框 -->
-            <cwg-popup v-model:visible="dialogDontActive" type="center" :mask-click="false" :showFooter="false">
-                <view class="popup-content">
-                    <view class="des1" style="font-size: 16px; line-height: 1.6; margin: 30px 0 50px">{{
-                        t('Custom.Withdraw.item9') }}</view>
-                    <view class="dialog-footer">
-                        <button type="primary" @click="tosubmitConfirm">{{ t('Btn.Confirm') }}</button>
-                        <button @click="dialogDontActive = false">{{ t('Btn.Cancel') }}</button>
-                    </view>
-                </view>
-            </cwg-popup>
+            <cwg-dont-active-popup v-model:visible="dialogDontActive" :showFooters="true" @confirm="tosubmitConfirm" />
 
             <!-- 功能关闭弹出 -->
-            <cwg-popup v-model:visible="InfoStatus5" type="center" :mask-click="false" :showFooter="false">
-                <view class="popup-content">
-                    <view class="icon"><cwg-icon name="gy" :size="80" color="#eb3f57" /></view>
-                    <view class="des1">{{ t('news_add_field.Des.item1') }}</view>
-                    <view class="dialog-footer">
-                        <button type="primary" @click="toHome">{{ t('Btn.Confirm') }}</button>
-                    </view>
-                </view>
-            </cwg-popup>
+            <cwg-function-disabled-popup v-model:visible="InfoStatus5" :showFooters="false" @confirm="toHome" />
 
             <!-- 赠金协议20年中 -->
             <BonusAgreementPopup v-model:visible="dialogClauseNZTwo" :title="t('news_add_field1.activitiesNZTwo.item6')"
@@ -263,6 +225,8 @@ const form = reactive({
     agree5: false,
     agree6: false,
 })
+const dialogSuccess = computed(() => dialogCheck.value && dialogVisible.value)
+const dialogError = computed(() => dialogCheck.value && !dialogVisible.value)
 const dialogCheck = ref(false)
 const dialogVisible = ref(false)
 const dialogCheckWait = ref(false)

+ 12 - 187
pages/ib/transfer.vue

@@ -102,62 +102,16 @@
                     </view>
                 </view>
             </view>
-
-
-
-
-            <!-- 成功/失败弹窗 -->
-            <cwg-popup v-model:visible="dialogCheck" ref="resultPopup" type="center" :mask-click="false"
-                :showFooter="false">
-                <view class="popup-content" v-if="dialogVisible">
-                    <view class="icon"><cwg-icon name="verified" :size="80" color="#009933" /></view>
-                    <view class="des1">{{ t('ApplicationDialog.Des1') }}</view>
-                    <view class="dialog-footer">
-                        <button type="primary" @click="closeDia">{{ t('Btn.Confirm') }}</button>
-                        <button @click="closeDia">{{ t('Btn.Cancel') }}</button>
-                    </view>
-                </view>
-                <view class="popup-content" v-else>
-                    <view class="icon"><cwg-icon name="gy" :size="80" color="#eb3f57" /></view>
-                    <view class="des1">{{ responseMessage }}</view>
-                    <view class="dialog-footer">
-                        <button type="primary" @click="closeDia">{{ t('Btn.Confirm') }}</button>
-                        <button @click="closeDia">{{ t('Btn.Cancel') }}</button>
-                    </view>
-                </view>
-            </cwg-popup>
-
+            <!-- 失败弹窗 -->
+            <cwg-error-popup v-model:visible="dialogError" @confirm="closeDia" />
+            <!-- 成功弹窗 -->
+            <cwg-success-popup v-model:visible="dialogSuccess" @confirm="closeDia" />
             <!-- 等待弹窗 -->
-            <cwg-popup v-model:visible="dialogCheckWait" type="center" :mask-click="false" :showFooter="false">
-                <view class="popup-content wait-popup">
-                    <view class="icon"><cwg-icon name="icon_history" :size="80" color="#eb3f57" /></view>
-                    <view class="des1">{{ t('ApplicationDialog.Des38') }}</view>
-                </view>
-            </cwg-popup>
-
+            <cwg-wait-popup v-model:visible="dialogCheckWait" :showFooters="false" />
             <!-- 不参加活动弹出框 -->
-            <cwg-popup v-model:visible="dialogDontActive" type="center" :mask-click="false" :showFooter="false">
-                <view class="popup-content">
-                    <view class="des1" style="font-size: 16px; line-height: 1.6; margin: 30px 0 50px">{{
-                        t('Custom.Withdraw.item9') }}</view>
-                    <view class="dialog-footer">
-                        <button type="primary" @click="tosubmitConfirm">{{ t('Btn.Confirm') }}</button>
-                        <button @click="dialogDontActive = false">{{ t('Btn.Cancel') }}</button>
-                    </view>
-                </view>
-            </cwg-popup>
-
+            <cwg-dont-active-popup v-model:visible="dialogDontActive" :showFooters="true" @confirm="tosubmitConfirm" />
             <!-- 功能关闭弹出 -->
-            <cwg-popup v-model:visible="InfoStatus5" type="center" :mask-click="false" :showFooter="false">
-                <view class="popup-content">
-                    <view class="icon"><cwg-icon name="gy" :size="80" color="#eb3f57" /></view>
-                    <view class="des1">{{ t('news_add_field.Des.item1') }}</view>
-                    <view class="dialog-footer">
-                        <button type="primary" @click="toHome">{{ t('Btn.Confirm') }}</button>
-                    </view>
-                </view>
-            </cwg-popup>
-
+            <cwg-function-disabled-popup v-model:visible="InfoStatus5" :showFooters="false" @confirm="toHome" />
             <!-- 赠金协议20年中 -->
             <BonusAgreementPopup v-model:visible="dialogClauseNZTwo" :title="t('news_add_field1.activitiesNZTwo.item6')"
                 :type="nzTwo" :tableData4Two="tableData4Two" />
@@ -217,6 +171,8 @@ const form = reactive({
     agree5: false,
     agree6: false,
 })
+const dialogSuccess = computed(() => dialogCheck.value && dialogVisible.value)
+const dialogError = computed(() => dialogCheck.value && !dialogVisible.value)
 const dialogCheck = ref(false)
 const dialogVisible = ref(false)
 const dialogCheckWait = ref(false)
@@ -624,8 +580,9 @@ watch(() => form.agree6, (newVal) => {
     }
 })
 onMounted(() => {
-    if (getInfoStatus5.value) {
-        InfoStatus5.value = true
+    if (!getInfoStatus5.value) {
+        // InfoStatus5.value = true
+        dialogDontActive.value = true
     }
 
     ransferInfo();
@@ -821,118 +778,6 @@ onLoad((options) => {
             cursor: not-allowed;
         }
     }
-
-    .popup-content {
-        padding: px2rpx(30) px2rpx(20);
-        text-align: center;
-        min-width: px2rpx(250);
-        max-width: 80%;
-        margin: 0 auto;
-
-        @media screen and (max-width: 991px) {
-            min-width: 80%;
-            max-width: 90%;
-            margin: 0 px2rpx(10);
-        }
-
-        position: relative;
-
-        .icon {
-            .iconfont {
-                font-size: px2rpx(60);
-                display: block;
-                margin: 0 auto;
-            }
-
-            .icon-chenggong {
-                color: #67c23a;
-            }
-
-            .icon-jingshi {
-                color: #f56c6c;
-            }
-
-            .icon-dengdai {
-                color: #e6a23c;
-            }
-        }
-
-        .des1 {
-            font-weight: 600;
-            font-size: px2rpx(16);
-            margin: px2rpx(20) 0 px2rpx(15);
-            color: #303133;
-            line-height: 1.4;
-            padding: 0 px2rpx(10);
-        }
-
-        .dialog-footer {
-            display: flex;
-            justify-content: center;
-            gap: px2rpx(10);
-            margin-top: px2rpx(10);
-
-            @media (max-width: 750rpx) {
-                flex-direction: column;
-                align-items: center;
-                gap: px2rpx(6);
-            }
-
-            button {
-                min-width: px2rpx(90);
-                padding: 0 px2rpx(12);
-                border-radius: px2rpx(4);
-                font-size: px2rpx(14);
-                transition: all 0.3s ease;
-                cursor: pointer;
-
-                &[type="primary"] {
-                    background-color: #409eff;
-                    color: #fff;
-                    border: none;
-
-                    &:hover {
-                        background-color: #66b1ff;
-                        transform: translateY(px2rpx(-1));
-                        box-shadow: 0 px2rpx(2) px2rpx(6) 0 rgba(64, 158, 255, 0.3);
-                    }
-
-                    &:active {
-                        background-color: #3a8ee6;
-                        transform: translateY(0);
-                    }
-                }
-
-                &:not([type="primary"]) {
-                    background-color: #fff;
-                    border: 1px solid #dcdfe6;
-                    color: #606266;
-
-                    &:hover {
-                        border-color: #409eff;
-                        color: #409eff;
-                        transform: translateY(px2rpx(-1));
-                    }
-
-                    &:active {
-                        transform: translateY(0);
-                    }
-                }
-            }
-        }
-    }
-
-    .wait-popup {
-        .des1 {
-            margin-top: px2rpx(10);
-        }
-
-        .icon {
-            .iconfont {
-                animation: spin 1s linear infinite;
-            }
-        }
-    }
 }
 
 // 动画
@@ -1019,27 +864,7 @@ onLoad((options) => {
             padding: px2rpx(10) px2rpx(16);
         }
 
-        .popup-content {
-            padding: px2rpx(20) px2rpx(16);
 
-            .icon {
-                .iconfont {
-                    font-size: px2rpx(50);
-                }
-            }
-
-            .des1 {
-                font-size: px2rpx(14);
-                margin: px2rpx(15) 0 px2rpx(10);
-            }
-
-            .dialog-footer {
-                button {
-                    min-width: px2rpx(80);
-                    font-size: px2rpx(13);
-                }
-            }
-        }
     }
 }
 </style>

+ 71 - 14
static/scss/global/global.scss

@@ -1213,20 +1213,21 @@ uni-content {
     padding: px2rpx(20) px2rpx(30) px2rpx(30);
     border-top: 1px solid #f0f0f0;
 
-  .btn-content{
-    // 双按钮模式
-    &:not(:has(button:only-child)):has(button) {
-      display: flex;
-      justify-content: center;
-      gap: px2rpx(20);
-    }
+    .btn-content {
+
+        // 双按钮模式
+        &:not(:has(button:only-child)):has(button) {
+            display: flex;
+            justify-content: center;
+            gap: px2rpx(20);
+        }
 
-    // 单按钮模式
-    &:has(button:only-child) {
-      display: flex;
-      justify-content: center;
+        // 单按钮模式
+        &:has(button:only-child) {
+            display: flex;
+            justify-content: center;
+        }
     }
-  }
 
 
     .footer-line {
@@ -1345,6 +1346,62 @@ uni-content {
     }
 }
 
-.crm-cursor{
-  cursor: pointer;
+.clause-content {
+    max-height: px2rpx(500);
+    overflow-y: auto;
+    text-align: left;
+    line-height: 1.6;
+
+    .h4 {
+        font-size: px2rpx(16);
+        font-weight: bold;
+        margin: px2rpx(16) 0;
+    }
+
+    .list {
+        .list-item {
+            margin-bottom: px2rpx(12);
+        }
+    }
+
+    .table-container {
+        width: 100%;
+        overflow-x: auto;
+        margin: px2rpx(16) 0;
+
+        .table {
+            display: table;
+            width: 100%;
+            table-layout: fixed;
+            border: 1px solid #e4e7ed;
+            box-sizing: border-box;
+
+            .tr {
+                display: table-row;
+            }
+
+            .th,
+            .td {
+                display: table-cell;
+                width: calc(100% / 6);
+                padding: px2rpx(8);
+                text-align: center;
+                border-right: 1px solid #e4e7ed;
+                border-bottom: 1px solid #e4e7ed;
+
+                &:last-child {
+                    border-right: none;
+                }
+            }
+
+            .tr:last-child .td,
+            .tr:last-child .th {
+                border-bottom: none;
+            }
+        }
+    }
+}
+
+.crm-cursor {
+    cursor: pointer;
 }