Bläddra i källkod

```
feat(FileUploader): 添加文件上传组件的认证头部配置

为文件上传组件添加默认的Authorization请求头,
包含从localStorage获取的token信息

---

style(BlockNoteEditorDialog): 调整对话框样式和宽度设置

将对话框宽度从固定800px改为80%,
并添加高度和滚动相关样式属性

---

chore(locales): 添加支付相关的国际化文案

增加银行转账成功和提交成功的提示信息

---

fix(xuxibiji): 修正消息提示文案引用

将消息提示从publishSuccess改为submitSuccess

---

feat(orderConfirm): 完善订单确认页面功能

- 添加转账凭证必填标识和上传限制
- 增加转账凭证验证逻辑
- 添加银行转账成功处理流程
- 优化支付成功后的轮询调用时机
- 修复支付工具类函数参数传递问题
```

zhangningning 4 veckor sedan
förälder
incheckning
d06b70ad2a

+ 4 - 2
src/components/BlockNoteEditorDialog.vue

@@ -2,7 +2,7 @@
   <el-dialog
     v-model="dialogVisible"
     :title="title + $t('common.xuxibiji')"
-    width="800"
+    width="80%"
   >
     <el-form :model="form" :rules="rules" ref="formRef" label-position="top" class="edit_note">
       <el-form-item label="" prop="noteTitle">
@@ -99,7 +99,9 @@ defineExpose({
 </script>
 <style lang="scss">
 .edit_note{
-  
+  height: calc(100vh - 300px);
+  min-height: 400px;
+  overflow-y: auto;
   .el-input--large .el-input__wrapper {
     border: none !important;
     box-shadow: none !important;

+ 4 - 2
src/components/FileUploader.vue

@@ -190,7 +190,9 @@ const props = defineProps({
   // 请求头
   headers: {
     type: Object,
-    default: () => ({})
+    default: () => ({
+      'Authorization': 'Bearer ' + localStorage.getItem('token')
+    })
   },
   // 请求方法
   method: {
@@ -206,7 +208,7 @@ const props = defineProps({
   data: {
     type: Object,
     default: () => ({
-      //"note","工作流""workflow","工作流""video","视频""common","公共"
+      //"note","笔记""workflow","工作流""video","视频""common","公共"
       "directory":"common"
     })
   },

+ 2 - 0
src/locales/en.js

@@ -112,6 +112,8 @@ export default {
     expand:"Expand",
     collapse:"Collapse",
     warning:"Warning",
+    bankTransferSuccess:"Bank Transfer Success, please wait for the administrator to confirm",
+    submitSuccess:"Submit Success",
   },
   login: {
     smsLogin: 'Captcha Login',

+ 2 - 0
src/locales/zh-CN.js

@@ -118,6 +118,8 @@ export default {
     expand:"展开",
     collapse:"收起",
     warning: "警告",
+    bankTransferSuccess:"凭证已上传成功,等待客服确认",
+    submitSuccess:"提交成功",
   },
   login: {
     smsLogin: '验证码登录',

+ 1 - 1
src/pages/LearningSystem/components/xuxibiji.vue

@@ -129,7 +129,7 @@ const submit = (form) => {
   req(params).then(res => {
     console.log(res)
     if(res.code === 200){
-      DGTMessage.success(t('workflowTrade.publishSuccess'))
+      DGTMessage.success(t('common.submitSuccess'))
       getList('init');
     }
   }).finally(() => {

+ 18 - 5
src/pages/order/orderConfirm.vue

@@ -124,15 +124,16 @@
             {{item.configName}}:{{item.configValue}}</div>
         </div>
         <div class="mt20">
-          <div class="bold font_size18">付款凭证</div>
+          <div class="bold font_size18"> <span class="color_required">*</span> 付款凭证</div>
           <div class="mt20">
             <FileUploader
                 ref="fileUploader"
                 accept="image/*"
-                :multiple="true"
+                :multiple="false"
+                :limit="1"
                 :auto-upload="true"
                 list-type="picture-card"
-                :data="{ directory: 'workflow' }"
+                :data="{ directory: 'common' }"
                 buttonText=""
                 v-model="images"
                 tip=""
@@ -242,6 +243,7 @@ const orderInfo = reactive({
   productId:'',
   orderNum:0,
   orderAmt:0,//输入的金额
+  transferProof: '',//转账凭证
 })
 const pageRedirectionData = ref('');//支付二维码
 
@@ -260,10 +262,15 @@ const payNowFn = () => {
     DGTMessage.warning('请先同意协议')
     return
   }
-  if(payType.value == 1 && orderInfo.orderAmt <= 0){
+  if(orderInfo.orderAmt <= 0){
     DGTMessage.warning('请输入金额')
     return
   }
+  orderInfo.transferProof = images.value.map(item => item.url).join(',');
+  if(orderInfo.transferProof === '' && orderInfo.payMethod === 'bank_transfer'){
+    DGTMessage.warning('请上传转账凭证')
+    return
+  }
   loading.value = true;
   createOrder(orderInfo).then(res => {
     if(res.code === 200){
@@ -279,6 +286,7 @@ const payNowFn = () => {
           (() => {
             loading.value = false;
           }, 1000);
+          startPolling();
           break;
         case 'wechat_pay':
           qrcode.toDataURL(payData.codeUrl, (err, url) => {
@@ -289,21 +297,26 @@ const payNowFn = () => {
             }
           })
           loading.value = false;
+          startPolling();
           break;
         case 'union_pay':
           pageRedirectionData.value = payData || '';
           loading.value = false;
+          startPolling();
           break;
         case 'paypal':
           pageRedirectionData.value = payData || '';
           nextTick(() => {
             pay_paypal();
           })
+          loading.value = false;
+          startPolling();
           break;
         case 'bank_transfer':
+          paySuccess({t,callback:router.back,msg:t('common.bankTransferSuccess')});
+          loading.value = false;
           break;
       }
-      startPolling();
     }
   }).catch(() => {
     loading.value = false;

+ 3 - 2
src/utils/util.js

@@ -142,8 +142,8 @@ export function copyText(text, t, msg=t('common.copySuccess')) {
 }
 
 // 支付成功确认弹框
-export function paySuccess({t,callback}){
-  ElMessageBox.alert(t('common.paySuccess'), t('common.tip'), {
+export function paySuccess({t,callback,msg=t('common.paySuccess')}){
+  ElMessageBox.alert(msg, t('common.tip'), {
     // if you want to disable its autofocus
     // autofocus: false,
     confirmButtonText: t('common.confirm'),
@@ -157,6 +157,7 @@ export function paySuccess({t,callback}){
 //全局loading封装
 export function openFullScreenLoading() {
   const loading = ElLoading.service({
+    target: '.container',
     lock: true,
     // text: 'Loading',
     // background: 'rgba(0, 0, 0, 0.7)',