2023年4月15日 修复问题

This commit is contained in:
bai 2023-04-15 09:45:50 +08:00
parent 280807d534
commit 9a0da560d1
24 changed files with 140 additions and 66 deletions

2
.env
View File

@ -2,7 +2,7 @@
VITE_PORT = 3100 VITE_PORT = 3100
# 网站标题 //课程信息中心 # 网站标题 //课程信息中心
VITE_GLOB_APP_TITLE = 管理系统 VITE_GLOB_APP_TITLE = 东师课程信息中心
# 简称,用于配置文件名字 不要出现空格、数字开头等特殊字符 # 简称,用于配置文件名字 不要出现空格、数字开头等特殊字符
VITE_GLOB_APP_SHORT_NAME = CourseInformationCenter VITE_GLOB_APP_SHORT_NAME = CourseInformationCenter

View File

@ -1,6 +1,7 @@
import { generate } from '@ant-design/colors'; import { generate } from '@ant-design/colors';
export const primaryColor = '#1890FF'; // export const primaryColor = '#1890FF';
export const primaryColor = '#18a689';
export const darkMode = 'light'; export const darkMode = 'light';

View File

@ -11,7 +11,8 @@
<title><%= title %></title> <title><%= title %></title>
<link rel="icon" href="/logo.png" /> <link rel="icon" href="/logo.png" />
<link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css"> <!-- <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css"> -->
<!-- <link rel="stylesheet" href="/resource/css/fontawesome.min.css"> -->
<!-- 全局配置 --> <!-- 全局配置 -->
<script> <script>
window._CONFIG = {}; window._CONFIG = {};
@ -158,7 +159,7 @@
</style> </style>
<div class="app-loading"> <div class="app-loading">
<div class="app-loading-wrap"> <div class="app-loading-wrap">
<img src="/resource/img/logo.png" class="app-loading-logo" alt="Logo" /> <!-- <img src="/resource/img/logo.png" class="app-loading-logo" alt="Logo" /> -->
<div class="app-loading-dots"> <div class="app-loading-dots">
<span class="dot dot-spin"><i></i><i></i><i></i><i></i></span> <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
</div> </div>

View File

