@@ -30,16 +31,24 @@ import { reactive } from "vue"
import { useDict } from "/@/hooks/dict"
import { getWalletTypeSimple } from "/@/api/wallet/wallet-type"
+const emit = defineEmits(["change"])
+
const selectId = defineModel()
const props = withDefaults(
defineProps<{
placeholder?: string
disabled?: boolean
+ clearable?: boolean
+ autoFirst?: boolean
+ apiParams?: any
}>(),
{
placeholder: "请选择",
disabled: false,
+ clearable: true,
+ autoFirst: false,
+ apiParams: {},
},
)
@@ -59,6 +68,8 @@ const state = reactive
({
watch(
selectId,
(newVal, oldValue) => {
+ console.log(newVal, "newVal")
+
if (newVal == oldValue) return
state.selectId = newVal
getOptions()
@@ -71,10 +82,14 @@ async function getOptions() {
state.loading = true
const _pa = {
...queryForm,
+ ...props.apiParams,
}
const { data } = await getWalletTypeSimple(_pa)
state.options = data.records ?? []
-
+ if (props.autoFirst && state.options.length != 0) {
+ state.selectId = state.options[0].id
+ emit("change", state.selectId)
+ }
const { wallet_type } = useDict("wallet_type")
state.walletType = wallet_type
} finally {
@@ -93,4 +108,12 @@ function clear() {
state.selectId = null
getOptions()
}
+
+function change() {
+ emit("change", selectId)
+}
+
+onMounted(() => {
+ props.autoFirst && getOptions()
+})
diff --git a/src/components/TreeMultipleSelect/index.vue b/src/components/TreeMultipleSelect/index.vue
new file mode 100644
index 0000000..c55fe7c
--- /dev/null
+++ b/src/components/TreeMultipleSelect/index.vue
@@ -0,0 +1,159 @@
+
+
+ e && getOptions()"
+ clearable
+ highlight-current
+ default-expand-all
+ show-checkbox
+ collapse-tags
+ multiple
+ />
+
+
+
+
+
+
diff --git a/src/components/TreeSelect/index.vue b/src/components/TreeSelect/index.vue
index f48c1e5..263b337 100644
--- a/src/components/TreeSelect/index.vue
+++ b/src/components/TreeSelect/index.vue
@@ -1,181 +1,181 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/index.ts b/src/components/index.ts
index bc6a59f..07d5514 100644
--- a/src/components/index.ts
+++ b/src/components/index.ts
@@ -25,6 +25,7 @@ import SelectHardGroup from "/@/components/Select/selectHardGroup.vue"
import SelectHandlerUser from "/@/components/Select/SelectHandlerUser.vue"
import SelectSupplier from "/@/components/Select/SelectSupplier.vue"
import SelectMchRule from "/@/components/Select/SelectMchRule.vue"
+import TreeMultipleSelect from "/@/components/TreeMultipleSelect/index.vue"
// 第三方组件
import ElementPlus from "element-plus"
@@ -61,6 +62,7 @@ export default {
app.component("SvgIcon", SvgIcon)
app.component("PreviewImage", PreviewImage)
app.component("DraggableDepTree", DraggableDepTree)
+ app.component("TreeMultipleSelect", TreeMultipleSelect)
app.component("SelectUser", SelectUser)
app.component("SelectWalletType", SelectWalletType)
diff --git a/src/views/mch/mch-manage/mch-rule-config-form.vue b/src/views/mch/mch-manage/mch-rule-config-form.vue
index 46b80ad..576094d 100644
--- a/src/views/mch/mch-manage/mch-rule-config-form.vue
+++ b/src/views/mch/mch-manage/mch-rule-config-form.vue
@@ -14,7 +14,7 @@
-
+
diff --git a/src/views/mch/mch-manage/setting.vue b/src/views/mch/mch-manage/setting.vue
index ec1b856..a17b223 100644
--- a/src/views/mch/mch-manage/setting.vue
+++ b/src/views/mch/mch-manage/setting.vue
@@ -1,5 +1,5 @@
-
+
diff --git a/src/views/wallet/components/wallet-rule-desc.vue b/src/views/wallet/components/wallet-rule-desc.vue
index 2aef437..e478033 100644
--- a/src/views/wallet/components/wallet-rule-desc.vue
+++ b/src/views/wallet/components/wallet-rule-desc.vue
@@ -1,16 +1,18 @@
+ {{ detail.deptName ? detail.deptName : "???" }}
+ 部门的用户将余额从
{{ detail.sourceName ? detail.sourceName : "???" }}
转到
{{ detail.targetName ? detail.targetName : "???" }}
百分比为
{{ detail.balanceMultiple ? detail.balanceMultiple : "???" }}%
- ,如100元从
- {{ detail.sourceName ? detail.sourceName : "???" }}
- 转到
+ ,如
+ 100元
+ 总余额可转到
{{ detail.targetName ? detail.targetName : "???" }}
- 为{{ (100 * detail.balanceMultiple) / 100 }}元
+ {{ detail.targetName ? displayPrice(100 * detail.balanceMultiple) : "???元" }}
diff --git a/src/views/wallet/wallet-manage/index.vue b/src/views/wallet/wallet-manage/index.vue
index 221d416..790392a 100644
--- a/src/views/wallet/wallet-manage/index.vue
+++ b/src/views/wallet/wallet-manage/index.vue
@@ -108,26 +108,38 @@
- 详情
- 充值/扣款
+
+ 详情
+ 充值/扣款
+
+ 转账
+
+
@@ -137,12 +149,13 @@
+
+
+
diff --git a/src/views/wallet/wallet-type/components/wallet-rule-form-dialog.vue b/src/views/wallet/wallet-type/components/wallet-rule-form-dialog.vue
index f2617f3..73ef879 100644
--- a/src/views/wallet/wallet-type/components/wallet-rule-form-dialog.vue
+++ b/src/views/wallet/wallet-type/components/wallet-rule-form-dialog.vue
@@ -9,7 +9,16 @@
-
+
+
+
+
+
+
@@ -17,11 +26,6 @@
-
-
-
-
-
@@ -37,8 +41,6 @@
import { useMessage } from "/@/hooks/message"
import * as walletRuleJoinApi from "/@/api/wallet/wallet-rule-join"
-const WalletRuleDesc = defineAsyncComponent(() => import("../../components/wallet-rule-desc.vue"))
-
const emit = defineEmits(["refresh"])
// 定义变量内容
@@ -52,6 +54,8 @@ const defaultForm = {
id: "",
sourceWalletTypeId: "",
targetWalletTypeId: "",
+ targetDeptId: "",
+ targetDeptIdList: [],
balanceMultiple: 100,
status: 0,
}
@@ -61,21 +65,21 @@ const form = reactive({
// 定义校验规则
const dataRules = ref({
- sourceWalletTypeId: [{ required: true, message: "请选择源钱包类型", trigger: "blur" }],
- targetWalletTypeId: [{ required: true, message: "请选择目标钱包类型", trigger: "blur" }],
- balanceMultiple: [{ required: true, message: "请输入钱包转换百分比", trigger: "blur" }],
+ sourceWalletTypeId: [{ required: true, message: "请选择源钱包类型", trigger: "change" }],
+ targetWalletTypeId: [{ required: true, message: "请选择目标钱包类型", trigger: "change" }],
+ targetDeptId: [{ required: true, message: "请选择目标部门", trigger: "change" }],
+ targetDeptIdList: [{ required: true, message: "请选择目标部门", trigger: "change" }],
+ balanceMultiple: [{ required: true, message: "请输入钱包转换百分比", trigger: "change" }],
})
// 打开弹窗
const openDialog = (id: string, sourceWalletTypeId: string) => {
visible.value = true
- Object.assign(form, defaultForm)
- form.sourceWalletTypeId = sourceWalletTypeId
// 重置表单数据
nextTick(() => {
dataFormRef.value?.resetFields()
+ Object.assign(form, { ...defaultForm, sourceWalletTypeId: sourceWalletTypeId })
})
- // 获取walletRuleJoin信息
if (id) {
form.id = id
getwalletRuleJoinData(id)
@@ -86,14 +90,11 @@ const openDialog = (id: string, sourceWalletTypeId: string) => {
const onSubmit = async () => {
const valid = await dataFormRef.value.validate().catch(() => {})
if (!valid) return false
-
try {
loading.value = true
- const { data } = form.id ? await walletRuleJoinApi.putObj(form) : await walletRuleJoinApi.addObj(form)
+ form.id ? await walletRuleJoinApi.putObj(form) : await walletRuleJoinApi.addObj(form)
useMessage().success(form.id ? "修改成功" : "添加成功")
- // visible.value = false
- // 更新
- await getwalletRuleJoinData(data)
+ visible.value = false
emit("refresh")
} catch (err: any) {
useMessage().error(err.msg)
diff --git a/src/views/wallet/wallet-type/components/wallet-rule-table-dialog.vue b/src/views/wallet/wallet-type/components/wallet-rule-table-dialog.vue
index aa343c9..486fd8a 100644
--- a/src/views/wallet/wallet-type/components/wallet-rule-table-dialog.vue
+++ b/src/views/wallet/wallet-type/components/wallet-rule-table-dialog.vue
@@ -1,5 +1,5 @@
-
+
新 增
@@ -26,7 +26,7 @@
-
+
{{ row.targetName }}
@@ -36,6 +36,7 @@
+
{{ row.balanceMultiple }}%
@@ -58,7 +59,7 @@
text
type="primary"
v-auth="'dzc_walletRuleMchConfig_edit'"
- @click="WalletRuleFormDialogRef.openDialog(row.id, state.queryForm.sourceWalletTypeId)"
+ @click="WalletRuleFormDialogRef.openDialog(row.id, row.sourceWalletTypeId)"
>编辑
+
+
+
+
+
-
- 钱包规则
-
-
- 编辑
-
- 删除
+
+
+ 钱包规则
+
+
+ 编辑
+
+
+ 删除
+
+
@@ -78,7 +94,7 @@