统一message,统一模板

This commit is contained in:
xiangheng
2024-06-03 22:20:15 +08:00
parent 6966b3f4a4
commit 3ea0b9ad5d
14 changed files with 106 additions and 113 deletions

View File

@@ -179,7 +179,7 @@ export default defineComponent({
.catch((err) => {
console.error(err)
err.target && (this.activeStep = err.target)
err.msg && this.$message.error(err.msg)
err.message && this.$message.error(err.message)
})
},

View File

@@ -191,13 +191,13 @@ export default {
if (haveMoreChildNode) {
// 如果都是网关就可以,等优化
return reject({
msg: '流程设计-一个节点只能有一个子节点,可以有多个网关'
message: '流程设计-一个节点只能有一个子节点,可以有多个网关'
})
}
// if (data.nodes.length != data.edges.length + 1) {
// return reject({
// msg: "流程设计-节点之间必须连线,可以清理多余的节点",//不是很重要
// message: "流程设计-节点之间必须连线,可以清理多余的节点",//不是很重要
// });
// }
// 检查开始节点和结束节点是否存在
@@ -205,7 +205,7 @@ export default {
const findEndNode = nodes.filter((item) => item.type == 'bpmn:endEvent')
if (findStartNode.length != 1 || findEndNode.length != 1) {
return reject({
msg: '流程设计-流程必须有且只有一个开始节点和结束节点'
message: '流程设计-流程必须有且只有一个开始节点和结束节点'
})
}

View File

@@ -113,8 +113,8 @@ export default defineComponent({
visible.value = false
emit('change')
}
if (response.code == RequestCodeEnum.FAILED && response.msg) {
feedback.msgError(response.msg)
if (response.code == RequestCodeEnum.FAILED && response.message) {
feedback.msgError(response.message)
}
}
const handleError = (event: any, file: any) => {

View File

@@ -49,7 +49,7 @@ const axiosHooks: AxiosHooks = {
if (!isTransformResponse) {
return response.data
}
const { code, data, msg } = response.data
const { code, data, message } = response.data
switch (code) {
case RequestCodeEnum.SUCCESS:
return data
@@ -64,7 +64,7 @@ const axiosHooks: AxiosHooks = {
case RequestCodeEnum.NO_PERMISSTION:
case RequestCodeEnum.FAILED:
case RequestCodeEnum.SYSTEM_ERROR:
msg && feedback.msgError(msg)
message && feedback.msgError(message)
return Promise.reject(data)
case RequestCodeEnum.TOKEN_INVALID:

View File

@@ -33,5 +33,5 @@ export interface AxiosHooks {
export interface ResponseData<T = any> {
code: number
data: T
msg: string
message: string
}

View File

@@ -179,7 +179,7 @@ const handleSubmit = async () => {
feedback.msgSuccess('操作成功')
emit('success')
}).catch((err) => {
feedback.msgError(err.msg)
feedback.msgError(err.message)
})
} catch (error) {}
})

View File

@@ -47,7 +47,6 @@ export function {{{.ModuleName}}}_edit(data: Record<string, any>) {
// {{{.FunctionName}}}删除
export function {{{.ModuleName}}}_delete({{{ .PrimaryKey }}}: number | string) {
return request.post({ url: '/{{{.ModuleName}}}/del', { {{{ .PrimaryKey }}} } })
return request({
url: '/{{{.ModuleName}}}/del',
method: "POST",

View File

@@ -43,11 +43,11 @@
onShow
} from "@dcloudio/uni-app";
import {
useDictOptions
} from "@/api/dict.js";
useDictData
} from "@/hooks/useDictOptions";
import {
{{{ .ModuleName }}}_detail
} from "@/api/{{{ .ModuleName }}}.js";
} from "@/api/{{{ .ModuleName }}}";
import {
@@ -57,7 +57,10 @@
} from "@/utils/utils";
let form = ref({});
{{{- if ge (len .DictFields) 1 }}}
{{{- $dictSize := sub (len .DictFields) 1 }}}
const { dictData } = useDictData([{{{- range .DictFields }}}'{{{ . }}}'{{{- if ne (index $.DictFields $dictSize) . }}},{{{- end }}}{{{- end }}}])
{{{- end }}}
onLoad((e) => {
console.log("onLoad", e);
getDetails(e.id);
@@ -67,18 +70,22 @@
getDetails(form.value.id);
}
});
onPullDownRefresh(() => {
getDetails(form.value.id);
});
function getDetails(id) {
{{{ .ModuleName }}}_detail(id).then((res) => {
uni.stopPullDownRefresh();
if (res.code == 200) {
if (res?.result) {
form.value = res?.result
if (res?.data) {
form.value = res?.data
}
} else {
toast(res.message);
}
})
.catch((err) => {
uni.stopPullDownRefresh();
toast(err.message||"网络错误");
});
}

View File

@@ -5,13 +5,17 @@
{{{- if .IsEdit }}}
<uv-form-item label="{{{ .ColumnComment }}}" prop="{{{ (toCamelCase .GoField) }}}" borderBottom>
{{{- if eq .HtmlType "input" }}}
<uv-input v-model="form.{{{ (toCamelCase .GoField) }}}" border="surround"></uv-input>
<uv-input v-model="form.{{{ (toCamelCase .GoField) }}}" border="surround"></uv-input>
{{{- else if eq .HtmlType "number" }}}
<uv-number-box v-model="form.{{{ (toCamelCase .GoField) }}}" :min="-99999999" :max="99999999" :integer="true"></uv-number-box>
<uv-number-box v-model="form.{{{ (toCamelCase .GoField) }}}" :min="-99999999" :max="99999999" :integer="true"></uv-number-box>
{{{- else if eq .HtmlType "textarea" }}}
<uv-textarea v-model="form.{{{ (toCamelCase .GoField) }}}" border="surround"></uv-textarea>
<uv-textarea v-model="form.{{{ (toCamelCase .GoField) }}}" border="surround"></uv-textarea>
{{{- else if or (eq .HtmlType "checkbox") (eq .HtmlType "radio") (eq .HtmlType "select")}}}
<x-picker v-model="form.{{{ (toCamelCase .GoField) }}}" valueKey="value" labelKey="name" :columns="dictData.{{{ .DictType }}}"></x-picker>
{{{- if ne .DictType "" }}}
<x-picker v-model="form.{{{ (toCamelCase .GoField) }}}" valueKey="value" labelKey="name" :columns="dictData.{{{ .DictType }}}"></x-picker>
{{{- else }}}
请选择字典生成代码
{{{- end }}}
{{{- end }}}
</uv-form-item>
{{{- end }}}
@@ -35,12 +39,15 @@
import {
{{{ .ModuleName }}}_detail,
{{{ .ModuleName }}}_edit
} from "@/api/{{{ .ModuleName }}}.js";
} from "@/api/{{{ .ModuleName }}}";
import {
toast,
alert
} from "@/utils/utils";
import {
useDictData
} from "@/hooks/useDictOptions";
let formRef = ref();
let form = ref({
{{{- range .Columns }}}

View File

@@ -65,8 +65,8 @@ import {
onReachBottom,
onPageScroll,
} from "@dcloudio/uni-app";
import { {{{ .ModuleName }}}_list } from "@/api/{{{ .ModuleName }}}.js";
import { usePaging } from "@/utils/usePaging";
import { {{{ .ModuleName }}}_list } from "@/api/{{{ .ModuleName }}}";
import { usePaging } from "@/hooks/usePaging";
import { toPath } from "@/utils/utils";
const queryParams = reactive({
key: "",

View File

@@ -1,32 +1,20 @@
<!-- 产品分组IMEISIm卡1、2安装位置在线状态 ,启用状态-->
<template>
<view class="page-content">
<uv-form labelPosition="left" labelWidth="80" :model="form" ref="formRef">
<uv-form-item label="在线状态" prop="status" borderBottom>
<x-picker valueKey="value" labelKey="label" :columns="dictData.devices_status"
v-model="form.status"></x-picker>
</uv-form-item>
<uv-form-item label="位置" prop="placedName" borderBottom>
<uv-input v-model="form.placedName"> </uv-input>
</uv-form-item>
<uv-form-item label="开始时间" prop="startTime" borderBottom>
<uv-input v-model="form.startTime" :readonly="true" placeholder="请选择时间"
@click="startTimePicker.open()"> </uv-input>
<uv-datetime-picker ref="startTimePicker" :minDate="minDate" :maxDate="maxDate" :value="form.startTime"
mode="datetime" @confirm="startTimeConfirm">
</uv-datetime-picker>
</uv-form-item>
<uv-form-item label="结束时间" prop="endTime" borderBottom>
<uv-input v-model="form.endTime" :readonly="true" placeholder="请选择时间"
@click="endTimePicker.open()"> </uv-input>
<uv-datetime-picker ref="endTimePicker" :minDate="minDate" :maxDate="maxDate" :value="form.endTime" mode="datetime"
@confirm="endTimeConfirm">
</uv-datetime-picker>
{{{- range .Columns }}}
{{{- if eq .IsQuery 1 }}}
<uv-form-item label="{{{ .ColumnComment }}}" prop="{{{ (toCamelCase .GoField) }}}" borderBottom>
{{{- if eq .HtmlType "datetime" }}}
<x-date-range v-model:startTime="form.{{{ (toCamelCase .GoField) }}}Start"
v-model:endTime="form.{{{ (toCamelCase .GoField) }}}End"></x-date-range>
{{{- else if or (eq .HtmlType "select") (eq .HtmlType "radio") }}}
<x-picker v-model="form.{{{ (toCamelCase .GoField) }}}" valueKey="value" labelKey="name" :columns="dictData.{{{ .DictType }}}"></x-picker>
{{{- else if eq .HtmlType "input" }}}
<uv-input v-model="form.{{{ (toCamelCase .GoField) }}}"> </uv-input>
{{{- end }}}
</uv-form-item>
{{{- end }}}
{{{- end }}}
<uv-button type="primary" text="搜索" customStyle="margin-top: 20rpx" @click="submit"></uv-button>
</uv-form>
@@ -34,7 +22,7 @@
</template>
<script setup>
import dayjs from 'dayjs'
import {
onLoad
} from "@dcloudio/uni-app";
@@ -50,34 +38,26 @@
} from "@/utils/utils";
import {
useDictData
} from "@/methods/useDictOptions";
const startTimePicker = ref();
const endTimePicker = ref();
} from "@/hooks/useDictOptions";
const {
dictData
} = useDictData(["devices_status"]);
{{{- if ge (len .DictFields) 1 }}}
{{{- $dictSize := sub (len .DictFields) 1 }}}
const { dictData } = useDictData([{{{- range .DictFields }}}'{{{ . }}}'{{{- if ne (index $.DictFields $dictSize) . }}},{{{- end }}}{{{- end }}}])
{{{- end }}}
let formRef = ref();
let form = ref({
location: "",
placedName: "",
status: "",
startTime: '',
endTime: '',
{{{- range .Columns }}}
{{{- if .IsQuery }}}
{{{- if eq .HtmlType "datetime" }}}
{{{ (toCamelCase .GoField) }}}Start: '',
{{{ (toCamelCase .GoField) }}}End: '',
{{{- else }}}
{{{ (toCamelCase .GoField) }}}: '',
{{{- end }}}
{{{- end }}}
{{{- end }}}
});
let minDate = dayjs('2022-01-01 00:00:00').valueOf()
let maxDate = dayjs().endOf('month').valueOf()
function startTimeConfirm(e) {
form.value.startTime = dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')
}
function endTimeConfirm(e) {
form.value.endTime = dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')
}
function submit() {
console.log("submit", form.value);

View File

@@ -223,7 +223,7 @@ func (tu templateUtil) GetFilePaths(tplCodeMap map[string]string, ModuleName str
"vue/index.vue.tpl": strings.Join([]string{"admin/src/views/", ModuleName, "/index.vue"}, ""), // "admin/src/views/%s/index.vue",
"vue/index-tree.vue.tpl": strings.Join([]string{"admin/src/views/", ModuleName, "/index-tree.vue"}, ""), // "admin/src/views/%s/index-tree.vue",
"uniapp/api.ts.tpl": strings.Join([]string{"uniapp/src/api/", ModuleName, ".ts"}, ""),
"uniapp/api.ts.tpl": strings.Join([]string{"uniapp/api/", ModuleName, ".ts"}, ""),
"uniapp/edit.vue.tpl": strings.Join([]string{"uniapp/pages/", ModuleName, "/edit.vue"}, ""),
"uniapp/index.vue.tpl": strings.Join([]string{"uniapp/pages/", ModuleName, "/index.vue"}, ""),
"uniapp/search.vue.tpl": strings.Join([]string{"uniapp/pages/", ModuleName, "/search.vue"}, ""),

View File

@@ -15,47 +15,47 @@ import (
// RespType 响应类型
type RespType struct {
code int
msg string
data interface{}
code int
message string
data interface{}
}
// Response 响应格式结构
type Response struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data interface{} `json:"data"`
Code int `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data"`
}
var (
Success = RespType{code: 200, msg: "成功"}
Failed = RespType{code: 300, msg: "失败"}
Success = RespType{code: 200, message: "成功"}
Failed = RespType{code: 300, message: "失败"}
ParamsValidError = RespType{code: 310, msg: "参数校验错误"}
ParamsTypeError = RespType{code: 311, msg: "参数类型错误"}
RequestMethodError = RespType{code: 312, msg: "请求方法错误"}
AssertArgumentError = RespType{code: 313, msg: "断言参数错误"}
ParamsValidError = RespType{code: 310, message: "参数校验错误"}
ParamsTypeError = RespType{code: 311, message: "参数类型错误"}
RequestMethodError = RespType{code: 312, message: "请求方法错误"}
AssertArgumentError = RespType{code: 313, message: "断言参数错误"}
LoginAccountError = RespType{code: 330, msg: "登录账号或密码错误"}
LoginDisableError = RespType{code: 331, msg: "登录账号已被禁用了"}
TokenEmpty = RespType{code: 332, msg: "token参数为空"}
TokenInvalid = RespType{code: 333, msg: "token参数无效"}
LoginAccountError = RespType{code: 330, message: "登录账号或密码错误"}
LoginDisableError = RespType{code: 331, message: "登录账号已被禁用了"}
TokenEmpty = RespType{code: 332, message: "token参数为空"}
TokenInvalid = RespType{code: 333, message: "token参数无效"}
NoPermission = RespType{code: 403, msg: "无相关权限"}
Request404Error = RespType{code: 404, msg: "请求接口不存在"}
Request405Error = RespType{code: 405, msg: "请求方法不允许"}
NoPermission = RespType{code: 403, message: "无相关权限"}
Request404Error = RespType{code: 404, message: "请求接口不存在"}
Request405Error = RespType{code: 405, message: "请求方法不允许"}
SystemError = RespType{code: 500, msg: "系统错误"}
SystemError = RespType{code: 500, message: "系统错误"}
)
// Error 实现error方法
func (rt RespType) Error() string {
return strconv.Itoa(rt.code) + ":" + rt.msg
return strconv.Itoa(rt.code) + ":" + rt.message
}
// Make 以响应类型生成信息
func (rt RespType) Make(msg string) RespType {
rt.msg = msg
func (rt RespType) Make(message string) RespType {
rt.message = message
return rt
}
@@ -72,7 +72,7 @@ func (rt RespType) Code() int {
// Msg 获取msg
func (rt RespType) Msg() string {
return rt.msg
return rt.message
}
// Data 获取data
@@ -89,9 +89,9 @@ func Result(c *gin.Context, resp RespType, data interface{}) {
c.Error(resp)
}
c.JSON(http.StatusOK, Response{
Code: resp.code,
Msg: resp.msg,
Data: data,
Code: resp.code,
Message: resp.message,
Data: data,
})
}
@@ -110,9 +110,9 @@ func Ok(c *gin.Context) {
}
// OkWithMsg 正常响应附带msg
func OkWithMsg(c *gin.Context, msg string) {
func OkWithMsg(c *gin.Context, message string) {
resp := Success
resp.msg = msg
resp.message = message
Result(c, resp, []string{})
}
@@ -137,8 +137,8 @@ func Fail(c *gin.Context, resp RespType) {
}
// FailWithMsg 错误响应附带msg
func FailWithMsg(c *gin.Context, resp RespType, msg string) {
resp.msg = msg
func FailWithMsg(c *gin.Context, resp RespType, message string) {
resp.message = message
respLogger(resp, "Request FailWithMsg: url=[%s], resp=[%+v]", c.Request.URL.Path, resp)
Result(c, resp, []string{})
}
@@ -218,10 +218,10 @@ func CheckMysqlErr(err error) (e error) {
}
// CheckErrDBNotRecord 校验数据库记录不存在的错误
func CheckErrDBNotRecord(err error, msg string) (e error) {
func CheckErrDBNotRecord(err error, message string) (e error) {
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
core.Logger.WithOptions(zap.AddCallerSkip(1)).Infof("记录不存在: err=[%+v]", err)
return SystemError.Make(msg)
return SystemError.Make(message)
}
return
}

View File

@@ -27,10 +27,10 @@ func GetExcelColumnName(columnNumber int) string {
//
// 需要在传入的结构体中的字段加上tagexcel:"title:列头名称;index:列下标(从0开始);"
//
// @param list 要导出的数据
// @param sheet 文档
// @param title 标题
// @param changeHead map[string]string{"Id": "账号", "Name": "真实姓名"}
// list 要导出的数据
// sheet 文档
// title 标题
// changeHead map[string]string{"Id": "账号", "Name": "真实姓名"}
func NormalDynamicExport(list interface{}, sheet string, title string, changeHead map[string]string) (file *excelize.File, err error) {
e := ExcelInit()
err = ExportExcel(sheet, title, list, changeHead, e)