@ -34,16 +34,17 @@
"gen:icon": "esno ./build/generate/icon/index.ts" "gen:icon": "esno ./build/generate/icon/index.ts"
}, },
"dependencies": { "dependencies": {
"@jeecg/online": "3.4.4-RC",
"@iconify/iconify": "^2.2.1",
"@ant-design/colors": "^6.0.0", "@ant-design/colors": "^6.0.0",
"@ant-design/icons-vue": "^6.1.0", "@ant-design/icons-vue": "^6.1.0",
"@fortawesome/fontawesome-free": "^6.4.0",
"@iconify/iconify": "^2.2.1",
"@jeecg/online": "3.4.4-RC",
"@logicflow/core": "^1.1.13", "@logicflow/core": "^1.1.13",
"@logicflow/extension": "^1.1.13", "@logicflow/extension": "^1.1.13",
"@vue/shared": "^3.2.33",
"@vue/runtime-core": "^3.2.33", "@vue/runtime-core": "^3.2.33",
"@vueuse/shared": "^8.3.0", "@vue/shared": "^3.2.33",
"@vueuse/core": "^8.3.0", "@vueuse/core": "^8.3.0",
"@vueuse/shared": "^8.3.0",
"@zxcvbn-ts/core": "^2.0.1", "@zxcvbn-ts/core": "^2.0.1",
"ant-design-vue": "^3.2.12", "ant-design-vue": "^3.2.12",
"axios": "^0.26.1", "axios": "^0.26.1",
@ -66,11 +67,11 @@
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"path-to-regexp": "^6.2.0", "path-to-regexp": "^6.2.0",
"pinia": "2.0.12", "pinia": "2.0.12",
"print-js": "^1.6.0",
"pinyin-pro": "^3.11.0", "pinyin-pro": "^3.11.0",
"qs": "^6.10.3", "print-js": "^1.6.0",
"qrcode": "^1.5.0", "qrcode": "^1.5.0",
"qrcodejs2": "0.0.2", "qrcodejs2": "0.0.2",
"qs": "^6.10.3",
"resize-observer-polyfill": "^1.5.1", "resize-observer-polyfill": "^1.5.1",
"showdown": "^2.1.0", "showdown": "^2.1.0",
"sortablejs": "^1.15.0", "sortablejs": "^1.15.0",
@ -81,6 +82,7 @@
"vue-cropperjs": "^5.0.0", "vue-cropperjs": "^5.0.0",
"vue-i18n": "^9.1.9", "vue-i18n": "^9.1.9",
"vue-infinite-scroll": "^2.0.2", "vue-infinite-scroll": "^2.0.2",
"vue-json-pretty": "^2.0.6",
"vue-print-nb-jeecg": "^1.0.10", "vue-print-nb-jeecg": "^1.0.10",
"vue-router": "^4.0.14", "vue-router": "^4.0.14",
"vue-types": "^4.1.1", "vue-types": "^4.1.1",
@ -88,7 +90,6 @@
"vxe-table": "4.1.0", "vxe-table": "4.1.0",
"vxe-table-plugin-antd": "3.0.5", "vxe-table-plugin-antd": "3.0.5",
"xe-utils": "^3.3.1", "xe-utils": "^3.3.1",
"vue-json-pretty": "^2.0.6",
"xss": "^1.0.13" "xss": "^1.0.13"
}, },
"devDependencies": { "devDependencies": {
@ -96,6 +97,7 @@
"@commitlint/config-conventional": "^16.2.1", "@commitlint/config-conventional": "^16.2.1",
"@iconify/json": "^2.1.30", "@iconify/json": "^2.1.30",
"@purge-icons/generated": "^0.8.1", "@purge-icons/generated": "^0.8.1",
"@rys-fe/vite-plugin-theme": "^0.8.6",
"@types/codemirror": "^5.60.5", "@types/codemirror": "^5.60.5",
"@types/crypto-js": "^4.1.1", "@types/crypto-js": "^4.1.1",
"@types/fs-extra": "^9.0.13", "@types/fs-extra": "^9.0.13",
@ -106,9 +108,9 @@
"@types/mockjs": "^1.0.6", "@types/mockjs": "^1.0.6",
"@types/node": "^17.0.25", "@types/node": "^17.0.25",
"@types/nprogress": "^0.2.0", "@types/nprogress": "^0.2.0",
"@types/pinyin": "^2.10.0",
"@types/qrcode": "^1.4.2", "@types/qrcode": "^1.4.2",
"@types/qs": "^6.9.7", "@types/qs": "^6.9.7",
"@types/pinyin": "^2.10.0",
"@types/showdown": "^1.9.4", "@types/showdown": "^1.9.4",
"@types/sortablejs": "^1.10.7", "@types/sortablejs": "^1.10.7",
"@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/eslint-plugin": "^5.20.0",
@ -171,7 +173,6 @@
"vite-plugin-pwa": "^0.12.3", "vite-plugin-pwa": "^0.12.3",
"vite-plugin-style-import": "^2.0.0", "vite-plugin-style-import": "^2.0.0",
"vite-plugin-svg-icons": "^2.0.1", "vite-plugin-svg-icons": "^2.0.1",
"@rys-fe/vite-plugin-theme": "^0.8.6",
"vite-plugin-vue-setup-extend": "^0.4.0", "vite-plugin-vue-setup-extend": "^0.4.0",
"vite-plugin-windicss": "^1.8.7", "vite-plugin-windicss": "^1.8.7",
"vue-eslint-parser": "^8.3.0", "vue-eslint-parser": "^8.3.0",

BIN
public/logo-old.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -21,6 +21,10 @@ import { useSso } from '/@/hooks/web/useSso';
// 注册online模块lib // 注册online模块lib
import { registerPackages } from '/@/utils/monorepo/registerPackages'; import { registerPackages } from '/@/utils/monorepo/registerPackages';
// 增加fortawesome图标
import '@fortawesome/fontawesome-free/css/all.css'
import '@fortawesome/fontawesome-free/js/all'
// 在本地开发中引入的,以提高浏览器响应速度 // 在本地开发中引入的,以提高浏览器响应速度
if (import.meta.env.DEV) { if (import.meta.env.DEV) {
import('ant-design-vue/dist/antd.less'); import('ant-design-vue/dist/antd.less');

View File

@ -1,7 +1,7 @@
<template> <template>
<a-layout-footer> <a-layout-footer>
<span class="footerLeft">TEL0431-85099971</span> <span class="footerLeft">TEL0431-85099971</span>
<span class="footerRight">Copyright 东北师范大学教务处 2023</span> <span class="footerRight">Copyright 东北师范大学教务处 2022</span>
</a-layout-footer> </a-layout-footer>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">

View File

@ -9,7 +9,9 @@
意见反馈 意见反馈
</div> </div>
</div> </div>
<span class="topTitle">管理系统</span> <span class="topTitle">
{{ projectName }}
</span>
<span class="topRight"> <span class="topRight">
<a-dropdown> <a-dropdown>
<span class="ant-dropdown-link topRightMenu" @click.prevent> <span class="ant-dropdown-link topRightMenu" @click.prevent>
@ -33,11 +35,13 @@
</a-layout-header> </a-layout-header>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref } from 'vue'; import { ref } from 'vue';
import { DownOutlined, ArrowUpOutlined } from '@ant-design/icons-vue'; import { DownOutlined, ArrowUpOutlined } from '@ant-design/icons-vue';
import { useUserStore } from '/@/store/modules/user'; import { useUserStore } from '/@/store/modules/user';
import YjfkModal from '/@/views/site/yjfk/YjfkModal.vue'; import YjfkModal from '/@/views/site/yjfk/YjfkModal.vue';
const projectName = import.meta.env.VITE_GLOB_APP_TITLE;
const YjfkModalTab = ref(); const YjfkModalTab = ref();
// //
const userStore = useUserStore(); const userStore = useUserStore();

View File

@ -102,7 +102,7 @@
const xyjkModeal = ref(); const xyjkModeal = ref();
const rkbModeal = ref(); const rkbModeal = ref();
const yykcModeal = ref(); const yykcModeal = ref();
// reactive // reactive
let list = reactive({ list: [] }); let list = reactive({ list: [] });
// //
@ -187,7 +187,6 @@
background: #f3f3f4; background: #f3f3f4;
} }
} }
} }
/**暗黑模式特殊配色*/ /**暗黑模式特殊配色*/
[data-theme='dark'] #siteMain #maxSite { [data-theme='dark'] #siteMain #maxSite {
@ -201,4 +200,12 @@
background: #3499ec; background: #3499ec;
} }
} }
</style>
<style>
.wenZiJiaCu {
font-weight: 700;
}
a {
color: #337ab7;
}
</style> </style>

