修改bug
This commit is contained in:
parent
6659371f74
commit
91e275c30c
|
@ -59,6 +59,15 @@ const site: AppRouteModule = {
|
|||
title: '评价结果',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'ktsbMore',
|
||||
name: 'ktsbMore',
|
||||
component: () => import('/@/views/site/ktsb/more.vue'),
|
||||
meta: {
|
||||
// affix: true,
|
||||
title: '评价结果',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'yuyuekechengMore',
|
||||
name: 'yuyuekechengMore',
|
||||
|
|
|
@ -0,0 +1,233 @@
|
|||
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: 'reportstime'
|
||||
},
|
||||
{
|
||||
title: '报错人姓名',
|
||||
align: "center",
|
||||
dataIndex: 'username'
|
||||
},
|
||||
{
|
||||
title: '报错课程',
|
||||
align: "center",
|
||||
dataIndex: 'kcmc'
|
||||
},
|
||||
{
|
||||
title: '开课单位',
|
||||
align: "center",
|
||||
dataIndex: 'kkdw'
|
||||
},
|
||||
{
|
||||
title: '上课日期',
|
||||
align: "center",
|
||||
dataIndex: 'skrq'
|
||||
},
|
||||
{
|
||||
title: '上课节次',
|
||||
align: "center",
|
||||
dataIndex: 'hh'
|
||||
},
|
||||
{
|
||||
title: '错误类型',
|
||||
align: "center",
|
||||
dataIndex: 'meetingpsw'
|
||||
},
|
||||
{
|
||||
title: '错误信息',
|
||||
align: "center",
|
||||
dataIndex: 'errortext'
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
export const kcxxcolumns: BasicColumn[] = [
|
||||
{
|
||||
title: '报错时间',
|
||||
align: "center",
|
||||
dataIndex: 'reportstime'
|
||||
},
|
||||
{
|
||||
title: '报错人工号',
|
||||
align: "center",
|
||||
dataIndex: 'userid'
|
||||
},
|
||||
{
|
||||
title: '报错人姓名',
|
||||
align: "center",
|
||||
dataIndex: 'username'
|
||||
},
|
||||
{
|
||||
title: '报错人单位',
|
||||
align: "center",
|
||||
dataIndex: 'college'
|
||||
},
|
||||
{
|
||||
title: '报错课程',
|
||||
align: "center",
|
||||
dataIndex: 'kcmc'
|
||||
},
|
||||
{
|
||||
title: '开课单位',
|
||||
align: "center",
|
||||
dataIndex: 'kkdw'
|
||||
},
|
||||
{
|
||||
title: '上课日期',
|
||||
align: "center",
|
||||
dataIndex: 'skrq'
|
||||
},
|
||||
{
|
||||
title: '上课节次',
|
||||
align: "center",
|
||||
dataIndex: 'hh'
|
||||
},
|
||||
{
|
||||
title: '错误信息描述',
|
||||
align: "center",
|
||||
dataIndex: 'errortext'
|
||||
},
|
||||
{
|
||||
title: '修改方式',
|
||||
align: "center",
|
||||
dataIndex: 'edittype_dictText'
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
|
||||
export const jscjcolumns: BasicColumn[] = [
|
||||
{
|
||||
title: '报错时间',
|
||||
align: "center",
|
||||
dataIndex: 'reportstime'
|
||||
},
|
||||
{
|
||||
title: '报错人工号',
|
||||
align: "center",
|
||||
dataIndex: 'userid'
|
||||
},
|
||||
{
|
||||
title: '报错人姓名',
|
||||
align: "center",
|
||||
dataIndex: 'username'
|
||||
},
|
||||
{
|
||||
title: '报错人单位',
|
||||
align: "center",
|
||||
dataIndex: 'college'
|
||||
},
|
||||
{
|
||||
title: '报错课程',
|
||||
align: "center",
|
||||
dataIndex: 'kcmc'
|
||||
},
|
||||
{
|
||||
title: '开课单位',
|
||||
align: "center",
|
||||
dataIndex: 'kkdw'
|
||||
},
|
||||
{
|
||||
title: '上课日期',
|
||||
align: "center",
|
||||
dataIndex: 'skrq'
|
||||
},
|
||||
{
|
||||
title: '上课节次',
|
||||
align: "center",
|
||||
dataIndex: 'hh'
|
||||
},
|
||||
{
|
||||
title: '要求是否出镜',
|
||||
align: "center",
|
||||
dataIndex: 'ktbsfcj_dictText'
|
||||
},
|
||||
{
|
||||
title: '当前是否出镜',
|
||||
align: "center",
|
||||
dataIndex: 'sfcj_dictText'
|
||||
},
|
||||
{
|
||||
title: '修改方式',
|
||||
align: "center",
|
||||
dataIndex: 'edittype_dictText'
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
//查询数据
|
||||
export const searchFormSchema: FormSchema[] = [
|
||||
];
|
||||
|
||||
//表单数据
|
||||
export const formSchema: FormSchema[] = [
|
||||
{
|
||||
label: '错误类型',
|
||||
field: 'optionsradios',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps:{
|
||||
dictCode: "optionsradios"
|
||||
},
|
||||
dynamicRules: ({model,schema}) => {
|
||||
return [
|
||||
{ required: true, message: '请输入错误类型!'},
|
||||
];
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '会议号',
|
||||
field: 'meetingnum',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '会议密码',
|
||||
field: 'meetingpsw',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '会议邀请链接',
|
||||
field: 'meetinglink',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '修改类型:0-本堂课修改,1-',
|
||||
field: 'edittype',
|
||||
component: 'JDictSelectTag',
|
||||
componentProps:{
|
||||
dictCode: "edittype"
|
||||
},
|
||||
dynamicRules: ({model,schema}) => {
|
||||
return [
|
||||
{ required: true, message: '请输入修改类型:0-本堂课修改,1-!'},
|
||||
];
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '是否修改:0-未修改,1-已修改',
|
||||
field: 'ismodified',
|
||||
component: 'InputNumber',
|
||||
},
|
||||
{
|
||||
label: '课程的上课日期',
|
||||
field: 'skrq',
|
||||
component: 'Input',
|
||||
},
|
||||
{
|
||||
label: '是否出镜,0-出镜,1-不出镜',
|
||||
field: 'sfcj',
|
||||
component: 'InputNumber',
|
||||
},
|
||||
// TODO 主键隐藏字段,目前写死为ID
|
||||
{
|
||||
label: '',
|
||||
field: 'id',
|
||||
component: 'Input',
|
||||
show: false,
|
||||
},
|
||||
];
|
|
@ -18,7 +18,7 @@
|
|||
import { ref, reactive,defineExpose, createVNode,h } from 'vue';
|
||||
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||
import { useListPage } from '/@/hooks/system/useListPage';
|
||||
import { columns } from './KcErrorreport.data';
|
||||
import { columns } from './KcZbErrorreport.data';
|
||||
import { list } from './KcErrorreport.api';
|
||||
import { Modal } from 'ant-design-vue';
|
||||
import { ExclamationCircleOutlined,CheckOutlined } from '@ant-design/icons-vue';
|
||||
|
|
|
@ -0,0 +1,154 @@
|
|||
<template>
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol" style="font-weight: 600;">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="错误类型" v-bind="validateInfos.meetingpsw">
|
||||
<j-dict-select-tag type='radio' v-model:value="formData.meetingpsw" dictCode="meetingpsw" placeholder="请选择错误类型" :disabled="disabled"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :span="24" v-show="formData.optionsradios=='errokcxx'">
|
||||
<a-form-item label="错误信息描述" v-bind="validateInfos.errortext">
|
||||
<a-textarea v-model:value="formData.errortext" placeholder="请输入错误信息描述" style="height: 100px;" :disabled="disabled"></a-textarea>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
</a-row>
|
||||
</a-form>
|
||||
</a-spin>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted } from 'vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||
import { getValueType } from '/@/utils';
|
||||
import { saveOrUpdate } from '../KcErrorreport.api';
|
||||
import { Form } from 'ant-design-vue';
|
||||
import { getUserId } from '/@/views/site/utils/index';
|
||||
|
||||
//用户相关
|
||||
import { useUserStore } from '/@/store/modules/user';
|
||||
const userStore = useUserStore();
|
||||
|
||||
const props = defineProps({
|
||||
formDisabled: { type: Boolean, default: false },
|
||||
formData: { type: Object, default: ()=>{} },
|
||||
formBpm: { type: Boolean, default: true }
|
||||
});
|
||||
const formRef = ref();
|
||||
const useForm = Form.useForm;
|
||||
const emit = defineEmits(['register', 'ok']);
|
||||
const formData = reactive<Record<string, any>>({
|
||||
id: '',
|
||||
optionsradios: 'errohyhmm',
|
||||
meetingnum: '',
|
||||
meetingpsw: '',
|
||||
meetinglink: '',
|
||||
edittype: '0',
|
||||
ismodified: undefined,
|
||||
skrq: '',
|
||||
sfcj: '0',
|
||||
});
|
||||
const { createMessage } = useMessage();
|
||||
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
|
||||
const confirmLoading = ref<boolean>(false);
|
||||
//表单验证
|
||||
const validatorRules = {
|
||||
optionsradios: [{ required: true, message: '请输入错误类型!'},],
|
||||
edittype: [{ required: true, message: '请输入修改类型!'},],
|
||||
};
|
||||
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: true });
|
||||
|
||||
// 表单禁用
|
||||
const disabled = computed(()=>{
|
||||
if(props.formBpm === true){
|
||||
if(props.formData.disabled === false){
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return props.formDisabled;
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*/
|
||||
function add(record) {
|
||||
console.log(`🚀 ~ file: KcErrorreportIndexForm.vue:114 ~ add ~ record:`, record)
|
||||
var param = {kechengbiaoid:record.kechengbiaoid,userid:getUserId()}
|
||||
edit(param);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*/
|
||||
function edit(record) {
|
||||
console.log(`🚀 ~ file: KcErrorreportIndexForm.vue:107 ~ edit ~ record:`, record)
|
||||
nextTick(() => {
|
||||
resetFields();
|
||||
//赋值
|
||||
Object.assign(formData, record);
|
||||
console.log(`🚀 ~ file: KcErrorreportIndexForm.vue:112 ~ nextTick ~ formData:`, formData)
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交数据
|
||||
*/
|
||||
async function submitForm() {
|
||||
// 触发表单验证
|
||||
await validate();
|
||||
confirmLoading.value = true;
|
||||
const isUpdate = ref<boolean>(false);
|
||||
//时间格式化
|
||||
let model = formData;
|
||||
if (model.id) {
|
||||
isUpdate.value = true;
|
||||
}
|
||||
//循环数据
|
||||
for (let data in model) {
|
||||
//如果该数据是数组并且是字符串类型
|
||||
if (model[data] instanceof Array) {
|
||||
let valueType = getValueType(formRef.value.getProps, data);
|
||||
//如果是字符串类型的需要变成以逗号分割的字符串
|
||||
if (valueType === 'string') {
|
||||
model[data] = model[data].join(',');
|
||||
}
|
||||
}
|
||||
}
|
||||
model.subper = userStore?.getUserInfo?.realname
|
||||
await saveOrUpdate(model, isUpdate.value)
|
||||
.then((res) => {
|
||||
if (res.success) {
|
||||
createMessage.success(res.message);
|
||||
emit('ok');
|
||||
} else {
|
||||
createMessage.warning(res.message);
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
confirmLoading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
defineExpose({
|
||||
add,
|
||||
edit,
|
||||
submitForm,
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.antd-modal-form {
|
||||
min-height: 500px !important;
|
||||
overflow-y: auto;
|
||||
padding: 24px 24px 24px 24px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,78 @@
|
|||
<template>
|
||||
<a-modal :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
|
||||
<template #title>
|
||||
<div style="text-align: center;font-size: 22px;">{{title}}</div>
|
||||
</template>
|
||||
<KcErrorreportForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></KcErrorreportForm>
|
||||
</a-modal>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, nextTick, defineExpose } from 'vue';
|
||||
import KcErrorreportForm from './KcErrorreportIndexZbForm.vue'
|
||||
|
||||
const title = ref<string>('');
|
||||
const width = ref<number>(800);
|
||||
const visible = ref<boolean>(false);
|
||||
const disableSubmit = ref<boolean>(false);
|
||||
const registerForm = ref();
|
||||
const emit = defineEmits(['register', 'success']);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*/
|
||||
function add(record) {
|
||||
title.value = '错误报告提交';
|
||||
visible.value = true;
|
||||
nextTick(() => {
|
||||
registerForm.value.add(record);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
* @param record
|
||||
*/
|
||||
function edit(record) {
|
||||
title.value = disableSubmit.value ? '详情' : '编辑';
|
||||
visible.value = true;
|
||||
nextTick(() => {
|
||||
registerForm.value.edit(record);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 确定按钮点击事件
|
||||
*/
|
||||
function handleOk() {
|
||||
registerForm.value.submitForm();
|
||||
}
|
||||
|
||||
/**
|
||||
* form保存回调事件
|
||||
*/
|
||||
function submitCallback() {
|
||||
handleCancel();
|
||||
emit('success');
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消按钮回调事件
|
||||
*/
|
||||
function handleCancel() {
|
||||
visible.value = false;
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
add,
|
||||
edit,
|
||||
disableSubmit,
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/**隐藏样式-modal确定按钮 */
|
||||
.jee-hidden {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
|
@ -5,12 +5,13 @@
|
|||
<div class="divTitle">
|
||||
当前学期
|
||||
</div>
|
||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
|
||||
<a-form ref="formRef" class="antd-modal-form1" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-row>
|
||||
<a-col :span="6">
|
||||
<a-form-item label="本学期名称" v-bind="validateInfos.flag1">
|
||||
<!-- <a-input v-model:value="formData.flag1" placeholder="请输入本学期名称" ></a-input> -->
|
||||
<JDictSelectTag type="list" v-model:value="formData.flag1" dictCode="xnxq" placeholder="请选择" :dropdownStyle="{'z-index':'1000'}" />
|
||||
<JDictSelectTag type="list" v-model:value="formData.flag1" dictCode="xnxq" placeholder="请选择" :dropdownStyle="{zIndex:'99000'}" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="6">
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<headerPage/>
|
||||
<!-- 主体部分 -->
|
||||
<a-layout-content>
|
||||
<div style="width:100%;height: 100%;margin-top: 1rem;" v-if="!isError">
|
||||
<div style="width:100%;height: 100%;margin-top: 1rem;" v-if="isError">
|
||||
<a-row :gutter="[16,16]">
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 19 }" :lg="{ span: 19 }">
|
||||
<div>
|
||||
|
@ -27,7 +27,8 @@
|
|||
<a-textarea style="width: calc(100% - 7rem);height:120px;float: left;" v-model:value="model.notes" placeholder="您可以填写听课笔记"></a-textarea>
|
||||
<div style="width: 7rem;height: 100%;float: right;">
|
||||
<a-button type="primary" style="width: 7rem;height: 100%;" @click="openAllSuiBi">查看听课笔记</a-button>
|
||||
<a-button type="primary" style="width: 7rem;height: 100%;margin-top: 1rem;" @click="saveSuibi">保存听课笔记</a-button>
|
||||
<a-button type="primary" style="width: 7rem;height: 100%;margin-top: 10px;" @click="saveSuibi">保存听课笔记</a-button>
|
||||
<a-button type="primary" style="width: 7rem;height: 100%;margin-top: 10px;" @click="handleBaocuo(ktangInfo)">报错</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -72,6 +73,7 @@
|
|||
</a-layout>
|
||||
</div>
|
||||
</div>
|
||||
<KcErrorreportIndexModal ref="kcErrorreportIndexModal"></KcErrorreportIndexModal>
|
||||
<addModalPage ref="tingKeZuJiAddModal"/>
|
||||
<a-modal title="查看听课笔记" width="800px" :visible="tkbjVisible" :okButtonProps="{ class: { 'jee-hidden': true } }" @cancel="() => tkbjVisible = false" cancelText="关闭">
|
||||
<div style="white-space:normal; word-break:break-all;overflow:hidden;">
|
||||
|
@ -93,9 +95,11 @@ import addModalPage from '/@/views/site/tingKeZuJi/components/addModal.vue';
|
|||
import { nextTick } from 'vue';
|
||||
import { useRoute } from 'vue-router'
|
||||
import { getUserId } from '/@/views/site/utils/index';
|
||||
import KcErrorreportIndexModal from '/@/views/kc/kcErrorreport/components/KcErrorreportIndexZbModal.vue'
|
||||
|
||||
const mainVideo = ref<any>();
|
||||
const bVideoRefs = ref<any>([]);
|
||||
const kcErrorreportIndexModal = ref();
|
||||
|
||||
const tingKeZuJiAddModal = ref<any>({});
|
||||
const curentPlayerVideo = ref<any>({});
|
||||
|
@ -149,6 +153,10 @@ onMounted(() => {
|
|||
}
|
||||
});
|
||||
|
||||
function handleBaocuo(item) {
|
||||
kcErrorreportIndexModal.value.disableSubmit = false;
|
||||
kcErrorreportIndexModal.value.add(item);
|
||||
}
|
||||
/**
|
||||
* 子页加载完成后回调
|
||||
* @param player
|
||||
|
|
|
@ -45,6 +45,7 @@ import { getUserId } from '/@/views/site/utils/index';
|
|||
const queryParam = ref<any>({});
|
||||
const toggleSearchStatus = ref<boolean>(false);
|
||||
const registerModal = ref();
|
||||
|
||||
//注册table数据
|
||||
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
||||
tableProps: {
|
||||
|
@ -57,7 +58,6 @@ import { getUserId } from '/@/views/site/utils/index';
|
|||
immediate: false,
|
||||
beforeFetch: (params) => {
|
||||
params.column = '',params.order = '';//新生成的默认不带排序
|
||||
|
||||
return Object.assign(params, queryParam.value);
|
||||
},
|
||||
},
|
||||
|
@ -65,10 +65,10 @@ import { getUserId } from '/@/views/site/utils/index';
|
|||
name: "听课笔记",
|
||||
url: getExportUrl,
|
||||
},
|
||||
importConfig: {
|
||||
url: getImportUrl,
|
||||
success: handleSuccess
|
||||
},
|
||||
importConfig: {
|
||||
url: getImportUrl,
|
||||
success: handleSuccess
|
||||
},
|
||||
});
|
||||
const [registerTable, { reload, collapseAll, updateTableDataRecord, findTableDataRecord, getDataSource }, { rowSelection, selectedRowKeys }] = tableContext;
|
||||
const labelCol = reactive({
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
<template>
|
||||
<a-modal :title="title" :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
|
||||
<ktsbDetialForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></ktsbDetialForm>
|
||||
</a-modal>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, nextTick, defineExpose } from 'vue';
|
||||
import ktsbDetialForm from './ktsbDetialForm.vue'
|
||||
|
||||
const title = ref<string>('');
|
||||
const width = ref<number>(800);
|
||||
const visible = ref<boolean>(false);
|
||||
const disableSubmit = ref<boolean>(false);
|
||||
const registerForm = ref();
|
||||
const emit = defineEmits(['register', 'success']);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*/
|
||||
function add() {
|
||||
title.value = '新增';
|
||||
visible.value = true;
|
||||
nextTick(() => {
|
||||
registerForm.value.add();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
* @param record
|
||||
*/
|
||||
function edit(record) {
|
||||
title.value = disableSubmit.value ? '详情' : '编辑';
|
||||
visible.value = true;
|
||||
nextTick(() => {
|
||||
registerForm.value.edit(record);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 确定按钮点击事件
|
||||
*/
|
||||
function handleOk() {
|
||||
registerForm.value.submitForm();
|
||||
}
|
||||
|
||||
/**
|
||||
* form保存回调事件
|
||||
*/
|
||||
function submitCallback() {
|
||||
handleCancel();
|
||||
emit('success');
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消按钮回调事件
|
||||
*/
|
||||
function handleCancel() {
|
||||
visible.value = false;
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
add,
|
||||
edit,
|
||||
disableSubmit,
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/**隐藏样式-modal确定按钮 */
|
||||
.jee-hidden {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,162 @@
|
|||
<template>
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-row>
|
||||
<a-col :span="24" v-if="formData.sbType == '1'">
|
||||
<a-form-item label="标题" v-bind="validateInfos.title">
|
||||
{{formData.title}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="formData.sbType == '0'">
|
||||
<a-form-item label="课程名称" v-bind="validateInfos.kcmc">
|
||||
{{formData.kcmc}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="formData.sbType == '0'">
|
||||
<a-form-item label="上课日期" v-bind="validateInfos.skrq">
|
||||
{{formData.skrq}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="formData.sbType == '0'">
|
||||
<a-form-item label="授课教师" v-bind="validateInfos.skjs">
|
||||
{{formData.skjs}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" >
|
||||
<a-form-item label="笔记类型" v-bind="validateInfos.sbType">
|
||||
{{formData.sbType=='0'?'课堂笔记':'个人笔记'}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" >
|
||||
<a-form-item label="记录时间" v-bind="validateInfos.createTime">
|
||||
{{formData.createTime}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" >
|
||||
<a-form-item label="笔记内容" v-bind="validateInfos.notes" style="height: 200px;">
|
||||
{{formData.notes}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</a-spin>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted } from 'vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import { getValueType } from '/@/utils';
|
||||
import { saveOrUpdate } from '../KtbjInfoList.api';
|
||||
import { Form } from 'ant-design-vue';
|
||||
import { getUserId } from '/@/views/site/utils/index';
|
||||
|
||||
const props = defineProps({
|
||||
formDisabled: { type: Boolean, default: false },
|
||||
formData: { type: Object, default: ()=>{} },
|
||||
formBpm: { type: Boolean, default: true }
|
||||
});
|
||||
const formRef = ref();
|
||||
const useForm = Form.useForm;
|
||||
const emit = defineEmits(['register', 'ok']);
|
||||
const formData = reactive<Record<string, any>>({
|
||||
id: '',
|
||||
title: '',
|
||||
notes: '',
|
||||
sbType: '1',
|
||||
});
|
||||
const { createMessage } = useMessage();
|
||||
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
|
||||
const confirmLoading = ref<boolean>(false);
|
||||
//表单验证
|
||||
const validatorRules = {
|
||||
};
|
||||
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: true });
|
||||
|
||||
// 表单禁用
|
||||
const disabled = computed(()=>{
|
||||
if(props.formBpm === true){
|
||||
if(props.formData.disabled === false){
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return props.formDisabled;
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*/
|
||||
function add() {
|
||||
edit({});
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*/
|
||||
function edit(record) {
|
||||
nextTick(() => {
|
||||
resetFields();
|
||||
//赋值
|
||||
Object.assign(formData, record);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交数据
|
||||
*/
|
||||
async function submitForm() {
|
||||
// 触发表单验证
|
||||
await validate();
|
||||
confirmLoading.value = true;
|
||||
const isUpdate = ref<boolean>(false);
|
||||
//时间格式化
|
||||
let model = formData;
|
||||
if (model.id) {
|
||||
isUpdate.value = true;
|
||||
}
|
||||
//循环数据
|
||||
for (let data in model) {
|
||||
//如果该数据是数组并且是字符串类型
|
||||
if (model[data] instanceof Array) {
|
||||
let valueType = getValueType(formRef.value.getProps, data);
|
||||
//如果是字符串类型的需要变成以逗号分割的字符串
|
||||
if (valueType === 'string') {
|
||||
model[data] = model[data].join(',');
|
||||
}
|
||||
}
|
||||
}
|
||||
model.createBy = getUserId();
|
||||
model.userId = getUserId();
|
||||
await saveOrUpdate(model, isUpdate.value)
|
||||
.then((res) => {
|
||||
if (res.success) {
|
||||
createMessage.success(res.message);
|
||||
emit('ok');
|
||||
} else {
|
||||
createMessage.warning(res.message);
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
confirmLoading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
defineExpose({
|
||||
add,
|
||||
edit,
|
||||
submitForm,
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.antd-modal-form {
|
||||
min-height: 500px !important;
|
||||
overflow-y: auto;
|
||||
padding: 24px 24px 24px 24px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,137 @@
|
|||
<template>
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="标题" v-bind="validateInfos.title">
|
||||
<a-input v-model:value="formData.title" placeholder="请输入标题" :disabled="disabled"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" >
|
||||
<a-form-item label="笔记内容" v-bind="validateInfos.notes" style="height: 200px;">
|
||||
<a-textarea v-model:value="formData.notes" :auto-size="{ minRows: 5, maxRows: 8 }"></a-textarea>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</a-spin>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted } from 'vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import { getValueType } from '/@/utils';
|
||||
import { saveOrUpdate } from '../KtbjInfoList.api';
|
||||
import { Form } from 'ant-design-vue';
|
||||
import { getUserId } from '/@/views/site/utils/index';
|
||||
|
||||
const props = defineProps({
|
||||
formDisabled: { type: Boolean, default: false },
|
||||
formData: { type: Object, default: ()=>{} },
|
||||
formBpm: { type: Boolean, default: true }
|
||||
});
|
||||
const formRef = ref();
|
||||
const useForm = Form.useForm;
|
||||
const emit = defineEmits(['register', 'ok']);
|
||||
const formData = reactive<Record<string, any>>({
|
||||
id: '',
|
||||
title: '',
|
||||
notes: '',
|
||||
sbType: '1',
|
||||
});
|
||||
const { createMessage } = useMessage();
|
||||
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
|
||||
const confirmLoading = ref<boolean>(false);
|
||||
//表单验证
|
||||
const validatorRules = {
|
||||
};
|
||||
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: true });
|
||||
|
||||
// 表单禁用
|
||||
const disabled = computed(()=>{
|
||||
if(props.formBpm === true){
|
||||
if(props.formData.disabled === false){
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return props.formDisabled;
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*/
|
||||
function add() {
|
||||
edit({});
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*/
|
||||
function edit(record) {
|
||||
nextTick(() => {
|
||||
resetFields();
|
||||
//赋值
|
||||
Object.assign(formData, record);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交数据
|
||||
*/
|
||||
async function submitForm() {
|
||||
// 触发表单验证
|
||||
await validate();
|
||||
confirmLoading.value = true;
|
||||
const isUpdate = ref<boolean>(false);
|
||||
//时间格式化
|
||||
let model = formData;
|
||||
if (model.id) {
|
||||
isUpdate.value = true;
|
||||
}
|
||||
//循环数据
|
||||
for (let data in model) {
|
||||
//如果该数据是数组并且是字符串类型
|
||||
if (model[data] instanceof Array) {
|
||||
let valueType = getValueType(formRef.value.getProps, data);
|
||||
//如果是字符串类型的需要变成以逗号分割的字符串
|
||||
if (valueType === 'string') {
|
||||
model[data] = model[data].join(',');
|
||||
}
|
||||
}
|
||||
}
|
||||
model.createBy = getUserId();
|
||||
model.userId = getUserId();
|
||||
await saveOrUpdate(model, isUpdate.value)
|
||||
.then((res) => {
|
||||
if (res.success) {
|
||||
createMessage.success(res.message);
|
||||
emit('ok');
|
||||
} else {
|
||||
createMessage.warning(res.message);
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
confirmLoading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
defineExpose({
|
||||
add,
|
||||
edit,
|
||||
submitForm,
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.antd-modal-form {
|
||||
min-height: 500px !important;
|
||||
overflow-y: auto;
|
||||
padding: 24px 24px 24px 24px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,75 @@
|
|||
<template>
|
||||
<a-modal :title="title" :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
|
||||
<ktsbForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></ktsbForm>
|
||||
</a-modal>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, nextTick, defineExpose } from 'vue';
|
||||
import ktsbForm from './ktsbForm.vue'
|
||||
|
||||
const title = ref<string>('');
|
||||
const width = ref<number>(800);
|
||||
const visible = ref<boolean>(false);
|
||||
const disableSubmit = ref<boolean>(false);
|
||||
const registerForm = ref();
|
||||
const emit = defineEmits(['register', 'success']);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*/
|
||||
function add() {
|
||||
title.value = '新增';
|
||||
visible.value = true;
|
||||
nextTick(() => {
|
||||
registerForm.value.add();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
* @param record
|
||||
*/
|
||||
function edit(record) {
|
||||
title.value = disableSubmit.value ? '详情' : '编辑';
|
||||
visible.value = true;
|
||||
nextTick(() => {
|
||||
registerForm.value.edit(record);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 确定按钮点击事件
|
||||
*/
|
||||
function handleOk() {
|
||||
registerForm.value.submitForm();
|
||||
}
|
||||
|
||||
/**
|
||||
* form保存回调事件
|
||||
*/
|
||||
function submitCallback() {
|
||||
handleCancel();
|
||||
emit('success');
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消按钮回调事件
|
||||
*/
|
||||
function handleCancel() {
|
||||
visible.value = false;
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
add,
|
||||
edit,
|
||||
disableSubmit,
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/**隐藏样式-modal确定按钮 */
|
||||
.jee-hidden {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
|
@ -2,9 +2,14 @@
|
|||
<a-card class="rowGutter" id="ktsbDom">
|
||||
<template #title>
|
||||
<span class="titleName">听课笔记</span>
|
||||
<span style="float:right;">
|
||||
<a style="padding-right: 0.5rem;" @click="addTkbj()">新增笔记</a>
|
||||
<RouterLink to="/site/ktsbMore">查看更多</RouterLink>
|
||||
</span>
|
||||
|
||||
</template>
|
||||
<ktsbPage />
|
||||
|
||||
<ktsbModalPage ref="ktsbAddModalPage"/>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
|
@ -13,11 +18,13 @@ import { defHttp } from '/@/utils/http/axios';
|
|||
import { ref, onMounted } from 'vue';
|
||||
import { getSysConfig } from '/@/views/site/utils/index';
|
||||
import ktsbPage from '/@/views/site/ktsb/ktsbList.vue'
|
||||
import ktsbModalPage from '/@/views/site/ktsb/components/ktsbModal.vue'
|
||||
|
||||
const zzskTitle = ref('正在上课');
|
||||
const queryParam = ref<any>({});
|
||||
|
||||
|
||||
const ktsbAddModalPage = ref();
|
||||
const jclist = (queryParam) => defHttp.get({ url: '/kcJieci/kcJieci/getIndexJcList', params:queryParam });
|
||||
//进入就加载
|
||||
onMounted(() => {
|
||||
|
@ -41,6 +48,9 @@ onMounted(() => {
|
|||
})
|
||||
});
|
||||
|
||||
function addTkbj(){
|
||||
ktsbAddModalPage.value.add()
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
<a-row class="rowGutter" :gutter="[16, 16]">
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }" v-for="(item, index) in listData"
|
||||
:key="index" style="margin-bottom: 40px;">
|
||||
<div style="border: 2px #eef1f2 solid;">
|
||||
<div style="border: 2px #eef1f2 solid;" v-if="item.sbType == '0'">
|
||||
<div>
|
||||
<div style="width: 100%;height: 20px;background-color: #1c84c6;"></div>
|
||||
<div style="width:100%;white-space:normal; word-break:break-all;overflow:hidden;padding: 10px;height: 70px;font-weight: 600;font-size: 16px;">
|
||||
<div style="width:100%;white-space:normal; word-break:break-all;overflow:hidden;padding: 10px;height: 65px;font-weight: 600;font-size: 16px;">
|
||||
{{ item.kcmc }}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -44,36 +44,74 @@
|
|||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="border: 2px #eef1f2 solid;" v-else>
|
||||
<div>
|
||||
<div style="width: 100%;height: 20px;background-color: #1c84c6;"></div>
|
||||
<div style="width:100%;white-space:normal; word-break:break-all;overflow:hidden;padding: 10px;height: 65px;font-weight: 600;font-size: 16px;" :title="item.title">
|
||||
{{ item.title }}
|
||||
</div>
|
||||
</div>
|
||||
<a-divider style="margin: 0px;color: #eef1f2;" />
|
||||
<div style="padding: 20px;font-weight: 600;">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<div style="height: 38px;font-size: 16px;font-weight: 700;">笔记类型:个人笔记</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div style="height: 130px;font-weight: 700;margin-bottom: 14px;" class="notesClass" :title="item.notes">
|
||||
笔记内容:{{ item.notes }}
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" style="text-align: center;">
|
||||
<div >
|
||||
<a-button type="primary" class="bcClass" @click="tingkebiji(item)">听课笔记</a-button>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 报错列表 -->
|
||||
<KtbjInfoListModal ref="KtbjInfoListModalPage"></KtbjInfoListModal>
|
||||
<ktsbDetailModal ref="ktsbDetailModalPage"></ktsbDetailModal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref,onMounted } from 'vue';
|
||||
import { ref,onMounted ,defineExpose} from 'vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { getUserId } from '/@/views/site/utils/index';
|
||||
import KtbjInfoListModal from '/@/views/site/ktsb/KtbjInfoListModal.vue';
|
||||
import ktsbDetailModal from '/@/views/site/ktsb/components/ktsbDetailModal.vue';
|
||||
let listData = ref<any>([]);
|
||||
const list = (params) => defHttp.get({ url: '/ktgl/kcKetangbiao/getKtbjList', params });
|
||||
const KtbjInfoListModalPage = ref();
|
||||
const list = (params) => defHttp.get({ url: '/ktgl/kcKetangbiao/getKtsbMorelist', params });
|
||||
const ktsbDetailModalPage = ref();
|
||||
|
||||
onMounted(() => {
|
||||
let userid = getUserId();
|
||||
list({ userid: userid}).then(res => {
|
||||
listData.value = res
|
||||
})
|
||||
// let userid = getUserId();
|
||||
// list({ userid: userid}).then(res => {
|
||||
// listData.value = res
|
||||
// })
|
||||
onSearch({});
|
||||
})
|
||||
function onSearch(queryParam){
|
||||
let userid = getUserId();
|
||||
list({ userid: userid,startTime:queryParam.startTime,endTime:queryParam.endTime,pageSize:4}).then(res => {
|
||||
console.log(`🚀 ~ file: ktsbList.vue:99 ~ list ~ res:`, res)
|
||||
listData.value = res.records
|
||||
})
|
||||
}
|
||||
|
||||
function tingkebiji(record){
|
||||
KtbjInfoListModalPage.value.disableSubmit = true;
|
||||
KtbjInfoListModalPage.value.edit(record);
|
||||
ktsbDetailModalPage.value.disableSubmit = true;
|
||||
ktsbDetailModalPage.value.edit(record);
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
onSearch
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
@ -86,4 +124,12 @@ function tingkebiji(record){
|
|||
.bcClass{
|
||||
background-color: #1c84c6;font-weight: 600;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.notesClass{
|
||||
word-break: break-all;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -0,0 +1,135 @@
|
|||
<template>
|
||||
<div>
|
||||
<a-row class="rowGutter" :gutter="[16, 16]">
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }" v-for="(item, index) in listData"
|
||||
:key="index" style="margin-bottom: 40px;">
|
||||
<div style="border: 2px #eef1f2 solid;" v-if="item.sbType == '0'">
|
||||
<div>
|
||||
<div style="width: 100%;height: 20px;background-color: #1c84c6;"></div>
|
||||
<div style="width:100%;white-space:normal; word-break:break-all;overflow:hidden;padding: 10px;height: 65px;font-weight: 600;font-size: 16px;">
|
||||
{{ item.kcmc }}
|
||||
</div>
|
||||
</div>
|
||||
<a-divider style="margin: 0px;color: #eef1f2;" />
|
||||
<div style="padding: 20px;font-weight: 600;">
|
||||
<a-row>
|
||||
<a-col :span="16">
|
||||
<div style="height: 38px;font-size: 16px;font-weight: 700;">{{ item.skjs }}</div>
|
||||
<div style="font-size: 14px;font-weight: 700;height: 50px;">{{ item.kkdw }}</div>
|
||||
</a-col>
|
||||
<a-col :span="8" style="text-align: center;height: 70px;">
|
||||
<div style="color: #1c84c6;font-size: 24px;font-weight: 600;">{{ item.xkrs }}</div>
|
||||
<div style="font-size: 14px;font-weight: 700;">选课人数</div>
|
||||
</a-col>
|
||||
<a-col :span="24" style="margin-top:0px;font-weight: 700;">
|
||||
<div>
|
||||
第<span>{{ item.hh }}</span>节
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div style="width:100%;text-align: center;font-weight: 700;">
|
||||
———线下上课地点———
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div style="height: 50px;font-weight: 700;">
|
||||
{{ item.skdd }}
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" style="text-align: center;">
|
||||
<div >
|
||||
<a-button type="primary" class="bcClass" @click="tingkebiji(item)">听课笔记</a-button>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="border: 2px #eef1f2 solid;" v-else>
|
||||
<div>
|
||||
<div style="width: 100%;height: 20px;background-color: #1c84c6;"></div>
|
||||
<div style="width:100%;white-space:normal; word-break:break-all;overflow:hidden;padding: 10px;height: 65px;font-weight: 600;font-size: 16px;" :title="item.title">
|
||||
{{ item.title }}
|
||||
</div>
|
||||
</div>
|
||||
<a-divider style="margin: 0px;color: #eef1f2;" />
|
||||
<div style="padding: 20px;font-weight: 600;">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<div style="height: 38px;font-size: 16px;font-weight: 700;">笔记类型:个人笔记</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div style="height: 130px;font-weight: 700;margin-bottom: 14px;" class="notesClass" :title="item.notes">
|
||||
笔记内容:{{ item.notes }}
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" style="text-align: center;">
|
||||
<div >
|
||||
<a-button type="primary" class="bcClass" @click="tingkebiji(item)">听课笔记</a-button>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 报错列表 -->
|
||||
<ktsbDetailModal ref="ktsbDetailModalPage"></ktsbDetailModal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref,onMounted ,defineExpose} from 'vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { getUserId } from '/@/views/site/utils/index';
|
||||
import ktsbDetailModal from '/@/views/site/ktsb/components/ktsbDetailModal.vue';
|
||||
let listData = ref<any>([]);
|
||||
const list = (params) => defHttp.get({ url: '/ktgl/kcKetangbiao/getKtsbMorelist', params });
|
||||
const ktsbDetailModalPage = ref();
|
||||
|
||||
onMounted(() => {
|
||||
// let userid = getUserId();
|
||||
// list({ userid: userid}).then(res => {
|
||||
// listData.value = res
|
||||
// })
|
||||
onSearch({});
|
||||
})
|
||||
function onSearch(queryParam){
|
||||
let userid = getUserId();
|
||||
list({ userid: userid,startTime:queryParam.startTime,endTime:queryParam.endTime,pageSize:12}).then(res => {
|
||||
console.log(`🚀 ~ file: ktsbList.vue:99 ~ list ~ res:`, res)
|
||||
listData.value = res.records
|
||||
})
|
||||
}
|
||||
|
||||
function tingkebiji(record){
|
||||
ktsbDetailModalPage.value.disableSubmit = true;
|
||||
ktsbDetailModalPage.value.edit(record);
|
||||
}
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
onSearch
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.yyyClass{
|
||||
background: #6cafda;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.yyClass{
|
||||
background-color: #1c84c6;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.bcClass{
|
||||
background-color: #1c84c6;font-weight: 600;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.notesClass{
|
||||
word-break: break-all;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,120 @@
|
|||
<template>
|
||||
<div id="siteMain">
|
||||
<div id="maxSite">
|
||||
<a-layout>
|
||||
<!-- 页头 -->
|
||||
<headerPage/>
|
||||
<!-- 主体部分 -->
|
||||
<a-layout-content>
|
||||
|
||||
<a-card style="min-height: calc(100vh - 68px * 2);">
|
||||
<div style="font-size: 24px;font-weight: bold;height: 70px;">听课笔记
|
||||
<span>({{getSysConfig().flag1}}, {{dateFormat(getSysConfig().bxqkssj, 'MM月dd日')}} 至 {{dateFormat(getSysConfig().bxqjssj, 'MM月dd日')}})</span>
|
||||
</div>
|
||||
<a-row :gutter="[16,16]">
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-date-picker placeholder="请选择开始日期" format="YYYY-MM-DD" valueFormat="YYYY-MM-DD" v-model:value="queryParam.startTime" style="width: 100%" />
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-date-picker placeholder="请选择结束日期" format="YYYY-MM-DD" valueFormat="YYYY-MM-DD" v-model:value="queryParam.endTime" style="width: 100%" />
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-button type="primary" @click="onSearch" >查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-divider class="divider"/>
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<listPage ref="listRef" :queryParam="queryParam" flagPage @change-param="changeParam"/>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-card>
|
||||
</a-layout-content>
|
||||
<!-- 页尾 -->
|
||||
<footerPage/>
|
||||
</a-layout>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref, reactive, watch, onMounted } from 'vue';
|
||||
import headerPage from '/@/views/site/common/header.vue';
|
||||
import footerPage from '/@/views/site/common/footer.vue';
|
||||
import listPage from '/@/views/site/ktsb/ktsbMoreList.vue';
|
||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||
import { getSysConfig } from '/@/views/site/utils/index';
|
||||
import { dateFormat } from '/@/utils/common/compUtils';
|
||||
|
||||
const queryParam = ref<any>({ pj: '', pageSize: 10,pageNo:1 });
|
||||
|
||||
//进入就加载
|
||||
onMounted(() => {
|
||||
queryParam.value.xnxq = getSysConfig().flag1
|
||||
// const format = 'yyyy-MM-dd';
|
||||
// queryParam.value.endDate = dateFormat(new Date(), format)
|
||||
onSearch()
|
||||
});
|
||||
const listRef = ref();
|
||||
|
||||
function onSearch(){
|
||||
listRef.value.onSearch(queryParam.value);
|
||||
}
|
||||
function changeParam(pageNo){
|
||||
queryParam.value.pageNo = pageNo;
|
||||
onSearch();
|
||||
}
|
||||
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
#siteMain {
|
||||
// font-size: ;
|
||||
// height: 100%;
|
||||
background: #f3f3f4;
|
||||
#maxSite {
|
||||
//最大宽度
|
||||
max-width: 1170px;
|
||||
//居中
|
||||
margin: 0 auto;
|
||||
.rowGutter{
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.ant-layout-header {
|
||||
color: #fff;
|
||||
background: #1ab394;
|
||||
}
|
||||
.ant-layout-footer {
|
||||
line-height: 1.5;
|
||||
background: #FFF;
|
||||
}
|
||||
.ant-layout-sider {
|
||||
color: #fff;
|
||||
line-height: 120px;
|
||||
background: #3ba0e9;
|
||||
}
|
||||
.ant-layout-content {
|
||||
min-height: 120px;
|
||||
color: #000;
|
||||
line-height: 120px;
|
||||
background: #f3f3f4;
|
||||
}
|
||||
.dictBox :deep(.ant-select) {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
/**暗黑模式特殊配色*/
|
||||
[data-theme='dark'] #siteMain #maxSite {
|
||||
.ant-layout-header, .ant-layout-footer {
|
||||
background: #6aa0c7;
|
||||
}
|
||||
.ant-layout-content {
|
||||
background: #107bcb;
|
||||
}
|
||||
.ant-layout-sider {
|
||||
background: #3499ec;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -56,13 +56,17 @@
|
|||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
<!-- 报错列表 -->
|
||||
<KcErrorreportIndexModalPage ref="kcErrorreportIndexModal"></KcErrorreportIndexModalPage>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref,watch,reactive,defineExpose,onMounted,computed } from 'vue';
|
||||
import dayjs from 'dayjs';
|
||||
import KcErrorreportIndexModalPage from '/@/views/kc/kcErrorreport/components/KcErrorreportIndexModal.vue'
|
||||
|
||||
const kcErrorreportIndexModal = ref();
|
||||
const props = defineProps({
|
||||
data: { type: Object },
|
||||
});
|
||||
|
@ -89,6 +93,13 @@ function isNow(item){
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 报错事件
|
||||
*/
|
||||
function handleBaocuo(item) {
|
||||
kcErrorreportIndexModal.value.disableSubmit = false;
|
||||
kcErrorreportIndexModal.value.add(item);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
|
|
@ -39,8 +39,6 @@
|
|||
</div> -->
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 报错列表 -->
|
||||
<KcErrorreportIndexModal ref="kcErrorreportIndexModal"></KcErrorreportIndexModal>
|
||||
<addModalPage ref="tingKeZuJiAddModal"/>
|
||||
</template>
|
||||
|
||||
|
@ -48,7 +46,6 @@
|
|||
import { ref,watch,reactive,defineExpose,onMounted, createVNode,h } from 'vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import KcErrorreportIndexModal from '/@/views/kc/kcErrorreport/components/KcErrorreportIndexModal.vue'
|
||||
import { addTingKeLog, getUserId } from '/@/views/site/utils/index';
|
||||
import addModalPage from '/@/views/site/tingKeZuJi/components/addModal.vue';
|
||||
import itemPage from './itemPage.vue';
|
||||
|
@ -60,7 +57,6 @@ import { CloseOutlined } from '@ant-design/icons-vue';
|
|||
//用户相关
|
||||
import { useUserStore } from '/@/store/modules/user';
|
||||
const userStore = useUserStore();
|
||||
const kcErrorreportIndexModal = ref();
|
||||
const tingKeZuJiAddModal = ref();
|
||||
const route = useRouter();
|
||||
|
||||
|
@ -97,14 +93,15 @@ function loadData(num?) {
|
|||
pageNo.value = 1
|
||||
listData.value = [];
|
||||
}
|
||||
queryParam.value.pageSize = '4'
|
||||
queryParam.value.pageNo = pageNo
|
||||
queryParam.value.sfyzhjs = '1'
|
||||
queryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
||||
queryParam.value.skrq = queryParam.value.ywTime
|
||||
queryParam.value.userid = getUserId()
|
||||
queryParam.value.skxs = 1
|
||||
queryParam.value.type = 1
|
||||
// queryParam.value.pageSize = '4'
|
||||
// queryParam.value.pageNo = pageNo
|
||||
// queryParam.value.sfyzhjs = '1'
|
||||
// queryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
||||
// queryParam.value.skrq = queryParam.value.ywTime
|
||||
// queryParam.value.userid = getUserId()
|
||||
// queryParam.value.skxs = 1
|
||||
// queryParam.value.type = 1
|
||||
queryParam.value.ywskxs = ''
|
||||
console.log(`🚀 ~ file: index.vue:112 ~ rkbLoadData ~ newRow:`, queryParam)
|
||||
|
||||
if(queryParam.value.hh!=","){
|
||||
|
@ -147,13 +144,6 @@ listTkjlApi({ userid: userid, ketangbiaoid:item.ketangbiaoid}).then(res => {
|
|||
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 报错事件
|
||||
*/
|
||||
function handleBaocuo(item) {
|
||||
kcErrorreportIndexModal.value.disableSubmit = false;
|
||||
kcErrorreportIndexModal.value.add(item);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<!-- <a-list item-layout="horizontal" :data-source="list" :grid="{ gutter: 16, xs: 1, sm: 2, md: 4, lg: 4, xl: 6, xxl: 3, xxxl: 2 }"> -->
|
||||
<a-list item-layout="horizontal" :data-source="list" :loading="loadingList" style="min-height: 105px;">
|
||||
<a-list item-layout="horizontal" :data-source="list" :loading="loadingList" style="height: 105px;">
|
||||
<template #renderItem="{ item }">
|
||||
<a-list-item>
|
||||
<a-list-item-meta>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<!-- <a-list item-layout="horizontal" :data-source="list" :grid="{ gutter: 16, xs: 1, sm: 2, md: 4, lg: 4, xl: 6, xxl: 3, xxxl: 2 }"> -->
|
||||
<div>
|
||||
<a-list item-layout="horizontal" :data-source="list" :loading="loadingList" style="min-height: 105px;" >
|
||||
<a-list item-layout="horizontal" :data-source="list" :loading="loadingList" style="height: 105px;" >
|
||||
<template #renderItem="{ item }">
|
||||
<a-list-item>
|
||||
<a-list-item-meta>
|
||||
|
|
Loading…
Reference in New Issue