From 10a5d45eefe699681031d585fc3b905713a29c27 Mon Sep 17 00:00:00 2001
From: bai <1643359946@qq.com>
Date: Wed, 29 Mar 2023 22:52:49 +0800
Subject: [PATCH] =?UTF-8?q?2023=E5=B9=B43=E6=9C=8829=E6=97=A5=20=E6=B7=BB?=
=?UTF-8?q?=E5=8A=A0=E8=AF=BE=E5=A0=82=E7=AE=A1=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.eslintrc.js | 7 +-
src/views/kc/ktgl/KcKetangbiao.api.ts | 72 +++++
src/views/kc/ktgl/KcKetangbiao.data.ts | 252 +++++++++++++++++
src/views/kc/ktgl/KcKetangbiaoList.vue | 254 ++++++++++++++++++
.../kc/ktgl/components/KcKetangbiaoForm.vue | 221 +++++++++++++++
.../kc/ktgl/components/KcKetangbiaoModal.vue | 75 ++++++
src/views/site/index.vue | 19 +-
7 files changed, 897 insertions(+), 3 deletions(-)
create mode 100644 src/views/kc/ktgl/KcKetangbiao.api.ts
create mode 100644 src/views/kc/ktgl/KcKetangbiao.data.ts
create mode 100644 src/views/kc/ktgl/KcKetangbiaoList.vue
create mode 100644 src/views/kc/ktgl/components/KcKetangbiaoForm.vue
create mode 100644 src/views/kc/ktgl/components/KcKetangbiaoModal.vue
diff --git a/.eslintrc.js b/.eslintrc.js
index 4573766..954da34 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -46,7 +46,7 @@ module.exports = defineConfig({
},
],
'no-unused-vars': [
- 'error',
+ 'off',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
@@ -63,7 +63,7 @@ module.exports = defineConfig({
'vue/attribute-hyphenation': 'off',
'vue/require-default-prop': 'off',
'vue/html-self-closing': [
- 'error',
+ 'off',
{
html: {
void: 'always',
@@ -75,5 +75,8 @@ module.exports = defineConfig({
},
],
'vue/multi-word-component-names': 'off',
+ // 'vue/html-self-closing': 'off',
+ 'prettier/prettier': 'off',
+ // 'no-unused-vars': 'off',
},
});
diff --git a/src/views/kc/ktgl/KcKetangbiao.api.ts b/src/views/kc/ktgl/KcKetangbiao.api.ts
new file mode 100644
index 0000000..9365570
--- /dev/null
+++ b/src/views/kc/ktgl/KcKetangbiao.api.ts
@@ -0,0 +1,72 @@
+import { defHttp } from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+ list = '/ktgl/kcKetangbiao/list',
+ save='/ktgl/kcKetangbiao/add',
+ edit='/ktgl/kcKetangbiao/edit',
+ deleteOne = '/ktgl/kcKetangbiao/delete',
+ deleteBatch = '/ktgl/kcKetangbiao/deleteBatch',
+ importExcel = '/ktgl/kcKetangbiao/importExcel',
+ exportXls = '/ktgl/kcKetangbiao/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/ktgl/KcKetangbiao.data.ts b/src/views/kc/ktgl/KcKetangbiao.data.ts
new file mode 100644
index 0000000..f8390da
--- /dev/null
+++ b/src/views/kc/ktgl/KcKetangbiao.data.ts
@@ -0,0 +1,252 @@
+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: 'kcbh'
+ },
+ {
+ title: '课程名称',
+ align: "center",
+ dataIndex: 'kcmc'
+ },
+ {
+ title: '学分',
+ align: "center",
+ dataIndex: 'xf'
+ },
+ {
+ title: '授课教师',
+ align: "center",
+ dataIndex: 'skjs'
+ },
+ {
+ title: '选课人数',
+ align: "center",
+ dataIndex: 'xkrs'
+ },
+ {
+ title: '开课单位',
+ align: "center",
+ dataIndex: 'kkdw_dictText'
+ },
+ {
+ title: '课程性质',
+ align: "center",
+ dataIndex: 'kcxz_dictText'
+ },
+ {
+ title: '节次',
+ align: "center",
+ dataIndex: 'hh_dictText'
+ },
+ {
+ title: '周几',
+ align: "center",
+ dataIndex: 'week_dictText'
+ },
+ {
+ title: '开课周次',
+ align: "center",
+ dataIndex: 'kkzc_dictText'
+ },
+];
+
+//查询数据
+export const searchFormSchema: FormSchema[] = [
+ {
+ label: "课程名称",
+ field: 'kcmc',
+ component: 'Input',
+ colProps: {span: 6},
+ },
+ {
+ label: "开课单位",
+ field: 'kkdw',
+ component: 'JDictSelectTag',
+ componentProps:{
+ },
+ colProps: {span: 6},
+ },
+ {
+ label: "课程性质",
+ field: 'kcxz',
+ component: 'JDictSelectTag',
+ componentProps:{
+ dictCode: "kcxz"
+ },
+ colProps: {span: 6},
+ },
+ {
+ label: "节次",
+ field: 'hh',
+ component: 'JDictSelectTag',
+ componentProps:{
+ dictCode: "skjc"
+ },
+ colProps: {span: 6},
+ },
+ {
+ label: "周几",
+ field: 'week',
+ component: 'JDictSelectTag',
+ componentProps:{
+ dictCode: "week"
+ },
+ colProps: {span: 6},
+ },
+];
+
+//表单数据
+export const formSchema: FormSchema[] = [
+ {
+ label: '课程编号',
+ field: 'kcbh',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入课程编号!'},
+ {...rules.duplicateCheckRule('kc_ketangbiao', 'kcbh',model,schema)[0]},
+ ];
+ },
+ },
+ {
+ label: '课程名称',
+ field: 'kcmc',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入课程名称!'},
+ ];
+ },
+ },
+ {
+ label: '学分',
+ field: 'xf',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入学分!'},
+ ];
+ },
+ },
+ {
+ label: '授课教师',
+ field: 'skjs',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入授课教师!'},
+ ];
+ },
+ },
+ {
+ label: '选课人数',
+ field: 'xkrs',
+ component: 'Input',
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入选课人数!'},
+ ];
+ },
+ },
+ {
+ label: '开课单位',
+ field: 'kkdw',
+ component: 'JDictSelectTag',
+ componentProps:{
+ dictCode: ""
+ },
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入开课单位!'},
+ ];
+ },
+ },
+ {
+ label: '课程性质',
+ field: 'kcxz',
+ component: 'JDictSelectTag',
+ componentProps:{
+ dictCode: "kcxz"
+ },
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入课程性质!'},
+ ];
+ },
+ },
+ {
+ label: '节次',
+ field: 'hh',
+ component: 'JDictSelectTag',
+ componentProps:{
+ dictCode: "skjc"
+ },
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入节次!'},
+ ];
+ },
+ },
+ {
+ label: '周几',
+ field: 'week',
+ component: 'JDictSelectTag',
+ componentProps:{
+ dictCode: "week"
+ },
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入周几!'},
+ ];
+ },
+ },
+ {
+ label: '直播方式',
+ field: 'zbfs',
+ component: 'JDictSelectTag',
+ componentProps:{
+ dictCode: "skpt"
+ },
+ },
+ {
+ label: '会议号',
+ field: 'hyh',
+ component: 'Input',
+ },
+ {
+ label: '会议密码',
+ field: 'hymm',
+ component: 'Input',
+ },
+ {
+ label: '课程链接',
+ field: 'kclj',
+ component: 'Input',
+ },
+ {
+ label: '开课周次',
+ field: 'kkzc',
+ component: 'JSelectMultiple',
+ componentProps:{
+ dictCode: "skzc"
+ },
+ dynamicRules: ({model,schema}) => {
+ return [
+ { required: true, message: '请输入开课周次!'},
+ ];
+ },
+ },
+ // TODO 主键隐藏字段,目前写死为ID
+ {
+ label: '',
+ field: 'id',
+ component: 'Input',
+ show: false,
+ },
+];
diff --git a/src/views/kc/ktgl/KcKetangbiaoList.vue b/src/views/kc/ktgl/KcKetangbiaoList.vue
new file mode 100644
index 0000000..a80bc45
--- /dev/null
+++ b/src/views/kc/ktgl/KcKetangbiaoList.vue
@@ -0,0 +1,254 @@
+
+