mirror of
https://gitee.com/xiangheng/x_admin.git
synced 2025-09-26 20:21:19 +08:00
优化
This commit is contained in:
@@ -24,12 +24,12 @@ export type type_system_log_sms_query = {
|
||||
Content?: string
|
||||
Status?: number
|
||||
Results?: string
|
||||
SendTime_start?: string
|
||||
SendTime_end?: string
|
||||
CreateTime_start?: string
|
||||
CreateTime_end?: string
|
||||
UpdateTime_start?: string
|
||||
UpdateTime_end?: string
|
||||
SendTimeStart?: string
|
||||
SendTimeEnd?: string
|
||||
CreateTimeStart?: string
|
||||
CreateTimeEnd?: string
|
||||
UpdateTimeStart?: string
|
||||
UpdateTimeEnd?: string
|
||||
}
|
||||
// 添加编辑
|
||||
export type type_system_log_sms_edit = {
|
||||
@@ -58,8 +58,8 @@ export function system_log_sms_list_all(params?: type_system_log_sms_query) {
|
||||
}
|
||||
|
||||
// 系统短信日志详情
|
||||
export function system_log_sms_detail(id: number | string) {
|
||||
return request.get<type_system_log_sms>({ url: '/system_log_sms/detail', params: { id } })
|
||||
export function system_log_sms_detail(Id: number | string) {
|
||||
return request.get<type_system_log_sms>({ url: '/system_log_sms/detail', params: { Id } })
|
||||
}
|
||||
|
||||
// 系统短信日志新增
|
||||
@@ -69,16 +69,12 @@ export function system_log_sms_add(data: type_system_log_sms_edit) {
|
||||
|
||||
// 系统短信日志编辑
|
||||
export function system_log_sms_edit(data: type_system_log_sms_edit) {
|
||||
return request.post<null>({
|
||||
url: '/system_log_sms/edit',
|
||||
data: data
|
||||
// data: clearEmpty(data)
|
||||
})
|
||||
return request.post<null>({ url: '/system_log_sms/edit', data })
|
||||
}
|
||||
|
||||
// 系统短信日志删除
|
||||
export function system_log_sms_delete(id: number | string) {
|
||||
return request.post<null>({ url: '/system_log_sms/del', data: { id } })
|
||||
export function system_log_sms_delete(Id: number | string) {
|
||||
return request.post<null>({ url: '/system_log_sms/del', data: { Id } })
|
||||
}
|
||||
|
||||
// 系统短信日志导入
|
||||
|
@@ -200,7 +200,7 @@ import { getModulesKey } from '@/router'
|
||||
import { MenuEnum } from '@/enums/appEnums'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import feedback from '@/utils/feedback'
|
||||
import { arrayToTree, treeToArray } from '@/utils/util'
|
||||
import { arrayToTree } from '@/utils/util'
|
||||
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
@@ -287,9 +287,7 @@ const menuOptions = ref<any[]>([])
|
||||
const getMenu = async () => {
|
||||
const data: any = await menuLists()
|
||||
const menu: any = { id: 0, menuName: '顶级', children: [] }
|
||||
menu.children = arrayToTree(
|
||||
treeToArray(data).filter((item) => item.menuType != MenuEnum.BUTTON)
|
||||
)
|
||||
menu.children = arrayToTree(data.filter((item) => item.menuType != MenuEnum.BUTTON))
|
||||
menuOptions.value.push(menu)
|
||||
}
|
||||
function getApiListFn() {
|
||||
|
@@ -99,6 +99,7 @@
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { menuDelete, menuLists } from '@/api/perms/menu'
|
||||
import { arrayToTree } from '@/utils/util'
|
||||
import type { ElTable } from 'element-plus'
|
||||
import { MenuEnum } from '@/enums/appEnums'
|
||||
import EditPopup from './edit.vue'
|
||||
@@ -119,9 +120,10 @@ const getLists = async () => {
|
||||
try {
|
||||
const data = await menuLists()
|
||||
|
||||
lists.value = data.map((item: any) => {
|
||||
return item
|
||||
})
|
||||
lists.value = arrayToTree(data)
|
||||
// .map((item: any) => {
|
||||
// return item
|
||||
// })
|
||||
loading.value = false
|
||||
} catch (error) {
|
||||
loading.value = false
|
||||
|
@@ -47,7 +47,7 @@ import type { CheckboxValueType, ElTree, FormInstance } from 'element-plus'
|
||||
import { roleDetail, roleEdit } from '@/api/perms/role'
|
||||
import { menuLists } from '@/api/perms/menu'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { treeToArray } from '@/utils/util'
|
||||
import { treeToArray, arrayToTree } from '@/utils/util'
|
||||
import feedback from '@/utils/feedback'
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const treeRef = shallowRef<InstanceType<typeof ElTree>>()
|
||||
@@ -78,7 +78,7 @@ const rules = {
|
||||
|
||||
const getOptions = async () => {
|
||||
const data = await menuLists()
|
||||
menuTree.value = data
|
||||
menuTree.value = arrayToTree(data)
|
||||
menuArray.value = treeToArray(data)
|
||||
}
|
||||
|
||||
|
@@ -10,11 +10,8 @@
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
|
||||
<el-form-item label="id" prop="Id">
|
||||
<el-input v-model="formData.Id" type="number" placeholder="请输入id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="场景编号" prop="Scene">
|
||||
<el-input v-model="formData.Scene" placeholder="请输入场景编号" />
|
||||
<el-input v-model="formData.Scene" type="number" placeholder="请输入场景编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码" prop="Mobile">
|
||||
<el-input v-model="formData.Mobile" placeholder="请输入手机号码" />
|
||||
@@ -23,20 +20,12 @@
|
||||
<editor v-model="formData.Content" :height="500" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发送状态:[0=发送中, 1=发送成功, 2=发送失败]" prop="Status">
|
||||
<el-select
|
||||
class="flex-1"
|
||||
<el-radio-group
|
||||
v-model="formData.Status"
|
||||
placeholder="请选择发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) in dictData.flow_apply_status"
|
||||
:key="index"
|
||||
:label="item.name"
|
||||
:value="parseInt(item.value)"
|
||||
clearable
|
||||
:disabled="!item.status"
|
||||
/>
|
||||
</el-select>
|
||||
<el-radio label="0">请选择字典生成</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="短信结果" prop="Results">
|
||||
<el-input
|
||||
@@ -99,55 +88,55 @@ const formData = reactive({
|
||||
})
|
||||
|
||||
const formRules = {
|
||||
// Id: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '请输入id',
|
||||
// trigger: ['blur']
|
||||
// }
|
||||
// ],
|
||||
// Scene: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '请输入场景编号',
|
||||
// trigger: ['blur']
|
||||
// }
|
||||
// ],
|
||||
// Mobile: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '请输入手机号码',
|
||||
// trigger: ['blur']
|
||||
// }
|
||||
// ],
|
||||
// Content: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '请输入发送内容',
|
||||
// trigger: ['blur']
|
||||
// }
|
||||
// ],
|
||||
// Status: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '请选择发送状态:[0=发送中, 1=发送成功, 2=发送失败]',
|
||||
// trigger: ['blur']
|
||||
// }
|
||||
// ],
|
||||
// Results: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '请输入短信结果',
|
||||
// trigger: ['blur']
|
||||
// }
|
||||
// ],
|
||||
// SendTime: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '请选择发送时间',
|
||||
// trigger: ['blur']
|
||||
// }
|
||||
// ]
|
||||
Id: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入id',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
Scene: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入场景编号',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
Mobile: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入手机号码',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
Content: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入发送内容',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
Status: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择发送状态:[0=发送中, 1=发送成功, 2=发送失败]',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
Results: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入短信结果',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
SendTime: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择发送时间',
|
||||
trigger: ['blur']
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const handleSubmit = async () => {
|
||||
|
@@ -1,48 +1,35 @@
|
||||
<template>
|
||||
<div class="index-lists">
|
||||
<el-card class="!border-none" shadow="never">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
class="mb-[-16px]"
|
||||
:model="queryParams"
|
||||
:inline="true"
|
||||
label-width="70px"
|
||||
label-position="left"
|
||||
>
|
||||
<el-form ref="formRef" class="mb-[-16px]" :model="queryParams" :inline="true" label-width="70px"
|
||||
label-position="left">
|
||||
<el-form-item label="手机号码" prop="Mobile" class="w-[280px]">
|
||||
<el-input v-model="queryParams.Mobile" />
|
||||
<el-input v-model="queryParams.Mobile" />
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
prop="Status"
|
||||
class="w-[280px]"
|
||||
>
|
||||
<el-select v-model="queryParams.Status" clearable>
|
||||
<el-option label="全部" value="" />
|
||||
<el-option
|
||||
v-for="(item, index) in dictData.flow_apply_status"
|
||||
:key="index"
|
||||
:label="item.name"
|
||||
:value="item.value"
|
||||
/>
|
||||
<el-form-item label="发送状态:[0=发送中, 1=发送成功, 2=发送失败]" prop="Status" class="w-[280px]">
|
||||
<el-select
|
||||
v-model="queryParams.Status"
|
||||
clearable
|
||||
>
|
||||
<el-option label="请选择字典生成" value="" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="发送时间" prop="SendTime" class="w-[280px]">
|
||||
<daterange-picker
|
||||
v-model:startTime="queryParams.SendTime_start"
|
||||
v-model:endTime="queryParams.SendTime_end"
|
||||
v-model:startTime="queryParams.SendTimeStart"
|
||||
v-model:endTime="queryParams.SendTimeEnd"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="CreateTime" class="w-[280px]">
|
||||
<daterange-picker
|
||||
v-model:startTime="queryParams.CreateTime_start"
|
||||
v-model:endTime="queryParams.CreateTime_end"
|
||||
v-model:startTime="queryParams.CreateTimeStart"
|
||||
v-model:endTime="queryParams.CreateTimeEnd"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="更新时间" prop="UpdateTime" class="w-[280px]">
|
||||
<daterange-picker
|
||||
v-model:startTime="queryParams.UpdateTime_start"
|
||||
v-model:endTime="queryParams.UpdateTime_end"
|
||||
v-model:startTime="queryParams.UpdateTimeStart"
|
||||
v-model:endTime="queryParams.UpdateTimeEnd"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
@@ -53,17 +40,13 @@
|
||||
</el-card>
|
||||
<el-card class="!border-none mt-4" shadow="never">
|
||||
<div>
|
||||
<el-button
|
||||
v-perms="['admin:system_log_sms:add']"
|
||||
type="primary"
|
||||
@click="handleAdd()"
|
||||
>
|
||||
<el-button v-perms="['admin:system_log_sms:add']" type="primary" @click="handleAdd()">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<upload
|
||||
<upload
|
||||
class="ml-3 mr-3"
|
||||
:url="system_log_sms_import_file"
|
||||
:data="{ cid: 0 }"
|
||||
@@ -85,19 +68,16 @@
|
||||
导出
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table class="mt-4" size="large" v-loading="pager.loading" :data="pager.lists">
|
||||
<el-table
|
||||
class="mt-4"
|
||||
size="large"
|
||||
v-loading="pager.loading"
|
||||
:data="pager.lists"
|
||||
>
|
||||
<el-table-column label="场景编号" prop="Scene" min-width="130" />
|
||||
<el-table-column label="手机号码" prop="Mobile" min-width="130" />
|
||||
<el-table-column label="发送内容" prop="Content" min-width="130" />
|
||||
<el-table-column
|
||||
label="发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
prop="Status"
|
||||
min-width="100"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<dict-value :options="dictData.flow_apply_status" :value="row.Status" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发送状态:[0=发送中, 1=发送成功, 2=发送失败]" prop="Status" min-width="130" />
|
||||
<el-table-column label="短信结果" prop="Results" min-width="130" />
|
||||
<el-table-column label="发送时间" prop="SendTime" min-width="130" />
|
||||
<el-table-column label="创建时间" prop="CreateTime" min-width="130" />
|
||||
@@ -130,29 +110,24 @@
|
||||
<edit-popup
|
||||
v-if="showEdit"
|
||||
ref="editRef"
|
||||
:dict-data="dictData"
|
||||
@success="getLists"
|
||||
@close="showEdit = false"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import {
|
||||
system_log_sms_delete,
|
||||
system_log_sms_list,
|
||||
system_log_sms_import_file,
|
||||
system_log_sms_export_file
|
||||
} from '@/api/system_log_sms'
|
||||
import type { type_system_log_sms, type_system_log_sms_query } from '@/api/system_log_sms'
|
||||
import { system_log_sms_delete, system_log_sms_list,system_log_sms_import_file, system_log_sms_export_file } from '@/api/system_log_sms'
|
||||
import type { type_system_log_sms,type_system_log_sms_query } from "@/api/system_log_sms";
|
||||
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
|
||||
import { useDictData,useListAllData } from '@/hooks/useDictOptions'
|
||||
import type { type_dict } from '@/hooks/useDictOptions'
|
||||
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
defineOptions({
|
||||
name: 'system_log_sms'
|
||||
name:"system_log_sms"
|
||||
})
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
const showEdit = ref(false)
|
||||
@@ -162,21 +137,19 @@ const queryParams = reactive<type_system_log_sms_query>({
|
||||
Content: null,
|
||||
Status: null,
|
||||
Results: null,
|
||||
SendTime_start: null,
|
||||
SendTime_end: null,
|
||||
CreateTime_start: null,
|
||||
CreateTime_end: null,
|
||||
UpdateTime_start: null,
|
||||
UpdateTime_end: null
|
||||
SendTimeStart: null,
|
||||
SendTimeEnd: null,
|
||||
CreateTimeStart: null,
|
||||
CreateTimeEnd: null,
|
||||
UpdateTimeStart: null,
|
||||
UpdateTimeEnd: null,
|
||||
})
|
||||
|
||||
const { pager, getLists, resetPage, resetParams } = usePaging<type_system_log_sms>({
|
||||
fetchFun: system_log_sms_list,
|
||||
params: queryParams
|
||||
})
|
||||
const { dictData } = useDictData<{
|
||||
flow_apply_status: type_dict[]
|
||||
}>(['flow_apply_status'])
|
||||
|
||||
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
@@ -191,10 +164,10 @@ const handleEdit = async (data: any) => {
|
||||
editRef.value?.getDetail(data)
|
||||
}
|
||||
|
||||
const handleDelete = async (id: number) => {
|
||||
const handleDelete = async (Id: number) => {
|
||||
try {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await system_log_sms_delete(id)
|
||||
await system_log_sms_delete( Id )
|
||||
feedback.msgSuccess('删除成功')
|
||||
getLists()
|
||||
} catch (error) {}
|
||||
|
@@ -196,15 +196,16 @@ func (service {{{ toCamelCase .EntityName }}}Service) Del({{{ toUpperCamelCase .
|
||||
func (service {{{ toCamelCase .EntityName }}}Service) GetExcelCol() []excel2.Col {
|
||||
var cols = []excel2.Col{
|
||||
{{{- range .Columns }}}
|
||||
{{{- if and (.IsList) (not .IsPk) }}}
|
||||
{{{- if eq .HtmlType "datetime" }}}
|
||||
{Name: "{{{.ColumnComment}}}", Key: "{{{ toUpperCamelCase .GoField }}}", Width: 15,Encode: util.NullTimeUtil.EncodeTime, Decode: util.NullTimeUtil.DecodeTime },
|
||||
{{{- else if eq .GoType "int" }}}
|
||||
{Name: "{{{.ColumnComment}}}", Key: "{{{ toUpperCamelCase .GoField }}}", Width: 15,Encode: core.EncodeInt, Decode: core.DecodeInt},
|
||||
{{{- else }}}
|
||||
{Name: "{{{.ColumnComment}}}", Key: "{{{ toUpperCamelCase .GoField }}}", Width: 15},
|
||||
|
||||
{{{- end }}}
|
||||
{{{- end }}}
|
||||
{{{- end }}}
|
||||
}
|
||||
// 还可以考虑字典,请求下来加上 Replace 实现替换导出
|
||||
return cols
|
||||
|
@@ -8,24 +8,23 @@ import (
|
||||
"x_admin/model/system_model"
|
||||
"x_admin/util"
|
||||
|
||||
"github.com/fatih/structs"
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type ISystemAuthMenuService interface {
|
||||
SelectMenuByRoleId(c *gin.Context, roleId uint) (mapList []interface{}, e error)
|
||||
List() (res []interface{}, e error)
|
||||
Detail(id uint) (res SystemAuthMenuResp, e error)
|
||||
Add(addReq SystemAuthMenuAddReq) (e error)
|
||||
Edit(editReq SystemAuthMenuEditReq) (e error)
|
||||
Del(id uint) (e error)
|
||||
}
|
||||
// type ISystemAuthMenuService interface {
|
||||
// SelectMenuByRoleId(c *gin.Context, roleId uint) (mapList []interface{}, e error)
|
||||
// List() (res []interface{}, e error)
|
||||
// Detail(id uint) (res SystemAuthMenuResp, e error)
|
||||
// Add(addReq SystemAuthMenuAddReq) (e error)
|
||||
// Edit(editReq SystemAuthMenuEditReq) (e error)
|
||||
// Del(id uint) (e error)
|
||||
// }
|
||||
|
||||
var Service = NewSystemAuthMenuService()
|
||||
|
||||
// NewSystemAuthMenuService 初始化
|
||||
func NewSystemAuthMenuService() ISystemAuthMenuService {
|
||||
func NewSystemAuthMenuService() *systemAuthMenuService {
|
||||
db := core.GetDB()
|
||||
return &systemAuthMenuService{db: db}
|
||||
}
|
||||
@@ -65,7 +64,7 @@ func (menuSrv systemAuthMenuService) SelectMenuByRoleId(c *gin.Context, roleId u
|
||||
}
|
||||
|
||||
// List 菜单列表
|
||||
func (menuSrv systemAuthMenuService) List() (res []interface{}, e error) {
|
||||
func (menuSrv systemAuthMenuService) List() (res interface{}, e error) {
|
||||
var menus []system_model.SystemAuthMenu
|
||||
err := menuSrv.db.Order("menu_sort desc, id").Find(&menus).Error
|
||||
if e = response.CheckErr(err, "列表获取失败"); e != nil {
|
||||
@@ -73,8 +72,9 @@ func (menuSrv systemAuthMenuService) List() (res []interface{}, e error) {
|
||||
}
|
||||
var menuResps []SystemAuthMenuResp
|
||||
util.ConvertUtil.Copy(&menuResps, menus)
|
||||
return util.ArrayUtil.ListToTree(
|
||||
util.ConvertUtil.StructsToMaps(menuResps), "id", "pid", "children"), nil
|
||||
return menuResps, nil
|
||||
// return util.ArrayUtil.ListToTree(
|
||||
// util.ConvertUtil.StructsToMaps(menuResps), "id", "pid", "children"), nil
|
||||
}
|
||||
|
||||
// Detail 菜单详情
|
||||
@@ -112,7 +112,8 @@ func (menuSrv systemAuthMenuService) Edit(editReq SystemAuthMenuEditReq) (e erro
|
||||
return
|
||||
}
|
||||
util.ConvertUtil.Copy(&menu, editReq)
|
||||
err = menuSrv.db.Model(&menu).Updates(structs.Map(menu)).Error
|
||||
// info := structs.Map(menu)
|
||||
err = menuSrv.db.Model(&menu).Select("*").Updates(menu).Error
|
||||
if e = response.CheckErr(err, "编辑失败"); e != nil {
|
||||
return
|
||||
}
|
||||
|
@@ -4,39 +4,38 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
"github.com/gin-gonic/gin"
|
||||
"x_admin/core/request"
|
||||
"x_admin/core/response"
|
||||
"x_admin/util"
|
||||
"x_admin/util/excel2"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"golang.org/x/sync/singleflight"
|
||||
)
|
||||
|
||||
|
||||
type SystemLogSmsHandler struct {
|
||||
requestGroup singleflight.Group
|
||||
}
|
||||
|
||||
// @Summary 系统短信日志列表
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Token header string true "token"
|
||||
// @Param PageNo query int true "页码"
|
||||
// @Param PageSize query int true "每页数量"
|
||||
// @Param Scene query int false "场景编号"
|
||||
// @Param Mobile query string false "手机号码"
|
||||
// @Param Content query string false "发送内容"
|
||||
// @Param Status query int false "发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
// @Param Results query string false "短信结果"
|
||||
// @Param SendTimeStart query core.NullTime false "发送时间"
|
||||
// @Param SendTimeEnd query core.NullTime false "发送时间"
|
||||
// @Param CreateTimeStart query core.NullTime false "创建时间"
|
||||
// @Param CreateTimeEnd query core.NullTime false "创建时间"
|
||||
// @Param UpdateTimeStart query core.NullTime false "更新时间"
|
||||
// @Param UpdateTimeEnd query core.NullTime false "更新时间"
|
||||
//
|
||||
// @Success 200 {object} response.Response{ data=response.PageResp{ lists=[]SystemLogSmsResp}} "成功"
|
||||
// @Router /api/admin/system_log_sms/list [get]
|
||||
// @Summary 系统短信日志列表
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Token header string true "token"
|
||||
// @Param PageNo query int true "页码"
|
||||
// @Param PageSize query int true "每页数量"
|
||||
// @Param Scene query number false "场景编号"
|
||||
// @Param Mobile query string false "手机号码"
|
||||
// @Param Content query string false "发送内容"
|
||||
// @Param Status query number false "发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
// @Param Results query string false "短信结果"
|
||||
// @Param SendTimeStart query string false "发送时间"
|
||||
// @Param SendTimeEnd query string false "发送时间"
|
||||
// @Param CreateTimeStart query string false "创建时间"
|
||||
// @Param CreateTimeEnd query string false "创建时间"
|
||||
// @Param UpdateTimeStart query string false "更新时间"
|
||||
// @Param UpdateTimeEnd query string false "更新时间"
|
||||
//@Success 200 {object} response.Response{ data=response.PageResp{ lists=[]SystemLogSmsResp}} "成功"
|
||||
//@Router /api/admin/system_log_sms/list [get]
|
||||
func (hd *SystemLogSmsHandler) List(c *gin.Context) {
|
||||
var page request.PageReq
|
||||
var listReq SystemLogSmsListReq
|
||||
@@ -50,22 +49,22 @@ func (hd *SystemLogSmsHandler) List(c *gin.Context) {
|
||||
response.CheckAndRespWithData(c, res, err)
|
||||
}
|
||||
|
||||
// @Summary 系统短信日志列表-所有
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Scene query int false "场景编号"
|
||||
// @Param Mobile query string false "手机号码"
|
||||
// @Param Content query string false "发送内容"
|
||||
// @Param Status query int false "发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
// @Param Results query string false "短信结果"
|
||||
// @Param SendTimeStart query core.NullTime false "发送时间"
|
||||
// @Param SendTimeEnd query core.NullTime false "发送时间"
|
||||
// @Param CreateTimeStart query core.NullTime false "创建时间"
|
||||
// @Param CreateTimeEnd query core.NullTime false "创建时间"
|
||||
// @Param UpdateTimeStart query core.NullTime false "更新时间"
|
||||
// @Param UpdateTimeEnd query core.NullTime false "更新时间"
|
||||
// @Success 200 {object} response.Response{ data=[]SystemLogSmsResp} "成功"
|
||||
// @Router /api/admin/system_log_sms/listAll [get]
|
||||
// @Summary 系统短信日志列表-所有
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Scene query number false "场景编号"
|
||||
// @Param Mobile query string false "手机号码"
|
||||
// @Param Content query string false "发送内容"
|
||||
// @Param Status query number false "发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
// @Param Results query string false "短信结果"
|
||||
// @Param SendTimeStart query string false "发送时间"
|
||||
// @Param SendTimeEnd query string false "发送时间"
|
||||
// @Param CreateTimeStart query string false "创建时间"
|
||||
// @Param CreateTimeEnd query string false "创建时间"
|
||||
// @Param UpdateTimeStart query string false "更新时间"
|
||||
// @Param UpdateTimeEnd query string false "更新时间"
|
||||
// @Success 200 {object} response.Response{ data=[]SystemLogSmsResp} "成功"
|
||||
// @Router /api/admin/system_log_sms/listAll [get]
|
||||
func (hd *SystemLogSmsHandler) ListAll(c *gin.Context) {
|
||||
var listReq SystemLogSmsListReq
|
||||
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
|
||||
@@ -75,13 +74,13 @@ func (hd *SystemLogSmsHandler) ListAll(c *gin.Context) {
|
||||
response.CheckAndRespWithData(c, res, err)
|
||||
}
|
||||
|
||||
// @Summary 系统短信日志详情
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Token header string true "token"
|
||||
// @Param Id query int false "id"
|
||||
// @Success 200 {object} response.Response{ data=SystemLogSmsResp} "成功"
|
||||
// @Router /api/admin/system_log_sms/detail [get]
|
||||
// @Summary 系统短信日志详情
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Token header string true "token"
|
||||
// @Param Id query number false "id"
|
||||
// @Success 200 {object} response.Response{ data=SystemLogSmsResp} "成功"
|
||||
// @Router /api/admin/system_log_sms/detail [get]
|
||||
func (hd *SystemLogSmsHandler) Detail(c *gin.Context) {
|
||||
var detailReq SystemLogSmsDetailReq
|
||||
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &detailReq)) {
|
||||
@@ -95,61 +94,54 @@ func (hd *SystemLogSmsHandler) Detail(c *gin.Context) {
|
||||
response.CheckAndRespWithData(c, res, err)
|
||||
}
|
||||
|
||||
// @Summary 系统短信日志新增
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Token header string true "token"
|
||||
// @Param Scene formData int false "场景编号"
|
||||
// @Param Mobile formData string false "手机号码"
|
||||
// @Param Content formData string false "发送内容"
|
||||
// @Param Status formData int false "发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
// @Param Results formData string false "短信结果"
|
||||
// @Param SendTime formData core.NullTime false "发送时间"
|
||||
// @Success 200 {object} response.Response "成功"
|
||||
// @Router /api/admin/system_log_sms/add [post]
|
||||
|
||||
// @Summary 系统短信日志新增
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Token header string true "token"
|
||||
// @Param Scene body number false "场景编号"
|
||||
// @Param Mobile body string false "手机号码"
|
||||
// @Param Content body string false "发送内容"
|
||||
// @Param Status body number false "发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
// @Param Results body string false "短信结果"
|
||||
// @Param SendTime body string false "发送时间"
|
||||
// @Success 200 {object} response.Response "成功"
|
||||
// @Router /api/admin/system_log_sms/add [post]
|
||||
func (hd *SystemLogSmsHandler) Add(c *gin.Context) {
|
||||
var addReq SystemLogSmsAddReq
|
||||
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &addReq)) {
|
||||
return
|
||||
}
|
||||
createId, e := SystemLogSmsService.Add(addReq)
|
||||
response.CheckAndRespWithData(c, createId, e)
|
||||
response.CheckAndRespWithData(c,createId, e)
|
||||
}
|
||||
|
||||
// @Summary 系统短信日志编辑
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Token header string true "token"
|
||||
// @Param Id body int false "id"
|
||||
// @Param Scene body int false "场景编号"
|
||||
// @Param Mobile body string false "手机号码"
|
||||
// @Param Content body string false "发送内容"
|
||||
// @Param Status body int false "发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
// @Param Results body string false "短信结果"
|
||||
// @Param SendTime body core.NullTime false "发送时间"
|
||||
// @Success 200 {object} response.Response "成功"
|
||||
// @Router /api/admin/system_log_sms/edit [post]
|
||||
// @Summary 系统短信日志编辑
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Token header string true "token"
|
||||
// @Param Id body number false "id"
|
||||
// @Param Scene body number false "场景编号"
|
||||
// @Param Mobile body string false "手机号码"
|
||||
// @Param Content body string false "发送内容"
|
||||
// @Param Status body number false "发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
// @Param Results body string false "短信结果"
|
||||
// @Param SendTime body string false "发送时间"
|
||||
// @Success 200 {object} response.Response "成功"
|
||||
// @Router /api/admin/system_log_sms/edit [post]
|
||||
func (hd *SystemLogSmsHandler) Edit(c *gin.Context) {
|
||||
var editReq SystemLogSmsEditReq
|
||||
// jsonObj := make(map[string]interface{}) //注意该结构接受的内容
|
||||
// c.BindJSON(&jsonObj)
|
||||
// c.ShouldBindBodyWith(&jsonObj, binding.JSON)
|
||||
// fmt.Println(jsonObj)
|
||||
// util.ConvertUtil.MapToStruct(jsonObj, &editReq)
|
||||
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &editReq)) {
|
||||
return
|
||||
}
|
||||
// response.CheckAndRespWithData(c, editReq.Id, SystemLogSmsService.Edit2(jsonObj))
|
||||
response.CheckAndRespWithData(c, editReq.Id, SystemLogSmsService.Edit(editReq))
|
||||
response.CheckAndRespWithData(c,editReq.Id, SystemLogSmsService.Edit(editReq))
|
||||
}
|
||||
|
||||
// @Summary 系统短信日志删除
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Token header string true "token"
|
||||
// @Param Id body int false "id"
|
||||
// @Success 200 {object} response.Response "成功"
|
||||
// @Router /api/admin/system_log_sms/del [post]
|
||||
// @Summary 系统短信日志删除
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Token header string true "token"
|
||||
// @Param Id body number false "id"
|
||||
// @Success 200 {object} response.Response "成功"
|
||||
// @Router /api/admin/system_log_sms/del [post]
|
||||
func (hd *SystemLogSmsHandler) Del(c *gin.Context) {
|
||||
var delReq SystemLogSmsDelReq
|
||||
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) {
|
||||
@@ -158,22 +150,26 @@ func (hd *SystemLogSmsHandler) Del(c *gin.Context) {
|
||||
response.CheckAndResp(c, SystemLogSmsService.Del(delReq.Id))
|
||||
}
|
||||
|
||||
// @Summary 系统短信日志导出
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Token header string true "token"
|
||||
// @Param Scene query int false "场景编号"
|
||||
// @Param Mobile query string false "手机号码"
|
||||
// @Param Content query string false "发送内容"
|
||||
// @Param Status query int false "发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
// @Param Results query string false "短信结果"
|
||||
// @Param SendTimeStart query core.NullTime false "发送时间"
|
||||
// @Param SendTimeEnd query core.NullTime false "发送时间"
|
||||
// @Param CreateTimeStart query core.NullTime false "创建时间"
|
||||
// @Param CreateTimeEnd query core.NullTime false "创建时间"
|
||||
// @Param UpdateTimeStart query core.NullTime false "更新时间"
|
||||
// @Param UpdateTimeEnd query core.NullTime false "更新时间"
|
||||
// @Router /api/admin/system_log_sms/ExportFile [get]
|
||||
|
||||
|
||||
|
||||
|
||||
// @Summary 系统短信日志导出
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Param Token header string true "token"
|
||||
// @Param Scene query number false "场景编号"
|
||||
// @Param Mobile query string false "手机号码"
|
||||
// @Param Content query string false "发送内容"
|
||||
// @Param Status query number false "发送状态:[0=发送中, 1=发送成功, 2=发送失败]"
|
||||
// @Param Results query string false "短信结果"
|
||||
// @Param SendTimeStart query string false "发送时间"
|
||||
// @Param SendTimeEnd query string false "发送时间"
|
||||
// @Param CreateTimeStart query string false "创建时间"
|
||||
// @Param CreateTimeEnd query string false "创建时间"
|
||||
// @Param UpdateTimeStart query string false "更新时间"
|
||||
// @Param UpdateTimeEnd query string false "更新时间"
|
||||
// @Router /api/admin/system_log_sms/ExportFile [get]
|
||||
func (hd *SystemLogSmsHandler) ExportFile(c *gin.Context) {
|
||||
var listReq SystemLogSmsListReq
|
||||
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
|
||||
@@ -184,18 +180,18 @@ func (hd *SystemLogSmsHandler) ExportFile(c *gin.Context) {
|
||||
response.FailWithMsg(c, response.SystemError, "查询信息失败")
|
||||
return
|
||||
}
|
||||
f, err := excel2.Export(res, SystemLogSmsService.GetExcelCol(), "Sheet1", "系统短信日志")
|
||||
f, err := excel2.Export(res,SystemLogSmsService.GetExcelCol(), "Sheet1", "系统短信日志")
|
||||
if err != nil {
|
||||
response.FailWithMsg(c, response.SystemError, "导出失败")
|
||||
return
|
||||
}
|
||||
excel2.DownLoadExcel("系统短信日志"+time.Now().Format("20060102-150405"), c.Writer, f)
|
||||
excel2.DownLoadExcel("系统短信日志" + time.Now().Format("20060102-150405"), c.Writer, f)
|
||||
}
|
||||
|
||||
// @Summary 系统短信日志导入
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Router /api/admin/system_log_sms/ImportFile [post]
|
||||
// @Summary 系统短信日志导入
|
||||
// @Tags system_log_sms-系统短信日志
|
||||
// @Produce json
|
||||
// @Router /api/admin/system_log_sms/ImportFile [post]
|
||||
func (hd *SystemLogSmsHandler) ImportFile(c *gin.Context) {
|
||||
file, _, err := c.Request.FormFile("file")
|
||||
if err != nil {
|
||||
@@ -204,7 +200,7 @@ func (hd *SystemLogSmsHandler) ImportFile(c *gin.Context) {
|
||||
}
|
||||
defer file.Close()
|
||||
importList := []SystemLogSmsResp{}
|
||||
err = excel2.GetExcelData(file, &importList, SystemLogSmsService.GetExcelCol())
|
||||
err = excel2.GetExcelData(file, &importList,SystemLogSmsService.GetExcelCol())
|
||||
if err != nil {
|
||||
c.String(http.StatusInternalServerError, err.Error())
|
||||
return
|
||||
@@ -212,4 +208,4 @@ func (hd *SystemLogSmsHandler) ImportFile(c *gin.Context) {
|
||||
|
||||
err = SystemLogSmsService.ImportFile(importList)
|
||||
response.CheckAndResp(c, err)
|
||||
}
|
||||
}
|
@@ -42,23 +42,23 @@ type SystemLogSmsEditReq struct {
|
||||
|
||||
// SystemLogSmsDetailReq 系统短信日志详情参数
|
||||
type SystemLogSmsDetailReq struct {
|
||||
Id int `form:"id"` // id
|
||||
Id int `` // id
|
||||
}
|
||||
|
||||
// SystemLogSmsDelReq 系统短信日志删除参数
|
||||
type SystemLogSmsDelReq struct {
|
||||
Id int `form:"id"` // id
|
||||
Id int `` // id
|
||||
}
|
||||
|
||||
// SystemLogSmsResp 系统短信日志返回信息
|
||||
type SystemLogSmsResp struct {
|
||||
Id int // id
|
||||
Scene core.NullInt // 场景编号
|
||||
Mobile string // 手机号码
|
||||
Content string // 发送内容
|
||||
Status core.NullInt // 发送状态:[0=发送中, 1=发送成功, 2=发送失败]
|
||||
Results string // 短信结果
|
||||
SendTime core.NullTime // 发送时间
|
||||
CreateTime core.NullTime // 创建时间
|
||||
UpdateTime core.NullTime // 更新时间
|
||||
Id int `` // id
|
||||
Scene core.NullInt `` // 场景编号
|
||||
Mobile string `` // 手机号码
|
||||
Content string `` // 发送内容
|
||||
Status core.NullInt `` // 发送状态:[0=发送中, 1=发送成功, 2=发送失败]
|
||||
Results string `` // 短信结果
|
||||
SendTime core.NullTime `` // 发送时间
|
||||
CreateTime core.NullTime `` // 创建时间
|
||||
UpdateTime core.NullTime `` // 更新时间
|
||||
}
|
||||
|
@@ -134,8 +134,6 @@ func (service systemLogSmsService) Detail(Id int) (res SystemLogSmsResp, e error
|
||||
// Add 系统短信日志新增
|
||||
func (service systemLogSmsService) Add(addReq SystemLogSmsAddReq) (createId int, e error) {
|
||||
var obj model.SystemLogSms
|
||||
// util.ConvertUtil.Copy(&obj, addReq)
|
||||
|
||||
util.ConvertUtil.StructToStruct(addReq, &obj)
|
||||
err := service.db.Create(&obj).Error
|
||||
e = response.CheckMysqlErr(err)
|
||||
@@ -144,7 +142,6 @@ func (service systemLogSmsService) Add(addReq SystemLogSmsAddReq) (createId int,
|
||||
}
|
||||
cacheUtil.SetCache(obj.Id, obj)
|
||||
createId = obj.Id
|
||||
e = response.CheckErr(err, "添加失败")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -159,7 +156,6 @@ func (service systemLogSmsService) Edit(editReq SystemLogSmsEditReq) (e error) {
|
||||
if e = response.CheckErr(err, "查询失败"); e != nil {
|
||||
return
|
||||
}
|
||||
|
||||
util.ConvertUtil.Copy(&obj, editReq)
|
||||
|
||||
err = service.db.Model(&obj).Select("*").Updates(obj).Error
|
||||
@@ -192,7 +188,6 @@ func (service systemLogSmsService) Del(Id int) (e error) {
|
||||
// 获取Excel的列
|
||||
func (service systemLogSmsService) GetExcelCol() []excel2.Col {
|
||||
var cols = []excel2.Col{
|
||||
|
||||
{Name: "场景编号", Key: "Scene", Width: 15, Encode: core.EncodeInt, Decode: core.DecodeInt},
|
||||
{Name: "手机号码", Key: "Mobile", Width: 15},
|
||||
{Name: "发送内容", Key: "Content", Width: 15},
|
||||
|
137
server/core/null_float.go
Normal file
137
server/core/null_float.go
Normal file
@@ -0,0 +1,137 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
"encoding/json"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// Float类型别名,支持前端传递null,float64, string类型
|
||||
// 忽略前端null值,接收""值时,返回0
|
||||
type NullFloat struct {
|
||||
Float *float64
|
||||
Valid bool
|
||||
}
|
||||
|
||||
func EncodeFloat(value any) any {
|
||||
switch v := value.(type) {
|
||||
case map[string]any:
|
||||
if v["Float"] != nil {
|
||||
val := v["Float"]
|
||||
switch f := val.(type) {
|
||||
case *float32:
|
||||
return float64(*f)
|
||||
case *float64:
|
||||
return *f
|
||||
case *int:
|
||||
return float64(*f)
|
||||
case *int64:
|
||||
return float64(*f)
|
||||
case *string:
|
||||
return *f
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DecodeFloat(value any) (any, error) {
|
||||
switch v := value.(type) {
|
||||
case float64:
|
||||
f := v
|
||||
return NullFloat{Float: &f, Valid: true}, nil
|
||||
case int:
|
||||
f := float64(v)
|
||||
return NullFloat{Float: &f, Valid: true}, nil
|
||||
case int64:
|
||||
f := float64(v)
|
||||
return NullFloat{Float: &f, Valid: true}, nil
|
||||
case string:
|
||||
if v == "" {
|
||||
return NullFloat{Float: nil, Valid: false}, nil
|
||||
}
|
||||
f, err := strconv.ParseFloat(v, 64)
|
||||
return NullFloat{Float: &f, Valid: true}, err
|
||||
case nil:
|
||||
return NullFloat{Float: nil, Valid: false}, nil
|
||||
case NullFloat:
|
||||
return v, nil
|
||||
}
|
||||
return NullFloat{Float: nil, Valid: false}, nil
|
||||
}
|
||||
|
||||
// gorm实现Scanner
|
||||
func (f *NullFloat) Scan(value interface{}) error {
|
||||
f.Valid = false
|
||||
if value == nil {
|
||||
return nil
|
||||
}
|
||||
v := value.(float64)
|
||||
f.Float, f.Valid = &v, true
|
||||
return nil
|
||||
}
|
||||
|
||||
// gorm实现 Valuer
|
||||
func (f NullFloat) Value() (driver.Value, error) {
|
||||
if !f.Valid {
|
||||
return nil, nil
|
||||
}
|
||||
v := f.Float
|
||||
if v == nil {
|
||||
return nil, nil
|
||||
}
|
||||
return *v, nil
|
||||
}
|
||||
|
||||
func (f NullFloat) String() string {
|
||||
if f.Valid {
|
||||
return strconv.FormatFloat(*f.Float, 'f', -1, 64)
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
// 实现json序列化接口
|
||||
func (f NullFloat) MarshalJSON() ([]byte, error) {
|
||||
if f.Valid {
|
||||
return json.Marshal(f.Float)
|
||||
} else {
|
||||
return json.Marshal(nil)
|
||||
}
|
||||
}
|
||||
|
||||
// 实现json反序列化接口
|
||||
func (f *NullFloat) UnmarshalJSON(data []byte) error {
|
||||
var x any
|
||||
if err := json.Unmarshal(data, &x); err != nil {
|
||||
return err
|
||||
}
|
||||
switch v := x.(type) {
|
||||
case float64:
|
||||
f.Float = &v
|
||||
f.Valid = true
|
||||
return nil
|
||||
case string:
|
||||
if v == "" {
|
||||
f.Float = nil
|
||||
f.Valid = true
|
||||
return nil
|
||||
}
|
||||
num, err := strconv.ParseFloat(v, 64)
|
||||
if err == nil {
|
||||
f.Float = &num
|
||||
f.Valid = true
|
||||
} else {
|
||||
f.Valid = false
|
||||
}
|
||||
return err
|
||||
case nil:
|
||||
f.Valid = false
|
||||
default:
|
||||
f.Valid = false
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
@@ -26,12 +26,12 @@ func EncodeInt(value any) any {
|
||||
case *string:
|
||||
return *i
|
||||
default:
|
||||
return ""
|
||||
return nil
|
||||
}
|
||||
// return val
|
||||
}
|
||||
}
|
||||
return ""
|
||||
return nil
|
||||
}
|
||||
func DecodeInt(value any) (any, error) {
|
||||
switch v := value.(type) {
|
||||
|
@@ -3,39 +3,39 @@ import type { Pages } from '@/utils/request'
|
||||
import { clearObjEmpty } from "@/utils/utils";
|
||||
|
||||
export type type_system_log_sms = {
|
||||
id?: number;
|
||||
scene?: number;
|
||||
mobile?: string;
|
||||
content?: string;
|
||||
status?: number;
|
||||
results?: string;
|
||||
send_time?: string;
|
||||
create_time?: string;
|
||||
update_time?: string;
|
||||
Id?: number;
|
||||
Scene?: number;
|
||||
Mobile?: string;
|
||||
Content?: string;
|
||||
Status?: number;
|
||||
Results?: string;
|
||||
SendTime?: string;
|
||||
CreateTime?: string;
|
||||
UpdateTime?: string;
|
||||
}
|
||||
// 查询
|
||||
export type type_system_log_sms_query = {
|
||||
scene?: number;
|
||||
mobile?: string;
|
||||
content?: string;
|
||||
status?: number;
|
||||
results?: string;
|
||||
send_time_start?: string;
|
||||
send_timeEnd?: string;
|
||||
create_time_start?: string;
|
||||
create_timeEnd?: string;
|
||||
update_time_start?: string;
|
||||
update_timeEnd?: string;
|
||||
Scene?: number;
|
||||
Mobile?: string;
|
||||
Content?: string;
|
||||
Status?: number;
|
||||
Results?: string;
|
||||
SendTimeStart?: string;
|
||||
SendTimeEnd?: string;
|
||||
CreateTimeStart?: string;
|
||||
CreateTimeEnd?: string;
|
||||
UpdateTimeStart?: string;
|
||||
UpdateTimeEnd?: string;
|
||||
}
|
||||
// 添加编辑
|
||||
export type type_system_log_sms_edit = {
|
||||
id?: number;
|
||||
scene?: number;
|
||||
mobile?: string;
|
||||
content?: string;
|
||||
status?: number;
|
||||
results?: string;
|
||||
send_time?: string;
|
||||
Id?: number;
|
||||
Scene?: number;
|
||||
Mobile?: string;
|
||||
Content?: string;
|
||||
Status?: number;
|
||||
Results?: string;
|
||||
SendTime?: string;
|
||||
}
|
||||
|
||||
|
||||
@@ -57,11 +57,11 @@ export function system_log_sms_list_all(params?: type_system_log_sms_query) {
|
||||
}
|
||||
|
||||
// 系统短信日志详情
|
||||
export function system_log_sms_detail(id: number | string) {
|
||||
export function system_log_sms_detail(Id: number | string) {
|
||||
return request<type_system_log_sms>({
|
||||
url: '/system_log_sms/detail',
|
||||
method: 'GET',
|
||||
data: { id }
|
||||
data: { Id }
|
||||
})
|
||||
}
|
||||
|
||||
@@ -84,12 +84,12 @@ export function system_log_sms_edit(data: type_system_log_sms_edit) {
|
||||
}
|
||||
|
||||
// 系统短信日志删除
|
||||
export function system_log_sms_delete(id: number | string) {
|
||||
export function system_log_sms_delete(Id: number | string) {
|
||||
return request<null>({
|
||||
url: '/system_log_sms/del',
|
||||
method: "POST",
|
||||
data:{
|
||||
id
|
||||
Id
|
||||
},
|
||||
});
|
||||
}
|
@@ -1,29 +1,29 @@
|
||||
<template>
|
||||
<view class="page-content">
|
||||
<uv-form labelPosition="left" :model="form">
|
||||
<uv-form-item label="场景编号" prop="scene" borderBottom>
|
||||
{{form.scene}}
|
||||
<uv-form-item label="场景编号" prop="Scene" borderBottom>
|
||||
{{form.Scene}}
|
||||
</uv-form-item>
|
||||
<uv-form-item label="手机号码" prop="mobile" borderBottom>
|
||||
{{form.mobile}}
|
||||
<uv-form-item label="手机号码" prop="Mobile" borderBottom>
|
||||
{{form.Mobile}}
|
||||
</uv-form-item>
|
||||
<uv-form-item label="发送内容" prop="content" borderBottom>
|
||||
{{form.content}}
|
||||
<uv-form-item label="发送内容" prop="Content" borderBottom>
|
||||
{{form.Content}}
|
||||
</uv-form-item>
|
||||
<uv-form-item label="发送状态:[0=发送中, 1=发送成功, 2=发送失败]" prop="status" borderBottom>
|
||||
<dict-value :options="dictData.flow_apply_status" :value="row.status" />
|
||||
<uv-form-item label="发送状态:[0=发送中, 1=发送成功, 2=发送失败]" prop="Status" borderBottom>
|
||||
{{form.Status}}
|
||||
</uv-form-item>
|
||||
<uv-form-item label="短信结果" prop="results" borderBottom>
|
||||
{{form.results}}
|
||||
<uv-form-item label="短信结果" prop="Results" borderBottom>
|
||||
{{form.Results}}
|
||||
</uv-form-item>
|
||||
<uv-form-item label="发送时间" prop="send_time" borderBottom>
|
||||
{{form.send_time}}
|
||||
<uv-form-item label="发送时间" prop="SendTime" borderBottom>
|
||||
{{form.SendTime}}
|
||||
</uv-form-item>
|
||||
<uv-form-item label="创建时间" prop="create_time" borderBottom>
|
||||
{{form.create_time}}
|
||||
<uv-form-item label="创建时间" prop="CreateTime" borderBottom>
|
||||
{{form.CreateTime}}
|
||||
</uv-form-item>
|
||||
<uv-form-item label="更新时间" prop="update_time" borderBottom>
|
||||
{{form.update_time}}
|
||||
<uv-form-item label="更新时间" prop="UpdateTime" borderBottom>
|
||||
{{form.UpdateTime}}
|
||||
</uv-form-item>
|
||||
</uv-form>
|
||||
<uv-button
|
||||
@@ -51,20 +51,16 @@
|
||||
} from "@/utils/utils";
|
||||
|
||||
let form = ref({
|
||||
id: "",
|
||||
scene: "",
|
||||
mobile: "",
|
||||
content: "",
|
||||
status: "",
|
||||
results: "",
|
||||
send_time: "",
|
||||
create_time: "",
|
||||
update_time: "",
|
||||
Id: "",
|
||||
Scene: "",
|
||||
Mobile: "",
|
||||
Content: "",
|
||||
Status: "",
|
||||
Results: "",
|
||||
SendTime: "",
|
||||
CreateTime: "",
|
||||
UpdateTime: "",
|
||||
});
|
||||
const { dictData } = useDictData<
|
||||
{
|
||||
flow_apply_status: any[]
|
||||
}>(['flow_apply_status'])
|
||||
|
||||
onLoad((e) => {
|
||||
console.log("onLoad", e);
|
||||
|
@@ -1,25 +1,25 @@
|
||||
<template>
|
||||
<view class="page-content">
|
||||
<uv-form labelPosition="left" :model="form" :rules="formRules" ref="formRef">
|
||||
<uv-form-item label="id" prop="id" borderBottom>
|
||||
<uv-number-box v-model="form.id" :min="-99999999" :max="99999999" :integer="true"></uv-number-box>
|
||||
<uv-form-item label="id" prop="Id" borderBottom>
|
||||
<uv-number-box v-model="form.Id" :min="-99999999" :max="99999999" :integer="true"></uv-number-box>
|
||||
</uv-form-item>
|
||||
<uv-form-item label="场景编号" prop="scene" borderBottom>
|
||||
<uv-number-box v-model="form.scene" :min="-99999999" :max="99999999" :integer="true"></uv-number-box>
|
||||
<uv-form-item label="场景编号" prop="Scene" borderBottom>
|
||||
<uv-number-box v-model="form.Scene" :min="-99999999" :max="99999999" :integer="true"></uv-number-box>
|
||||
</uv-form-item>
|
||||
<uv-form-item label="手机号码" prop="mobile" borderBottom>
|
||||
<uv-input v-model="form.mobile" border="surround"></uv-input>
|
||||
<uv-form-item label="手机号码" prop="Mobile" borderBottom>
|
||||
<uv-input v-model="form.Mobile" border="surround"></uv-input>
|
||||
</uv-form-item>
|
||||
<uv-form-item label="发送内容" prop="content" borderBottom>
|
||||
<uv-form-item label="发送内容" prop="Content" borderBottom>
|
||||
</uv-form-item>
|
||||
<uv-form-item label="发送状态:[0=发送中, 1=发送成功, 2=发送失败]" prop="status" borderBottom>
|
||||
<x-picker v-model="form.status" valueKey="value" labelKey="name" :columns="dictData.flow_apply_status"></x-picker>
|
||||
<uv-form-item label="发送状态:[0=发送中, 1=发送成功, 2=发送失败]" prop="Status" borderBottom>
|
||||
请选择字典生成代码
|
||||
</uv-form-item>
|
||||
<uv-form-item label="短信结果" prop="results" borderBottom>
|
||||
<uv-textarea v-model="form.results" border="surround"></uv-textarea>
|
||||
<uv-form-item label="短信结果" prop="Results" borderBottom>
|
||||
<uv-textarea v-model="form.Results" border="surround"></uv-textarea>
|
||||
</uv-form-item>
|
||||
<uv-form-item label="发送时间" prop="send_time" borderBottom>
|
||||
<x-date v-model:time="form.send_time"></x-date>
|
||||
<uv-form-item label="发送时间" prop="SendTime" borderBottom>
|
||||
<x-date v-model:time="form.SendTime"></x-date>
|
||||
</uv-form-item>
|
||||
|
||||
<uv-button type="primary" text="提交" customStyle="margin: 40rpx 0"
|
||||
@@ -51,58 +51,58 @@
|
||||
|
||||
let formRef = ref();
|
||||
let form = ref<type_system_log_sms_edit>({
|
||||
id: '',
|
||||
scene: 0,
|
||||
mobile: '',
|
||||
content: '',
|
||||
status: '',
|
||||
results: '',
|
||||
send_time: '',
|
||||
Id: 0,
|
||||
Scene: 0,
|
||||
Mobile: '',
|
||||
Content: '',
|
||||
Status: '',
|
||||
Results: '',
|
||||
SendTime: '',
|
||||
});
|
||||
const formRules = {
|
||||
id: [
|
||||
Id: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入id',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
scene: [
|
||||
Scene: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入场景编号',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
mobile: [
|
||||
Mobile: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入手机号码',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
content: [
|
||||
Content: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入发送内容',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
status: [
|
||||
Status: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择发送状态:[0=发送中, 1=发送成功, 2=发送失败]',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
results: [
|
||||
Results: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入短信结果',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
send_time: [
|
||||
SendTime: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择发送时间',
|
||||
@@ -112,16 +112,13 @@
|
||||
}
|
||||
onLoad((e) => {
|
||||
console.log("onLoad", e);
|
||||
if (e.id) {
|
||||
getDetails(e.id);
|
||||
if (e.Id) {
|
||||
getDetails(e.Id);
|
||||
}
|
||||
});
|
||||
const { dictData } = useDictData<{
|
||||
flow_apply_status: type_dict[]
|
||||
}>(['flow_apply_status'])
|
||||
|
||||
function getDetails(id) {
|
||||
system_log_sms_detail(id).then((res) => {
|
||||
function getDetails(Id) {
|
||||
system_log_sms_detail(Id).then((res) => {
|
||||
if (res.code == 200) {
|
||||
if (res?.data) {
|
||||
form.value = res?.data
|
||||
@@ -138,11 +135,11 @@
|
||||
function submit() {
|
||||
console.log("submit", form.value);
|
||||
formRef.value.validate().then(() => {
|
||||
if (form.value.id) {
|
||||
if (form.value.Id) {
|
||||
system_log_sms_edit(form.value).then((res) => {
|
||||
if (res.code == 200) {
|
||||
toast("编辑成功");
|
||||
getDetails(form.value?.id);
|
||||
getDetails(form.value?.Id);
|
||||
} else {
|
||||
toast(res.message);
|
||||
}
|
||||
|
@@ -20,11 +20,11 @@
|
||||
<uv-list>
|
||||
<uv-list-item
|
||||
v-for="item of pager.lists"
|
||||
:key="item.id"
|
||||
:key="item.Id"
|
||||
clickable
|
||||
show-arrow
|
||||
:title="item.id"
|
||||
:right-text="item.id"
|
||||
:title="item.Id"
|
||||
:right-text="item.Id"
|
||||
@click="toDetails(item)"
|
||||
></uv-list-item>
|
||||
</uv-list>
|
||||
@@ -69,17 +69,17 @@ import type { type_system_log_sms,type_system_log_sms_query } from "@/api/system
|
||||
import { usePaging } from "@/hooks/usePaging";
|
||||
import { toPath } from "@/utils/utils";
|
||||
const queryParams = reactive<type_system_log_sms_query>({
|
||||
scene: '',
|
||||
mobile: '',
|
||||
content: '',
|
||||
status: '',
|
||||
results: '',
|
||||
send_time_start: '',
|
||||
send_time_end: '',
|
||||
create_time_start: '',
|
||||
create_time_end: '',
|
||||
update_time_start: '',
|
||||
update_time_end: '',
|
||||
Scene: '',
|
||||
Mobile: '',
|
||||
Content: '',
|
||||
Status: '',
|
||||
Results: '',
|
||||
SendTimeStart: '',
|
||||
SendTimeEnd: '',
|
||||
CreateTimeStart: '',
|
||||
CreateTimeEnd: '',
|
||||
UpdateTimeStart: '',
|
||||
UpdateTimeEnd: '',
|
||||
});
|
||||
let activeFab = ref(false);
|
||||
let fromSearch=ref(false);
|
||||
@@ -111,7 +111,7 @@ onReachBottom(() => {
|
||||
});
|
||||
|
||||
function toDetails(item) {
|
||||
toPath("/pages/system/log/sms/details", { id: item.id });
|
||||
toPath("/pages/system/log/sms/details", { Id: item.Id });
|
||||
}
|
||||
function moreSearch() {
|
||||
toPath("/pages/system/log/sms/search");
|
||||
|
@@ -1,29 +1,28 @@
|
||||
<template>
|
||||
<view class="page-content">
|
||||
<uv-form labelPosition="left" labelWidth="80" :model="form">
|
||||
<uv-form-item label="场景编号" prop="scene" borderBottom>
|
||||
<uv-form-item label="场景编号" prop="Scene" borderBottom>
|
||||
</uv-form-item>
|
||||
<uv-form-item label="手机号码" prop="mobile" borderBottom>
|
||||
<uv-input v-model="form.mobile"> </uv-input>
|
||||
<uv-form-item label="手机号码" prop="Mobile" borderBottom>
|
||||
<uv-input v-model="form.Mobile"> </uv-input>
|
||||
</uv-form-item>
|
||||
<uv-form-item label="发送内容" prop="content" borderBottom>
|
||||
<uv-form-item label="发送内容" prop="Content" borderBottom>
|
||||
</uv-form-item>
|
||||
<uv-form-item label="发送状态:[0=发送中, 1=发送成功, 2=发送失败]" prop="status" borderBottom>
|
||||
<x-picker v-model="form.status" valueKey="value" labelKey="name" :columns="dictData.flow_apply_status"></x-picker>
|
||||
<uv-form-item label="发送状态:[0=发送中, 1=发送成功, 2=发送失败]" prop="Status" borderBottom>
|
||||
</uv-form-item>
|
||||
<uv-form-item label="短信结果" prop="results" borderBottom>
|
||||
<uv-form-item label="短信结果" prop="Results" borderBottom>
|
||||
</uv-form-item>
|
||||
<uv-form-item label="发送时间" prop="send_time" borderBottom>
|
||||
<x-date-range v-model:startTime="form.send_time_start"
|
||||
v-model:endTime="form.send_time_end"></x-date-range>
|
||||
<uv-form-item label="发送时间" prop="SendTime" borderBottom>
|
||||
<x-date-range v-model:startTime="form.SendTimeStart"
|
||||
v-model:endTime="form.SendTimeEnd"></x-date-range>
|
||||
</uv-form-item>
|
||||
<uv-form-item label="创建时间" prop="create_time" borderBottom>
|
||||
<x-date-range v-model:startTime="form.create_time_start"
|
||||
v-model:endTime="form.create_time_end"></x-date-range>
|
||||
<uv-form-item label="创建时间" prop="CreateTime" borderBottom>
|
||||
<x-date-range v-model:startTime="form.CreateTimeStart"
|
||||
v-model:endTime="form.CreateTimeEnd"></x-date-range>
|
||||
</uv-form-item>
|
||||
<uv-form-item label="更新时间" prop="update_time" borderBottom>
|
||||
<x-date-range v-model:startTime="form.update_time_start"
|
||||
v-model:endTime="form.update_time_end"></x-date-range>
|
||||
<uv-form-item label="更新时间" prop="UpdateTime" borderBottom>
|
||||
<x-date-range v-model:startTime="form.UpdateTimeStart"
|
||||
v-model:endTime="form.UpdateTimeEnd"></x-date-range>
|
||||
</uv-form-item>
|
||||
|
||||
<uv-button type="primary" text="搜索" customStyle="margin-top: 20rpx" @click="submit"></uv-button>
|
||||
@@ -51,22 +50,19 @@
|
||||
} from "@/hooks/useDictOptions";
|
||||
import xDateRange from "@/components/x-date-range/x-date-range.vue";
|
||||
import type {type_system_log_sms_query} from "@/api/system_log_sms";
|
||||
const { dictData } = useDictData<{
|
||||
flow_apply_status: any[]
|
||||
}>(['flow_apply_status'])
|
||||
|
||||
let form = ref<type_system_log_sms_query>({
|
||||
scene: null,
|
||||
mobile: null,
|
||||
content: null,
|
||||
status: null,
|
||||
results: null,
|
||||
send_time_start: null,
|
||||
send_time_end: null,
|
||||
create_time_start: null,
|
||||
create_time_end: null,
|
||||
update_time_start: null,
|
||||
update_time_end: null,
|
||||
Scene: null,
|
||||
Mobile: null,
|
||||
Content: null,
|
||||
Status: null,
|
||||
Results: null,
|
||||
SendTimeStart: null,
|
||||
SendTimeEnd: null,
|
||||
CreateTimeStart: null,
|
||||
CreateTimeEnd: null,
|
||||
UpdateTimeStart: null,
|
||||
UpdateTimeEnd: null,
|
||||
});
|
||||
|
||||
function submit() {
|
||||
|
Reference in New Issue
Block a user