View File

@ -22,7 +22,8 @@
<div class="ggkTwoTitle ggkCcxs" :title="item.zc +`·`+item.xy">{{item.zc}} {{item.xy}}</div> <div class="ggkTwoTitle ggkCcxs" :title="item.zc +`·`+item.xy">{{item.zc}} {{item.xy}}</div>
<div class="ggkThreeTitle ggkCcxs">{{item.ktzt}}</div> <div class="ggkThreeTitle ggkCcxs">{{item.ktzt}}</div>
<div class="ggkFourTitle">0人听课</div> <div class="ggkFourTitle">0人听课</div>
<div><a-button type="primary" class="ggkButton" target="_blank" :href="item.kclj" >进入课堂</a-button></div> <!-- -{{ item.kclj }}--{{ item.jslj }} -->
<div><a-button type="primary" class="ggkButton" target="_blank" :href="item.kclj" @click.stop>进入课堂</a-button></div>
</div> </div>
</a> </a>
</div> </div>
@ -99,7 +100,7 @@ function loadData(){
// queryParam.value.column = 'type' // queryParam.value.column = 'type'
// queryParam.value.order = 'asc' // queryParam.value.order = 'asc'
list(queryParam.value).then(res=>{ list(queryParam.value).then(res=>{
listData.value.push(...res.records) listData.value.push(...res.records)
current = res.size current = res.size
}) })
} }

View File

@ -43,8 +43,8 @@
const emit = defineEmits(['register', 'ok']); const emit = defineEmits(['register', 'ok']);
const formData = reactive<Record<string, any>>({ const formData = reactive<Record<string, any>>({
userid: '', userid: '',
kqtx: '', kqtx: '1',
mrkctx: '', mrkctx: '1',
}); });
const { createMessage } = useMessage(); const { createMessage } = useMessage();

View File

