This commit is contained in:
dzc committed 2025-03-10 14:30:28 +08:00
commit 2acdb063db
4 files changed
+186 -57

No files matched your search

@@ -315,7 +315,7 @@ const handleClickLinkCode = () => linkCgPlanDialogRef.value.openLinkCodeDialog()
const getSelectedLinkCode = (selectionRows: any) => {
console.log("被选择的关联数据", selectionRows)
baseDataForm.linkCode = selectionRows.planCode
baseDataForm.linkCode = selectionRows.inventoryCode
state.editableTableData = selectionRows.items
state.erpSpuItemsMemo = selectionRows.items
state.linkCgPlanDialogVisible = false
+66 -49
View File
@@ -14,12 +14,6 @@
</el-form-item>
</el-col>
<!-- <el-col :span="24" class="mb20">
<el-form-item label="硬件分组" prop="hardGroupId">
<select-hard-group v-model="form.hardGroupId" />
</el-form-item>
</el-col> -->
<el-col :span="24" class="mb20">
<el-form-item label="商户类型" prop="merchantType">
<el-radio-group v-model="form.merchantType">
@@ -30,7 +24,7 @@
<el-col :span="24" class="mb20">
<el-form-item label="商户logo" prop="logoPic">
<upload-img v-model:imageUrl="form.logoPic"></upload-img>
<upload-img v-model:imageUrl="form.logoPic" />
</el-form-item>
</el-col>
@@ -47,15 +41,40 @@
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="营业时间" prop="rangeDate">
<el-form-item label="营业时间:" class="my-0" />
<el-form-item class="ml-2" label="早上" prop="jobTime">
<el-time-picker
v-model="form.rangeDate"
v-model="jobTime.morning"
placeholder="请选择营业时间"
is-range
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="HH:mm"
value-format="HH-mm"
format="HH:mm"
/>
</el-form-item>
<el-form-item class="ml-2" label="中午" prop="jobTime">
<el-time-picker
v-model="jobTime.noon"
placeholder="请选择营业时间"
is-range
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="HH-mm"
format="HH:mm"
/>
</el-form-item>
<el-form-item class="ml-2" label="晚上" prop="jobTime">
<el-time-picker
v-model="jobTime.evening"
placeholder="请选择营业时间"
is-range
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="HH-mm"
format="HH:mm"
/>
</el-form-item>
@@ -79,15 +98,12 @@
import { useDict } from "/@/hooks/dict"
import { useMessage } from "/@/hooks/message"
import { getObj, addObj, putObj } from "/@/api/wallet/mch-manage"
import { rule } from "/@/utils/validate"
import { parseTime } from "/@/utils/formatTime"
const emit = defineEmits(["refresh"])
// 定义变量内容
const dataFormRef = ref()
const visible = ref(false)
const loading = ref(false)
//定义业务变量内容
// 定义字典
const { merchant_type } = useDict("merchant_type")
@@ -104,57 +120,53 @@ const form = reactive({
phone: "",
businessTime: "",
address: "",
jobStartTime: "",
jobEndTime: "",
rangeDate: [],
hardGroupId: "",
})
const jobTime = reactive<{
[key: string]: string[]
}>({
morning: [],
noon: [],
evening: [],
})
// 定义校验规则
const dataRules = ref({
name: [{ required: true, message: "商户名不能为空", trigger: "blur" }],
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" }],
merchantType: [{ required: true, message: "请选择商户类型", trigger: "change" }],
hardGroupId: [{ required: true, message: "请选择硬件分组", trigger: "change" }],
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" }],
// merchantType: [{ required: true, message: "请选择商户类型", trigger: "blur" }],
// jobTime: [{ required: true, message: "请选择营业时间", trigger: "blur" }],
})
// 打开弹窗
const openDialog = (id: string) => {
const openDialog = async (id: string) => {
visible.value = true
form.id = ""
// 重置表单数据
dataFormRef.value?.resetFields()
for (const key in jobTime) {
jobTime[key] = []
}
// 获取merchantInfo信息
if (id) {
form.id = id
getmerchantInfoData(id)
await getmerchantInfoData(id)
}
}
const parseDate = (timeString: string) => {
const now = new Date()
const [hours, minutes] = timeString.split(":").map(Number)
now.setHours(hours)
now.setMinutes(minutes)
now.setSeconds(0)
now.setMilliseconds(0)
return parseTime(now, "{h}:{i}:{s}")
}
// 提交
const onSubmit = async () => {
const valid = await dataFormRef.value.validate().catch(() => {})
if (!valid) return false
const _pa = { ...form, types: form.merchantType }
if (_pa.rangeDate && _pa.rangeDate.length) {
_pa.jobStartTime = parseDate(_pa.rangeDate[0])
_pa.jobEndTime = parseDate(_pa.rangeDate[1])
const _pa = {
...form,
types: form.merchantType,
jobTime: jobTime.morning.join(",") + ";" + jobTime.noon.join(",") + ";" + jobTime.evening.join(","),
}
try {
loading.value = true
@@ -170,20 +182,25 @@ const onSubmit = async () => {
}
// 初始化表单数据
const getmerchantInfoData = (id: string) => {
// 获取数据
const getmerchantInfoData = async (id: string) => {
loading.value = true
getObj(id)
.then((res: any) => {
try {
const res = await getObj(id)
if (res.code === 0) {
const data = res.data
const resJobTime = data.jobTime?.split(";")
Object.assign(form, data, {
merchantType: data.types,
rangeDate: [data.jobStartTime, data.jobEndTime],
})
})
.finally(() => {
loading.value = false
})
jobTime.morning = resJobTime ? resJobTime[0]?.split(",") : []
jobTime.noon = resJobTime ? resJobTime[1]?.split(",") : []
jobTime.evening = resJobTime ? resJobTime[2]?.split(",") : []
}
} catch (error: any) {
useMessage().error(error.msg)
} finally {
loading.value = false
}
}
// 暴露变量
+20 -7
View File
@@ -58,7 +58,7 @@
</template>
</el-table-column>
<el-table-column prop="deptName" label="部门" />
<el-table-column prop="phone" label="联系电话" show-overflow-tooltip />
<el-table-column prop="phone" label="联系电话" show-overflow-tooltip :min-width="120" />
<el-table-column prop="businessTime" label="结束营业时间" show-overflow-tooltip :min-width="160">
<template #default="{ row }">
<div>
@@ -71,12 +71,21 @@
<el-table-column prop="createTime" label="创建时间" show-overflow-tooltip :min-width="160" />
<el-table-column label="操作" width="150">
<template #default="scope">
<el-button icon="edit-pen" text type="primary" v-auth="'wallet_mchManage_edit'" @click="formDialogRef.openDialog(scope.row.id)"
>编辑</el-button
>
<el-button icon="delete" text type="primary" v-auth="'wallet_mchManage_del'" @click="handleDelete([scope.row.id])"
>删除</el-button
<el-button icon="edit-pen" text type="primary" v-auth="'wallet_mchManage_edit'" @click="formDialogRef.openDialog(scope.row.id)">
编辑
</el-button>
<el-button icon="delete" text type="primary" v-auth="'wallet_mchManage_del'" @click="handleDelete([scope.row.id])">
删除
</el-button>
<el-button
icon="setting"
text
type="primary"
v-auth="'wallet_mchManage_setting'"
@click="settingDialogRef.openDialog(scope.row.id)"
>
配置
</el-button>
</template>
</el-table-column>
</el-table>
@@ -85,6 +94,9 @@
<!-- 编辑、新增 -->
<form-dialog ref="formDialogRef" @refresh="getDataList(false)" />
<!-- 商户配置 -->
<Setting ref="settingDialogRef" @refresh="getDataList(false)" />
</div>
</template>
@@ -93,12 +105,13 @@ import { BasicTableProps, useTable } from "/@/hooks/table"
import { pageJoin, delObjs } from "/@/api/wallet/mch-manage"
import { useMessage, useMessageBox } from "/@/hooks/message"
import { useDict } from "/@/hooks/dict"
import { parseDate } from "/@/utils/formatTime"
import FormDialog from "./form.vue"
import Setting from "./setting.vue"
const { merchant_type } = useDict("merchant_type")
// 定义变量内容
const formDialogRef = ref()
const settingDialogRef = ref()
// 搜索变量
const queryRef = ref()
const showSearch = ref(true)
+99
View File
@@ -0,0 +1,99 @@
<template>
<el-dialog title="商户配置" width="40%" 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="18" class="mb20">
<el-form-item label="默认钱包类型" prop="defaultWalletTypeId">
<select-wallet-type v-model="form.defaultWalletTypeId" placeholder="请选择默认钱包类型" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="onSubmit" :disabled="loading">确认</el-button>
</template>
</el-dialog>
</template>
<script setup lang="ts" name="MerchantInfoDialog">
import { useMessage } from "/@/hooks/message"
import { getObj, putObj } from "/@/api/wallet/mch-manage"
const emit = defineEmits(["refresh"])
const dataFormRef = ref()
const visible = ref(false)
const loading = ref(false)
// 提交表单数据
const form = reactive({
id: "",
merchantType: "",
defaultWalletTypeId: "",
})
// 定义校验规则
const dataRules = ref({
defaultWalletTypeId: [{ required: true, message: "请选择默认钱包类型", trigger: "blur" }],
})
// 打开弹窗
const openDialog = (id: string) => {
if (id) {
visible.value = true
form.id = id
// 重置表单数据
dataFormRef.value?.resetFields()
getmerchantInfoData(id)
} else {
useMessage().success("商户id不存在")
}
}
// 初始化表单数据
const getmerchantInfoData = async (id: string) => {
// 获取数据
loading.value = true
try {
const res = await getObj(id)
if (res.code === 0) {
const data = res.data
Object.assign(form, data, {
merchantType: data.types,
})
}
} catch (error: any) {
useMessage().success(error)
} finally {
loading.value = false
}
}
// 提交
const onSubmit = async () => {
const valid = await dataFormRef.value.validate().catch(() => {})
if (!valid) return false
const _pa = { ...form, types: form.merchantType }
try {
loading.value = true
const res = await putObj(_pa)
if (res.code === 0) {
useMessage().success("修改成功")
visible.value = false
emit("refresh")
} else {
useMessage().error("修改失败")
}
} catch (err: any) {
useMessage().error(err.msg)
} finally {
loading.value = false
}
}
// 暴露变量
defineExpose({
openDialog,
})
</script>