diff --git a/src/router/routes/modules/site/site.ts b/src/router/routes/modules/site/site.ts index 44e0e53..233c501 100644 --- a/src/router/routes/modules/site/site.ts +++ b/src/router/routes/modules/site/site.ts @@ -199,6 +199,14 @@ const site: AppRouteModule = { title: '选择课程', }, }, + { + path: 'dqkcTlqjh', + name: 'dqkcTlqjh', + component: () => import('/@/views/zy/zyTlq/TlqJiaohuList.vue'), + meta: { + title: '讨论区', + }, + }, ], }; diff --git a/src/router/routes/modules/zy/zy.ts b/src/router/routes/modules/zy/zy.ts index 3fe9d45..203c119 100644 --- a/src/router/routes/modules/zy/zy.ts +++ b/src/router/routes/modules/zy/zy.ts @@ -87,6 +87,14 @@ const zuoye: AppRouteModule = { title: '调查问卷', }, }, + { + path: 'dqkcTlq', + name: 'dqkcTlq', + component: () => import('/@/views/zy/zyTlq/ZyTlqList.vue'), + meta: { + title: '讨论区', + }, + }, ] } diff --git a/src/utils/common/compUtils.ts b/src/utils/common/compUtils.ts index fd34aa6..f64736b 100644 --- a/src/utils/common/compUtils.ts +++ b/src/utils/common/compUtils.ts @@ -17,8 +17,8 @@ export const getFileAccessHttpUrl = (fileUrl, prefix = 'http') => { //判断是否是数组格式 let isArray = fileUrl.indexOf('[') != -1; if (!isArray) { - // let prefix = `${baseApiUrl}/sys/common/static/`; - let prefix = `${baseApiUrl}/zyk/zykInfo/static/`; + let prefix = `${baseApiUrl}/sys/common/static/`; + // let prefix = `${baseApiUrl}/zyk/zykInfo/static/`; // 判断是否已包含前缀 if (!fileUrl.startsWith(prefix)) { result = `${prefix}${fileUrl}`; diff --git a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue index e2d6b07..5f49f41 100644 --- a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue +++ b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue @@ -26,6 +26,9 @@ 教学资源库 + + 讨论区 + @@ -82,6 +85,8 @@ href = "/zy/ceshiWenjuan"; }else if(zytype=='gongju'){ href = "/zy/dqkcGongju"; + }else if(zytype=='tlq'){ + href = "/zy/dqkcTlq"; } router.push({path:href,query: {rwbh,xqxn,type}}); diff --git a/src/views/zy/zyTlq/TlqJiaohuList.vue b/src/views/zy/zyTlq/TlqJiaohuList.vue new file mode 100644 index 0000000..73c0d69 --- /dev/null +++ b/src/views/zy/zyTlq/TlqJiaohuList.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/zy/zyTlq/ZyTlq.api.ts b/src/views/zy/zyTlq/ZyTlq.api.ts new file mode 100644 index 0000000..0d930c3 --- /dev/null +++ b/src/views/zy/zyTlq/ZyTlq.api.ts @@ -0,0 +1,72 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/zyTlq/zyTlq/list', + save='/zyTlq/zyTlq/add', + edit='/zyTlq/zyTlq/edit', + deleteOne = '/zyTlq/zyTlq/delete', + deleteBatch = '/zyTlq/zyTlq/deleteBatch', + importExcel = '/zyTlq/zyTlq/importExcel', + exportXls = '/zyTlq/zyTlq/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/zy/zyTlq/ZyTlq.data.ts b/src/views/zy/zyTlq/ZyTlq.data.ts new file mode 100644 index 0000000..7ab0af7 --- /dev/null +++ b/src/views/zy/zyTlq/ZyTlq.data.ts @@ -0,0 +1,42 @@ +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: 'mainId', + align: "center", + dataIndex: 'mainId' + }, + { + title: '标题', + align: "center", + dataIndex: 'title' + }, +]; + +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; + +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: 'mainId', + field: 'mainId', + component: 'Input', + }, + { + label: '标题', + field: 'title', + component: 'Input', + }, + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; diff --git a/src/views/zy/zyTlq/ZyTlqList copy.vue b/src/views/zy/zyTlq/ZyTlqList copy.vue new file mode 100644 index 0000000..772bbde --- /dev/null +++ b/src/views/zy/zyTlq/ZyTlqList copy.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/src/views/zy/zyTlq/ZyTlqList.vue b/src/views/zy/zyTlq/ZyTlqList.vue new file mode 100644 index 0000000..19bd147 --- /dev/null +++ b/src/views/zy/zyTlq/ZyTlqList.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/src/views/zy/zyTlq/components/ZyTlqForm.vue b/src/views/zy/zyTlq/components/ZyTlqForm.vue new file mode 100644 index 0000000..660c400 --- /dev/null +++ b/src/views/zy/zyTlq/components/ZyTlqForm.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/views/zy/zyTlq/components/ZyTlqModal.vue b/src/views/zy/zyTlq/components/ZyTlqModal.vue new file mode 100644 index 0000000..45f5434 --- /dev/null +++ b/src/views/zy/zyTlq/components/ZyTlqModal.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/zy/zyTlqContent/ZyTlqContent.api.ts b/src/views/zy/zyTlqContent/ZyTlqContent.api.ts new file mode 100644 index 0000000..c39c584 --- /dev/null +++ b/src/views/zy/zyTlqContent/ZyTlqContent.api.ts @@ -0,0 +1,72 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/zyTlqContent/zyTlqContent/list', + save='/zyTlqContent/zyTlqContent/add', + edit='/zyTlqContent/zyTlqContent/edit', + deleteOne = '/zyTlqContent/zyTlqContent/delete', + deleteBatch = '/zyTlqContent/zyTlqContent/deleteBatch', + importExcel = '/zyTlqContent/zyTlqContent/importExcel', + exportXls = '/zyTlqContent/zyTlqContent/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/zy/zyTlqContent/ZyTlqContent.data.ts b/src/views/zy/zyTlqContent/ZyTlqContent.data.ts new file mode 100644 index 0000000..aa23ecb --- /dev/null +++ b/src/views/zy/zyTlqContent/ZyTlqContent.data.ts @@ -0,0 +1,72 @@ +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: 'mainId', + align: "center", + dataIndex: 'mainId' + }, + { + title: '讨论信息', + align: "center", + dataIndex: 'content' + }, + { + title: '图片', + align: "center", + dataIndex: 'picPath' + }, + { + title: '附件', + align: "center", + dataIndex: 'filePath' + }, + { + title: '点赞', + align: "center", + dataIndex: 'dianzan' + }, +]; + +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; + +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: 'mainId', + field: 'mainId', + component: 'Input', + }, + { + label: '讨论信息', + field: 'content', + component: 'InputTextArea', + }, + { + label: '图片', + field: 'picPath', + component: 'InputTextArea', + }, + { + label: '附件', + field: 'filePath', + component: 'InputTextArea', + }, + { + label: '点赞', + field: 'dianzan', + component: 'InputNumber', + }, + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false, + }, +]; diff --git a/src/views/zy/zyTlqContent/ZyTlqContentList.vue b/src/views/zy/zyTlqContent/ZyTlqContentList.vue new file mode 100644 index 0000000..47ab2f0 --- /dev/null +++ b/src/views/zy/zyTlqContent/ZyTlqContentList.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/src/views/zy/zyTlqContent/components/ZyTlqContentForm.vue b/src/views/zy/zyTlqContent/components/ZyTlqContentForm.vue new file mode 100644 index 0000000..3e72c0e --- /dev/null +++ b/src/views/zy/zyTlqContent/components/ZyTlqContentForm.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/src/views/zy/zyTlqContent/components/ZyTlqContentModal.vue b/src/views/zy/zyTlqContent/components/ZyTlqContentModal.vue new file mode 100644 index 0000000..49e53be --- /dev/null +++ b/src/views/zy/zyTlqContent/components/ZyTlqContentModal.vue @@ -0,0 +1,75 @@ + + + + +