@ -1,16 +1,16 @@
<template> <template>
<a-card> <a-card class="wenZiJiaCu" style="font-size: 1.1rem;">
您可根据实际情况选择下面三个评价表中的一个或者两个给予评价 您可根据实际情况选择下面三个评价表中的一个或者两个给予评价
<div class="p15"> <div class="p15">
<a-row> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-button type="primary"><RouterLink target='_blank' :to="{path:'/site/qaAddPage',query:{ type: 4, ktId }}">线上课题评价表</RouterLink></a-button> <a-button type="primary" class="wenZiJiaCu"><RouterLink target='_blank' :to="{path:'/site/qaAddPage',query:{ type: 2, ktId }}">线上课堂评价表</RouterLink></a-button>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-button type="primary"><RouterLink target='_blank' :to="{path:'/site/qaAddPage',query:{ type: 3, ktId }}">听课记录表</RouterLink></a-button> <a-button type="primary" class="wenZiJiaCu"><RouterLink target='_blank' :to="{path:'/site/qaAddPage',query:{ type: 3, ktId }}">听课记录表</RouterLink></a-button>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-button type="primary"><RouterLink target='_blank' :to="{path:'/site/qaAddPage',query:{ type: 2, ktId }}">同行评价表</RouterLink></a-button> <a-button type="primary" class="wenZiJiaCu"><RouterLink target='_blank' :to="{path:'/site/qaAddPage',query:{ type: 4, ktId }}">同行评价表</RouterLink></a-button>
</a-col> </a-col>
</a-row> </a-row>
</div> </div>
@ -18,13 +18,13 @@
说明 说明
</p> </p>
<p> <p>
1.线上课堂评价表是根据线上课堂的特点研制的如果您听的是线上课堂请您填写该评价表如果您同时是该课程所属学科的专家/教师也欢迎您同时填写同行评价表 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.线上课堂评价表是根据线上课堂的特点研制的如果您听的是线上课堂请您填写该评价表如果您同时是该课程所属学科的专家/教师也欢迎您同时填写同行评价表
</p> </p>
<p> <p>
2.听课记录表是方便行政人员和非该课程所属学科的教师听课使用的评价表主要用来反映课堂教学的整体情况 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.听课记录表是方便行政人员和非该课程所属学科的教师听课使用的评价表主要用来反映课堂教学的整体情况
</p> </p>
<p> <p>
3.同行评价表是专门为该课程方面的专家/教师听课研制的评价表更能反映该课堂的教学质量 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.同行评价表是专门为该课程方面的专家/教师听课研制的评价表更能反映该课堂的教学质量
</p> </p>
</a-card> </a-card>
</template> </template>
@ -39,6 +39,11 @@
*/ */
function view( ...data ) { function view( ...data ) {
let record = data[0]??{}; let record = data[0]??{};
console.log(`🚀 --------------------------------------------------🚀`);
console.log(`🚀 ~ file: addForm.vue:43 ~ view ~ record:`, record);
console.log(`🚀 --------------------------------------------------🚀`);
ktId.value = record.ketangbiaoid ktId.value = record.ketangbiaoid
} }

View File

@ -2,7 +2,7 @@
<div class="renKeJiaoChengBase"> <div class="renKeJiaoChengBase">
<a-modal :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" :getContainer="getPDom" cancelText="关闭"> <a-modal :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" :getContainer="getPDom" cancelText="关闭">
<template #title> <template #title>
<div style="text-align: center;">请选择评价表</div> <div style="text-align: center;font-size: 1.5rem;">请选择评价表</div>
</template> </template>
<KcKetangbiaoForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"/> <KcKetangbiaoForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"/>
</a-modal> </a-modal>

View File

