【招生主控端】 优化# 删除无用的文件以及忽略上传public文件夹到仓库

master
kaeery 2025-03-07 22:51:08 +08:00
parent 9c38b2d1fc
commit 1c912f58a5
10 changed files with 58 additions and 508 deletions

2
.gitignore vendored
View File

@ -36,3 +36,5 @@ components.d.ts
yarn.lock yarn.lock
package-lock.json package-lock.json
public

View File

@ -34,20 +34,20 @@ export const constantRoutes: Array<RouteRecordRaw> = [
path: PageEnum.LOGIN, path: PageEnum.LOGIN,
component: () => import('@/views/account/login.vue') component: () => import('@/views/account/login.vue')
}, },
{ // {
path: '/user', // path: '/user',
component: LAYOUT, // component: LAYOUT,
children: [ // children: [
{ // {
path: 'setting', // path: 'setting',
name: Symbol(), // name: Symbol(),
component: () => import('@/views/user/setting.vue'), // component: () => import('@/views/user/setting.vue'),
meta: { // meta: {
title: '个人设置' // title: '个人设置'
} // }
} // }
] // ]
}, // },
{ {
path: '/dev_tools', path: '/dev_tools',
component: LAYOUT, component: LAYOUT,
@ -98,105 +98,6 @@ export const constantRoutes: Array<RouteRecordRaw> = [
} }
] ]
}, },
{
path: '/service',
component: LAYOUT,
children: [
{
path: 'lists/edit',
component: () => import('@/views/service/lists/edit.vue'),
meta: {
title: '服务列表',
activeMenu: '/service/lists'
}
}
]
},
{
path: '/service',
component: LAYOUT,
children: [
{
path: 'category/edit',
component: () => import('@/views/service/category/edit.vue'),
meta: {
title: '服务列表',
activeMenu: '/service/category'
}
}
]
},
{
path: '/service',
component: LAYOUT,
children: [
{
path: 'time/edit',
component: () => import('@/views/service/subscribe/edit.vue'),
meta: {
title: '预约服务时间',
activeMenu: '/service/subscribe'
}
}
]
},
{
path: '/service',
component: LAYOUT,
children: [
{
path: 'activity/form',
component: () => import('@/views/service/activity/form.vue'),
meta: {
title: '活动专区',
activeMenu: '/service/activity'
}
}
]
},
{
path: '/user',
component: LAYOUT,
children: [
{
path: 'userList/detail',
component: () => import('@/views/user/userList/detail.vue'),
meta: {
title: '用户列表',
activeMenu: '/user/userList'
}
}
]
},
{
path: '/master_worker',
component: LAYOUT,
children: [
{
path: 'edit',
component: () => import('@/views/master_worker/edit.vue'),
name: 'MasterWorkerEdit',
meta: {
title: '添加师傅',
activeMenu: '/master_worker/index'
}
}
]
},
{
path: '/order',
component: LAYOUT,
children: [
{
path: 'lists/detail',
component: () => import('@/views/order/lists/detail.vue'),
meta: {
title: '订单列表',
activeMenu: '/order/lists'
}
}
]
},
{ {
path: '/setting', path: '/setting',
component: LAYOUT, component: LAYOUT,
@ -210,217 +111,6 @@ export const constantRoutes: Array<RouteRecordRaw> = [
} }
} }
] ]
},
{
path: '/marketing',
component: LAYOUT,
children: [
{
path: 'coupon/edit',
component: () => import('@/views/application/coupon/edit.vue'),
meta: {
title: '新增优惠券',
activeMenu: '/application/coupon/coupon'
}
}
]
},
// 分销管理
{
path: '/distributor',
component: LAYOUT,
children: [
{
path: 'add',
component: () => import('@/views/distributor/edit.vue'),
name: 'DistributorAdd',
meta: {
title: '添加分销',
activeMenu: '/distributor/index'
}
}
]
},
{
path: '/distributor',
component: LAYOUT,
children: [
{
path: 'edit',
component: () => import('@/views/distributor/edit.vue'),
name: 'DistributorEdit',
meta: {
title: '编辑分销',
activeMenu: '/distributor/index'
}
}
]
},
{
path: '/distributor',
component: LAYOUT,
children: [
{
path: 'register',
component: () => import('@/views/distributor/register.vue'),
name: 'DistributorRegister',
meta: {
title: '查看用户',
activeMenu: '/distributor/index'
}
}
]
},
{
path: '/distributor',
component: LAYOUT,
children: [
{
path: 'order',
component: () => import('@/views/distributor/order.vue'),
name: 'DistributorOrder',
meta: {
title: '查看订单',
activeMenu: '/distributor/index'
}
}
]
},
{
path: '/distributor',
component: LAYOUT,
children: [
{
path: 'register/detail',
component: () => import('@/views/distributor/userDetail.vue'),
name: 'DistributorRegisterDetail',
meta: {
title: '用户详情',
activeMenu: '/distributor/index'
}
}
]
},
{
path: '/marketing',
component: LAYOUT,
children: [
{
path: 'coupon/edit',
component: () => import('@/views/application/coupon/edit.vue'),
meta: {
title: '新增优惠券',
activeMenu: '/application/coupon/coupon'
}
}
]
},
{
path: '/marketing',
component: LAYOUT,
children: [
{
path: 'coupon/detail',
component: () => import('@/views/application/coupon/detail.vue'),
name: 'CouponDetail',
meta: {
title: '优惠券详情',
activeMenu: '/application/coupon/coupon'
}
}
]
},
{
path: '/distributor',
component: LAYOUT,
children: [
{
path: 'coupon',
component: () => import('@/views/distributor/coupon.vue'),
name: 'DistributorCoupon',
meta: {
title: '查看优惠券',
activeMenu: '/distributor/index'
}
}
]
},
{
path: '/master_worker',
component: LAYOUT,
children: [
{
path: 'detail',
component: () => import('@/views/master_worker/detail.vue'),
meta: {
title: '师傅认证资料详情',
activeMenu: '/master_worker/apply'
}
}
]
},
{
path: '/report/pdf',
component: () => import('@/views/master_worker/components/previewPdf.vue'),
meta: {
title: '师傅体检报告'
}
},
// {
// path: '/master_worker',
// component: LAYOUT,
// children: [
// {
// path: 'physical',
// component: () => import('@/views/master_worker/physical.vue'),
// meta: {
// title: '师傅体检报告',
// }
// }
// ]
// },
{
path: '/master_worker',
component: LAYOUT,
children: [
{
path: 'staff',
component: () => import('@/views/master_worker/staff.vue'),
meta: {
title: '师傅资料',
activeMenu: '/master_worker/apply'
}
}
]
},
{
path: '/master_worker',
component: LAYOUT,
children: [
{
path: 'cancelOrderRule',
component: () => import('@/views/master_worker/cancelOrder/rule.vue'),
meta: {
title: '师傅退单规则',
activeMenu: '/master_worker/cancelOrder'
}
}
]
},
{
path: '/user',
component: LAYOUT,
children: [
{
path: 'setting_rule',
component: () => import('@/views/user/refund_rule/setting_rule.vue'),
meta: {
title: '用户退单规则',
activeMenu: '/user/refund_rule_list'
}
}
]
} }
] ]

