商户二级

This commit is contained in:
weiwei committed 2025-03-28 20:48:51 +08:00
1 parent 192f8b8dca
commit 4f40fcae93
4 files changed
+74 -593

No files matched your search

+69 -10
View File
@@ -3,17 +3,17 @@
<el-form ref="dataFormRef" :model="form" :rules="dataRules" label-width="110px" v-loading="loading">
<el-row :gutter="24">
<el-col :span="24" class="mb20">
<el-form-item label="商户名" prop="name">
<el-form-item label="商户名:" prop="name">
<el-input v-model.trim="form.name" placeholder="请输入商户名" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="部门" prop="deptId">
<el-form-item label="部门:" prop="deptId">
<select-dept v-model="form.deptId" placeholder="请选择部门" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="商户类型" prop="merchantType">
<el-form-item label="商户类型:" prop="merchantType">
<el-radio-group v-model="form.merchantType">
<el-radio
:label="item.value"
@@ -28,27 +28,59 @@
</el-radio-group>
</el-form-item>
</el-col>
<el-col v-if="form.merchantType == '2'" :span="24" class="mb20">
<el-form-item label="商户分店:" prop="merchantBranch">
<el-radio-group v-model="form.merchantBranch" @change="(value:number) => form.merchantBranch = value">
<el-radio :label="1">总店</el-radio>
<el-radio :label="2">分店</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col v-if="form.merchantType == '2' && form.merchantBranch == 2" :span="24" class="mb20">
<el-form-item label="合作状态:" prop="cooperationStatus">
<dict-select v-model="form.cooperationStatus" dict-code="yes_no_type" />
</el-form-item>
</el-col>
<el-col v-if="form.merchantType == '2' && form.merchantBranch == 2" :span="24" class="mb20">
<el-form-item label="总店:" prop="parentId">
<el-tree-select
v-model="form.parentId"
:data="merchantTree"
:props="{ value: 'id', label: 'name', children: 'children', disabled: 'isLock' }"
check-strictly
class="w100"
clearable
filterable
placeholder="请选择主店"
/>
</el-form-item>
</el-col>
<el-col v-if="form.merchantType == '2' && form.merchantBranch == 2" :span="12" class="mb20">
<el-form-item label="优惠价格:" prop="discountsPrice">
<el-input-number v-model="form.discountsPrice" :min="0" :max="1000" :precision="0" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="商户logo" prop="logoPic">
<el-form-item label="商户logo:" prop="logoPic">
<upload-img v-model:imageUrl="form.logoPic" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="轮播图" prop="swiperPic">
<el-form-item label="轮播图:" prop="swiperPic">
<upload-imgs v-model="form.swiperPic" />
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item prop="sort">
<template #label>
<span>排序</span>
<span>排序:</span>
<tip content="越大越在前" />
</template>
<el-input-number v-model="form.sort" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="联系电话" prop="phone">
<el-form-item label="联系电话:" prop="phone">
<el-input v-model.trim="form.phone" placeholder="请输入联系电话" />
</el-form-item>
</el-col>
@@ -92,7 +124,7 @@
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="店铺地址" prop="addressDes">
<el-form-item label="店铺地址:" prop="addressDes">
<el-input type="textarea" v-model.trim="form.addressDes" placeholder="请输入店铺地址" />
</el-form-item>
</el-col>
@@ -108,9 +140,8 @@
<script setup lang="ts" name="MerchantInfoDialog">
import { useDict } from "/@/hooks/dict"
import { useMessage } from "/@/hooks/message"
import { getObj, addObj, putObj } from "/@/api/wallet/mch-manage"
import { pageJoin, getObj, addObj, putObj } from "/@/api/wallet/mch-manage"
const emit = defineEmits(["refresh"])
import { useUserInfo } from "/@/stores/userInfo"
// 定义变量内容
const dataFormRef = ref()
@@ -135,7 +166,12 @@ const form = reactive({
businessTime: "",
addressDes: "",
sort: 0,
merchantBranch: 1,
cooperationStatus: "0",
parentId: "",
discountsPrice: null,
})
const merchantTree = ref<any[]>([])
const jobTime = reactive<{
[key: string]: string[]
}>({
@@ -174,8 +210,31 @@ const openDialog = async (id: string) => {
form.id = id
await getmerchantInfoData(id)
}
await getMerchantTreeData()
}
// 获取商户树数据
const getMerchantTreeData = async () => {
const res = await pageJoin({ current: 1, size: 9999 })
if (res.code == 0) {
merchantTree.value = res.data.records
} else {
merchantTree.value = []
}
}
watch(
() => form.merchantType,
(newVal) => {
if (newVal != "2") {
form.merchantBranch = 1
form.cooperationStatus = "0"
form.parentId = ""
}
},
)
// 提交
const onSubmit = async () => {
const valid = await dataFormRef.value.validate().catch(() => {})
+5 -1
View File
@@ -56,6 +56,10 @@
:header-cell-style="tableStyle.headerCellStyle"
@selection-change="selectionChangHandle"
@sort-change="sortChangeHandle"
lazy
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
:indent="20"
:default-expand-all="false"
>
<el-table-column type="selection" width="40" align="center" />
<el-table-column type="index" label="#" width="50" />
@@ -258,7 +262,7 @@ const handleDelete = async (ids: string[]) => {
}
try {
await delObjs(ids)
await mchManangeApi.delObjs(ids)
getDataList()
useMessage().success("删除成功")
} catch (err: any) {