@ -71,7 +71,7 @@ const route = useRoute();
function view(record){ function view(record){
console.log(route.query); console.log(route.query);
let params = { pageSize: -1, status: 0 } let params = { pageSize: -1, status: 0, column: 'ordernum', order: 'asc' }
// //
let queryData = defHttp.get({ url: Api.queryResData, params: { userid: record.userid, minkcid: record.ketangbiaoid, evaluationver: record.evaluationver} }); let queryData = defHttp.get({ url: Api.queryResData, params: { userid: record.userid, minkcid: record.ketangbiaoid, evaluationver: record.evaluationver} });
// //

View File

@ -5,18 +5,21 @@
<a-list-item> <a-list-item>
<a-list-item-meta> <a-list-item-meta>
<template #title> <template #title>
<div class="wenZiJiaCu"> <div class="wenZiJiaCu fs1d1r">
听了&nbsp;&nbsp;&nbsp;&nbsp;{{ item.kkdw }}&nbsp;&nbsp;&nbsp;&nbsp;{{item.skjs}}&nbsp;&nbsp;&nbsp;&nbsp;{{ item.kcmc }} 听了&nbsp;{{ item.kkdw }}&nbsp;{{item.skjs}}&nbsp;主讲的&nbsp;{{ item.kcmc }}
</div> </div>
</template> </template>
<template #description> <template #description>
<!-- -{{ item }}- --> <!-- -{{ item }}- -->
<span v-if="item.score" style="color: #337ab7;" @click="viewModal.view(item)">已评分{{ item.score }}</span> <div class="wenZiJiaCu">
<span v-else style="color: #337ab7;" @click="tingKeZuJiAddModal.view(item)"><FormOutlined/>填写评价</span> <span v-if="item.score" style="color: #337ab7;" @click="viewModal.view(item)">已评分{{ item.score }}</span>
<span v-else style="color: #337ab7;" @click="tingKeZuJiAddModal.view(item)"><FormOutlined/>填写评价</span>
</div>
</template> </template>
<template #avatar> <template #avatar>
<div class="wenZiJuZhong"> <div class="wenZiJuZhong">
<TeamOutlined/> <!-- <TeamOutlined/> -->
<i class="fas fa-users" />
<div>{{ item.shijian }}</div> <div>{{ item.shijian }}</div>
<div style="color: #1ab394;">{{ item.tkrq }}</div> <div style="color: #1ab394;">{{ item.tkrq }}</div>
</div> </div>
@ -83,5 +86,9 @@ defineExpose({
.wenZiJiaCu { .wenZiJiaCu {
font-weight: 700; font-weight: 700;
} }
.fs1d1r {
font-size: 1.1rem;
}
</style> </style>

View File

@ -96,7 +96,7 @@ import { getUserId } from '/@/views/site/utils';
enum Api { enum Api {
queryById = '/ktgl/kcKetangbiao/queryById', queryById = '/ktgl/kcKetangbiao/queryById',
que = '//qa/kcEvaluationque/list', que = '/qa/kcEvaluationque/list',
ans = '/qa/kcEvaluationans/list', ans = '/qa/kcEvaluationans/list',
save = '/qa/kcEvaluation/addQaAll', save = '/qa/kcEvaluation/addQaAll',
} }
@ -111,7 +111,7 @@ const { createMessage } = useMessage();
const route = useRoute(); const route = useRoute();
onMounted(() => { onMounted(() => {
console.log(route.query ); console.log(route.query );
let params = { pageSize: -1, status: 0 } let params = { pageSize: -1, status: 0, column: 'ordernum', order: 'asc' }
let queryQue = defHttp.get({ url: Api.que, params: { ...params, evaluationver: route.query.type } }); let queryQue = defHttp.get({ url: Api.que, params: { ...params, evaluationver: route.query.type } });
let queryAns = defHttp.get({ url: Api.ans, params }); let queryAns = defHttp.get({ url: Api.ans, params });

View File

@ -12,13 +12,20 @@
<a-col :xs="{ span: 12 }" :sm="{ span: 12 }" :lg="{ span: 12 }"> <a-col :xs="{ span: 12 }" :sm="{ span: 12 }" :lg="{ span: 12 }">
<div class="numberBlob"> <div class="numberBlob">
<div class="numSpan green">{{ tjData?.jinRiKeTang?.xkktnum }}</div> <div class="numSpan green">{{ tjData?.jinRiKeTang?.xkktnum }}</div>
<div class="numberName"><FallOutlined class="green"/>已下课</div> <div class="numberName">
<i class="fa fa-level-down green"></i>
<!-- <FallOutlined class="green"/> -->
已下课
</div>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
<a-divider class="divider"/> <a-divider class="divider"/>
<div class="buttomDiv wenZiJiaCu"> <div class="buttomDiv wenZiJiaCu">
<FallOutlined class="green"/> <!-- <FallOutlined class="green"/> -->
<span class="green">
</span>
腾讯:{{ tjData?.jinRiKeTang?.txktnum }} 腾讯:{{ tjData?.jinRiKeTang?.txktnum }}
钉钉:{{ tjData?.jinRiKeTang?.ddktnum }} 钉钉:{{ tjData?.jinRiKeTang?.ddktnum }}
其他:{{ tjData?.jinRiKeTang?.qtktnum }} 其他:{{ tjData?.jinRiKeTang?.qtktnum }}
@ -30,7 +37,7 @@
<a-row class="" :gutter="gutter"> <a-row class="" :gutter="gutter">
<a-col :xs="{ span: 24 }" :sm="{ span: 24 }" :lg="{ span: 24 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 24 }" :lg="{ span: 24 }">
<div class="numberBlob"> <div class="numberBlob">
<div class="numSpan orange">{{ tjData?.jinRiKeTang?.zzsknum }}</div> <div class="numSpan orange fs3r">{{ tjData?.jinRiKeTang?.zzsknum }}</div>
<div class="numberName">&nbsp;</div> <div class="numberName">&nbsp;</div>
</div> </div>
</a-col> </a-col>
@ -51,13 +58,21 @@
<a-col :xs="{ span: 8 }" :sm="{ span: 8 }" :lg="{ span: 8 }"> <a-col :xs="{ span: 8 }" :sm="{ span: 8 }" :lg="{ span: 8 }">
<div class="numberBlob"> <div class="numberBlob">
<div class="numSpan blue">{{ tjData?.jinRiTingKe?.btkktnum }}</div> <div class="numSpan blue">{{ tjData?.jinRiTingKe?.btkktnum }}</div>
<div class="numberName"><StockOutlined class="blue"/>听课课堂</div> <div class="numberName">
<!-- <StockOutlined class="blue"/> -->
<i class="fa fa-bolt blue"></i>
听课课堂
</div>
</div> </div>
</a-col> </a-col>
<a-col :xs="{ span: 8 }" :sm="{ span: 8 }" :lg="{ span: 8 }"> <a-col :xs="{ span: 8 }" :sm="{ span: 8 }" :lg="{ span: 8 }">
<div class="numberBlob"> <div class="numberBlob">
<div class="numSpan orange">{{ tjData?.jinRiTingKe?.tkrcnum }}</div> <div class="numSpan orange">{{ tjData?.jinRiTingKe?.tkrcnum }}</div>
<div class="numberName"><RiseOutlined class="orange"/>听课人次</div> <div class="numberName">
<!-- <RiseOutlined class="orange"/> -->
<i class="fa fa-level-up orange"></i>
听课人次
</div>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -65,19 +80,28 @@
<div class="buttomDiv"></div> <div class="buttomDiv"></div>
</a-card> </a-card>
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 9 }" :lg="{ span: 5 }">
<a-card class="cardDiv" title="今日听课"> <a-card class="cardDiv" title="今日听课">
<!-- -<i class="fa-sharp fa-solid fa-user"></i>- -->
<a-row class="" :gutter="gutter"> <a-row class="" :gutter="gutter">
<a-col :xs="{ span: 12 }" :sm="{ span: 12 }" :lg="{ span: 12 }"> <a-col :xs="{ span: 12 }" :sm="{ span: 12 }" :lg="{ span: 12 }">
<div class="numberBlob"> <div class="numberBlob">
<div class="numSpan blue">{{ tjData?.yiKaiKeTang?.num }}</div> <div class="numSpan blue">{{ tjData?.yiKaiKeTang?.num }}</div>
<div class="numberName"><StockOutlined class="blue"/>课堂数</div> <div class="numberName">
<!-- <StockOutlined class="blue"/> -->
<i class="fa fa-bolt blue"></i>
课堂数
</div>
</div> </div>
</a-col> </a-col>
<a-col :xs="{ span: 12 }" :sm="{ span: 12 }" :lg="{ span: 12 }"> <a-col :xs="{ span: 12 }" :sm="{ span: 12 }" :lg="{ span: 12 }">
<div class="numberBlob"> <div class="numberBlob">
<div class="numSpan orange">{{ tjData?.yiKaiKeTang?.zzsknum }}</div> <div class="numSpan orange">{{ tjData?.yiKaiKeTang?.zzsknum }}</div>
<div class="numberName"><RiseOutlined class="orange"/>听课人次</div> <div class="numberName">
<!-- <RiseOutlined class="orange"/> -->
<i class="fa fa-level-up orange"></i>
听课人次
</div>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -85,7 +109,7 @@
<div class="buttomDiv"></div> <div class="buttomDiv"></div>
</a-card> </a-card>
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 2 }" :lg="{ span: 3 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 1 }" :lg="{ span: 2 }">
<div style="margin: 0 auto;width: fit-content;font-size: 6rem;font-weight: 700;color: #cccccc8c;padding: 29px 0;"> <div style="margin: 0 auto;width: fit-content;font-size: 6rem;font-weight: 700;color: #cccccc8c;padding: 29px 0;">
<!-- <RouterLink class="plusButton" to="/dashboard/analysis"><PlusOutlined/></RouterLink> --> <!-- <RouterLink class="plusButton" to="/dashboard/analysis"><PlusOutlined/></RouterLink> -->
<RouterLink class="plusButton" to="/dashboard/analysis">+</RouterLink> <RouterLink class="plusButton" to="/dashboard/analysis">+</RouterLink>
@ -95,7 +119,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, reactive, computed, onMounted } from 'vue'; import { ref, reactive, computed, onMounted } from 'vue';
import { PlusOutlined, FallOutlined, RiseOutlined, StockOutlined } from '@ant-design/icons-vue'; // import { PlusOutlined, FallOutlined, RiseOutlined, StockOutlined } from '@ant-design/icons-vue';
import { dateUtil, formatToDate } from '/@/utils/dateUtil'; import { dateUtil, formatToDate } from '/@/utils/dateUtil';
@ -146,6 +170,10 @@ onMounted(() => {
} }
.numberName { .numberName {
font-size: .5rem; font-size: .5rem;
font-weight: 700;
}
.fs3r {
font-size: 3rem;
} }
} }
.green { .green {
@ -158,8 +186,13 @@ onMounted(() => {
color: #1c84c6; color: #1c84c6;
} }
.cardDiv :deep(.ant-divider-horizontal) { .cardDiv {
margin: 12px 0; :deep(.ant-divider-horizontal) {
margin: 12px 0;
}
:deep(.ant-card-head-title) {
font-weight: 700;
}
} }
.maxRow :deep(.ant-card-body) { .maxRow :deep(.ant-card-body) {
padding: 0 24px 24px; padding: 0 24px 24px;
@ -169,9 +202,6 @@ onMounted(() => {
font-size: .4rem; font-size: .4rem;
height: 1rem; height: 1rem;
} }
.wenZiJiaCu {
font-weight: 700;
}
.plusButton{ .plusButton{
& :hover,& :active{ & :hover,& :active{

View File

@ -35,7 +35,7 @@
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<div style="margin-top:20px;"> <div style="margin-top:20px;">
<a-button type="primary" class="itemYyButton">评价</a-button> <a-button type="primary" class="itemYyButton" @click="tingKeZuJiAddModal.view({ ketangbiaoid: item.id })">评价</a-button>
<a-button type="primary" class="itemBaoCuoButton" @click="funQxyy(item)">取消预约</a-button> <a-button type="primary" class="itemBaoCuoButton" @click="funQxyy(item)">取消预约</a-button>
</div> </div>
</a-col> </a-col>
@ -45,6 +45,7 @@
</a-col> </a-col>
</a-row> </a-row>
</a-card> </a-card>
<addModalPage ref="tingKeZuJiAddModal"/>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, reactive, computed, onMounted } from 'vue'; import { ref, reactive, computed, onMounted } from 'vue';
@ -53,8 +54,9 @@ import { TeamOutlined } from '@ant-design/icons-vue';
import { getUserId } from '/@/views/site/utils/index'; import { getUserId } from '/@/views/site/utils/index';
import { downloadByUrl } from '/@/utils/file/download'; import { downloadByUrl } from '/@/utils/file/download';
import { useMessage } from '/@/hooks/web/useMessage'; import { useMessage } from '/@/hooks/web/useMessage';
import { defHttp } from '/@/utils/http/axios'; import { defHttp } from '/@/utils/http/axios';
import addModalPage from '/@/views/site/tingKeZuJi/components/addModal.vue';
const { createMessage } = useMessage(); const { createMessage } = useMessage();
enum Api { enum Api {
list = '/kcYuyue/kcYuyue/findTingkeZuJiByPage', list = '/kcYuyue/kcYuyue/findTingkeZuJiByPage',
@ -62,6 +64,8 @@ enum Api {
edit='/kcYuyue/kcYuyue/edit', edit='/kcYuyue/kcYuyue/edit',
} }
const tingKeZuJiAddModal = ref();
const emit = defineEmits(['ortherLoad']); const emit = defineEmits(['ortherLoad']);
/** /**
* 列表接口 * 列表接口

View File

@ -1,5 +1,5 @@
<template> <template>
<div id="siteMain"> <div id="siteMain">
<div id="maxSite"> <div id="maxSite">
<!-- 页头 --> <!-- 页头 -->
@ -17,20 +17,17 @@
<a-row style="margin-top:20px;"> <a-row style="margin-top:20px;">
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;"> <a-form-item label="" style="padding: 10px;">
<a-date-picker :showTime="false" valueFormat="YYYY-MM-DD" :placeholder="'请选择开始时间'" style="width:100%;" <a-date-picker :showTime="false" valueFormat="YYYY-MM-DD" :placeholder="'请选择开始时间'" style="width:100%;" v-model:value="queryParam.startTime"></a-date-picker>
v-model:value="queryParam.startTime"></a-date-picker>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;"> <a-form-item label="" style="padding: 10px;">
<a-date-picker :showTime="false" valueFormat="YYYY-MM-DD" :placeholder="'请选择结束时间'" style="width:100%;" <a-date-picker :showTime="false" valueFormat="YYYY-MM-DD" :placeholder="'请选择结束时间'" style="width:100%;" v-model:value="queryParam.endTime"></a-date-picker>
v-model:value="queryParam.endTime"></a-date-picker>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;"> <a-form-item label="" style="padding: 10px;">
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw" <JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw" :dictCode="`tkrszdw_view,college,college`" />
:dictCode="`tkrszdw_view,college,college`" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
@ -83,7 +80,7 @@
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<div style="margin-top:20px;" v-if="item.isdeleted=='0'"> <div style="margin-top:20px;" v-if="item.isdeleted=='0'">
<a-button type="primary" class="itemYyButton">评价</a-button> <a-button type="primary" class="itemYyButton" @click="tingKeZuJiAddModal.view({ ketangbiaoid: item.id })">评价</a-button>
<a-button type="primary" class="itemBaoCuoButton" @click="funQxyy(item)">取消预约</a-button> <a-button type="primary" class="itemBaoCuoButton" @click="funQxyy(item)">取消预约</a-button>
</div> </div>
<div style="margin-top:20px;" v-if="item.isdeleted=='1'"> <div style="margin-top:20px;" v-if="item.isdeleted=='1'">
@ -103,7 +100,7 @@
<footerPage/> <footerPage/>
</div> </div>
</div> </div>
<addModalPage ref="tingKeZuJiAddModal"/>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref,onMounted,defineExpose } from 'vue'; import { ref,onMounted,defineExpose } from 'vue';
@ -115,8 +112,9 @@ import { dateFormat } from '/@/utils/common/compUtils';
import { getUserId } from '/@/views/site/utils/index'; import { getUserId } from '/@/views/site/utils/index';
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import { getSysConfig } from '/@/views/site/utils/index'; import { getSysConfig } from '/@/views/site/utils/index';
import { useMessage } from '/@/hooks/web/useMessage'; import { useMessage } from '/@/hooks/web/useMessage';
import addModalPage from '/@/views/site/tingKeZuJi/components/addModal.vue';
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const list = (queryParam) => defHttp.get({ url: Api.list, params:queryParam }); const list = (queryParam) => defHttp.get({ url: Api.list, params:queryParam });
@ -126,6 +124,8 @@ enum Api {
edit='/kcYuyue/kcYuyue/edit', edit='/kcYuyue/kcYuyue/edit',
} }
const tingKeZuJiAddModal = ref();
const queryParam = ref<any>({}); const queryParam = ref<any>({});
let listData = ref<any>([]); let listData = ref<any>([]);
@ -174,7 +174,7 @@ function loadData(){
} }
/** /**
* 删除预约 * 删除预约
* @param record * @param record
*/ */
function funDelete(record){ function funDelete(record){
var params = {id:record.yyid} var params = {id:record.yyid}