diff --git a/src/api/hTable.ts b/src/api/hTable.ts index e097d07..e29d581 100644 --- a/src/api/hTable.ts +++ b/src/api/hTable.ts @@ -28,3 +28,4 @@ export class hTableAPI { }); } } + diff --git a/src/components/hTable/hTable.ts b/src/components/hTable/hTable.ts index 8bd020b..b97653f 100644 --- a/src/components/hTable/hTable.ts +++ b/src/components/hTable/hTable.ts @@ -64,6 +64,27 @@ export interface OperationButton { custom?: ButtonCustomConfig; } +/** 类型判断枚举 */ +export enum ConditionalType { + Equal, + Like, + GreaterThan, + GreaterThanOrEqual, + LessThan, + LessThanOrEqual, + In, + NotIn, + LikeLeft, + LikeRight, + NoEqual, + IsNullOrEmpty, + IsNot, + NoLike, + EqualNull, + InLike, + Range +} + /* 字段设置项 */ export interface FieldSetting { /**map 时Value的取值的属性 */ @@ -95,13 +116,7 @@ export interface TableColumn { /* 是否可搜索 */ search: boolean; /* 搜索类型 */ - searchType?: - | "Equal" - | "NoEqual" - | "Like" - | "GreaterThan" - | "LessThan" - | "NoLike"; + searchType?: ConditionalType; /* 是否允许添加 */ add: boolean; /* 是否允许修改 */ @@ -138,6 +153,18 @@ export interface PageData { total: number; } +/* 分页数据 */ +export interface ConditionalModel { + /** 字段名称 */ + FieldName: string; + /** 字段查询值 */ + FieldValue: string; + /** 查询方式 */ + ConditionalType?: ConditionalType; + /** C#类型名称 */ + CSharpTypeName?: string; +} + /* 搜索条件 */ export interface SearchConditions { /* 是否显示搜索 */ @@ -149,7 +176,7 @@ export interface SearchConditions { /* 排序字段 */ OrderBy: string; /* 默认查询条件 */ - defaultConditions: any[]; + defaultConditions: ConditionalModel[]; /* 查询条件 */ Conditions: any[]; } diff --git a/src/components/hTable/index.vue b/src/components/hTable/index.vue index c8a69ba..29e27c2 100644 --- a/src/components/hTable/index.vue +++ b/src/components/hTable/index.vue @@ -16,7 +16,7 @@ import { import { Search } from "@element-plus/icons-vue"; import { ElMessage, ElMessageBox } from "element-plus"; import { defineAsyncComponent, AsyncComponentLoader } from "vue"; -import { Dialog, TableColumn, TableConfig } from "./hTable"; +import { ConditionalType, Dialog, TableColumn, TableConfig } from "./hTable"; import hTableEdit from "./hTableEdit.vue"; import { hTableAPI } from "@/api/hTable"; import { getenum } from "@/api/enum"; @@ -274,17 +274,19 @@ function handleReloadPaged(reload = true) { let data: any = { ConditionalType: 0 }; if (table.value.column[name].type === "datetime") { // data.CSharpTypeName = 'DateTime' - data.ConditionalType = 8; // '2023-10-07%' + data.ConditionalType = ConditionalType.LikeLeft; // '2023-10-07%' } else if (table.value.column[name].type === "switch") { data.CSharpTypeName = "Boolean"; } else if (table.value.column[name].type === "string") { - data.ConditionalType = "Like"; - } + data.ConditionalType = ConditionalType.Like; + } else data.ConditionalType = ConditionalType.Equal; + data.FieldName = name.charAt(0).toUpperCase() + name.slice(1); data.FieldValue = table.value.column[name].value.toString(); if (table.value.column[name].searchType != undefined) { - data.ConditionalType = table.value.column[name].searchType || 0; + let v: number = table.value.column[name].searchType || 0; + data.ConditionalType = v; } table.value.search.Conditions.push(data); } diff --git a/src/utils/rules.ts b/src/utils/rules.ts index 6f7566d..3f6f515 100644 --- a/src/utils/rules.ts +++ b/src/utils/rules.ts @@ -1,6 +1,14 @@ export const ruleRequired = [ { required: true, message: "不能为空", trigger: "blur" } ]; +export const ruleRequiredNumber = [ + { required: true, message: "不能为空", trigger: "blur" }, + { + pattern: /^\d*\.?\d+$/, + message: "请输入正确数字", + trigger: "blur" + } +]; export const rulePassword = [ { required: true, message: "不能为空", trigger: "blur" }, { min: 6, message: "长度必须大于5", trigger: "blur" } diff --git a/src/views/admin/index.vue b/src/views/admin/index.vue index 6a2a671..f33bdf6 100644 --- a/src/views/admin/index.vue +++ b/src/views/admin/index.vue @@ -1,6 +1,6 @@ + + diff --git a/src/views/exam/index.vue b/src/views/exam/index.vue new file mode 100644 index 0000000..3089926 --- /dev/null +++ b/src/views/exam/index.vue @@ -0,0 +1,177 @@ + + + diff --git a/src/views/exam/userDetails.vue b/src/views/exam/userDetails.vue new file mode 100644 index 0000000..5030e01 --- /dev/null +++ b/src/views/exam/userDetails.vue @@ -0,0 +1,132 @@ + + + diff --git a/src/views/grade/index.vue b/src/views/grade/index.vue index a78a477..d6a6ec0 100644 --- a/src/views/grade/index.vue +++ b/src/views/grade/index.vue @@ -1,6 +1,6 @@ + +