商户二级修改
This commit is contained in:
1 parent
cdaef31ed7
commit
4557ba18cf
2 files changed
+45
-53
No files matched your search
@@ -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>({
|
||||
|
||||
@@ -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(() => {
|
||||
|
||||
Reference in new issue
Block a user