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