个人会员+订单对公转账点击
Showing
13 changed files
with
170 additions
and
89 deletions
| ... | @@ -235,11 +235,12 @@ function login() { | ... | @@ -235,11 +235,12 @@ function login() { |
| 235 | pcLogin(form.value).then(() => { | 235 | pcLogin(form.value).then(() => { |
| 236 | app.globalData.isLogin = true | 236 | app.globalData.isLogin = true |
| 237 | goHomeAfterLogin() | 237 | goHomeAfterLogin() |
| 238 | }).catch((err) => { | 238 | }).catch((err) => { |
| 239 | console.error('登录失败:', err) | 239 | console.error('登录失败:', err) |
| 240 | uni.showToast({title: '登录失败', icon: 'none'}) | 240 | refreshCodeWhenNotServerError(err) |
| 241 | }).finally(() => { | 241 | uni.showToast({title: '登录失败', icon: 'none'}) |
| 242 | loading.value = false | 242 | }).finally(() => { |
| 243 | loading.value = false | ||
| 243 | }) | 244 | }) |
| 244 | } else if (isActive.value == 1) { | 245 | } else if (isActive.value == 1) { |
| 245 | if (!form2.value.telNo) { | 246 | if (!form2.value.telNo) { |
| ... | @@ -257,13 +258,16 @@ function login() { | ... | @@ -257,13 +258,16 @@ function login() { |
| 257 | } | 258 | } |
| 258 | if (loading.value) return; | 259 | if (loading.value) return; |
| 259 | loading.value = true | 260 | loading.value = true |
| 260 | loginByPhone(form2.value.telNo, form2.value.code) | 261 | loginByPhone(form2.value.telNo, form2.value.code) |
| 261 | .then(() => { | 262 | .then(() => { |
| 262 | app.globalData.isLogin = true | 263 | app.globalData.isLogin = true |
| 263 | goHomeAfterLogin() | 264 | goHomeAfterLogin() |
| 264 | }).finally(() => { | 265 | }).catch((err) => { |
| 265 | loading.value = false | 266 | console.error('短信登录失败:', err) |
| 266 | }) | 267 | refreshCodeWhenNotServerError(err) |
| 268 | }).finally(() => { | ||
| 269 | loading.value = false | ||
| 270 | }) | ||
| 267 | } | 271 | } |
| 268 | } | 272 | } |
| 269 | 273 | ||
| ... | @@ -284,16 +288,29 @@ function confirmRegister() { | ... | @@ -284,16 +288,29 @@ function confirmRegister() { |
| 284 | uni.navigateTo({url: '/login/register'}) | 288 | uni.navigateTo({url: '/login/register'}) |
| 285 | } | 289 | } |
| 286 | 290 | ||
| 287 | function getCode() { | 291 | function getCode() { |
| 288 | uni.hideLoading() | 292 | uni.hideLoading() |
| 289 | getCodeImg().then((res) => { | 293 | getCodeImg().then((res) => { |
| 290 | codeUrl.value = 'data:image/gif;base64,' + res.data.img | 294 | codeUrl.value = 'data:image/gif;base64,' + res.data.img |
| 291 | form.value.uuid = res.data.uuid | 295 | form.value.uuid = res.data.uuid |
| 292 | form2.value.uuid = res.data.uuid | 296 | form2.value.uuid = res.data.uuid |
| 293 | }) | 297 | }) |
| 294 | } | 298 | } |
| 295 | 299 | ||
| 296 | function getCaptchaSms() { | 300 | function isServer500(err) { |
| 301 | const message = String(err?.message || err?.errMsg || '') | ||
| 302 | return err?.statusCode === 500 || | ||
| 303 | err?.code === 500 || | ||
| 304 | err?.data?.code === 500 || | ||
| 305 | message.includes('HTTP 500') | ||
| 306 | } | ||
| 307 | |||
| 308 | function refreshCodeWhenNotServerError(err) { | ||
| 309 | if (isServer500(err)) return | ||
| 310 | getCode() | ||
| 311 | } | ||
| 312 | |||
| 313 | function getCaptchaSms() { | ||
| 297 | if (!form2.value.telNo) { | 314 | if (!form2.value.telNo) { |
| 298 | uni.showToast({title: '手机号不能为空', icon: 'none'}) | 315 | uni.showToast({title: '手机号不能为空', icon: 'none'}) |
| 299 | return | 316 | return | ... | ... |
| ... | @@ -53,7 +53,13 @@ | ... | @@ -53,7 +53,13 @@ |
| 53 | <view class="data-header"> | 53 | <view class="data-header"> |
| 54 | <text class="member-label">{{ getOrderLabel(item) }} ·</text> | 54 | <text class="member-label">{{ getOrderLabel(item) }} ·</text> |
| 55 | <text class="value ml10">{{ item.wfCode || '——' }} ·</text> | 55 | <text class="value ml10">{{ item.wfCode || '——' }} ·</text> |
| 56 | <text class="pay-type ml10">{{ String(item.payType) === '3' ? '对公转账' : '民生付' }}</text> | 56 | <text |
| 57 | v-if="String(item.payType) === '3'" | ||
| 58 | :class="{ 'pay-type-link': canClickTransferPay(item) }" | ||
| 59 | class="pay-type ml10" | ||
| 60 | @click.stop="handleTransferPay(item)" | ||
| 61 | >对公转账</text> | ||
| 62 | <text v-else class="pay-type ml10">民生付</text> | ||
| 57 | </view> | 63 | </view> |
| 58 | <text :class="{ | 64 | <text :class="{ |
| 59 | 'status-wait': item.payStatus == 3, | 65 | 'status-wait': item.payStatus == 3, |
| ... | @@ -361,6 +367,17 @@ const isRefundDisabled = (item) => String(item?.payStatus) !== '1' || hasInvoice | ... | @@ -361,6 +367,17 @@ const isRefundDisabled = (item) => String(item?.payStatus) !== '1' || hasInvoice |
| 361 | 367 | ||
| 362 | const canShowRefund = (item) => !isRefundDisabled(item) | 368 | const canShowRefund = (item) => !isRefundDisabled(item) |
| 363 | 369 | ||
| 370 | const canClickTransferPay = (item) => { | ||
| 371 | return String(item?.payType) === '3' && String(item?.payStatus) !== '2' | ||
| 372 | } | ||
| 373 | |||
| 374 | const handleTransferPay = (item) => { | ||
| 375 | if (!canClickTransferPay(item)) return | ||
| 376 | uni.navigateTo({ | ||
| 377 | url: `/myCenter/transferPay?orderId=${item.id}` | ||
| 378 | }) | ||
| 379 | } | ||
| 380 | |||
| 364 | 381 | ||
| 365 | // 数据请求核心方法 | 382 | // 数据请求核心方法 |
| 366 | const initData = async () => { | 383 | const initData = async () => { |
| ... | @@ -1257,6 +1274,10 @@ const confirmRefund = async (item) => { | ... | @@ -1257,6 +1274,10 @@ const confirmRefund = async (item) => { |
| 1257 | font-weight: normal; | 1274 | font-weight: normal; |
| 1258 | flex-shrink: 0; | 1275 | flex-shrink: 0; |
| 1259 | } | 1276 | } |
| 1277 | |||
| 1278 | .pay-type.pay-type-link { | ||
| 1279 | color: #1677ff; | ||
| 1280 | } | ||
| 1260 | 1281 | ||
| 1261 | .date-text { | 1282 | .date-text { |
| 1262 | color: #666; | 1283 | color: #666; | ... | ... |
| ... | @@ -27,33 +27,34 @@ | ... | @@ -27,33 +27,34 @@ |
| 27 | <view class="bank-row"> | 27 | <view class="bank-row"> |
| 28 | <text class="bank-label">收款人姓名</text> | 28 | <text class="bank-label">收款人姓名</text> |
| 29 | <text class="bank-value">中国跆拳道协会</text> | 29 | <text class="bank-value">中国跆拳道协会</text> |
| 30 | <!-- <view class="copy-btn" @tap.stop="handleCopy('秦琦五洋赫公司')">复制</view> --> | 30 | <view class="copy-btn" @tap.stop="handleCopy('中国跆拳道协会')">复制</view> |
| 31 | </view> | 31 | </view> |
| 32 | <view class="bank-row"> | 32 | <view class="bank-row"> |
| 33 | <text class="bank-label">收款银行</text> | 33 | <text class="bank-label">收款银行</text> |
| 34 | <text class="bank-value">中国民生银行</text> | 34 | <text class="bank-value">中国民生银行</text> |
| 35 | <!-- <view class="copy-btn" @tap.stop="handleCopy('中国民生银行')">复制</view> --> | 35 | <view class="copy-btn" @tap.stop="handleCopy('中国民生银行')">复制</view> |
| 36 | </view> | 36 | </view> |
| 37 | <view class="bank-row"> | 37 | <view class="bank-row"> |
| 38 | <text class="bank-label">收款卡号</text> | 38 | <text class="bank-label">收款卡号</text> |
| 39 | <text class="bank-value card-number">{{ form.ziZhangBu || '-' }}</text> | 39 | <text class="bank-value card-number">{{ form.ziZhangBu || '-' }}</text> |
| 40 | <!-- <view class="copy-btn" @tap.stop="handleCopy(form.ziZhangBu)">复制</view> --> | 40 | <view class="copy-btn" @tap.stop="handleCopy(form.ziZhangBu)">复制</view> |
| 41 | </view> | 41 | </view> |
| 42 | <view class="bank-row"> | 42 | <view class="bank-row"> |
| 43 | <text class="bank-label">收款金额</text> | 43 | <text class="bank-label">收款金额</text> |
| 44 | <text class="bank-value highlight">¥{{ form.price || '0.00' }}</text> | 44 | <text class="bank-value highlight">¥{{ form.price || '0.00' }}</text> |
| 45 | <!-- <view class="copy-btn" @tap.stop="handleCopy(form.price)">复制</view> --> | 45 | <view class="copy-btn" @tap.stop="handleCopy(form.price)">复制</view> |
| 46 | </view> | 46 | </view> |
| 47 | </view> | 47 | </view> |
| 48 | 48 | ||
| 49 | <!-- 金额说明 --> | 49 | <!-- 金额说明 --> |
| 50 | <view class="card notice-card"> | 50 | <view class="card notice-card"> |
| 51 | <view class="danger-title"> | 51 | <!-- <view class="danger-title"> |
| 52 | <text>请使用认证机构下的账号进行对公转账。</text> | 52 | <text>请使用认证机构下的账号进行对公转账。</text> |
| 53 | </view> | 53 | </view> --> |
| 54 | <view class="notice-line">1. 本订单将为您保留7天,请您及时支付;逾期未支付,订单将自动取消。</view> | 54 | <view class="notice-line">1. 请使用注册机构账号对公转账。</view> |
| 55 | <view class="notice-line">2. 请通过网上银行(网银)或银行柜台或手机银行向以下账号划转款项。</view> | 55 | <view class="notice-line">2. 本订单将为您保留7天,请您及时支付;逾期未支付,订单将自动取消。</view> |
| 56 | <view class="notice-line">3. 转账金额与订单金额必须保持一致,不得多转、少转。</view> | 56 | <view class="notice-line">3. 请通过网上银行(网银)或银行柜台或手机银行向以下账号划转款项。</view> |
| 57 | <view class="notice-line">4. 转账金额与订单金额必须保持一致,不得多转、少转。</view> | ||
| 57 | </view> | 58 | </view> |
| 58 | 59 | ||
| 59 | <!-- 温馨提示 --> | 60 | <!-- 温馨提示 --> | ... | ... |
| ... | @@ -86,7 +86,13 @@ | ... | @@ -86,7 +86,13 @@ |
| 86 | <view class="data-header"> | 86 | <view class="data-header"> |
| 87 | <text class="member-label">{{ getOrderLabel(item) }} ·</text> | 87 | <text class="member-label">{{ getOrderLabel(item) }} ·</text> |
| 88 | <text class="value ml10">{{ item.wfCode || '——' }} ·</text> | 88 | <text class="value ml10">{{ item.wfCode || '——' }} ·</text> |
| 89 | <text class="pay-type ml10"> {{ String(item.payType) === '3' ? '对公转账' : '民生付' }}</text> | 89 | <text |
| 90 | v-if="String(item.payType) === '3'" | ||
| 91 | :class="{ 'pay-type-link': canClickTransferPay(item) }" | ||
| 92 | class="pay-type ml10" | ||
| 93 | @click.stop="handleTransferPay(item)" | ||
| 94 | >对公转账</text> | ||
| 95 | <text v-else class="pay-type ml10">民生付</text> | ||
| 90 | </view> | 96 | </view> |
| 91 | <text :class="{ | 97 | <text :class="{ |
| 92 | 'status-wait': item.payStatus == 3, | 98 | 'status-wait': item.payStatus == 3, |
| ... | @@ -437,6 +443,17 @@ const isRefundDisabled = (item) => String(item?.payStatus) !== '1' || String(ite | ... | @@ -437,6 +443,17 @@ const isRefundDisabled = (item) => String(item?.payStatus) !== '1' || String(ite |
| 437 | 443 | ||
| 438 | const canShowRefund = (item) => !isRefundDisabled(item) | 444 | const canShowRefund = (item) => !isRefundDisabled(item) |
| 439 | 445 | ||
| 446 | const canClickTransferPay = (item) => { | ||
| 447 | return String(item?.payType) === '3' && String(item?.payStatus) !== '2' | ||
| 448 | } | ||
| 449 | |||
| 450 | const handleTransferPay = (item) => { | ||
| 451 | if (!canClickTransferPay(item)) return | ||
| 452 | uni.navigateTo({ | ||
| 453 | url: `/myCenter/transferPay?orderId=${item.id}` | ||
| 454 | }) | ||
| 455 | } | ||
| 456 | |||
| 440 | const encodeQueryValue = (value) => encodeURIComponent(value || '') | 457 | const encodeQueryValue = (value) => encodeURIComponent(value || '') |
| 441 | 458 | ||
| 442 | const getPayName = (item) => { | 459 | const getPayName = (item) => { |
| ... | @@ -1511,6 +1528,10 @@ const onTabSwitch = (index, url) => { | ... | @@ -1511,6 +1528,10 @@ const onTabSwitch = (index, url) => { |
| 1511 | flex-shrink: 0; | 1528 | flex-shrink: 0; |
| 1512 | } | 1529 | } |
| 1513 | 1530 | ||
| 1531 | .pay-type.pay-type-link { | ||
| 1532 | color: #1677ff; | ||
| 1533 | } | ||
| 1534 | |||
| 1514 | .date-text { | 1535 | .date-text { |
| 1515 | color: #666; | 1536 | color: #666; |
| 1516 | } | 1537 | } | ... | ... |
| ... | @@ -363,12 +363,12 @@ async function goAuthPayV2() { | ... | @@ -363,12 +363,12 @@ async function goAuthPayV2() { |
| 363 | showAuthPayDialog('当前账号状态暂无法办理缴费业务') | 363 | showAuthPayDialog('当前账号状态暂无法办理缴费业务') |
| 364 | return | 364 | return |
| 365 | } | 365 | } |
| 366 | if (authPayDisabled.value) { | ||
| 367 | showAuthPayDialog('您已成功提交审核,请耐心等待。') | ||
| 368 | return | ||
| 369 | } | ||
| 366 | const canGoPay = await handelGetMyRecent() | 370 | const canGoPay = await handelGetMyRecent() |
| 367 | if (!canGoPay) return | 371 | if (!canGoPay) return |
| 368 | // if (authPayDisabled.value) { | ||
| 369 | // showAuthPayDialog('您有一笔缴费正在审核中,请勿重复缴费。您可前往【认证详情】查看审核进度。') | ||
| 370 | // return | ||
| 371 | // } | ||
| 372 | goPath('/myCenter/perfect') | 372 | goPath('/myCenter/perfect') |
| 373 | } | 373 | } |
| 374 | 374 | ... | ... |
| ... | @@ -93,7 +93,7 @@ | ... | @@ -93,7 +93,7 @@ |
| 93 | maxlength="20" | 93 | maxlength="20" |
| 94 | placeholder="请输入纳税人识别号" | 94 | placeholder="请输入纳税人识别号" |
| 95 | /> | 95 | /> |
| 96 | <text class="hint">企业税务登记证上的号码,一般为 15、18 或 20 位</text> | 96 | <text class="hint">企业税务登记证上的号码,一般为15~20位</text> |
| 97 | </view> | 97 | </view> |
| 98 | 98 | ||
| 99 | <!-- 接收方式 --> | 99 | <!-- 接收方式 --> |
| ... | @@ -216,7 +216,7 @@ const validateForm = () => { | ... | @@ -216,7 +216,7 @@ const validateForm = () => { |
| 216 | 216 | ||
| 217 | // 纳税人识别号格式校验 | 217 | // 纳税人识别号格式校验 |
| 218 | if (form.type === '1') { | 218 | if (form.type === '1') { |
| 219 | const taxReg = /^[A-Z0-9]{15}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/; | 219 | const taxReg = /^[A-Z0-9]{0,20}$/; |
| 220 | if (!taxReg.test(form.taxno)) { | 220 | if (!taxReg.test(form.taxno)) { |
| 221 | uni.showToast({title: '纳税人识别号格式不正确', icon: 'none'}); | 221 | uni.showToast({title: '纳税人识别号格式不正确', icon: 'none'}); |
| 222 | return false; | 222 | return false; | ... | ... |
| ... | @@ -74,7 +74,7 @@ | ... | @@ -74,7 +74,7 @@ |
| 74 | placeholder="请输入纳税人识别号" | 74 | placeholder="请输入纳税人识别号" |
| 75 | :disabled="!showIndividualType" | 75 | :disabled="!showIndividualType" |
| 76 | /> | 76 | /> |
| 77 | <text class="hint">企业税务登记证上的号码,一般为 15、18 或 20 位</text> | 77 | <text class="hint">企业税务登记证上的号码,一般为15~20位</text> |
| 78 | </view> | 78 | </view> |
| 79 | 79 | ||
| 80 | <!-- 开票金额(只读) --> | 80 | <!-- 开票金额(只读) --> |
| ... | @@ -171,7 +171,7 @@ const validateForm = () => { | ... | @@ -171,7 +171,7 @@ const validateForm = () => { |
| 171 | 171 | ||
| 172 | // 纳税人识别号格式校验 | 172 | // 纳税人识别号格式校验 |
| 173 | if (form.type === '0' ) { | 173 | if (form.type === '0' ) { |
| 174 | const taxReg = /^[A-Z0-9]{15}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/; | 174 | const taxReg = /^[A-Z0-9]{0,20}$/; |
| 175 | if (!taxReg.test(form.taxno)) { | 175 | if (!taxReg.test(form.taxno)) { |
| 176 | uni.showToast({title: '纳税人识别号格式不正确', icon: 'none'}); | 176 | uni.showToast({title: '纳税人识别号格式不正确', icon: 'none'}); |
| 177 | return false; | 177 | return false; | ... | ... |
| ... | @@ -51,14 +51,13 @@ | ... | @@ -51,14 +51,13 @@ |
| 51 | <uni-easyinput v-model="baseFormData.phone" :placeholderStyle="placeholderStyle" | 51 | <uni-easyinput v-model="baseFormData.phone" :placeholderStyle="placeholderStyle" |
| 52 | :styles="inputstyle" placeholder="请输入联系方式"/> | 52 | :styles="inputstyle" placeholder="请输入联系方式"/> |
| 53 | </uni-forms-item> | 53 | </uni-forms-item> |
| 54 | <uni-forms-item label="会员编号" name="perCode"> | 54 | <uni-forms-item label="会员编号" name="perCode" v-if="baseFormData.perCode"> |
| 55 | <uni-easyinput v-model="baseFormData.perCode" :placeholderStyle="placeholderStyle" :styles="inputstyle" | 55 | {{baseFormData.perCode}} |
| 56 | placeholder="会员编号"/> | 56 | </uni-forms-item> |
| 57 | </uni-forms-item> | 57 | <uni-forms-item label="会员有效期" name="validityDate" v-if="baseFormData.validityDate"> |
| 58 | <uni-forms-item label="会员有效期" name="validityDate"> | 58 | {{baseFormData.validityDate?.slice(0,10)}} |
| 59 | <uni-easyinput v-model="baseFormData.validityDate" :placeholderStyle="placeholderStyle" | 59 | </uni-forms-item> |
| 60 | :styles="inputstyle" placeholder="会员有效期"/> | 60 | |
| 61 | </uni-forms-item> | ||
| 62 | 61 | ||
| 63 | 62 | ||
| 64 | <!-- <uni-forms-item label="所在地区"> | 63 | <!-- <uni-forms-item label="所在地区"> |
| ... | @@ -204,8 +203,8 @@ const validityDateText = ref('') | ... | @@ -204,8 +203,8 @@ const validityDateText = ref('') |
| 204 | 203 | ||
| 205 | onLoad(async (option) => { | 204 | onLoad(async (option) => { |
| 206 | if (option.name && option.idcCode) { | 205 | if (option.name && option.idcCode) { |
| 207 | baseFormData.value.name = option.name | 206 | baseFormData.value.name = decodeURIComponent(option.name) |
| 208 | baseFormData.value.idcCode = option.idcCode | 207 | baseFormData.value.idcCode = decodeURIComponent(option.idcCode) |
| 209 | giveBirthDay() | 208 | giveBirthDay() |
| 210 | } | 209 | } |
| 211 | 210 | ... | ... |
| ... | @@ -221,11 +221,11 @@ const perInfo = computed(() => userStore.perInfo ?? {}) | ... | @@ -221,11 +221,11 @@ const perInfo = computed(() => userStore.perInfo ?? {}) |
| 221 | console.log(222, userInfo.value) | 221 | console.log(222, userInfo.value) |
| 222 | console.log(333, perInfo.value) | 222 | console.log(333, perInfo.value) |
| 223 | 223 | ||
| 224 | // 是否已绑定学员(根据会员卡号判断) | 224 | // 是否已绑定学员:绑定非会员时只有姓名,没有会员卡号,也应视为已绑定,避免反复弹绑定框。 |
| 225 | const isBound = computed(() => { | 225 | const isBound = computed(() => { |
| 226 | const perName = perInfo.value?.perName | 226 | const perName = perInfo.value?.perName |
| 227 | return perName !== undefined && perName !== null && perName !== '' | 227 | return perName !== undefined && perName !== null && perName !== '' |
| 228 | }) | 228 | }) |
| 229 | 229 | ||
| 230 | const bindPopup = ref(null) | 230 | const bindPopup = ref(null) |
| 231 | const bindForm = ref({ | 231 | const bindForm = ref({ |
| ... | @@ -236,11 +236,8 @@ const showConfirm = ref(false) | ... | @@ -236,11 +236,8 @@ const showConfirm = ref(false) |
| 236 | // 标记是否已经弹出过绑定框(避免重复弹出) | 236 | // 标记是否已经弹出过绑定框(避免重复弹出) |
| 237 | let hasOpenedBindPopup = false | 237 | let hasOpenedBindPopup = false |
| 238 | 238 | ||
| 239 | onShow(() => { | 239 | onShow(() => { |
| 240 | // 重置绑定弹框标志,确保每次进入页面都能正确弹出 | 240 | let webUserName = uni.getStorageSync('webUserName') |
| 241 | hasOpenedBindPopup = false | ||
| 242 | |||
| 243 | let webUserName = uni.getStorageSync('webUserName') | ||
| 244 | if (!webUserName) { | 241 | if (!webUserName) { |
| 245 | // 登录后需要等待数据加载完成 | 242 | // 登录后需要等待数据加载完成 |
| 246 | wxLogin().then(res => { | 243 | wxLogin().then(res => { |
| ... | @@ -262,13 +259,14 @@ onShow(() => { | ... | @@ -262,13 +259,14 @@ onShow(() => { |
| 262 | }) | 259 | }) |
| 263 | 260 | ||
| 264 | // 检查是否需要弹出绑定框 | 261 | // 检查是否需要弹出绑定框 |
| 265 | const checkAndOpenBindPopup = () => { | 262 | const checkAndOpenBindPopup = () => { |
| 266 | // 确保 userStore 数据已更新 | 263 | // 确保 userStore 数据已更新 |
| 267 | const currentPerInfo = userStore.perInfo | 264 | const currentPerInfo = userStore.perInfo |
| 268 | if (currentPerInfo && !currentPerInfo.perCode && !hasOpenedBindPopup) { | 265 | const hasBoundName = currentPerInfo?.perName |
| 269 | hasOpenedBindPopup = true | 266 | if (currentPerInfo && !hasBoundName && !hasOpenedBindPopup) { |
| 270 | nextTick(() => { | 267 | hasOpenedBindPopup = true |
| 271 | openBindPopup() | 268 | nextTick(() => { |
| 269 | openBindPopup() | ||
| 272 | }) | 270 | }) |
| 273 | } | 271 | } |
| 274 | } | 272 | } |
| ... | @@ -479,13 +477,15 @@ const goToOrder = () => { | ... | @@ -479,13 +477,15 @@ const goToOrder = () => { |
| 479 | }); | 477 | }); |
| 480 | }; | 478 | }; |
| 481 | 479 | ||
| 482 | // 导航到缴费 | 480 | // 导航到缴费 |
| 483 | const goToPay = () => { | 481 | const goToPay = () => { |
| 484 | const perId = userInfo.value.perId ?? '' | 482 | const perId = userInfo.value.perId ?? '' |
| 485 | uni.navigateTo({ | 483 | const name = perInfo.value?.perName ? encodeURIComponent(perInfo.value.perName) : '' |
| 486 | url: `/personal/addVip_per?perId=${perId}` | 484 | const idcCode = perInfo.value?.perIdcCode ? encodeURIComponent(perInfo.value.perIdcCode) : '' |
| 487 | }); | 485 | uni.navigateTo({ |
| 488 | }; | 486 | url: `/personal/addVip_per?perId=${perId}&name=${name}&idcCode=${idcCode}` |
| 487 | }); | ||
| 488 | }; | ||
| 489 | 489 | ||
| 490 | // 下载电子会员证 | 490 | // 下载电子会员证 |
| 491 | const downCert = async () => { | 491 | const downCert = async () => { | ... | ... |
| ... | @@ -174,9 +174,13 @@ | ... | @@ -174,9 +174,13 @@ |
| 174 | perId.value = userInfo.perId; | 174 | perId.value = userInfo.perId; |
| 175 | getLevelRecords(); | 175 | getLevelRecords(); |
| 176 | } else { | 176 | } else { |
| 177 | const userId = userInfo?.id; | ||
| 178 | if (!userId) { | ||
| 179 | return; | ||
| 180 | } | ||
| 177 | // 如果userInfo中没有perId,尝试通过getAssoPers获取 | 181 | // 如果userInfo中没有perId,尝试通过getAssoPers获取 |
| 178 | try { | 182 | try { |
| 179 | const res = await getAssoPers(userInfo?.id || ''); | 183 | const res = await getAssoPers(userId); |
| 180 | perId.value = res.data[10] || ''; | 184 | perId.value = res.data[10] || ''; |
| 181 | if (perId.value) { | 185 | if (perId.value) { |
| 182 | getLevelRecords(); | 186 | getLevelRecords(); |
| ... | @@ -347,4 +351,4 @@ | ... | @@ -347,4 +351,4 @@ |
| 347 | color: #666; | 351 | color: #666; |
| 348 | font-weight: 500; | 352 | font-weight: 500; |
| 349 | } | 353 | } |
| 350 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 354 | </style> | ... | ... |
| ... | @@ -137,9 +137,13 @@ | ... | @@ -137,9 +137,13 @@ |
| 137 | perId.value = userInfo.perId; | 137 | perId.value = userInfo.perId; |
| 138 | getMemberInfo(); | 138 | getMemberInfo(); |
| 139 | } else { | 139 | } else { |
| 140 | const userId = userInfo?.id; | ||
| 141 | if (!userId) { | ||
| 142 | return; | ||
| 143 | } | ||
| 140 | // 如果userInfo中没有perId,尝试通过getAssoPers获取 | 144 | // 如果userInfo中没有perId,尝试通过getAssoPers获取 |
| 141 | try { | 145 | try { |
| 142 | const res = await getAssoPers(userInfo?.id || ''); | 146 | const res = await getAssoPers(userId); |
| 143 | perId.value = res.data[10] || ''; | 147 | perId.value = res.data[10] || ''; |
| 144 | if (perId.value) { | 148 | if (perId.value) { |
| 145 | getMemberInfo(); | 149 | getMemberInfo(); |
| ... | @@ -282,4 +286,4 @@ | ... | @@ -282,4 +286,4 @@ |
| 282 | padding: 24rpx 20rpx; | 286 | padding: 24rpx 20rpx; |
| 283 | } | 287 | } |
| 284 | } | 288 | } |
| 285 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 289 | </style> | ... | ... |
| ... | @@ -51,13 +51,11 @@ | ... | @@ -51,13 +51,11 @@ |
| 51 | <uni-easyinput :styles="inputstyle" :placeholderStyle="placeholderStyle" | 51 | <uni-easyinput :styles="inputstyle" :placeholderStyle="placeholderStyle" |
| 52 | v-model="baseFormData.phone" placeholder="请输入联系方式" /> | 52 | v-model="baseFormData.phone" placeholder="请输入联系方式" /> |
| 53 | </uni-forms-item> | 53 | </uni-forms-item> |
| 54 | <uni-forms-item label="会员编号" name="perCode" v-if="baseFormData.perCode"> | 54 | <uni-forms-item label="会员编号" name="perCode" v-if="baseFormData.perCode"> |
| 55 | <uni-easyinput :styles="inputstyle" :placeholderStyle="placeholderStyle" | 55 | {{baseFormData.perCode}} |
| 56 | v-model="baseFormData.perCode" placeholder="请输入会员编号" /> | ||
| 57 | </uni-forms-item> | 56 | </uni-forms-item> |
| 58 | <uni-forms-item label="会员有效期" name="validityDate" v-if="baseFormData.validityDate"> | 57 | <uni-forms-item label="会员有效期" name="validityDate" v-if="baseFormData.validityDate"> |
| 59 | <uni-easyinput :styles="inputstyle" :placeholderStyle="placeholderStyle" | 58 | {{baseFormData.validityDate?.slice(0,10)}} |
| 60 | v-model="baseFormData.validityDate" placeholder="请输入会员有效期" /> | ||
| 61 | </uni-forms-item> | 59 | </uni-forms-item> |
| 62 | 60 | ||
| 63 | 61 | ... | ... |
| ... | @@ -37,7 +37,13 @@ | ... | @@ -37,7 +37,13 @@ |
| 37 | <view class="data-header"> | 37 | <view class="data-header"> |
| 38 | <text class="member-label">{{ getOrderLabel(item) }} ·</text> | 38 | <text class="member-label">{{ getOrderLabel(item) }} ·</text> |
| 39 | <text class="value ml10">{{ item.wfCode || '——' }} · </text> | 39 | <text class="value ml10">{{ item.wfCode || '——' }} · </text> |
| 40 | <text class="pay-type">{{ getPayTypeText(item) }}</text> | 40 | <text |
| 41 | v-if="String(item.payType) === '3'" | ||
| 42 | :class="{ 'pay-type-link': canClickTransferPay(item) }" | ||
| 43 | class="pay-type" | ||
| 44 | @click.stop="handleTransferPay(item)" | ||
| 45 | >对公转账</text> | ||
| 46 | <text v-else class="pay-type">民生付</text> | ||
| 41 | </view> | 47 | </view> |
| 42 | <text :class="{ | 48 | <text :class="{ |
| 43 | 'status-wait': item.payStatus == 4, | 49 | 'status-wait': item.payStatus == 4, |
| ... | @@ -238,11 +244,17 @@ const loadMore = () => { | ... | @@ -238,11 +244,17 @@ const loadMore = () => { |
| 238 | pageNum.value++; | 244 | pageNum.value++; |
| 239 | initData(); | 245 | initData(); |
| 240 | }; | 246 | }; |
| 241 | const getPayWay = (item) => { | 247 | const canClickTransferPay = (item) => { |
| 242 | uni.redirectTo({ | 248 | return String(item?.payType) === '3' && String(item?.payStatus) !== '2' |
| 243 | url: `/myCenter/transferPay?orderId=${item.id}` | ||
| 244 | }); | ||
| 245 | } | 249 | } |
| 250 | |||
| 251 | const handleTransferPay = (item) => { | ||
| 252 | if (!canClickTransferPay(item)) return | ||
| 253 | uni.navigateTo({ | ||
| 254 | url: `/myCenter/transferPay?orderId=${item.id}` | ||
| 255 | }) | ||
| 256 | } | ||
| 257 | |||
| 246 | // 切换标签 | 258 | // 切换标签 |
| 247 | const switchTab = (index) => { | 259 | const switchTab = (index) => { |
| 248 | currentTab.value = index; | 260 | currentTab.value = index; |
| ... | @@ -888,6 +900,10 @@ const goToDetail = (item) => { | ... | @@ -888,6 +900,10 @@ const goToDetail = (item) => { |
| 888 | margin-left: 10rpx; | 900 | margin-left: 10rpx; |
| 889 | } | 901 | } |
| 890 | 902 | ||
| 903 | .pay-type.pay-type-link { | ||
| 904 | color: #1677ff; | ||
| 905 | } | ||
| 906 | |||
| 891 | .status-tag { | 907 | .status-tag { |
| 892 | font-size: 24rpx; | 908 | font-size: 24rpx; |
| 893 | color: #999; | 909 | color: #999; | ... | ... |
-
Please register or sign in to post a comment