diff --git a/src/views/kc/blLoginLog/BlLoginLog.api.ts b/src/views/kc/blLoginLog/BlLoginLog.api.ts new file mode 100644 index 0000000..2b87d0d --- /dev/null +++ b/src/views/kc/blLoginLog/BlLoginLog.api.ts @@ -0,0 +1,72 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/blLoginLog/blLoginLog/list', + save='/blLoginLog/blLoginLog/add', + edit='/blLoginLog/blLoginLog/edit', + deleteOne = '/blLoginLog/blLoginLog/delete', + deleteBatch = '/blLoginLog/blLoginLog/deleteBatch', + importExcel = '/blLoginLog/blLoginLog/importExcel', + exportXls = '/blLoginLog/blLoginLog/exportXls', +} + +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; + +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; + +/** + * 列表接口 + * @param params + */ +export const list = (params) => defHttp.get({ url: Api.list, params }); + +/** + * 删除单个 + * @param params + * @param handleSuccess + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} + +/** + * 批量删除 + * @param params + * @param handleSuccess + */ +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} + +/** + * 保存或者更新 + * @param params + * @param isUpdate + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url: url, params }, { isTransformResponse: false }); +} diff --git a/src/views/kc/blLoginLog/BlLoginLog.data.ts b/src/views/kc/blLoginLog/BlLoginLog.data.ts new file mode 100644 index 0000000..2aceb55 --- /dev/null +++ b/src/views/kc/blLoginLog/BlLoginLog.data.ts @@ -0,0 +1,107 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '日志内容', + align: "center", + dataIndex: 'logContent' + }, + { + title: '操作用户账号', + align: "center", + dataIndex: 'userid' + }, + { + title: '操作用户名称', + align: "center", + dataIndex: 'username' + }, + { + title: 'IP', + align: "center", + dataIndex: 'ip' + }, + { + title: '登录时间', + align: "center", + dataIndex: 'createTime' + }, +]; + +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; + +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '日志类型(1登录日志,2操作日志, 3.租户操作日志)', + field: 'logType', + component: 'InputNumber', + }, + { + label: '日志内容', + field: 'logContent', + component: 'Input', + }, + { + label: '操作类型', + field: 'operateType', + component: 'InputNumber', + }, + { + label: '操作用户账号', + field: 'userid', + component: 'Input', + }, + { + label: '操作用户名称', + field: 'username', + component: 'Input', + }, + { + label: 'IP', + field: 'ip', + component: 'Input', + }, + { + label: '请求java方法', + field: 'method', + component: 'Input', + }, + { + label: '请求路径', + field: 'requestUrl', + component: 'Input', + }, + { + label: '请求参数', + field: 'requestParam', + component: 'InputTextArea', + }, + { + label: '请求类型', + field: 'requestType', + component: 'Input', + }, + { + label: '耗时', + field: 'costTime', + component: 'InputNumber', + }, + { + label: '租户ID', + field: 'tenantId', + component: 'InputNumber', + }, + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; diff --git a/src/views/kc/blLoginLog/BlLoginLogList.vue b/src/views/kc/blLoginLog/BlLoginLogList.vue new file mode 100644 index 0000000..a46eca2 --- /dev/null +++ b/src/views/kc/blLoginLog/BlLoginLogList.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/src/views/kc/blLoginLog/BlLoginLogModal.vue b/src/views/kc/blLoginLog/BlLoginLogModal.vue new file mode 100644 index 0000000..0ea3389 --- /dev/null +++ b/src/views/kc/blLoginLog/BlLoginLogModal.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/src/views/kc/blLoginLog/components/BlLoginLogForm.vue b/src/views/kc/blLoginLog/components/BlLoginLogForm.vue new file mode 100644 index 0000000..89029a1 --- /dev/null +++ b/src/views/kc/blLoginLog/components/BlLoginLogForm.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/views/kc/blLoginLog/components/BlLoginLogModal.vue b/src/views/kc/blLoginLog/components/BlLoginLogModal.vue new file mode 100644 index 0000000..6eb481f --- /dev/null +++ b/src/views/kc/blLoginLog/components/BlLoginLogModal.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/site/kxstkkt/itemPage.vue b/src/views/site/kxstkkt/itemPage.vue index 674a296..3d46cf3 100644 --- a/src/views/site/kxstkkt/itemPage.vue +++ b/src/views/site/kxstkkt/itemPage.vue @@ -49,7 +49,7 @@ 听课 --> - 评价 + 评价 @@ -99,6 +99,17 @@ function isNow(item){ } } +function handleDis(item){ + console.log(`🚀 ~ handleDis ~ item:`, item) + const jssj = dayjs(item.skrq + " " +item.jssj, 'YYYY-MM-DD hh:mm:ss'); + var dqsj = dayjs(new Date()); + if(dqsj.unix() < jssj.unix()){ + return true; + }else{ + return false; + } +} + /** * 报错事件 */ diff --git a/src/views/site/studentWdkc/studentDbtx.vue b/src/views/site/studentWdkc/studentDbtx.vue new file mode 100644 index 0000000..f487914 --- /dev/null +++ b/src/views/site/studentWdkc/studentDbtx.vue @@ -0,0 +1,87 @@ + + + + +