修改bug
This commit is contained in:
parent
068563d0f9
commit
626ca9b741
|
@ -77,6 +77,34 @@ const site: AppRouteModule = {
|
||||||
title: '东北师范大学本科课堂教学质量评价表',
|
title: '东北师范大学本科课堂教学质量评价表',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
path: 'qaShoudongAddXsktpjb',
|
||||||
|
name: 'qaShoudongAddXsktpjb',
|
||||||
|
component: () => import('/@/views/site/tingKeZuJi/page/qaShoudongAdd.vue'),
|
||||||
|
meta: {
|
||||||
|
// affix: true,
|
||||||
|
title: '线上教学课堂看课、听课评价表',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'qaShoudongAddTkjlb',
|
||||||
|
name: 'qaShoudongAddTkjlb',
|
||||||
|
component: () => import('/@/views/site/tingKeZuJi/page/qaShoudongAdd.vue'),
|
||||||
|
meta: {
|
||||||
|
// affix: true,
|
||||||
|
title: '东北师范大学听课记录表',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'qaShoudongAddThpjb',
|
||||||
|
name: 'qaShoudongAddThpjb',
|
||||||
|
component: () => import('/@/views/site/tingKeZuJi/page/qaShoudongAdd.vue'),
|
||||||
|
meta: {
|
||||||
|
// affix: true,
|
||||||
|
title: '东北师范大学本科课堂教学质量评价表',
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: 'liveView',
|
path: 'liveView',
|
||||||
name: 'LiveBroadcastRoom',
|
name: 'LiveBroadcastRoom',
|
||||||
|
|
|
@ -14,6 +14,18 @@
|
||||||
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" @change="loadData"/>
|
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" @change="loadData"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
<a-col :span="6">
|
||||||
|
<a-form-item label="" style="padding: 10px;">
|
||||||
|
<a-select
|
||||||
|
ref="select"
|
||||||
|
v-model:value="queryParam.djz"
|
||||||
|
style="width: 120px"
|
||||||
|
@change="loadData"
|
||||||
|
>
|
||||||
|
<a-select-option :value="item.bxqkssj" v-for="(item,index) in djzData">{{item.flag1}}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
|
@ -33,20 +45,41 @@ import { defHttp } from '/@/utils/http/axios';
|
||||||
|
|
||||||
const barMultiData = reactive<any>([]);
|
const barMultiData = reactive<any>([]);
|
||||||
const queryParam = ref<any>({});
|
const queryParam = ref<any>({});
|
||||||
|
const djzData = reactive<any>([]);
|
||||||
const list = (queryParam) => defHttp.get({ url: '/kcTingke/kcTingke/getIndexTpkztjList', params:queryParam });
|
const list = (queryParam) => defHttp.get({ url: '/kcTingke/kcTingke/getIndexTpkztjList', params:queryParam });
|
||||||
|
const listDjz = (queryParam) => defHttp.get({ url: '/kcSysConfig/kcSysConfig/getDjz', params:queryParam });
|
||||||
|
|
||||||
//进入就加载
|
//进入就加载
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const format = 'yyyy-MM-dd';
|
// const format = 'yyyy-MM-dd';
|
||||||
const startTime = new Date();
|
// const startTime = new Date();
|
||||||
startTime.setTime(startTime.getTime()-60000*60*24*7)
|
// startTime.setTime(startTime.getTime()-60000*60*24*7)
|
||||||
queryParam.value.startTime = dateFormat(startTime, format)
|
// queryParam.value.startTime = dateFormat(startTime, format)
|
||||||
queryParam.value.endTime = dateFormat(new Date(), format)
|
// queryParam.value.endTime = dateFormat(new Date(), format)
|
||||||
|
// loadData()
|
||||||
|
listDjz({}).then(res=>{
|
||||||
|
console.log(`🚀 ~ file: tkztj.vue:59 ~ list ~ res:`, res)
|
||||||
|
var list = res
|
||||||
|
var kssj = "";
|
||||||
|
for(var i=0;i<list.length;i++){
|
||||||
|
var dqsj = list[i].bxqkssj+","+list[i].bxqjssj
|
||||||
|
djzData.push({bxqkssj:dqsj,flag1:list[i].flag1})
|
||||||
|
if(list[i].flag2 == '1'){
|
||||||
|
kssj = dqsj
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(`🚀 ~ file: tkztj.vue:81 ~ listDjz ~ kssj:`, kssj)
|
||||||
|
queryParam.value.djz = kssj
|
||||||
loadData()
|
loadData()
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
function loadData(){
|
function loadData(){
|
||||||
barMultiData.length = 0
|
barMultiData.length = 0
|
||||||
|
var dqsj = queryParam.value.djz
|
||||||
|
var sjjh = dqsj.split(",");
|
||||||
|
queryParam.value.startTime = sjjh[0]
|
||||||
|
queryParam.value.endTime = sjjh[1]
|
||||||
list(queryParam.value).then(res=>{
|
list(queryParam.value).then(res=>{
|
||||||
console.log(`🚀 ~ file: tkztj.vue:59 ~ list ~ res:`, res)
|
console.log(`🚀 ~ file: tkztj.vue:59 ~ list ~ res:`, res)
|
||||||
var list = res
|
var list = res
|
||||||
|
|
|
@ -42,6 +42,10 @@
|
||||||
<a-button type="danger" @click="batchHandleDelete" preIcon="ant-design:delete-outlined">删除</a-button>
|
<a-button type="danger" @click="batchHandleDelete" preIcon="ant-design:delete-outlined">删除</a-button>
|
||||||
<a-button type="primary" @click="handleEditPtxx" preIcon="ant-design:plus-outlined"> 修改平台信息</a-button>
|
<a-button type="primary" @click="handleEditPtxx" preIcon="ant-design:plus-outlined"> 修改平台信息</a-button>
|
||||||
<a-button type="primary" @click="handleEditTeacher" preIcon="ant-design:plus-outlined"> 修改教师</a-button>
|
<a-button type="primary" @click="handleEditTeacher" preIcon="ant-design:plus-outlined"> 修改教师</a-button>
|
||||||
|
|
||||||
|
<a-button type="primary" @click="handlePjb(2)" preIcon="ant-design:plus-outlined"> 线上课堂评价表</a-button>
|
||||||
|
<a-button type="primary" @click="handlePjb(3)" preIcon="ant-design:plus-outlined"> 听课记录表</a-button>
|
||||||
|
<a-button type="primary" @click="handlePjb(4)" preIcon="ant-design:plus-outlined"> 同行评价表</a-button>
|
||||||
<!-- <a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
|
<!-- <a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
|
||||||
<j-upload-button type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button> -->
|
<j-upload-button type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button> -->
|
||||||
<!-- <a-dropdown v-if="selectedRowKeys.length > 0">
|
<!-- <a-dropdown v-if="selectedRowKeys.length > 0">
|
||||||
|
@ -208,6 +212,31 @@
|
||||||
registerModal.value.edit(record);
|
registerModal.value.edit(record);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
function handlePjb(type){
|
||||||
|
|
||||||
|
let record = selectedRows.value[0];
|
||||||
|
if(!record){
|
||||||
|
createMessage.error('请您至少选择一条记录进行操作。');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.log(`🚀 ~ file: KcKetangbiaoList.vue:217 ~ handlePjb ~ selectedRows:`, selectedRows)
|
||||||
|
let ktId = record.id;
|
||||||
|
console.log(`🚀 ~ file: KcKetangbiaoList.vue:217 ~ handlePjb ~ ktId:`, ktId)
|
||||||
|
var url = "";
|
||||||
|
if(type=="2"){
|
||||||
|
url = "/site/qaShoudongAddXsktpjb?type="+type+"&ktId="+ktId;
|
||||||
|
}else if(type=="3"){
|
||||||
|
url = "/site/qaShoudongAddTkjlb?type="+type+"&ktId="+ktId;
|
||||||
|
}else if(type=="4"){
|
||||||
|
url = "/site/qaShoudongAddThpjb?type="+type+"&ktId="+ktId;
|
||||||
|
}
|
||||||
|
if(ktId){
|
||||||
|
console.log(`🚀 ~ file: KcKetangbiaoList.vue:228 ~ handlePjb ~ ktId:`, ktId)
|
||||||
|
window.open(url,"_blank")
|
||||||
|
}else{
|
||||||
|
createMessage.error('操作失败,请联系管理员。');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑事件
|
* 编辑事件
|
||||||
|
|
|
@ -4,26 +4,38 @@
|
||||||
<a-col :span="24" style="text-align: center;"><strong style="font-size: 16px;">评课周统计</strong></a-col>
|
<a-col :span="24" style="text-align: center;"><strong style="font-size: 16px;">评课周统计</strong></a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="6">
|
<a-col :span="5">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<JDictSelectTag placeholder="评课身份" v-model:value="queryParam.tksf" dictCode="kc_tksf" @change="loadData" />
|
<JDictSelectTag placeholder="评课身份" v-model:value="queryParam.tksf" dictCode="kc_tksf" @change="loadData" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="6">
|
<a-col :span="5">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<JDictSelectTag placeholder="评课人所在单位" v-model:value="queryParam.szdw" :dictCode="`tkrszdw_view,college,college`" @change="loadData"/>
|
<JDictSelectTag placeholder="评课人所在单位" v-model:value="queryParam.szdw" :dictCode="`tkrszdw_view,college,college`" @change="loadData"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="6">
|
<a-col :span="5">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" @change="loadData"/>
|
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" @change="loadData"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="6">
|
<a-col :span="5">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<JDictSelectTag placeholder="开课单位" v-model:value="queryParam.kkdw" :dictCode="`kc_kkdw_view,kkdw,kkdw`" @change="loadData"/>
|
<JDictSelectTag placeholder="开课单位" v-model:value="queryParam.kkdw" :dictCode="`kc_kkdw_view,kkdw,kkdw`" @change="loadData"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
<a-col :span="4">
|
||||||
|
<a-form-item label="" style="padding: 10px;">
|
||||||
|
<a-select
|
||||||
|
ref="select"
|
||||||
|
v-model:value="queryParam.djz"
|
||||||
|
style="width: 120px"
|
||||||
|
@change="loadData"
|
||||||
|
>
|
||||||
|
<a-select-option :value="item.bxqkssj" v-for="(item,index) in djzData">{{item.flag1}}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
|
@ -43,20 +55,42 @@ import { defHttp } from '/@/utils/http/axios';
|
||||||
|
|
||||||
const barMultiData = reactive<any>([]);
|
const barMultiData = reactive<any>([]);
|
||||||
const queryParam = ref<any>({});
|
const queryParam = ref<any>({});
|
||||||
|
const djzData = reactive<any>([]);
|
||||||
const list = (queryParam) => defHttp.get({ url: '/qa/kcEvaluation/getPkztjTjt', params:queryParam });
|
const list = (queryParam) => defHttp.get({ url: '/qa/kcEvaluation/getPkztjTjt', params:queryParam });
|
||||||
|
const listDjz = (queryParam) => defHttp.get({ url: '/kcSysConfig/kcSysConfig/getDjz', params:queryParam });
|
||||||
|
|
||||||
//进入就加载
|
//进入就加载
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const format = 'yyyy-MM-dd';
|
// const format = 'yyyy-MM-dd';
|
||||||
const startTime = new Date();
|
// const startTime = new Date();
|
||||||
startTime.setTime(startTime.getTime()-60000*60*24*7)
|
// startTime.setTime(startTime.getTime()-60000*60*24*7)
|
||||||
queryParam.value.startTime = dateFormat(startTime, format)
|
// queryParam.value.startTime = dateFormat(startTime, format)
|
||||||
queryParam.value.endTime = dateFormat(new Date(), format)
|
// queryParam.value.endTime = dateFormat(new Date(), format)
|
||||||
|
// loadData()
|
||||||
|
|
||||||
|
listDjz({}).then(res=>{
|
||||||
|
console.log(`🚀 ~ file: tkztj.vue:59 ~ list ~ res:`, res)
|
||||||
|
var list = res
|
||||||
|
var kssj = "";
|
||||||
|
for(var i=0;i<list.length;i++){
|
||||||
|
var dqsj = list[i].bxqkssj+","+list[i].bxqjssj
|
||||||
|
djzData.push({bxqkssj:dqsj,flag1:list[i].flag1})
|
||||||
|
if(list[i].flag2 == '1'){
|
||||||
|
kssj = dqsj
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(`🚀 ~ file: tkztj.vue:81 ~ listDjz ~ kssj:`, kssj)
|
||||||
|
queryParam.value.djz = kssj
|
||||||
loadData()
|
loadData()
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
function loadData(){
|
function loadData(){
|
||||||
barMultiData.length = 0
|
barMultiData.length = 0
|
||||||
|
var dqsj = queryParam.value.djz
|
||||||
|
var sjjh = dqsj.split(",");
|
||||||
|
queryParam.value.startTime = sjjh[0]
|
||||||
|
queryParam.value.endTime = sjjh[1]
|
||||||
list(queryParam.value).then(res=>{
|
list(queryParam.value).then(res=>{
|
||||||
console.log(`🚀 ~ file: tkztj.vue:59 ~ list ~ res:`, res)
|
console.log(`🚀 ~ file: tkztj.vue:59 ~ list ~ res:`, res)
|
||||||
var list = res
|
var list = res
|
||||||
|
|
|
@ -90,13 +90,9 @@ const listDjz = (queryParam) => defHttp.get({ url: '/kcSysConfig/kcSysConfig/get
|
||||||
barMultiData.length = 0
|
barMultiData.length = 0
|
||||||
|
|
||||||
var dqsj = queryParam.value.djz
|
var dqsj = queryParam.value.djz
|
||||||
console.log(`🚀 ~ file: tkztj.vue:93 ~ loadData ~ dqsj:`, dqsj)
|
|
||||||
var sjjh = dqsj.split(",");
|
var sjjh = dqsj.split(",");
|
||||||
console.log(`🚀 ~ file: tkztj.vue:95 ~ loadData ~ sjjh:`, sjjh)
|
|
||||||
|
|
||||||
queryParam.value.startTime = sjjh[0]
|
queryParam.value.startTime = sjjh[0]
|
||||||
queryParam.value.endTime = sjjh[1]
|
queryParam.value.endTime = sjjh[1]
|
||||||
console.log(`🚀 ~ file: tkztj.vue:97 ~ loadData ~ queryParam.value:`, queryParam.value)
|
|
||||||
|
|
||||||
list(queryParam.value).then(res=>{
|
list(queryParam.value).then(res=>{
|
||||||
console.log(`🚀 ~ file: tkztj.vue:59 ~ list ~ res:`, res)
|
console.log(`🚀 ~ file: tkztj.vue:59 ~ list ~ res:`, res)
|
||||||
|
|
|
@ -0,0 +1,341 @@
|
||||||
|
<template>
|
||||||
|
<div id="siteMain">
|
||||||
|
<div id="maxSite">
|
||||||
|
<a-layout v-show="isAdd">
|
||||||
|
<!-- 页头 -->
|
||||||
|
<headerPage/>
|
||||||
|
<!-- 主体部分 -->
|
||||||
|
<a-layout-content>
|
||||||
|
<a-card>
|
||||||
|
<template #title>
|
||||||
|
<div style="text-align: center; font-size: 24px;font-weight: bold;">
|
||||||
|
<!-- 听课足迹{{ $route.query.ktId }}-{{ $route.query.type }} -->
|
||||||
|
<span v-if="$route.query.type == '4'">东北师范大学本科课堂教学质量评价表(同行专家用)</span>
|
||||||
|
<span v-else-if="$route.query.type == '3'">东北师范大学听课记录表</span>
|
||||||
|
<span v-else-if="$route.query.type == '2'">线上教学课堂看课、听课评价表</span>
|
||||||
|
</div>
|
||||||
|
<div style="text-align: center; font-size: 16px;font-weight: bold;font-weight: 400;line-height: 1;color: #777;">
|
||||||
|
<!-- 学院名,课程名,授课教师 -->
|
||||||
|
{{ form.kcmc }}-{{ form.kkdw }}-{{ form.skjs }}
|
||||||
|
<div style="padding: 0.5rem;">
|
||||||
|
{{ form.skrq }}-{{ form.hh }}-{{ form.skdd }}
|
||||||
|
</div>
|
||||||
|
<!-- kcmc,kkdw,skjs -->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<div style="text-align: left;font-size: 1rem;font-weight: 700;margin: 1rem;">
|
||||||
|
<span v-if="$route.query.type == '4'">该评价表是专门为该课程方面的专家/教师听课研制的评价表,更能反映该课堂的教学质量。</span>
|
||||||
|
<span v-else-if="$route.query.type == '3'">该评价表是方便行政人员和非该课程所属学科的教师听课使用的评价表,主要用来反映课堂教学的整体情况。</span>
|
||||||
|
<span v-else-if="$route.query.type == '2'"> 该评价表是根据线上课堂的特点研制的,如果您听的是线上课堂,请您填写该评价表;如果您同时是该课程所属学科的专家/教师,也欢迎您同时填写《同行评价表》。</span>
|
||||||
|
</div>
|
||||||
|
<div style="font-weight: 600;padding: 20px;">
|
||||||
|
<a-row>
|
||||||
|
<a-col :span="8">教师姓名:<a-input v-model:value="userInfo.upuser" placeholder="请填写教师姓名/学生姓名" style="width:200px"></a-input></a-col>
|
||||||
|
<a-col :span="8">教师工号:<a-input v-model:value="userInfo.upuserid" placeholder="请填写教师工号/学号" style="width:200px"></a-input></a-col>
|
||||||
|
<a-col :span="8">填写时间:<a-date-picker show-time placeholder="请选择填写时间" valueFormat="YYYY-MM-DD HH:mm:ss" @change="onChange" v-model:value="userInfo.upTimestamp"/></a-col>
|
||||||
|
</a-row>
|
||||||
|
</div>
|
||||||
|
<div style="padding: 0 15rem;font-weight: 700;">
|
||||||
|
<a-row :gutter="[16,16]">
|
||||||
|
<a-col :span="24" v-for="(item,index) in list" :key="index">
|
||||||
|
<template v-if="item.isrequire != 0"><span style="color:red;">*</span></template>
|
||||||
|
{{ index + 1 }}.{{ item.content }}
|
||||||
|
<a-row>
|
||||||
|
<template v-if="item.quetype == 3">
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-textarea v-model:value="selectedMap[item.id]"></a-textarea>
|
||||||
|
</a-col>
|
||||||
|
</template>
|
||||||
|
<template v-else-if="item.quetype == 1">
|
||||||
|
<a-radio-group v-model:value="selectedMap[item.id]">
|
||||||
|
<a-col :span="24" v-for="(ans,ansIndex) in item.list" :key="ansIndex">
|
||||||
|
<a-radio :value="ans.id">
|
||||||
|
({{ ansIndex + 1 }}){{ ans.content }}
|
||||||
|
</a-radio>
|
||||||
|
</a-col>
|
||||||
|
</a-radio-group>
|
||||||
|
</template>
|
||||||
|
<template v-else-if="item.quetype == 2">
|
||||||
|
<a-checkbox-group v-model:value="selectedMap[item.id]">
|
||||||
|
<a-col :span="24" v-for="(ans,ansIndex) in item.list" :key="ansIndex">
|
||||||
|
<a-checkbox :value="ans.id">
|
||||||
|
({{ ansIndex + 1 }}){{ ans.content }}
|
||||||
|
</a-checkbox>
|
||||||
|
</a-col>
|
||||||
|
</a-checkbox-group>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- <a-col :span="24" v-for="(ans,ansIndex) in item.list" :key="ansIndex">
|
||||||
|
<template v-if="item.quetype == 1">
|
||||||
|
单选
|
||||||
|
</template>
|
||||||
|
<template v-if="item.quetype == 2">
|
||||||
|
多选
|
||||||
|
</template>
|
||||||
|
({{ ansIndex + 1 }}){{ ans.content }}
|
||||||
|
</a-col> -->
|
||||||
|
</a-row>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</div>
|
||||||
|
<div style="text-align: center;padding-top: 1rem;">
|
||||||
|
<a-button type="primary" style="margin-right: 1rem;" :loading="confirmLoading">取消</a-button>
|
||||||
|
<a-button type="primary" @click="save" :loading="confirmLoading">提交</a-button>
|
||||||
|
</div>
|
||||||
|
<!-- <div>
|
||||||
|
{{ selectedMap }}
|
||||||
|
</div> -->
|
||||||
|
<!--<div style="border:#777;">
|
||||||
|
{{ list }}
|
||||||
|
</div> -->
|
||||||
|
</a-card>
|
||||||
|
</a-layout-content>
|
||||||
|
<!-- 页尾 -->
|
||||||
|
<footerPage/>
|
||||||
|
</a-layout>
|
||||||
|
<div v-show="!isAdd">
|
||||||
|
<div style="text-align: center;height: calc(100vh);">
|
||||||
|
<div style="padding: 5rem;font-size: 1.1rem;" class="wenZiJiaCu">
|
||||||
|
<p>
|
||||||
|
提交成功
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
您的评价对于我们很重要,感谢您的参与。
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
您可以<span @click="closeFun">关闭本页</span>,或点击下方按钮打开主页
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a-button type="primary" :loading="confirmLoading"><RouterLink to="/site/index">返回首页</RouterLink></a-button>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</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 { defHttp } from '/@/utils/http/axios';
|
||||||
|
import { useRoute } from 'vue-router'
|
||||||
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
|
import { getUserId } from '/@/views/site/utils';
|
||||||
|
import { Dayjs } from 'dayjs';
|
||||||
|
|
||||||
|
enum Api {
|
||||||
|
queryById = '/ktgl/kcKetangbiao/queryById',
|
||||||
|
que = '/qa/kcEvaluationque/list',
|
||||||
|
ans = '/qa/kcEvaluationans/list',
|
||||||
|
save = '/qa/kcEvaluation/addQaAll',
|
||||||
|
}
|
||||||
|
|
||||||
|
const form = ref<any>({});
|
||||||
|
const list = ref<any>([]);
|
||||||
|
const selectedMap = ref<any>({});
|
||||||
|
const userInfo = ref<any>({});
|
||||||
|
|
||||||
|
const confirmLoading = ref<boolean>(false);
|
||||||
|
const isAdd = ref<boolean>(true);
|
||||||
|
const { createMessage } = useMessage();
|
||||||
|
|
||||||
|
const route = useRoute();
|
||||||
|
onMounted(() => {
|
||||||
|
console.log( route.query );
|
||||||
|
let params = { pageSize: -1, status: 0, column: 'ordernum', order: 'asc' }
|
||||||
|
let queryQue = defHttp.get({ url: Api.que, params: { ...params, evaluationver: route.query.type } });
|
||||||
|
let queryAns = defHttp.get({ url: Api.ans, params });
|
||||||
|
|
||||||
|
Promise.all([queryQue,queryAns]).then(([resQue, resAns]) => {
|
||||||
|
let queList = resQue?.records;
|
||||||
|
let ansList = resAns?.records;
|
||||||
|
let queMap = {}
|
||||||
|
queList.forEach(x => {
|
||||||
|
// x.list = [];
|
||||||
|
queMap[x.id] = x;
|
||||||
|
selectedMap.value[x.id] = '';
|
||||||
|
});
|
||||||
|
ansList.forEach(x => {
|
||||||
|
let data = queMap[x.queid];
|
||||||
|
if(data){
|
||||||
|
let list = data.list;
|
||||||
|
if(!list){
|
||||||
|
list = [];
|
||||||
|
queMap[x.queid].list = list;
|
||||||
|
}
|
||||||
|
list.push(x);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
list.value = queList;
|
||||||
|
});
|
||||||
|
defHttp.get({ url: Api.queryById, params: { id: route.query.ktId } }).then(res => {
|
||||||
|
form.value = res;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function closeFun(){
|
||||||
|
window.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
function genAns(x,data,isArray): Array<Object> {
|
||||||
|
let textanscontent,ansid,queid,upuserid,ketangbiaoid;
|
||||||
|
if(isArray){
|
||||||
|
let rList = Array<Object>();
|
||||||
|
data.forEach(x2 => {
|
||||||
|
rList.push(...genAns(x,x2,false))
|
||||||
|
})
|
||||||
|
return rList;
|
||||||
|
}else{
|
||||||
|
queid = x.id;
|
||||||
|
ansid = data;
|
||||||
|
if(x.quetype == 3){
|
||||||
|
textanscontent = data;
|
||||||
|
ansid = 0;
|
||||||
|
}
|
||||||
|
upuserid = getUserId();
|
||||||
|
ketangbiaoid = route.query.ktId;
|
||||||
|
return [{ textanscontent,ansid,queid,upuserid,ketangbiaoid }];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const onChange = (value: Dayjs, dateString: string) => {
|
||||||
|
console.log('Selected Time: ', value);
|
||||||
|
console.log('Formatted Selected Time: ', dateString);
|
||||||
|
};
|
||||||
|
|
||||||
|
function save() {
|
||||||
|
confirmLoading.value = true;
|
||||||
|
console.log('selectedMap ->',selectedMap);
|
||||||
|
let $selectedMap = Object.assign({},selectedMap.value);
|
||||||
|
console.log(`🚀 ~ file: qaShoudongAdd.vue:274 ~ save ~ userInfo:`, userInfo.value.upuserid)
|
||||||
|
let formData = {
|
||||||
|
evaluationver: route.query.type,
|
||||||
|
upuserid: userInfo.value.upuserid,
|
||||||
|
upuser: userInfo.value.upuser,
|
||||||
|
upTimestamp:userInfo.value.upTimestamp,
|
||||||
|
minkcid: route.query.ktId,
|
||||||
|
ansList: Array<Object>()
|
||||||
|
};
|
||||||
|
console.log(`🚀 ~ file: qaShoudongAdd.vue:213 ~ save ~ formData:`, formData)
|
||||||
|
//验证
|
||||||
|
let errorMsg = '';
|
||||||
|
list.value.forEach(x => {
|
||||||
|
if(x.isrequire != 0){
|
||||||
|
let data = $selectedMap[x.id];
|
||||||
|
if(data){
|
||||||
|
if(Array.isArray(data)){
|
||||||
|
if(!data.length){
|
||||||
|
errorMsg = '有必填选项未填写,请检查后重新提交。';
|
||||||
|
}else{
|
||||||
|
formData.ansList.push(...genAns(x,data,true))
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
formData.ansList.push(...genAns(x,data,false))
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
// errorMsg = '有必填选项未填写,请检查后重新提交。'+x.id+'-'+x.content + data;
|
||||||
|
errorMsg = '有必填选项未填写,请检查后重新提交。';
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
//非必填收集数据
|
||||||
|
let data = $selectedMap[x.id];
|
||||||
|
if(data){
|
||||||
|
if(Array.isArray(data)){
|
||||||
|
if(data.length){
|
||||||
|
formData.ansList.push(...genAns(x,data,true))
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
formData.ansList.push(...genAns(x,data,false))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(errorMsg){
|
||||||
|
confirmLoading.value = false
|
||||||
|
createMessage.warning(errorMsg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//保存
|
||||||
|
defHttp.post({ url: Api.save, params: formData }, { isTransformResponse: false })
|
||||||
|
.then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
createMessage.success(res.message);
|
||||||
|
// emit('ok');
|
||||||
|
isAdd.value = false;
|
||||||
|
} else {
|
||||||
|
createMessage.warning(res.message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
confirmLoading.value = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// setTimeout(() => {
|
||||||
|
// confirmLoading.value = false
|
||||||
|
// },5000)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.wenZiJiaCu {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color: #337ab7;
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue