Merge branch 'master' of http://gitea.zianxin.com/zianxin-tec/biz-pc-cloud
This commit is contained in:
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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
// 暴露变量
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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>
|
||||
Reference in new issue
Block a user