mirror of
https://gitee.com/bootx/dax-pay-ui.git
synced 2025-10-14 14:11:10 +00:00
feat 基础依赖升级, 分账配置
This commit is contained in:
46
package.json
46
package.json
@@ -56,12 +56,12 @@
|
||||
"@ant-design/icons-vue": "^7.0.1",
|
||||
"@iconify/iconify": "^3.1.1",
|
||||
"@vben/hooks": "workspace:*",
|
||||
"@vue/shared": "^3.5.8",
|
||||
"@vue/shared": "^3.5.13",
|
||||
"@vueuse/core": "^10.11.1",
|
||||
"@vueuse/shared": "^10.11.1",
|
||||
"@zxcvbn-ts/core": "^3.0.4",
|
||||
"ant-design-vue": "^4.2.5",
|
||||
"axios": "^1.7.7",
|
||||
"ant-design-vue": "^4.2.6",
|
||||
"axios": "^1.7.9",
|
||||
"codemirror": "^5.65.18",
|
||||
"cropperjs": "^1.6.2",
|
||||
"crypto-js": "^4.2.0",
|
||||
@@ -73,31 +73,31 @@
|
||||
"pinia": "2.1.7",
|
||||
"pinia-plugin-persistedstate": "^3.2.3",
|
||||
"qrcode": "^1.5.4",
|
||||
"qs": "^6.13.0",
|
||||
"qs": "^6.13.1",
|
||||
"resize-observer-polyfill": "^1.5.1",
|
||||
"showdown": "^2.1.0",
|
||||
"sortablejs": "^1.15.3",
|
||||
"sortablejs": "^1.15.6",
|
||||
"unocss": "^0.59.4",
|
||||
"vue": "^3.5.8",
|
||||
"vue": "^3.5.13",
|
||||
"vue-json-pretty": "^2.4.0",
|
||||
"vue-router": "^4.4.5",
|
||||
"vue-router": "4.3.3",
|
||||
"vue-types": "^5.1.3",
|
||||
"vuedraggable": "^4.1.0",
|
||||
"vxe-pc-ui": "^4.2.2",
|
||||
"vxe-table": "^4.7.81",
|
||||
"xe-utils": "^3.5.30"
|
||||
"vxe-pc-ui": "^4.3.23",
|
||||
"vxe-table": "^4.9.19",
|
||||
"xe-utils": "^3.5.32"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^19.5.0",
|
||||
"@commitlint/config-conventional": "^19.5.0",
|
||||
"@iconify/json": "^2.2.252",
|
||||
"@commitlint/cli": "^19.6.0",
|
||||
"@commitlint/config-conventional": "^19.6.0",
|
||||
"@iconify/json": "^2.2.281",
|
||||
"@purge-icons/generated": "^0.10.0",
|
||||
"@types/codemirror": "^5.60.15",
|
||||
"@types/crypto-js": "^4.2.2",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"@types/qrcode": "^1.5.5",
|
||||
"@types/qs": "^6.9.16",
|
||||
"@types/qs": "^6.9.17",
|
||||
"@types/showdown": "^2.0.6",
|
||||
"@types/sortablejs": "^1.15.8",
|
||||
"@vben/eslint-config": "workspace:*",
|
||||
@@ -105,22 +105,22 @@
|
||||
"@vben/ts-config": "workspace:*",
|
||||
"@vben/types": "workspace:*",
|
||||
"@vben/vite-config": "workspace:*",
|
||||
"@vue/compiler-sfc": "^3.5.8",
|
||||
"@vue/compiler-sfc": "^3.5.13",
|
||||
"@vue/test-utils": "^2.4.6",
|
||||
"conventional-changelog-cli": "^4.1.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"cz-git": "^1.9.4",
|
||||
"czg": "^1.9.4",
|
||||
"cz-git": "^1.11.0",
|
||||
"czg": "^1.11.0",
|
||||
"lint-staged": "15.2.2",
|
||||
"prettier": "^3.3.3",
|
||||
"prettier-plugin-packagejson": "^2.5.2",
|
||||
"prettier": "^3.4.2",
|
||||
"prettier-plugin-packagejson": "^2.5.6",
|
||||
"rimraf": "^5.0.10",
|
||||
"turbo": "^1.13.4",
|
||||
"typescript": "^5.6.2",
|
||||
"typescript": "^5.7.2",
|
||||
"unbuild": "^2.0.0",
|
||||
"vite": "^5.4.7",
|
||||
"vite-plugin-vue-devtools": "^7.4.5",
|
||||
"vue-tsc": "^2.1.6"
|
||||
"vite": "^5.4.11",
|
||||
"vite-plugin-vue-devtools": "^7.6.7",
|
||||
"vue-tsc": "^2.1.10"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.12.0",
|
||||
|
2803
pnpm-lock.yaml
generated
2803
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,9 @@
|
||||
<template>
|
||||
<basic-drawer
|
||||
destroyOnClose
|
||||
v-bind="$attrs"
|
||||
width="70%"
|
||||
title="分账组配置"
|
||||
title="分账配置"
|
||||
:mask-closable="true"
|
||||
:open="visible"
|
||||
@close="visible = false"
|
||||
@@ -26,10 +27,10 @@
|
||||
import AllocationGroupList from '@/views/daxpay/common/allocation/group/AllocationGroupList.vue'
|
||||
import { ref } from 'vue'
|
||||
import { BasicDrawer } from '@/components/Drawer'
|
||||
import AllocationConfig from "@/views/daxpay/common/allocation/config/AllocationConfig.vue";
|
||||
import AllocationConfig from '@/views/daxpay/common/allocation/config/AllocationConfig.vue'
|
||||
|
||||
const visible = ref(false)
|
||||
const activeKey = ref(2)
|
||||
const activeKey = ref(1)
|
||||
const appId = ref('')
|
||||
|
||||
/**
|
||||
@@ -37,11 +38,11 @@
|
||||
* @param appid
|
||||
*/
|
||||
function init(appid: string) {
|
||||
activeKey.value = 1
|
||||
visible.value = true
|
||||
appId.value = appid
|
||||
}
|
||||
|
||||
|
||||
defineExpose({ init })
|
||||
</script>
|
||||
|
||||
|
@@ -0,0 +1,37 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
import { Result } from '#/axios'
|
||||
import { MchEntity } from '#/web'
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
export function saveConfig(data: AllocConfig) {
|
||||
return defHttp.post<Result<void>>({ url: '/allocation/config/save', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*/
|
||||
export function updateConfig(data: AllocConfig) {
|
||||
return defHttp.post<Result<void>>({ url: '/allocation/config/update', data })
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据应用ID查询
|
||||
*/
|
||||
export function getConfig(appId) {
|
||||
return defHttp.get<Result<AllocConfig>>({
|
||||
url: '/allocation/config/findByAppId',
|
||||
params: { appId },
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 分账配置参数
|
||||
*/
|
||||
export interface AllocConfig extends MchEntity {
|
||||
/** 是否自动分账 */
|
||||
autoAlloc?: boolean
|
||||
/** 大于多少开启分账 */
|
||||
minAmount?: number
|
||||
}
|
||||
|
@@ -1,11 +1,124 @@
|
||||
<script setup lang="ts">
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form
|
||||
class="small-from-item"
|
||||
:model="form"
|
||||
ref="formRef"
|
||||
:validate-trigger="['blur', 'change']"
|
||||
:rules="rules"
|
||||
:label-col="labelCol"
|
||||
:wrapper-col="wrapperCol"
|
||||
>
|
||||
<a-form-item label="主键" name="id" :hidden="true">
|
||||
<a-input v-model:value="form.id" :disabled="showable" />
|
||||
</a-form-item>
|
||||
<a-form-item label="自动分账" name="autoAlloc">
|
||||
<template #label>
|
||||
<basic-title
|
||||
helpMessage="开启自动分账后,如果创建订单时设置为了自动分账,将会对订单自动分账"
|
||||
>
|
||||
开启自动分账
|
||||
</basic-title>
|
||||
</template>
|
||||
<a-radio-group v-model:value="form.autoAlloc" :disabled="!edit" button-style="solid">
|
||||
<a-radio-button :value="false">关闭</a-radio-button>
|
||||
<a-radio-button :value="true">开启</a-radio-button>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
<a-form-item name="minAmount">
|
||||
<template #label>
|
||||
<basic-title helpMessage="只有大于或等于其实金额的订单才会进行分账">
|
||||
自动分账起始金额(元)
|
||||
</basic-title>
|
||||
</template>
|
||||
<a-input-number
|
||||
v-model:value="form.minAmount"
|
||||
class="w-300px"
|
||||
:min="0.1"
|
||||
:max="9999999"
|
||||
:disabled="!edit"
|
||||
placeholder="请输自动分账起始金额(元)"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
<a-space :size="55" class="flex justify-center">
|
||||
<a-button v-if="edit" @click="initData">取消</a-button>
|
||||
<a-button v-if="edit" type="primary" @click="update">{{
|
||||
form.id ? '更新' : '保存'
|
||||
}}</a-button>
|
||||
<a-button v-if="!edit" @click="edit = true">编辑信息</a-button>
|
||||
</a-space>
|
||||
</a-spin>
|
||||
</template>
|
||||
|
||||
<style scoped lang="less">
|
||||
<script setup lang="ts">
|
||||
import useFormEdit from '@/hooks/bootx/useFormEdit'
|
||||
import { onMounted, ref } from 'vue'
|
||||
import { FormInstance, Rule } from 'ant-design-vue/lib/form'
|
||||
import { saveConfig, getConfig, updateConfig, AllocConfig } from './AllocationConfig.api'
|
||||
import { useMessage } from '@/hooks/web/useMessage'
|
||||
import BasicTitle from '@/components/Basic/src/BasicTitle.vue'
|
||||
|
||||
</style>
|
||||
const { labelCol, wrapperCol, confirmLoading, showable } = useFormEdit()
|
||||
const { createMessage } = useMessage()
|
||||
|
||||
const edit = ref<boolean>(false)
|
||||
|
||||
const props = defineProps({
|
||||
appId: String,
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
initData()
|
||||
})
|
||||
// 表单
|
||||
const formRef = ref<FormInstance>()
|
||||
const form = ref<AllocConfig>({
|
||||
autoAlloc: false,
|
||||
minAmount: 1.0,
|
||||
})
|
||||
|
||||
const rules = {
|
||||
autoAlloc: [{ required: true, message: '' }],
|
||||
minAmount: [{ required: true, message: '请输自动分账起始金额(元)' }],
|
||||
} as Record<string, Rule[]>
|
||||
|
||||
/**
|
||||
* 重置信息
|
||||
*/
|
||||
function initData() {
|
||||
confirmLoading.value = true
|
||||
edit.value = false
|
||||
getConfig(props.appId).then(({ data }) => {
|
||||
form.value = data
|
||||
confirmLoading.value = false
|
||||
form.value.appId = props.appId
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新配置
|
||||
*/
|
||||
function update() {
|
||||
formRef.value?.validate().then(async () => {
|
||||
confirmLoading.value = true
|
||||
if (form.value.id) {
|
||||
updateConfig(form.value)
|
||||
.then(() => {
|
||||
edit.value = false
|
||||
createMessage.success('更新成功')
|
||||
})
|
||||
.finally(() => (confirmLoading.value = false))
|
||||
} else {
|
||||
saveConfig(form.value)
|
||||
.then(() => {
|
||||
createMessage.success('保存成功')
|
||||
initData()
|
||||
})
|
||||
.finally(() => (confirmLoading.value = false))
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less"></style>
|
||||
|
Reference in New Issue
Block a user