Browse Source

货币管理调整

Xiao_123 9 tháng trước cách đây
mục cha
commit
477c55d4b4

+ 2 - 0
src/api/menduner/system/order/index.ts

@@ -7,6 +7,8 @@ export interface TradeOrderVO {
   spuId: number // 商品编号
   spuName: string // 商品名字
   price: number // 价格,单位:分
+  enterpriseId: number
+  userType: string
 }
 
 // 交易订单	 API

+ 1 - 0
src/utils/dict.ts

@@ -236,4 +236,5 @@ export enum DICT_TYPE {
   MENDUNER_HUNT_STATUS = 'menduner_hunt_status',
   MENDUNER_TRADE_ORDER_TYPE = 'menduner_trade_order_type', // 订单类型
   MENDUNER_TRADE_ORDER_CANCEL_TYPE = 'menduner_trade_order_cancel_type', // 订单取消类型
+  MENDUNER_USER_TYPE = 'menduner_user_type', // 用户类型
 }

+ 25 - 16
src/views/menduner/system/order/TradeOrderForm.vue

@@ -7,6 +7,19 @@
       label-width="80px"
       v-loading="formLoading"
     >
+      <el-form-item label="用户类型" prop="userType">
+        <el-select v-model="formData.userType" placeholder="请选择用户类型" @change="handleSelectUserType">
+          <el-option
+            v-for="dict in getStrDictOptions(DICT_TYPE.MENDUNER_USER_TYPE)"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item v-if="showEnterpriseId" label="企业编号" prop="enterpriseId">
+        <el-input v-model="formData.enterpriseId" placeholder="请输入企业编号" />
+      </el-form-item>
       <el-form-item label="用户编号" prop="userId">
         <el-input v-model="formData.userId" placeholder="请输入用户编号" />
       </el-form-item>
