This commit is contained in:
xiangheng
2024-08-16 14:40:08 +08:00
parent fe6ec94516
commit 4176d76157
18 changed files with 515 additions and 438 deletions

View File

@@ -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 } })
}
// 系统短信日志导入

View File

@@ -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() {

View File

@@ -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

View File

@@ -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)
}

View File

@@ -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 () => {

View File

@@ -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) {}

View File

@@ -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

View File

@@ -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
}

View File

@@ -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

View File

@@ -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 `` // 更新时间
}

View File

@@ -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
View File

@@ -0,0 +1,137 @@
package core
import (
"database/sql/driver"
"encoding/json"
"strconv"
)
// Float类型别名支持前端传递nullfloat64, 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
}

View File

@@ -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) {

View File

@@ -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
},
});
}

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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");

View File

@@ -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() {