dbsd_kczx/src/views/kc/statistics/evaluationList/index.vue

281 lines
9.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div style="width:100%;height: 100%;">
<div class="jeecg-basic-table-form-container">
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-row :gutter="24">
<a-col :lg="8">
<a-form-item label="学期">
<j-dict-select-tag ref="xqDictTag" placeholder="请选择学期" v-model:value="queryParam.xqxn" dictCode="kc_xqxn_history,title,title,true order by start_time desc"/>
</a-form-item>
</a-col>
<!--<template v-if="toggleSearchStatus">-->
<!-- <a-col :lg="8">
<a-form-item label="开课单位">
<j-dict-select-tag placeholder="请选择开课单位" v-model:value="queryParam.dwmc" dictCode="xxhbuser,DWMC,DWH,true group by DWH"/>
</a-form-item>
</a-col> -->
<a-col :lg="8">
<a-form-item label="开课单位">
<a-input placeholder="请输入开课单位" v-model:value="queryParam.kkdw"/>
</a-form-item>
</a-col>
<a-col :lg="8">
<a-form-item label="授课教师姓名">
<a-input placeholder="请输入授课教师姓名" v-model:value="queryParam.skjs"/>
</a-form-item>
</a-col>
<a-col :lg="8">
<a-form-item label="授课教师工号">
<a-input placeholder="请输入授课教师工号" v-model:value="queryParam.skjgh"/>
</a-form-item>
</a-col>
<a-col :lg="8">
<a-form-item label="听课教师姓名">
<j-input placeholder="请输入听课教师姓名" v-model:value="queryParam.upuser"/>
</a-form-item>
</a-col>
<a-col :lg="8">
<a-form-item label="听课教师工号">
<a-input placeholder="请输入听课教师工号" v-model:value="queryParam.upuseridLike"/>
</a-form-item>
</a-col>
<!-- <a-col :lg="8">
<a-form-item label="数据来源">
<j-dict-select-tag
placeholder="请选择数据来源" v-model:value="queryParam.source"
:options="[{ value: 0, label: '课程中心'}, { value: 1, label: '老系统'},{ value: 2, label: '政务大厅'},{ value: 3, label: '纸质评价'}]"
/>
</a-form-item>
</a-col> -->
<!--</template>-->
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button>
<a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls()" style="margin-left: 8px"> 导出</a-button>
<!--<a @click="toggleSearchStatus = !toggleSearchStatus" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<Icon :icon="toggleSearchStatus ? 'ant-design:up-outlined' : 'ant-design:down-outlined'"/>
</a>-->
</a-col>
</span>
</a-col>
</a-row>
</a-form>
</div>
<a-table :loading="loading" :data-source="dataSource" :pagination="ipagination" @change="tableChange" bordered size="middle" class="ant-table-striped">
<a-table-column title="学期" data-index="xqxn"/>
<a-table-column title="课程名称" data-index="kcmc"/>
<a-table-column title="开课单位" data-index="kkdw"/>
<a-table-column title="授课教师" data-index="skjs"/>
<a-table-column title="授课教师工号" data-index="skjgh"/>
<a-table-column title="授课日期" data-index="skrq"/>
<a-table-column title="授课时间" data-index="sksj"/>
<a-table-column title="授课节次" data-index="jieci"/>
<a-table-column title="授课地点" data-index="skdd"/>
<a-table-column title="听课教师单位" data-index="tkdwmc"/>
<a-table-column title="听课教师工号" data-index="tkjgh"/>
<a-table-column title="听课教师姓名" data-index="tkjsxm"/>
<a-table-column title="听课身份" data-index="tksf"/>
<a-table-column title="听课评价结果5分制" data-index="tkpjjg"/>
<!-- <a-table-column title="评价量表" data-index="sourceName"/> -->
<!-- 一般听课表线上听课表同行评价表
evaluationver -->
<a-table-column title="评价量表" align="center" data-index="pjlblx">
<template #default="{ text }">
<span v-if="text == '2'">线上课堂评价表</span>
<span v-else-if="text == '3'">听课记录表</span>
<span v-else-if="text == '4'">同行评价表</span>
</template>
</a-table-column>
<a-table-column title="数据来源" data-index="sourceName"/>
</a-table>
</div>
<a-modal :visible="isShowAllLive" width="80%" style="top: 20px" title="直播" :ok-button-props="{ style: { display: 'none' } }" cancelText="关闭" @cancel="() => (isShowAllLive = false,showAllLiveRef.close())">
<!-- <showAllLive ref="showAllLiveRef" :currentItem="currentItem"/> -->
</a-modal>
</template>
<script lang="ts" setup name="viewsKcStatisticsEvaluationListIndex">
import { defHttp } from '/@/utils/http/axios';
import { ref, onMounted, Ref, watch, reactive } from 'vue';
import { nextTick } from 'vue';
import { useMessage } from '/@/hooks/web/useMessage';
import { execAvyApi, getAvyCtrlLiveOpenOrCloseUrl } from "/@/views/site/utils/index";
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import { useMethods } from '/@/hooks/system/useMethods';
import { JInput } from '/@/components/Form';
const showAllLiveRef = ref();
const leftList:Ref<any> = ref([]);
const currentItem:Ref<any> = ref({});
const showAllLiveKey:Ref<string> = ref('showAllLiveKey');
const isShowAllLive:Ref<boolean> = ref(false);
const loading:Ref<boolean> = ref(false);
const dataSource = ref<any>([]);
const queryParam:Ref<any> = ref({});
const { createMessage } = useMessage();
onMounted(() => {
loadData();
});
enum Api {
list = '/statistics/getEvaluationList',
}
/**
* 列表接口
* @param params
*/
const list = (params) => defHttp.get({ url: Api.list, params });
const labelCol = reactive({
xs: { span: 24 },
sm: { span: 7 },
});
const wrapperCol = reactive({
xs: { span: 24 },
sm: { span: 16 },
});
const ipagination = ref(
{
current: 1,
pageSize: 10,
pageSizeOptions: ['10', '20', '30'],
showTotal: (total, range) => {
return range[0] + '-' + range[1] + ' 共' + total + '条';
},
showQuickJumper: true,
showSizeChanger: true,
total: 0,
}
);
const xqDictTag = ref();
watch(() => xqDictTag.value?.dictOptions,(d) => {
if(d){
queryParam.value.xqxn = d[0]?.value
nextTick(() => {
loadData();
})
}
},{
deep:true,
immediate:true,
});
function loadData(){
loading.value = true;
let params = { pageNo: 0, pageSize: 10 };
params.pageNo = ipagination.value.current;
params.pageSize = ipagination.value.pageSize;
list({ ...params, ...queryParam.value }).then(res => {
dataSource.value = (res?.records) ?? [];
ipagination.value.total = res.total;
}).finally(() => {
loading.value = false;
});
}
function tableChange(pagination) {
ipagination.value.current = pagination.current;
ipagination.value.pageSize = pagination.pageSize;
loadData();
}
/**
* 查询
*/
function searchQuery() {
loadData();
}
/**
* 重置
*/
function searchReset() {
queryParam.value = {};
//刷新数据
loadData();
}
//导入导出方法
const { handleExportXls } = useMethods();
// 导出 excel
function onExportXls() {
let url = '/statistics/exportEvaluationXls';
if (url) {
let title = '评价量表统计';
return handleExportXls(title as string, url);
} else {
createMessage.warn('没有传递 export.url 参数');
return Promise.reject();
}
}
</script>
<style lang="less" scoped>
.videoMax{
width: 25%;
}
.videoCardMain {
:deep(.ant-card-body) {
padding: 0;
}
}
/* 隐藏video 进度条 */
video::-webkit-media-controls-timeline {
display: none;
}
.green {
color: green;
}
.red {
color: red;
}
.jeecg-basic-table-form-container {
.ant-form {
padding: 12px 10px 6px 10px;
margin-bottom: 8px;
background-color: #fff;
border-radius: 2px;
}
.table-page-search-submitButtons {
display: block;
margin-bottom: 24px;
white-space: nowrap;
}
.query-group-cust{
width: calc(50% - 15px);
min-width: 100px !important;
}
.query-group-split-cust{
width: 30px;
display: inline-block;
text-align: center
}
}
.jeecg-basic-table-form-containera{
line-height: 24px;
background: #fff;
padding: 20px 0 0 10px;
margin-bottom: -20px;
}
.jeecg-basic-table .ant-table-wrapper .ant-table-title {
min-height: 0px !important;
padding: 0 0 8px 0 !important;
}
</style>