@@ -55,9 +68,12 @@ const formData = ref({
   type: undefined,
   spuId: undefined,
   spuName: undefined,
+  userType: undefined,
+  enterpriseId: undefined,
   price: 100,
 })
 const formRules = reactive({
+  userType: [{ required: true, message: '用户类型不能为空', trigger: 'blur' }],
   userId: [{ required: true, message: '用户编号不能为空', trigger: 'blur' }],
   type: [{ required: true, message: '订单类型不能为空', trigger: 'change' }],
   spuId: [{ required: true, message: '商品编号不能为空', trigger: 'blur' }],
@@ -71,34 +87,25 @@ const open = async (type: string) => {
   dialogVisible.value = true
   formType.value = type
   resetForm()
-  // 修改时,设置数据
-  // if (id) {
-  //   formLoading.value = true
-  //   try {
-  //     formData.value = await TradeOrderApi.getTradeOrder(id)
-  //   } finally {
-  //     formLoading.value = false
-  //   }
-  // }
 }
 defineExpose({ open }) // 提供 open 方法,用于打开弹窗
 
+const showEnterpriseId = ref(true)
+const handleSelectUserType = (e: string) => {
+  showEnterpriseId.value = e === '0' ? false : true
+}
+
 /** 提交表单 */
 const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
 const submitForm = async () => {
   // 校验表单
   await formRef.value.validate()
+  if (formData.value.userType === '1' && !formData.value.enterpriseId) return message.warning('企业编号不能为空')
+
   // 提交请求
   formLoading.value = true
   try {
     const data = formData.value as unknown as TradeOrderVO
-    // if (formType.value === 'create') {
-    //   await TradeOrderApi.createTradeOrder(data)
-    //   message.success(t('common.createSuccess'))
-    // } else {
-    //   await TradeOrderApi.updateTradeOrder(data)
-    //   message.success(t('common.updateSuccess'))
-    // }
     data.price = data.price * 100
     await TradeOrderApi.createTradeOrder(data)
     message.success(t('common.createSuccess'))
@@ -117,6 +124,8 @@ const resetForm = () => {
     type: undefined,
     spuId: undefined,
     spuName: undefined,
+    userType: undefined,
+    enterpriseId: undefined,
     price: 100
   }
   formRef.value?.resetFields()

+ 2 - 0
src/views/menduner/system/order/index.vue

@@ -228,6 +228,8 @@ const handlePay = (row: any) => {
     query: {
       id: row.payOrderId,
       userId: row.userId,
+      userType: row.userType,
+      enterpriseId: row.enterpriseId,
       returnUrl: encodeURIComponent('/pay/demo/order?id=' + row.id)
     }
   })

+ 23 - 21
src/views/menduner/system/order/pay.vue

@@ -114,7 +114,7 @@
   </Dialog>
 
   <!-- 点数支付:输入dataId -->
-  <Dialog
+  <!-- <Dialog
     title="点数支付"
     v-model="currency.visible"
     width="500px"
@@ -136,7 +136,7 @@
       </el-button>
       <el-button @click="currency.visible = false">取 消</el-button>
     </template>
-  </Dialog>
+  </Dialog> -->
 </template>
 
 <script lang="ts" setup>
@@ -224,7 +224,7 @@ const channelsWechat = [
     code: 'wx_bar'
   }
 ]
-const channelsMock = [
+const channelsMock = ref([
   {
     name: '钱包支付',
     icon: svg_mock,
@@ -235,12 +235,14 @@ const channelsMock = [
     icon: svg_mock,
     code: 'mock'
   },
-  {
-    name: '点数支付',
-    icon: svg_mock,
-    code: 'currency'
-  }
-]
+  // {
+  //   name: '点数支付',
+  //   icon: svg_mock,
+  //   code: 'currency'
+  // }
+])
+
+if (route.query.userType && route.query.enterpriseId) channelsMock.value.push({ name: '点数支付', icon: svg_mock, code: 'currency' })
 
 const submitLoading = ref(false) // 提交支付的 loading
 const interval = ref<any>(undefined) // 定时任务,轮询是否完成支付
@@ -258,12 +260,12 @@ const barCode = ref({
   visible: false
 })
 // 点数支付
-const currency = ref({
-  channelCode: '',
-  dataId: '',
-  userId: '',
-  visible: false
-})
+// const currency = ref({
+//   channelCode: '',
+//   dataId: '',
+//   userId: '',
+//   visible: false
+// })
 
 /** 获得支付信息 */
 const getDetail = async () => {
@@ -315,11 +317,11 @@ const submit = (channelCode) => {
     return
   }
   // 点数支付需弹窗输入id
-  if (channelCode === PayChannelEnum.CURRENCY.code) {
-    currency.value.channelCode = channelCode
-    currency.value.visible = true
-    return
-  }
+  // if (channelCode === PayChannelEnum.CURRENCY.code) {
+  //   currency.value.channelCode = channelCode
+  //   currency.value.visible = true
+  //   return
+  // }
 
   // 微信公众号、小程序支付,无法在 PC 网页中进行
   if (channelCode === PayChannelEnum.WX_PUB.code) {
@@ -393,7 +395,7 @@ const buildSubmitParam = (channelCode) => {
   if (channelCode === PayChannelEnum.CURRENCY.code) {
     return {
       channelExtras: {
-        data_id: currency.value.dataId,
+        data_id: route.query.enterpriseId,
         user_id: route.query.userId
       }
     }

+ 10 - 10
src/views/pay/currency/balance/index.vue

@@ -61,16 +61,16 @@
         </template>
       </el-table-column>
       <el-table-column label="余额" align="center" prop="balance">
-        <template #default="{ row }"> {{ dealPrice(row.balance) }} 元</template>
+        <!-- <template #default="{ row }"> {{ dealPrice(row.balance) }} 元</template> -->
       </el-table-column>
       <el-table-column label="累计支出" align="center" prop="totalExpense">
-        <template #default="{ row }"> {{ dealPrice(row.totalExpense) }} 元</template>
+        <!-- <template #default="{ row }"> {{ dealPrice(row.totalExpense) }} 元</template> -->
       </el-table-column>
       <el-table-column label="累计充值" align="center" prop="totalRecharge">
-        <template #default="{ row }"> {{ dealPrice(row.totalRecharge) }} 元</template>
+        <!-- <template #default="{ row }"> {{ dealPrice(row.totalRecharge) }} 元</template> -->
       </el-table-column>
       <el-table-column label="冻结金额" align="center" prop="freezePrice">
-        <template #default="{ row }"> {{ dealPrice(row.freezePrice) }} 元</template>
+        <!-- <template #default="{ row }"> {{ dealPrice(row.freezePrice) }} 元</template> -->
       </el-table-column>
       <el-table-column
         label="创建时间"
@@ -101,7 +101,7 @@
 <script setup lang="ts">
 import { dateFormatter } from '@/utils/formatTime'
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
-import { fenToYuan } from '@/utils'
+// import { fenToYuan } from '@/utils'
 import * as CurrencyApi from '@/api/pay/currency/balance'
 import CurrencyForm from './CurrencyForm.vue'
 
@@ -119,11 +119,11 @@ const queryParams = reactive({
 })
 const queryFormRef = ref() // 搜索的表单
 
-const dealPrice = (num) => {
-  if (typeof num === 'undefined') return '0.00'
-  const parseNumber = typeof num === 'string' ? parseFloat(num) : num
-  return (parseNumber / 10.0).toFixed(2)
-}
+// const dealPrice = (num) => {
+//   if (typeof num === 'undefined') return '0.00'
+//   const parseNumber = typeof num === 'string' ? parseFloat(num) : num
+//   return (parseNumber / 10.0).toFixed(2)
+// }
 
 /** 查询列表 */
 const getList = async () => {

+ 16 - 3
src/views/pay/currency/recharge/index.vue

@@ -62,9 +62,21 @@
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
       <el-table-column label="编号" align="center" prop="id" />
-      <el-table-column label="用户实际到余额" align="center" prop="totalPrice" />
-      <el-table-column label="实际支付金额" align="center" prop="payPrice" />
-      <el-table-column label="钱包赠送金额" align="center" prop="bonusPrice" />
+      <el-table-column label="用户实际到余额" align="center" prop="totalPrice">
+        <template #default="scope">
+          {{ fenToYuan(scope.row.totalPrice) }}
+        </template>
+      </el-table-column>
+      <el-table-column label="实际支付金额" align="center" prop="payPrice">
+        <template #default="scope">
+          {{ fenToYuan(scope.row.payPrice) }}
+        </template>
+      </el-table-column>
+      <el-table-column label="钱包赠送金额" align="center" prop="bonusPrice">
+        <template #default="scope">
+          {{ fenToYuan(scope.row.bonusPrice) }}
+        </template>
+      </el-table-column>
       <el-table-column label="是否已支付" align="center" prop="payStatus">
         <template #default="scope">
           {{ scope.row.payStatus ? '已支付': '未支付' }}
@@ -108,6 +120,7 @@
 <script lang="ts" setup>
 import { dateFormatter } from '@/utils/formatTime'
 import { DICT_TYPE } from '@/utils/dict'
+import { fenToYuan } from '@/utils'
 import { getCurrencyRechargePage, refundCurrencyRechargeOrder } from '@/api/pay/currency/recharge'
 defineOptions({ name: 'CurrencyRechargeList' })
 

+ 2 - 2
src/views/pay/currency/rechargePackage/index.vue

@@ -59,10 +59,10 @@
       <el-table-column label="编号" align="center" prop="id" />
       <el-table-column label="套餐名" align="center" prop="name" />
       <el-table-column label="支付金额" align="center" prop="payPrice">
-        <template #default="{ row }"> {{ fenToYuan(row.payPrice) }}</template>
+        <template #default="{ row }"> {{ fenToYuan(row.payPrice) }}</template>
       </el-table-column>
       <el-table-column label="赠送金额" align="center" prop="bonusPrice">
-        <template #default="{ row }"> {{ fenToYuan(row.bonusPrice) }}</template>
+        <template #default="{ row }"> {{ fenToYuan(row.bonusPrice) }}</template>
       </el-table-column>
       <el-table-column label="状态" align="center" prop="status">
         <template #default="scope">

+ 3 - 3
src/views/pay/currency/transaction/CurrencyTransactionList.vue

@@ -5,10 +5,10 @@
       <el-table-column label="钱包编号" align="center" prop="currencyId" />
       <el-table-column label="关联业务标题" align="center" prop="title" />
       <el-table-column label="交易金额" align="center" prop="price">
-        <template #default="{ row }"> {{ fenToYuan(row.price) }} 元</template>
+        <!-- <template #default="{ row }"> {{ fenToYuan(row.price) }} 元</template> -->
       </el-table-column>
       <el-table-column label="钱包余额" align="center" prop="balance">
-        <template #default="{ row }"> {{ fenToYuan(row.balance) }} 元</template>
+        <!-- <template #default="{ row }"> {{ fenToYuan(row.balance) }} 元</template> -->
       </el-table-column>
       <el-table-column
         label="交易时间"
@@ -31,7 +31,7 @@
 <script lang="ts" setup>
 import { dateFormatter } from '@/utils/formatTime'
 import * as CurrencyTransactionApi from '@/api/pay/currency/transaction'
-import { fenToYuan } from '@/utils'
+// import { fenToYuan } from '@/utils'
 defineOptions({ name: 'CurrencyTransactionList' })
 
 const { currencyId }: { currencyId: number } = defineProps({