View File

@ -3,18 +3,12 @@
<el-card class="!border-none" shadow="never"> <el-card class="!border-none" shadow="never">
<el-page-header :content="$route.meta.title" @back="$router.back()" /> <el-page-header :content="$route.meta.title" @back="$router.back()" />
</el-card> </el-card>
<el-form <el-form ref="formRef" :model="formData" label-width="120px" :rules="rules" v-loading="loading">
ref="formRef"
:model="formData"
label-width="120px"
:rules="rules"
v-loading="loading"
>
<el-card class="!border-none mt-4" shadow="never"> <el-card class="!border-none mt-4" shadow="never">
<div class="font-medium mb-7">通知名称</div> <div class="font-medium mb-7">通知名称</div>
<el-form-item label="通知名称" prop="name"> {{ formData.name }} </el-form-item> <el-form-item label="通知名称" prop="name">{{ formData.name }}</el-form-item>
<el-form-item label="通知类型" prop="name"> {{ formData.type }} </el-form-item> <el-form-item label="通知类型" prop="name">{{ formData.type }}</el-form-item>
<el-form-item label="通知业务" prop="name"> {{ formData.remarks }} </el-form-item> <el-form-item label="通知业务" prop="name">{{ formData.remarks }}</el-form-item>
</el-card> </el-card>
<el-card class="!border-none mt-4" shadow="never"> <el-card class="!border-none mt-4" shadow="never">
<div class="font-medium mb-7">短信通知</div> <div class="font-medium mb-7">短信通知</div>
@ -26,20 +20,13 @@
</el-form-item> </el-form-item>
<el-form-item label="模板ID" prop="smsNotice.templateId"> <el-form-item label="模板ID" prop="smsNotice.templateId">
<div class="w-80"> <div class="w-80">
<el-input <el-input v-model="formData.smsNotice.templateId" placeholder="请输入模板ID" />
v-model="formData.smsNotice.templateId"
placeholder="请输入模板ID"
/>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="短信内容" prop="smsNotice.content"> <el-form-item label="短信内容" prop="smsNotice.content">
<div class="flex-1"> <div class="flex-1">
<div class="w-full max-w-[320px]"> <div class="w-full max-w-[320px]">
<el-input <el-input type="textarea" :autosize="{ minRows: 6, maxRows: 6 }" v-model="formData.smsNotice.content" />
type="textarea"
:autosize="{ minRows: 6, maxRows: 6 }"
v-model="formData.smsNotice.content"
/>
</div> </div>
<div class="form-tips"> <div class="form-tips">
<!-- <div v-for="(item, index) in formData.smsNotice.tips" :key="index"> --> <!-- <div v-for="(item, index) in formData.smsNotice.tips" :key="index"> -->
@ -59,7 +46,6 @@
<script lang="ts" setup name="noticeEdit"> <script lang="ts" setup name="noticeEdit">
import type { FormInstance } from 'element-plus' import type { FormInstance } from 'element-plus'
import feedback from '@/utils/feedback' import feedback from '@/utils/feedback'
import { noticeDetail, setNoticeConfig } from '@/api/message'
import useMultipleTabs from '@/hooks/useMultipleTabs' import useMultipleTabs from '@/hooks/useMultipleTabs'
const route = useRoute() const route = useRoute()
@ -103,7 +89,7 @@ const getDetails = async () => {
const data = await noticeDetail({ const data = await noticeDetail({
id: route.query.id id: route.query.id
}) })
Object.keys(data).forEach((key) => { Object.keys(data).forEach(key => {
//@ts-ignore //@ts-ignore
formData[key] = data[key] formData[key] = data[key]
}) })

View File

@ -1,22 +1,11 @@
<template> <template>
<div> <div>
<el-card class="!border-none" shadow="never"> <el-card class="!border-none" shadow="never">
<el-alert <el-alert type="warning" title="温馨提示:平台配置在各个场景下的通知发送方式和内容模板" :closable="false" show-icon></el-alert>
type="warning"
title="温馨提示:平台配置在各个场景下的通知发送方式和内容模板"
:closable="false"
show-icon
></el-alert>
</el-card> </el-card>
<el-card class="!border-none mt-4" shadow="never"> <el-card class="!border-none mt-4" shadow="never">
<el-tabs v-model="tabsActive" @tab-change="getLists"> <el-tabs v-model="tabsActive" @tab-change="getLists">
<el-tab-pane <el-tab-pane v-for="(item, index) in tabsMap" :key="index" :label="item.name" :name="item.type" lazy></el-tab-pane>
v-for="(item, index) in tabsMap"
:key="index"
:label="item.name"
:name="item.type"
lazy
></el-tab-pane>
</el-tabs> </el-tabs>
<el-table size="large" :data="state.lists" v-loading="state.loading"> <el-table size="large" :data="state.lists" v-loading="state.loading">
<el-table-column label="通知场景" prop="name" min-width="120" /> <el-table-column label="通知场景" prop="name" min-width="120" />
@ -48,7 +37,6 @@
</div> </div>
</template> </template>
<script lang="ts" setup name="notice"> <script lang="ts" setup name="notice">
import { noticeLists } from '@/api/message'
import { getRoutePath } from '@/router' import { getRoutePath } from '@/router'
enum NoticeEnums { enum NoticeEnums {

View File

@ -1,13 +1,6 @@
<template> <template>
<div class="edit-popup"> <div class="edit-popup">
<popup <popup ref="popupRef" title="设置存储" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
ref="popupRef"
title="设置存储"
:async="true"
width="550px"
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules"> <el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
<el-form-item label="短信渠道"> <el-form-item label="短信渠道">
<div> <div>
@ -40,7 +33,6 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { setSmsConfig, smsDetail } from '@/api/message'
import type { FormInstance } from 'element-plus' import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue' import Popup from '@/components/popup/index.vue'
import feedback from '@/utils/feedback' import feedback from '@/utils/feedback'

View File

@ -11,14 +11,7 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" min-width="120" fixed="right"> <el-table-column label="操作" min-width="120" fixed="right">
<template #default="{ row }"> <template #default="{ row }">
<el-button <el-button v-perms="['setting:storage:edit']" type="primary" link @click="handleSet(row.alias)"></el-button>
v-perms="['setting:storage:edit']"
type="primary"
link
@click="handleSet(row.alias)"
>
设置
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -27,7 +20,6 @@
</div> </div>
</template> </template>
<script lang="ts" setup name="shortLetter"> <script lang="ts" setup name="shortLetter">
import { smsLists } from '@/api/message'
import EditPopup from './edit.vue' import EditPopup from './edit.vue'
const editRef = shallowRef<InstanceType<typeof EditPopup>>() const editRef = shallowRef<InstanceType<typeof EditPopup>>()

View File

@ -1,21 +1,9 @@
<template> <template>
<div class="edit-popup"> <div class="edit-popup">
<popup <popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
ref="popupRef"
:title="popupTitle"
:async="true"
width="550px"
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules"> <el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form-item label="账号" prop="username"> <el-form-item label="账号" prop="username">
<el-input <el-input v-model="formData.username" :disabled="isRoot" placeholder="请输入账号" clearable />
v-model="formData.username"
:disabled="isRoot"
placeholder="请输入账号"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item label="头像"> <el-form-item label="头像">
<div> <div>
@ -48,55 +36,24 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="岗位" prop="deptId"> <el-form-item label="岗位" prop="deptId">
<el-select <el-select class="flex-1" clearable v-model="formData.postId" placeholder="请选择岗位">
class="flex-1" <el-option v-for="(item, index) in optionsData.post" :key="index" :label="item.name" :value="item.id" />
clearable
v-model="formData.postId"
placeholder="请选择岗位"
>
<el-option
v-for="(item, index) in optionsData.post"
:key="index"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="角色" prop="role"> <el-form-item label="角色" prop="role">
<el-select <el-select v-model="formData.role" :disabled="isRoot" class="flex-1" clearable placeholder="请选择角色">
v-model="formData.role"
:disabled="isRoot"
class="flex-1"
clearable
placeholder="请选择角色"
>
<el-option v-if="isRoot" label="系统管理员" value="0" /> <el-option v-if="isRoot" label="系统管理员" value="0" />
<el-option <el-option v-for="(item, index) in optionsData.role" :key="index" :label="item.name" :value="String(item.id)" />
v-for="(item, index) in optionsData.role"
:key="index"
:label="item.name"
:value="String(item.id)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="密码" prop="password"> <el-form-item label="密码" prop="password">
<el-input <el-input v-model.trim="formData.password" show-password clearable placeholder="请输入密码" />
v-model.trim="formData.password"
show-password
clearable
placeholder="请输入密码"
/>
</el-form-item> </el-form-item>
<el-form-item label="确认密码" prop="passwordConfirm"> <el-form-item label="确认密码" prop="passwordConfirm">
<el-input <el-input v-model.trim="formData.passwordConfirm" show-password clearable placeholder="请输入确认密码" />
v-model.trim="formData.passwordConfirm"
show-password
clearable
placeholder="请输入确认密码"
/>
</el-form-item> </el-form-item>
<el-form-item label="管理员状态" v-if="!isRoot"> <el-form-item label="管理员状态" v-if="!isRoot">
@ -105,11 +62,7 @@
<el-form-item label="多处登录"> <el-form-item label="多处登录">
<div> <div>
<el-switch <el-switch v-model="formData.isMultipoint" :active-value="1" :inactive-value="0" />
v-model="formData.isMultipoint"
:active-value="1"
:inactive-value="0"
/>
<div class="form-tips">允许多人同时在线登录</div> <div class="form-tips">允许多人同时在线登录</div>
</div> </div>
</el-form-item> </el-form-item>
@ -123,8 +76,6 @@ import Popup from '@/components/popup/index.vue'
import { adminAdd, adminEdit, adminDetail } from '@/api/perms/admin' import { adminAdd, adminEdit, adminDetail } from '@/api/perms/admin'
import { useDictOptions } from '@/hooks/useDictOptions' import { useDictOptions } from '@/hooks/useDictOptions'
import { roleAll } from '@/api/perms/role' import { roleAll } from '@/api/perms/role'
import { postAll } from '@/api/org/post'
import { deptLists } from '@/api/org/department'
import feedback from '@/utils/feedback' import feedback from '@/utils/feedback'
const emit = defineEmits(['success', 'close']) const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>() const formRef = shallowRef<FormInstance>()

View File

@ -11,9 +11,7 @@
</div> </div>
<div class="text-lg mb-5 font-medium" v-if="index == 2"> <div class="text-lg mb-5 font-medium" v-if="index == 2">
微信公众号 微信公众号
<span class="text-xs font-normal form-tips ml-2" <span class="text-xs font-normal form-tips ml-2">在微信公众号H5页面中付款的场景公众号类型一般为服务号</span>
>在微信公众号H5页面中付款的场景公众号类型一般为服务号</span
>
</div> </div>
<div class="text-lg mb-5 font-medium" v-if="index == 3"> <div class="text-lg mb-5 font-medium" v-if="index == 3">
H5支付 H5支付
@ -40,29 +38,17 @@
<el-image :src="scope.row.payImage" style="width: 34px; height: 34px" /> <el-image :src="scope.row.payImage" style="width: 34px; height: 34px" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="payWayDesc" label="支付方式" min-width="150"></el-table-column>
prop="payWayDesc"
label="支付方式"
min-width="150"
></el-table-column>
<el-table-column label="默认支付" min-width="150"> <el-table-column label="默认支付" min-width="150">
<template #default="scope"> <template #default="scope">
<el-radio <el-radio v-model="scope.row.isDefault" :label="1" :name="1" @change="changeRadioPaymentSet(scope.$index, index)">
v-model="scope.row.isDefault" 设为默认
:label="1" </el-radio>
:name="1"
@change="changeRadioPaymentSet(scope.$index, index)"
>设为默认</el-radio
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="status" label="状态" min-width="150"> <el-table-column prop="status" label="状态" min-width="150">
<template #default="scope"> <template #default="scope">
<el-switch <el-switch v-model="scope.row.status" :active-value="1" :inactive-value="0" />
v-model="scope.row.status"
:active-value="1"
:inactive-value="0"
/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -77,7 +63,6 @@
<script lang="ts" setup> <script lang="ts" setup>
import { apiPaymentWaySet, apiPaymentWayLists } from '@/api/setting/payment' import { apiPaymentWaySet, apiPaymentWayLists } from '@/api/setting/payment'
import { ref } from 'vue' import { ref } from 'vue'
import FooterBtns from '@/components/footer-btns/index.vue'
const route = useRoute() const route = useRoute()
const router = useRouter() const router = useRouter()

View File

@ -1,46 +1,26 @@
<template> <template>
<div class="substance_edit-help"> <div class="substance_edit-help">
<el-card class="!border-none mt-4" shadow="never"> <el-card class="!border-none mt-4" shadow="never">
<el-page-header <el-page-header :content="mode == 'add' ? '新增定时任务' : '编辑定时任务'" @back="$router.go(-1)" />
:content="mode == 'add' ? '新增定时任务' : '编辑定时任务'"
@back="$router.go(-1)"
/>
</el-card> </el-card>
<el-card shadow="never" class="!border-none mt-4"> <el-card shadow="never" class="!border-none mt-4">
<el-form :rules="rules" ref="formRef" :model="formData" label-width="120px"> <el-form :rules="rules" ref="formRef" :model="formData" label-width="120px">
<!-- 标题输入框 --> <!-- 标题输入框 -->
<el-form-item label="任务名称" prop="name"> <el-form-item label="任务名称" prop="name">
<el-input <el-input v-model="formData.name" show-word-limit placeholder="请输入任务名称" class="max-w-[300px]"></el-input>
v-model="formData.name"
show-word-limit
placeholder="请输入任务名称"
class="max-w-[300px]"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="任务分组" prop="types"> <el-form-item label="任务分组" prop="types">
<el-select <el-select class="ls-input" v-model="formData.types" placeholder="请选择任务分组">
class="ls-input"
v-model="formData.types"
placeholder="请选择任务分组"
>
<el-option label="默认" value="default" /> <el-option label="默认" value="default" />
<el-option label="系统" value="system" /> <el-option label="系统" value="system" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="调用方法" prop="command"> <el-form-item label="调用方法" prop="command">
<el-input <el-input v-model="formData.command" class="max-w-[300px]" placeholder="请输入调用目标字符串"></el-input>
v-model="formData.command"
class="max-w-[300px]"
placeholder="请输入调用目标字符串"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="cron表达式" prop="rules"> <el-form-item label="cron表达式" prop="rules">
<el-input <el-input v-model="formData.rules" class="max-w-[300px]" placeholder="请输入cron执行表达式"></el-input>
v-model="formData.rules"
class="max-w-[300px]"
placeholder="请输入cron执行表达式"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="备注"> <el-form-item label="备注">
<el-input <el-input
@ -56,15 +36,15 @@
</el-form-item> </el-form-item>
<el-form-item label="执行策略"> <el-form-item label="执行策略">
<el-radio-group v-model="formData.strategy"> <el-radio-group v-model="formData.strategy">
<el-radio :label="1"> 立即执行 </el-radio> <el-radio :label="1">立即执行</el-radio>
<el-radio :label="2"> 执行一次 </el-radio> <el-radio :label="2">执行一次</el-radio>
<el-radio :label="3"> 放弃执行 </el-radio> <el-radio :label="3">放弃执行</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="是否并发"> <el-form-item label="是否并发">
<el-radio-group v-model="formData.concurrent"> <el-radio-group v-model="formData.concurrent">
<el-radio :label="1"> 允许 </el-radio> <el-radio :label="1">允许</el-radio>
<el-radio :label="0"> 禁止 </el-radio> <el-radio :label="0">禁止</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="状态"> <el-form-item label="状态">
@ -85,7 +65,6 @@
import { reactive, ref } from 'vue' import { reactive, ref } from 'vue'
import { apiCrontabAdd, apiCrontabEdit, apiCrontabDetail } from '@/api/setting/system' import { apiCrontabAdd, apiCrontabEdit, apiCrontabDetail } from '@/api/setting/system'
import { PageMode } from '@/utils/enum' import { PageMode } from '@/utils/enum'
import FooterBtns from '@/components/footer-btns/index.vue'
import type { ElForm } from 'element-plus' import type { ElForm } from 'element-plus'
import feedback from '@/utils/feedback' import feedback from '@/utils/feedback'
import useMultipleTabs from '@/hooks/useMultipleTabs' import useMultipleTabs from '@/hooks/useMultipleTabs'
@ -121,7 +100,7 @@ const getDetails = async () => {
const data = await apiCrontabDetail({ const data = await apiCrontabDetail({
id: route.query.id id: route.query.id
}) })
Object.keys(formData).forEach((key) => { Object.keys(formData).forEach(key => {
//@ts-ignore //@ts-ignore
formData[key] = data[key] formData[key] = data[key]
}) })

View File

@ -5,15 +5,10 @@
<el-form-item label="系统取消待付款订单" prop="cancelUnpaidOrders"> <el-form-item label="系统取消待付款订单" prop="cancelUnpaidOrders">
<el-radio-group v-model="formData.cancelUnpaidOrders"> <el-radio-group v-model="formData.cancelUnpaidOrders">
<div class="flex flex-col"> <div class="flex flex-col">
<el-radio class="mb-[14px]" label="0" <el-radio class="mb-[14px]" label="0">关闭系统自动取消待付款订单</el-radio>
>关闭系统自动取消待付款订单</el-radio
>
<el-radio label="1"> <el-radio label="1">
订单提交后 订单提交后
<el-input <el-input v-model="formData.cancelUnpaidOrdersTimes" class="w-20 mx-2 ls-input" />
v-model="formData.cancelUnpaidOrdersTimes"
class="w-20 mx-2 ls-input"
/>
分钟内未付款系统自动取消 分钟内未付款系统自动取消
</el-radio> </el-radio>
</div> </div>
@ -26,11 +21,7 @@
<el-radio class="mb-[14px]" label="0">关闭系统自动核销订单</el-radio> <el-radio class="mb-[14px]" label="0">关闭系统自动核销订单</el-radio>
<el-radio label="1"> <el-radio label="1">
师傅未在 师傅未在
<el-input <el-input required v-model="formData.verificationOrdersTimes" class="w-20 mx-2 ls-input" />
required
v-model="formData.verificationOrdersTimes"
class="w-20 mx-2 ls-input"
/>
小时内核销订单系统自动核销 小时内核销订单系统自动核销
</el-radio> </el-radio>
</div> </div>
@ -43,9 +34,7 @@
<el-radio label="1">开启</el-radio> <el-radio label="1">开启</el-radio>
<el-radio label="0">关闭</el-radio> <el-radio label="0">关闭</el-radio>
</el-radio-group> </el-radio-group>
<div class="form-tips"> <div class="form-tips">开启之后用户下单系统会在符合条件的情况随机派单给师傅</div>
开启之后用户下单系统会在符合条件的情况随机派单给师傅
</div>
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -59,7 +48,6 @@
<script lang="ts" setup> <script lang="ts" setup>
import { getConfig, setConfig } from '@/api/transaction_settings/index' import { getConfig, setConfig } from '@/api/transaction_settings/index'
import FooterBtns from '@/components/footer-btns/index.vue'
import feedback from '@/utils/feedback' import feedback from '@/utils/feedback'
const formData = ref<any>({ const formData = ref<any>({
@ -80,10 +68,7 @@ const toGetConfig = async () => {
const onSubmit = async () => { const onSubmit = async () => {
if (formData.value.cancelUnpaidOrders === '1' && !formData.value.cancelUnpaidOrdersTimes) { if (formData.value.cancelUnpaidOrders === '1' && !formData.value.cancelUnpaidOrdersTimes) {
return feedback.msgError('系统取消待付款订单时间未填写') return feedback.msgError('系统取消待付款订单时间未填写')
} else if ( } else if (formData.value.verificationOrders === '1' && !formData.value.verificationOrdersTimes) {
formData.value.verificationOrders === '1' &&
!formData.value.verificationOrdersTimes
) {
return feedback.msgError('系统自动核销订单时间未填写') return feedback.msgError('系统自动核销订单时间未填写')
} }
await setConfig({ ...formData.value }) await setConfig({ ...formData.value })