商户二级修改

This commit is contained in:
weiwei committed 2025-03-29 11:48:14 +08:00
1 parent cdaef31ed7
commit 4557ba18cf
2 files changed
+45 -53

No files matched your search

+11 -9
View File
@@ -30,19 +30,21 @@ import * as mchApi from "/@/api/wallet/mch-manage"
const selectId = defineModel()
export type Props = {
placeholder?: string
apiParams?: any
}
const props = withDefaults(defineProps<Props>(), {
placeholder: "请选择",
apiParams: {},
})
const props = withDefaults(
defineProps<{
placeholder?: string
apiParams?: any
}>(),
{
placeholder: "请选择",
apiParams: {},
},
)
const queryForm = reactive<any>({
name: null,
current: 1,
size: 10,
size: 9999,
})
const state = reactive<any>({
+34 -44
View File
@@ -1,6 +1,6 @@
<template>
<el-dialog :title="form.id ? '编辑' : '新增'" width="60%" v-model="visible" :close-on-click-modal="false" draggable>
<el-form ref="dataFormRef" :model="form" :rules="dataRules" label-width="110px" v-loading="loading">
<el-dialog :title="form.id ? '编辑' : '新增'" width="50%" v-model="visible" :close-on-click-modal="false" draggable>
<el-form ref="dataFormRef" :model="form" :rules="dataRules" label-width="120px" v-loading="loading">
<el-row :gutter="24">
<el-col :span="24" class="mb20">
<el-form-item label="商户名:" prop="name">
@@ -29,7 +29,7 @@
</el-form-item>
</el-col>
<el-col v-if="form.types == '2'" :span="24" class="mb20">
<el-form-item label="超市类型:" prop="supType">
<el-form-item label="合作商家类型:" prop="supType">
<el-radio-group v-model="form.supType" @change="(value:string) => form.supType = value">
<el-radio border :label="item.value" v-for="(item, index) in wallet_mch_sup_type" :key="index">{{ item.label }}</el-radio>
</el-radio-group>
@@ -44,17 +44,7 @@
</el-col>
<el-col v-if="form.types == '2' && form.supType == '20'" :span="24" class="mb20">
<el-form-item label="品牌:" prop="parentId">
<el-tree-select
v-model="form.parentId"
:data="parentMerchant"
:props="{ value: 'id', label: 'name', children: 'children' }"
check-strictly
class="w100"
clearable
filterable
placeholder="请选择主店"
@focus="parentSelectFocus"
/>
<select-mch v-model="form.parentId" :apiParams="{ types: '2', supType: '10' }" />
</el-form-item>
</el-col>
<el-col v-if="form.types == '2' && form.supType == '20'" :span="24" class="mb20">
@@ -142,7 +132,7 @@
<script setup lang="ts" name="MerchantInfoDialog">
import { useDict } from "/@/hooks/dict"
import { useMessage } from "/@/hooks/message"
import { pageJoin, getObj, addObj, putObj } from "/@/api/wallet/mch-manage"
import { getObj, addObj, putObj } from "/@/api/wallet/mch-manage"
const emit = defineEmits(["refresh"])
// 定义变量内容
@@ -171,9 +161,8 @@ const form = reactive({
supType: "10",
cooperationStatus: "1",
parentId: "",
discountsPrice: null,
discountsPrice: "",
})
const parentMerchant = ref<any[]>([])
const jobTime = reactive<{
[key: string]: string[]
}>({
@@ -184,14 +173,32 @@ const jobTime = reactive<{
const merchantTypeRadioDisabled = ref(false)
// 定义校验规则
const dataRules = ref({
name: [{ required: true, message: "商户名不能为空", trigger: "blur" }],
types: [{ required: true, message: "请选择商户类型", trigger: "blur" }],
logoPic: [{ required: true, message: "请上传商户logo", trigger: "blur" }],
swiperPic: [{ required: true, message: "请上传商户轮播图", trigger: "blur" }],
rangeDate: [{ required: true, message: "请选择营业时间", trigger: "blur" }],
deptId: [{ required: true, message: "请选择部门", trigger: "blur" }],
sort: [{ required: true, message: "请输入排序", trigger: "blur" }],
const dataRulesArr = {
name: [{ required: true, message: "商户名不能为空", trigger: "change" }],
types: [{ required: true, message: "请选择商户类型", trigger: "change" }],
logoPic: [{ required: true, message: "请上传商户logo", trigger: "change" }],
swiperPic: [{ required: true, message: "请上传商户轮播图", trigger: "change" }],
rangeDate: [{ required: true, message: "请选择营业时间", trigger: "change" }],
deptId: [{ required: true, message: "请选择部门", trigger: "change" }],
sort: [{ required: true, message: "请输入排序", trigger: "change" }],
}
const dataRules = computed(() => {
if (form.types == "2" && form.supType == "20") {
return {
...dataRulesArr,
supType: [{ required: true, message: "请选择合作商家类型", trigger: "change" }],
cooperationStatus: [{ required: true, message: "请选择合作状态", trigger: "change" }],
parentId: [{ required: true, message: "请选择品牌", trigger: "change" }],
discountsPrice: [{ required: true, message: "请输入优惠价格", trigger: "change" }],
}
} else if (form.types == "2") {
return {
...dataRulesArr,
supType: [{ required: true, message: "请选择合作商家类型", trigger: "change" }],
}
} else {
return dataRulesArr
}
})
// 打开弹窗
@@ -210,26 +217,8 @@ const openDialog = async (id: string) => {
form.id = id
await getmerchantInfoData(id)
}
await getMerchantTreeData()
}
const parentSelectFocus = async () => {
try {
const res = await pageJoin({ current: 1, size: 9999, types: "2", supType: "10" })
if (res.code == 0) {
parentMerchant.value = res.data.records
} else {
parentMerchant.value = []
}
} catch (error) {
parentMerchant.value = []
}
}
// 获取商户树数据
const getMerchantTreeData = async () => {}
watch(
() => form.types,
(newVal) => {
@@ -237,6 +226,7 @@ watch(
form.supType = "10"
form.cooperationStatus = "1"
form.parentId = ""
form.discountsPrice = ""
}
},
)
@@ -287,7 +277,7 @@ const getmerchantInfoData = async (id: string) => {
// 点击商户类型单选按钮
const handleClickRadio = (radioItemValue: string) => {
if (radioItemValue === form.types) {
if (radioItemValue == form.types) {
form.types = ""
merchantTypeRadioDisabled.value = true
setTimeout(() => {