【招生主控端】 优化# 删除无用的文件以及忽略上传public文件夹到仓库
parent
9c38b2d1fc
commit
1c912f58a5
|
@ -36,3 +36,5 @@ components.d.ts
|
||||||
|
|
||||||
yarn.lock
|
yarn.lock
|
||||||
package-lock.json
|
package-lock.json
|
||||||
|
|
||||||
|
public
|
|
@ -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'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -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]
|
||||||
})
|
})
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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>>()
|
||||||
|
|
||||||
|
|
|
@ -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>()
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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]
|
||||||
})
|
})
|
||||||
|
|
|
@ -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 })
|
||||||
|
|
Loading…
Reference in New Issue