Commit 28614cd6 by peijy

11.10 修改测试问题

parent 0d6babba
# NODE_ENV='development' NODE_ENV='development'
# VUE_APP_MODE='development' VUE_APP_MODE='development'
# VUE_APP_API_URL='/abc' VUE_APP_API_URL='/wx_api'
# NODE_ENV='production' NODE_ENV='production'
# VUE_APP_MODE='production' VUE_APP_MODE='production'
# VUE_APP_API_URL='/wx_api' //上线nginx所在地址(处理跨域问题) VUE_APP_API_URL='/wx_api' //上线nginx所在地址(处理跨域问题)
...@@ -23,7 +23,6 @@ declare module '@vue/runtime-core' { ...@@ -23,7 +23,6 @@ declare module '@vue/runtime-core' {
VanCollapseItem: typeof import('vant/es')['CollapseItem'] VanCollapseItem: typeof import('vant/es')['CollapseItem']
VanConfigProvider: typeof import('vant/es')['ConfigProvider'] VanConfigProvider: typeof import('vant/es')['ConfigProvider']
VanDatetimePicker: typeof import('vant/es')['DatetimePicker'] VanDatetimePicker: typeof import('vant/es')['DatetimePicker']
VanDialog: typeof import('vant/es')['Dialog']
VanDropdownItem: typeof import('vant/es')['DropdownItem'] VanDropdownItem: typeof import('vant/es')['DropdownItem']
VanDropdownMenu: typeof import('vant/es')['DropdownMenu'] VanDropdownMenu: typeof import('vant/es')['DropdownMenu']
VanEmpty: typeof import('vant/es')['Empty'] VanEmpty: typeof import('vant/es')['Empty']
......
...@@ -27,7 +27,6 @@ const store = useStore() ...@@ -27,7 +27,6 @@ const store = useStore()
const emits = defineEmits(['select']) const emits = defineEmits(['select'])
//学年学期选择器 //学年学期选择器
const schoolYearResult = ref(''); const schoolYearResult = ref('');
console.log('schoolYearResult',schoolYearResult.value)
const showPicker = ref(false); const showPicker = ref(false);
const onConfirm = (value) => { const onConfirm = (value) => {
...@@ -39,15 +38,15 @@ const onConfirm = (value) => { ...@@ -39,15 +38,15 @@ const onConfirm = (value) => {
}; };
const columns = ref([]); const columns = ref([]);
onMounted(async () => { onMounted(async () => {
const data = { // const data = {
userId:store.state.userInfo.userId // userId:store.state.userInfo.userId
} // }
console.log('data',data) // console.log('data',data)
let schoolYear = await getSchoolYear(data); let schoolYear = await getSchoolYear();
console.log('schoolYear',schoolYear); console.log('schoolYear',schoolYear);
if(schoolYear.code == 200){ if(schoolYear.code == 200){
const schoolYearColumns =schoolYear.data.map(item => { const schoolYearColumns =schoolYear.data.map(item => {
return item.gradeYear return item
}) })
console.log('schoolYearColumns',schoolYearColumns) console.log('schoolYearColumns',schoolYearColumns)
columns.value = [{values:schoolYearColumns},{values: ['上学期', '下学期'],}] columns.value = [{values:schoolYearColumns},{values: ['上学期', '下学期'],}]
...@@ -55,8 +54,10 @@ onMounted(async () => { ...@@ -55,8 +54,10 @@ onMounted(async () => {
let result = await getNewSchoolYear(); let result = await getNewSchoolYear();
console.log('result1',result) console.log('result1',result)
if(result.code == 200){ if(result.code == 200){
// schoolYearResult.value = [result.schoolYear,columns[1].values[result.semester-1]] // schoolYearResult.value = [result.schoolYear,columns[1].values[result.semester-1]]
schoolYearResult.value = result.schoolYear + '-' + columns.value[1].values[result.semester-1] schoolYearResult.value = result.schoolYear + '-' + columns.value[1].values[result.semester-1]
console.log('schoolYearResult.value',schoolYearResult.value)
const value = [result.schoolYear,result.semester] const value = [result.schoolYear,result.semester]
emits("select",value) emits("select",value)
console.log('emits',value) console.log('emits',value)
......
...@@ -51,7 +51,9 @@ export function getTeacherLabList(data){ ...@@ -51,7 +51,9 @@ export function getTeacherLabList(data){
/********************** 实验室管理员 *******************/ /********************** 实验室管理员 *******************/
//查询实验室列表 //查询实验室列表
export function getLabList(data){ export function getLabList(data){
return axios.get('/wx/schoolLab/list') return axios.get('/wx/schoolLab/list',{
params:data
})
}; };
//1.年纪实验室预约 //1.年纪实验室预约
//年级实验室预约分配列表 //年级实验室预约分配列表
......
...@@ -56,6 +56,10 @@ export function returnEquipment(data) { ...@@ -56,6 +56,10 @@ export function returnEquipment(data) {
); );
} }
//物品归还详情
export function getDeatil(id){
return axios.get(`/wx/equipment/getReturningEquipmentById/${id}`)
}
/********** 物品领用 ***********/ /********** 物品领用 ***********/
//领用列表 //领用列表
......
...@@ -34,7 +34,8 @@ onMounted(() => { ...@@ -34,7 +34,8 @@ onMounted(() => {
// 获取code // 获取code
const getCode = () => { const getCode = () => {
dd.getAuthCode({ dd.getAuthCode({
corpId: 'dingaa3937ff8b7dd267f2c783f7214b6d69', // corpId: 'dingaa3937ff8b7dd267f2c783f7214b6d69',
corpId: 'dingccea40788226c988f2c783f7214b6d69',
success: (res) => { success: (res) => {
console.log('获取新的免登码成功', res); console.log('获取新的免登码成功', res);
const code = res.code const code = res.code
...@@ -61,7 +62,8 @@ const getRoleType = async (code) => { ...@@ -61,7 +62,8 @@ const getRoleType = async (code) => {
typeResult.value = type.data typeResult.value = type.data
if (type.data.length == 1) { if (type.data.length == 1) {
dd.getAuthCode({ dd.getAuthCode({
corpId: 'dingaa3937ff8b7dd267f2c783f7214b6d69', // corpId: 'dingaa3937ff8b7dd267f2c783f7214b6d69',
corpId: 'dingccea40788226c988f2c783f7214b6d69',
success: (res) => { success: (res) => {
console.log('获取新的免登码成功', res); console.log('获取新的免登码成功', res);
const code = res.code const code = res.code
...@@ -111,7 +113,8 @@ const getgetToken = async (code, roleType) => { ...@@ -111,7 +113,8 @@ const getgetToken = async (code, roleType) => {
const confirmDialog = () => { const confirmDialog = () => {
console.log('确认',checked.value) console.log('确认',checked.value)
dd.getAuthCode({ dd.getAuthCode({
corpId: 'dingaa3937ff8b7dd267f2c783f7214b6d69', // corpId: 'dingaa3937ff8b7dd267f2c783f7214b6d69',
corpId: 'dingccea40788226c988f2c783f7214b6d69',
success: (res) => { success: (res) => {
console.log('获取新的免登码成功', res); console.log('获取新的免登码成功', res);
const code = res.code const code = res.code
......
...@@ -24,7 +24,8 @@ ...@@ -24,7 +24,8 @@
<div v-for="item in teacherList" :key="item.id"> <div v-for="item in teacherList" :key="item.id">
<div class="main_list_one"> <div class="main_list_one">
<div class="left"> <div class="left">
{{ item.teacherName + "(" + item.courseName + ")" }} {{ item.teacherName }}
<span v-if="item.courseName">({{item.courseName}})</span>
</div> </div>
<a :href="'tel:' + item.teacherTel" class="right">{{ <a :href="'tel:' + item.teacherTel" class="right">{{
item.teacherTel item.teacherTel
......
...@@ -26,12 +26,12 @@ ...@@ -26,12 +26,12 @@
name="sex" name="sex"
label="性别" label="性别"
/> />
<van-field <!-- <van-field-->
v-model="cardid" <!-- v-model="cardid"-->
name="cardid" <!-- name="cardid"-->
label="身份证号" <!-- label="身份证号"-->
/> <!-- />-->
<van-field <van-field
v-model="phone" v-model="phone"
...@@ -113,7 +113,7 @@ onMounted(async ()=>{ ...@@ -113,7 +113,7 @@ onMounted(async ()=>{
reason.value = result.data.reason reason.value = result.data.reason
status.value = result.data.status status.value = result.data.status
phone.value = result.data.phone phone.value = result.data.phone
cardid.value = result.data.cardid // cardid.value = result.data.cardid
} }
console.log('result',result) console.log('result',result)
}) })
......
...@@ -16,11 +16,25 @@ ...@@ -16,11 +16,25 @@
</div> </div>
<div class="clubContent"> <div class="clubContent">
<div> <div>
<p class="title">社团宗旨</p> <div style="display:flex;justify-content: center;margin-top: 30px">
<p class="content">{{aim}}</p> <div class="pxh"></div>
<div class="pxht"></div>
<p class="title">社团宗旨</p>
<div class="pxh"></div>
<div class="pxht"></div>
</div>
<p class="aim">{{aim}}</p>
</div> </div>
<div> <div>
<p class="title">社团简介</p> <div style="display:flex;justify-content: center;margin-top: 30px">
<div class="pxh"></div>
<div class="pxh"></div>
<p class="title">社团简介</p>
<div class="pxh"></div>
<div class="pxh"></div>
</div>
<p class="content">{{ intro }}</p> <p class="content">{{ intro }}</p>
</div> </div>
</div> </div>
...@@ -35,9 +49,11 @@ import {useStore} from "vuex"; ...@@ -35,9 +49,11 @@ import {useStore} from "vuex";
import {useRouter,useRoute} from "vue-router"; import {useRouter,useRoute} from "vue-router";
const router = useRouter() const router = useRouter()
const route = useRoute() const route = useRoute()
const baseUrl = process.env.VUE_APP_API_URL
const content = ref() const content = ref()
const aim = ref('') const aim = ref('')
const intro = ref('') const intro = ref('')
const href = window.location.origin
onMounted( async () => { onMounted( async () => {
let result = await getClubDetail(route.query.id) let result = await getClubDetail(route.query.id)
console.log('result',result) console.log('result',result)
...@@ -46,7 +62,7 @@ onMounted( async () => { ...@@ -46,7 +62,7 @@ onMounted( async () => {
intro.value = result.data.intro intro.value = result.data.intro
if(result.data.imgs){ if(result.data.imgs){
content.value = result.data.imgs.split(',').map(item => { content.value = result.data.imgs.split(',').map(item => {
return item.replace('dev-api','wx_api') return baseUrl + item
}) })
} }
...@@ -81,10 +97,72 @@ const goback = () => { ...@@ -81,10 +97,72 @@ const goback = () => {
/*background-color: #39a9ed;*/ /*background-color: #39a9ed;*/
} }
.title{ .title{
font-size: 14px; text-align: center;
height: 0.56rem;
font-family: PingFang SC;
font-weight: 700;
color: #000000;
font-size: 0.45rem;
margin: 0 0.26667rem;
}
.aim{
font-family: Slideqiuhong !important;
color: rgb(111, 120, 125);
margin: 10px 0px 15px;
font-size: 20px;
display: flex;
align-items: center;
justify-content: center;
} }
.content{ .content{
font-size: 12px; background: rgb(245, 247, 247);
padding: 0px 15px 15px;
font-family: "PingFang SC";
color: rgb(111, 120, 125);
font-size: 14px;
line-height: 26px;
margin-top: 12px;
}
.pxh{
position: relative;
text-align: center;
width: 0.16rem;
height: 0.148rem;
line-height: 0.148rem;
}
.pxh:before{
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
content: "";
background: #39befe;
z-index: 10;
-webkit-transform: skewX(-45deg);
-ms-transform: skewX(-45deg);
transform: skewX(-45deg);
}
.pxht{
position: relative;
text-align: center;
width: 0.16rem;
height: 0.148rem;
line-height: 0.148rem;
margin-left: 0.05333rem;
}
.pxht:before{
position: absolute;
opacity: 30%;
top: 0;
left: 0;
bottom: 0;
right: 0;
content: "";
background: #39befe;
z-index: 10;
-webkit-transform: skewX(-45deg);
-ms-transform: skewX(-45deg);
transform: skewX(-45deg);
} }
</style> </style>
...@@ -11,13 +11,21 @@ ...@@ -11,13 +11,21 @@
<div class="clubItem" v-for="item in list" :key="item.id"> <div class="clubItem" v-for="item in list" :key="item.id">
<div style="position: relative;width: 100%;height: 100%" @click="toDetail(item.id,item.name)" > <div style="position: relative;width: 100%;height: 100%" @click="toDetail(item.id,item.name)" >
<div class="image"> <div class="image">
<!-- <van-image-->
<!-- fit="fill"-->
<!-- position="center"-->
<!-- width="100%"-->
<!-- height="100%"-->
<!-- radius="10"-->
<!-- :src="item.imgs == null ? '':item.imgs.split(',')[0].replace('dev-api','wx_api')"-->
<!-- />-->
<van-image <van-image
fit="fill" fit="fill"
position="center" position="center"
width="100%" width="100%"
height="100%" height="100%"
radius="10" radius="10"
:src="item.imgs == null ? '':item.imgs.split(',')[0].replace('dev-api','wx_api')" :src="item.imgs == null ? '': baseUrl +item.imgs.split(',')[0]"
/> />
</div> </div>
<div class="clubName">{{ item.name }}</div> <div class="clubName">{{ item.name }}</div>
...@@ -37,15 +45,19 @@ import {getClubInfo} from '@/service/schoolClub' ...@@ -37,15 +45,19 @@ import {getClubInfo} from '@/service/schoolClub'
import {onMounted, ref} from "vue"; import {onMounted, ref} from "vue";
import {useRouter} from "vue-router"; import {useRouter} from "vue-router";
import {Toast} from "vant"; import {Toast} from "vant";
const router = useRouter() const router = useRouter()
const baseUrl = process.env.VUE_APP_API_URL
const list = ref([]); const list = ref([]);
const loading = ref(false); const loading = ref(false);
const finished = ref(false); const finished = ref(false);
const refreshing = ref(false); const refreshing = ref(false);
const src = ref() const src = ref()
const imgArr = ref([]) const imgArr = ref([])
onMounted(async () => { const href = window.location.origin
onMounted(async () => {
console.log('baseUrl',baseUrl)
}) })
const onLoad = async () => { const onLoad = async () => {
if (refreshing.value) { if (refreshing.value) {
...@@ -59,6 +71,9 @@ const onLoad = async () => { ...@@ -59,6 +71,9 @@ const onLoad = async () => {
loading.value = false; loading.value = false;
list.value = result.data list.value = result.data
// imgArr.value = result.data.map(item => item.imgs) // imgArr.value = result.data.map(item => item.imgs)
// list.imgs = result.data.imgs.map(item => {
// item.split(',')[0]
// })
imgArr.value = result.data.imgs imgArr.value = result.data.imgs
finished.value = true finished.value = true
}else { }else {
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div> <div>
<div class="main"> <div class="main">
<div style="margin: 16px;float: right"> <div style="margin: 16px;float: right">
<van-button style="height: 30px;width: 100px;" @click="checkGrade" round type="primary" native-type="submit"> <van-button style="height: 30px;width: 120px;" @click="checkGrade" round type="primary" native-type="submit">
成绩查看 成绩查看
</van-button> </van-button>
</div> </div>
...@@ -751,6 +751,7 @@ import { ...@@ -751,6 +751,7 @@ import {
getDicts, //获取数据字典 getDicts, //获取数据字典
getStudentInfo,//学生选课信息查询 getStudentInfo,//学生选课信息查询
saveSelectInfo,//保存选课信息 saveSelectInfo,//保存选课信息
getPersonGrade, //获取个人成绩
} from "@/service/studentCourseSelection"; } from "@/service/studentCourseSelection";
const router = useRouter(); const router = useRouter();
...@@ -904,13 +905,26 @@ onMounted(async () => { ...@@ -904,13 +905,26 @@ onMounted(async () => {
}); });
//成绩查看按钮 //成绩查看按钮
const checkGrade = () => { const checkGrade = async () => {
router.push({ let gradeResult = await getPersonGrade(store.state.userInfo.studentId)
path: "/totalScoreView", console.log('gradeResult',gradeResult)
query: { if(gradeResult.code == 200){
id: store.state.userInfo.studentId if(gradeResult.data.length > 0){
router.push({
path: "/totalScoreView",
query: {
data: gradeResult.data
}
})
}else{
Toast('暂无成绩')
} }
}) }else{
Toast('信息获取失败')
}
}; };
const subjectColumn = ref([]) const subjectColumn = ref([])
const params = reactive({ const params = reactive({
...@@ -933,9 +947,16 @@ const toSubjectGrade = async (name, value) => { ...@@ -933,9 +947,16 @@ const toSubjectGrade = async (name, value) => {
let result = await getSelectGrade(data) let result = await getSelectGrade(data)
console.log('result66', result) console.log('result66', result)
if (result.code == 200) { if (result.code == 200) {
subjectColumn.value = result.data if( result.data.length > 0){
subjectColumn.value = result.data
isShowDialog.show = true;
}else{
Toast("暂无成绩!");
}
}else{
Toast("信息获取失败!");
} }
isShowDialog.show = true;
// router.replace({ // router.replace({
// path: "/subjectAchievement", // path: "/subjectAchievement",
// query: { // query: {
......
...@@ -87,11 +87,11 @@ const isCollaps = (item, num) => { ...@@ -87,11 +87,11 @@ const isCollaps = (item, num) => {
item.isShow = true item.isShow = true
}; };
onMounted(async () => { onMounted(async () => {
console.log('query.id', query.id) console.log('query.data', query.data)
let result = await getPersonGrade(query.id) // let result = await getPersonGrade(query.id)
console.log('result', result) // console.log('result', result)
if (result.code == 200) { // if (result.code == 200) {
column.value = result.data.map(item => { column.value = query.data.map(item => {
return { return {
totalScore: item.totalScore, //总成绩 totalScore: item.totalScore, //总成绩
ranking: item.ranking, //总成绩年纪排名 ranking: item.ranking, //总成绩年纪排名
...@@ -117,7 +117,7 @@ onMounted(async () => { ...@@ -117,7 +117,7 @@ onMounted(async () => {
} }
}) })
console.log('column', column.value) console.log('column', column.value)
} // }
}) })
const goback = (g) => { const goback = (g) => {
router.back() router.back()
......
...@@ -116,15 +116,14 @@ ...@@ -116,15 +116,14 @@
</van-collapse> </van-collapse>
<div class="main_one_betn"> <div class="main_one_betn">
<!-- 多组 例如 第一个孩子、第二个孩子的信息 --> <!-- 多组 例如 第一个孩子、第二个孩子的信息 -->
<van-button <!-- <van-button-->
class="main_one_btn_item" <!-- class="main_one_btn_item"-->
plain <!-- plain-->
round <!-- round-->
size="small" <!-- size="small"-->
type="primary" <!-- type="primary"-->
@click="showPopup" <!-- @click="showPopup"-->
>添加监护人 </van-button <!-- >添加监护人 </van-button>&nbsp;&nbsp;-->
>&nbsp;&nbsp;
<van-button <van-button
class="main_one_btn_item" class="main_one_btn_item"
round round
......
...@@ -434,10 +434,10 @@ ...@@ -434,10 +434,10 @@
<!--2023-08-24 新增实验室管理模块--> <!--2023-08-24 新增实验室管理模块-->
<!--2023-09-11 新增安全管理模块--> <!--2023-09-11 新增安全管理模块-->
<van-grid-item icon="photo-o" text="安全管理" url="#/safetyManagement"> <!-- <van-grid-item icon="photo-o" text="安全管理" url="#/safetyManagement">-->
<van-image style="width: 48px" :src="require('@/assets/index/dcwj.png')"/> <!-- <van-image style="width: 48px" :src="require('@/assets/index/dcwj.png')"/>-->
<span class="item_text">安全管理</span> <!-- <span class="item_text">安全管理</span>-->
</van-grid-item> <!-- </van-grid-item>-->
<!--2023-09-11 新增安全管理模块--> <!--2023-09-11 新增安全管理模块-->
<!-- <van-grid-item icon="photo-o" text="我的领用" url=" #/myUse"> <!-- <van-grid-item icon="photo-o" text="我的领用" url=" #/myUse">
......
...@@ -9,11 +9,11 @@ ...@@ -9,11 +9,11 @@
<div class="main"> <div class="main">
<div class="main_search"> <div class="main_search">
<div class="main_search_2"> <div class="main_search_2">
<van-config-provider :theme-vars="themeVars"> <van-config-provider >
<van-dropdown-menu <van-dropdown-menu
class="main_search_2_cd" class="main_search_2_cd"
active-color="#1989fa" active-color="#1989fa"
overlay="false" overlay="overlay"
> >
<van-dropdown-item <van-dropdown-item
v-model="state.gradeId" v-model="state.gradeId"
...@@ -44,8 +44,8 @@ ...@@ -44,8 +44,8 @@
font-size: 14px; font-size: 14px;
position: unset; position: unset;
" "
center="false"
border="false" border="border"
title-class="gradeinfo_top" title-class="gradeinfo_top"
title="班 级" title="班 级"
:value="state.className" :value="state.className"
...@@ -61,8 +61,8 @@ ...@@ -61,8 +61,8 @@
font-size: 14px; font-size: 14px;
position: unset; position: unset;
" "
center="false"
border="false" border="border"
title-class="gradeinfo_top" title-class="gradeinfo_top"
title="年 级" title="年 级"
:value="state.gradeName" :value="state.gradeName"
...@@ -78,8 +78,8 @@ ...@@ -78,8 +78,8 @@
font-size: 14px; font-size: 14px;
position: unset; position: unset;
" "
center="false"
border="false" border="border"
title-class="gradeinfo_top" title-class="gradeinfo_top"
title="开始学年" title="开始学年"
:value="state.schoolYear" :value="state.schoolYear"
...@@ -95,8 +95,8 @@ ...@@ -95,8 +95,8 @@
font-size: 14px; font-size: 14px;
position: unset; position: unset;
" "
center="false"
border="false" border="border"
title-class="gradeinfo_top" title-class="gradeinfo_top"
title="所在教学楼" title="所在教学楼"
:value="state.houseName" :value="state.houseName"
...@@ -113,8 +113,8 @@ ...@@ -113,8 +113,8 @@
position: unset; position: unset;
" "
center="false"
border="false" border="border"
title-class="gradeinfo_top" title-class="gradeinfo_top"
title="别名" title="别名"
:value="state.gradeAlias" :value="state.gradeAlias"
...@@ -354,6 +354,8 @@ export default { ...@@ -354,6 +354,8 @@ export default {
}); });
const store = useStore(); const store = useStore();
console.log(store.state.imgUrl); console.log(store.state.imgUrl);
const overlay = ref(false);
const border = ref(false)
const imgUrl = ref(""); const imgUrl = ref("");
const list = ref([]); const list = ref([]);
const loading = ref(true); const loading = ref(true);
......
...@@ -109,58 +109,64 @@ const onLoad = async () => { ...@@ -109,58 +109,64 @@ const onLoad = async () => {
console.log(type) console.log(type)
//领导-实验室完成情况统计 //领导-实验室完成情况统计
title.value = '实验室完成情况' title.value = '实验室完成情况'
if(semester.value == '上学期' ||semester.value == '1'){ // if(semester.value == '上学期' ||semester.value == '1'){
semester.value = '1' // semester.value = '1'
}else{ // }else{
semester.value = '2' // semester.value = '2'
} // }
const params = { if(semester.value){
schoolYear: year.value, const params = {
semester: semester.value, schoolYear: year.value,
querText: applyName.value, semester: semester.value,
} querText: applyName.value,
console.log('params',params) }
let result = await getLabCompleteList(params) console.log('params',params)
console.log('result', result) let result = await getLabCompleteList(params)
if(result.code == 200){ console.log('result', result)
loading.value = false; if(result.code == 200){
list.value = result.data loading.value = false;
finished.value = true list.value = result.data
}else { finished.value = true
Toast("获取信息失败!"); }else {
finished.value = true; Toast("获取信息失败!");
loading.value = false; finished.value = true;
return; loading.value = false;
return;
}
} }
} }
if(type == 5){ if(type == 5){
console.log(type) console.log(type)
//实验室管理员-实验计划完成统计 //实验室管理员-实验计划完成统计
title.value = '实验计划完成统计' title.value = '实验计划完成统计'
if(semester.value == '上学期' ||semester.value == '1'){ // if(semester.value == '上学期' ||semester.value == '1'){
semester.value = '1' // semester.value = '1'
}else{ // }else{
semester.value = '2' // semester.value = '2'
} // }
const params = { if(semester.value){
schoolYear: year.value, const params = {
semester: semester.value, schoolYear: year.value,
querText: applyName.value semester: semester.value,
} querText: applyName.value
console.log('params',params) }
let result = await getlaboratoryList(params) console.log('params',params)
console.log('result', result) let result = await getlaboratoryList(params)
if(result.code == 200){ console.log('result', result)
loading.value = false; if(result.code == 200){
list.value = result.data loading.value = false;
finished.value = true list.value = result.data
}else { finished.value = true
Toast("获取信息失败!"); }else {
finished.value = true; Toast("获取信息失败!");
loading.value = false; finished.value = true;
return; loading.value = false;
return;
}
} }
} }
} }
......
...@@ -103,30 +103,33 @@ const onLoad = async () => { ...@@ -103,30 +103,33 @@ const onLoad = async () => {
refreshing.value = false; refreshing.value = false;
} }
console.log('semester.value',semester.value) console.log('semester.value',semester.value)
if(semester.value == '上学期' ||semester.value == '1' ){ // if(semester.value == '上学期' ||semester.value == '1' ){
semester.value = '1' // semester.value = '1'
}else{ // }else{
semester.value = '2' // semester.value = '2'
} // }
const params = { if(semester.value){
schoolYear: year.value, const params = {
semester: semester.value, schoolYear: year.value,
applyName: applyName.value semester: semester.value,
} applyName: applyName.value
console.log('params', params) }
//接口 console.log('params', params)
let result = await getTeacherLabList(params) //接口
console.log('result', result) let result = await getTeacherLabList(params)
if (result.code == 200) { console.log('result', result)
loading.value = false; if (result.code == 200) {
list.value = result.data loading.value = false;
finished.value = true list.value = result.data
} else { finished.value = true
Toast("获取信息失败!"); } else {
finished.value = true; Toast("获取信息失败!");
loading.value = false; finished.value = true;
return; loading.value = false;
return;
}
} }
} }
//下拉刷新 //下拉刷新
......
...@@ -34,7 +34,9 @@ ...@@ -34,7 +34,9 @@
<van-image v-if="item.sub == '1'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/physics.png')"></van-image> <van-image v-if="item.sub == '1'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/physics.png')"></van-image>
<van-image v-if="item.sub == '3'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/biology.png')"></van-image> <van-image v-if="item.sub == '3'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/biology.png')"></van-image>
<van-image v-if="item.sub == '2'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/chemistry.png')"></van-image> <van-image v-if="item.sub == '2'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/chemistry.png')"></van-image>
<span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{item.sub == '1' ? '物理' : item.sub == '2' ? '化学' : '生物'}}研究</span> <!-- <span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{ item.sub == '1' ? '物理' : item.sub == '2' ? '化学' : '生物'}}研究</span>-->
<span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{item.experimentName}}</span>
</div> </div>
<div class="subject"> <div class="subject">
<van-icon style="margin-right: 3px" name="bookmark-o" /> <van-icon style="margin-right: 3px" name="bookmark-o" />
...@@ -52,7 +54,7 @@ ...@@ -52,7 +54,7 @@
</div> </div>
<div class="room" > <div class="room" >
<van-icon style="margin-right: 3px" name="home-o" /> <van-icon style="margin-right: 3px" name="home-o" />
<span style="font-size: 14px;padding-left: 5px">{{ item.labName }}</span> <span style="font-size: 14px;padding-left: 5px">{{ item.schoolLabClassYearRelationList ? item.schoolLabClassYearRelationList.map(item => item.labName).toString() : '' }}</span>
</div> </div>
<div class="time"> <div class="time">
<van-icon style="margin-right: 3px" name="clock-o" /> <van-icon style="margin-right: 3px" name="clock-o" />
...@@ -130,30 +132,33 @@ const onLoad = async () => { ...@@ -130,30 +132,33 @@ const onLoad = async () => {
refreshing.value = false; refreshing.value = false;
} }
console.log('semester.value',semester.value) console.log('semester.value',semester.value)
if(semester.value == '上学期' ||semester.value == '1' ){ // if(semester.value == '上学期' ||semester.value == '1' ){
semester.value = '1' // semester.value = '1'
}else{ // }else{
semester.value = '2' // semester.value = '2'
} // }
const params = { if(semester.value){
schoolYear: year.value, const params = {
semester: semester.value, schoolYear: year.value,
userId:store.state.userInfo.userId semester: semester.value,
} userId:store.state.userInfo.userId
console.log('params',params) }
//接口 console.log('params',params)
let result = await getGradeApplyList(params) //接口
console.log('result',result) let result = await getGradeApplyList(params)
if(result.code == 200){ console.log('result',result)
loading.value = false; if(result.code == 200){
list.value = result.data loading.value = false;
finished.value = true list.value = result.data
}else{ finished.value = true
Toast("获取信息失败!"); }else{
finished.value = true; Toast("获取信息失败!");
loading.value = false; finished.value = true;
return; loading.value = false;
return;
}
} }
} }
//下拉刷新 //下拉刷新
const onRefresh = () => { const onRefresh = () => {
......
...@@ -96,30 +96,33 @@ const onLoad = async () => { ...@@ -96,30 +96,33 @@ const onLoad = async () => {
refreshing.value = false; refreshing.value = false;
} }
console.log('semester.value',semester.value) console.log('semester.value',semester.value)
if(semester.value == '上学期' ||semester.value == '1' ){ // if(semester.value == '上学期' ||semester.value == '1' ){
semester.value = '1' // semester.value = '1'
}else{ // }else{
semester.value = '2' // semester.value = '2'
} // }
const params = { if(semester.value){
schoolYear: year.value, const params = {
semester: semester.value, schoolYear: year.value,
gradeId:gradeId semester: semester.value,
} gradeId:gradeId
console.log('params',params) }
//接口 console.log('params',params)
let resultList = await getClassCompleteList(params) //接口
console.log('resultList',resultList) let resultList = await getClassCompleteList(params)
if(resultList.code == 200){ console.log('resultList',resultList)
loading.value = false; if(resultList.code == 200){
list.value = resultList.data loading.value = false;
finished.value = true list.value = resultList.data
}else{ finished.value = true
Toast("获取信息失败!"); }else{
finished.value = true; Toast("获取信息失败!");
loading.value = false; finished.value = true;
return; loading.value = false;
return;
}
} }
} }
//下拉刷新 //下拉刷新
......
...@@ -103,24 +103,24 @@ ...@@ -103,24 +103,24 @@
v-model="form.semester" v-model="form.semester"
label="学期" label="学期"
/> />
<van-field <!-- <van-field-->
v-model="form.labName" <!-- v-model="form.labName"-->
is-link <!-- is-link-->
readonly <!-- readonly-->
name="picker" <!-- name="picker"-->
label="实验室" <!-- label="实验室"-->
placeholder="选择实验室" <!-- placeholder="选择实验室"-->
@click="showPickerLab = true" <!-- @click="showPickerLab = true"-->
:rules="[{ required: true, message: '请选择实验室' }]" <!-- :rules="[{ required: true, message: '请选择实验室' }]"-->
/> <!-- />-->
<van-popup v-model:show="showPickerLab" position="bottom"> <!-- <van-popup v-model:show="showPickerLab" position="bottom">-->
<van-picker <!-- <van-picker-->
:columns="columnsLabName" <!-- :columns="columnsLabName"-->
@confirm="onConfirmLab" <!-- @confirm="onConfirmLab"-->
@cancel="showPickerLab = false" <!-- @cancel="showPickerLab = false"-->
/> <!-- />-->
</van-popup> <!-- </van-popup>-->
<van-field <van-field
v-model="form.plannedStartTime" v-model="form.plannedStartTime"
is-link is-link
...@@ -205,7 +205,7 @@ ...@@ -205,7 +205,7 @@
</div> </div>
<div v-else style="margin: 20px;display: flex;justify-content: center"> <div v-else style="margin: 20px;display: flex;justify-content: center">
<van-button style="margin-right: 50px;width: 90px;height: 30px" round type="primary" native-type="submit"> <van-button style="margin-right: 50px;width: 90px;height: 30px" round type="primary" native-type="submit">
同意 提交
</van-button> </van-button>
<van-button style="width: 90px;height: 30px" round type="success" @click="goback"> <van-button style="width: 90px;height: 30px" round type="success" @click="goback">
取消 取消
...@@ -260,17 +260,17 @@ onMounted(async () => { ...@@ -260,17 +260,17 @@ onMounted(async () => {
} }
console.log('columnsLab.value',columnsLab.value) console.log('columnsLab.value',columnsLab.value)
//实验室下拉框 //实验室下拉框
let labResult = await getLabList() // let labResult = await getLabList()
console.log('labResult',labResult) // console.log('labResult',labResult)
if(labResult.code == 200){ // if(labResult.code == 200){
columnsLabName.value = labResult.rows.map(item => { // columnsLabName.value = labResult.rows.map(item => {
return{ // return{
text:item.labName, // text:item.labName,
value:item.id // value:item.id
} // }
}) // })
console.log('columnsLabName.value',columnsLabName.value) // console.log('columnsLabName.value',columnsLabName.value)
} // }
if(type == '查看' ){ if(type == '查看' ){
title.value = '年级实验室预约查看' title.value = '年级实验室预约查看'
let result = await getApproveDetail(route.query.id) let result = await getApproveDetail(route.query.id)
...@@ -282,6 +282,7 @@ onMounted(async () => { ...@@ -282,6 +282,7 @@ onMounted(async () => {
form.semester = form.semester == '1' ? '上学期' : '下学期'; form.semester = form.semester == '1' ? '上学期' : '下学期';
form.experimentClassify = form.experimentClassify == '1' ? '分组实验': form.experimentClassify == '2' ? '演示实验' : '探究实验'; form.experimentClassify = form.experimentClassify == '1' ? '分组实验': form.experimentClassify == '2' ? '演示实验' : '探究实验';
form.planTime = result.data.plannedStartTime + '-' + result.data.plannedEndTime form.planTime = result.data.plannedStartTime + '-' + result.data.plannedEndTime
form.labName = result.data.schoolLabClassYearRelationList.map(item => item.labName).toString()
} }
} }
if(type == '修改'){ if(type == '修改'){
...@@ -328,6 +329,8 @@ const onConfirmLabName = async (value) => { ...@@ -328,6 +329,8 @@ const onConfirmLabName = async (value) => {
form.sub = form.sub == '1' ? '物理' : form.sub == '2' ? '化学' : '生物'; form.sub = form.sub == '1' ? '物理' : form.sub == '2' ? '化学' : '生物';
form.semester = form.semester == '1' ? '上学期' : '下学期'; form.semester = form.semester == '1' ? '上学期' : '下学期';
form.experimentClassify = form.experimentClassify == '1' ? '分组实验': form.experimentClassify == '2' ? '演示实验' : '探究实验'; form.experimentClassify = form.experimentClassify == '1' ? '分组实验': form.experimentClassify == '2' ? '演示实验' : '探究实验';
form.plannedStartTime = '';
form.plannedEndTime = '';
}; };
//实验室下拉选择 //实验室下拉选择
const labNameId = ref('') const labNameId = ref('')
...@@ -385,6 +388,7 @@ const onSubmit = async () => { ...@@ -385,6 +388,7 @@ const onSubmit = async () => {
if(type == '新增'){ if(type == '新增'){
const data = { const data = {
experimentName:form.experimentName,
experimentPlanId:form.id, experimentPlanId:form.id,
grade:form.grade, grade:form.grade,
gradeId:form.gradeId, gradeId:form.gradeId,
...@@ -412,6 +416,7 @@ const onSubmit = async () => { ...@@ -412,6 +416,7 @@ const onSubmit = async () => {
}else{ }else{
const data = { const data = {
id:route.query.id, id:route.query.id,
experimentName:form.experimentName,
experimentPlanId:form.id, experimentPlanId:form.id,
grade:form.grade, grade:form.grade,
gradeId:form.gradeId, gradeId:form.gradeId,
......
...@@ -106,32 +106,36 @@ const onLoad = async () => { ...@@ -106,32 +106,36 @@ const onLoad = async () => {
refreshing.value = false; refreshing.value = false;
} }
console.log('semester.value',semester.value) console.log('semester.value',semester.value)
if(semester.value == '上学期' ||semester.value == '1' ){ // if(semester.value == '上学期' ||semester.value == '1' ){
semester.value = '1' // semester.value = '1'
}else{ // }else{
semester.value = '2' // semester.value = '2'
} // }
const params = { if(semester.value){
schoolYear: year.value, const params = {
semester: semester.value, schoolYear: year.value,
grade:searchValue.value, semester: semester.value,
experimentName:searchValue.value grade:searchValue.value,
} experimentName:searchValue.value
console.log('params', params) }
console.log('params', params)
//接口
let result = await getLabDetail(params) //接口
console.log('result',result) let result = await getLabDetail(params)
if(result.code == 200){ console.log('result',result)
loading.value = false; if(result.code == 200){
list.value = result.data loading.value = false;
finished.value = true list.value = result.data
}else{ finished.value = true
Toast("获取信息失败!"); console.log('finished.value',finished.value)
finished.value = true; }else{
loading.value = false; Toast("获取信息失败!");
return; finished.value = true;
loading.value = false;
return;
}
} }
} }
//下拉刷新 //下拉刷新
......
...@@ -110,15 +110,25 @@ ...@@ -110,15 +110,25 @@
<!-- />--> <!-- />-->
<!-- </van-popup>--> <!-- </van-popup>-->
<!-- 单选框 name='lab'对应提交的名 :name='index'对应提交的值 --> <!-- 单选框 name='lab'对应提交的名 :name='index'对应提交的值 -->
<van-field name="lab" label="实验室" :rules="[{ required: true, message: '请选择实验室' }]"> <div>
<template #input> <van-field
<van-checkbox-group v-model="checked" direction="horizontal" icon-size="18px"> v-if="formData.declareState == '3'"
<van-checkbox :disabled="formData.declareState == '3'" v-for="item in columnsLab" :key="item.value" :name="item.value" style="margin-bottom: 8px"> v-model="formData.labName"
{{ item.text }} readonly
</van-checkbox> name="labName"
</van-checkbox-group> label="实验室"
</template> />
</van-field> <van-field v-else name="lab" label="实验室" :rules="[{ required: true, message: '请选择实验室' }]">
<template #input>
<van-checkbox-group v-model="checked" direction="horizontal" icon-size="18px">
<van-checkbox :disabled="formData.declareState == '3'" v-for="item in columnsLab" :key="item.value" :name="item.value" style="margin-bottom: 8px">
{{ item.text }}
</van-checkbox>
</van-checkbox-group>
</template>
</van-field>
</div>
</van-cell-group> </van-cell-group>
<div v-if="name == 'grade'" class="topTitle">(非必填)完善信息</div> <div v-if="name == 'grade'" class="topTitle">(非必填)完善信息</div>
<van-cell-group inset style="padding: 10px"> <van-cell-group inset style="padding: 10px">
...@@ -135,15 +145,43 @@ ...@@ -135,15 +145,43 @@
/> />
</van-cell-group> </van-cell-group>
<div style="margin: 20px;display: flex;justify-content: center"> <div style="margin: 20px;display: flex;justify-content: center">
<van-button v-if="name == 'grade'" style="margin-right: 50px;width: 90px;height: 30px" round type="primary" native-type="submit"> <div n v-if="name == 'grade'">
同意 <van-button v-if="state == '3'" style="margin-right: 50px;width: 90px;height: 30px"
</van-button> round type="primary"
<van-button v-if="name == 'personal'" style="margin-right: 50px;width: 90px;height: 30px" round type="primary" native-type="submit"> @click="goback">
分配 关闭
</van-button> </van-button>
<van-button style="width: 90px;height: 30px" round type="success" @click="goback"> <div v-else>
取消 <van-button style="margin-right: 50px;width: 90px;height: 30px" round type="primary" native-type="submit">
</van-button> 同意
</van-button>
<van-button style="width: 90px;height: 30px" round type="success" @click="goback">
取消
</van-button>
</div>
</div>
<div>
<div v-if="name == 'personal'">
<van-button v-if="state == '3'" style="margin-right: 50px;width: 90px;height: 30px"
round type="primary"
native-type="submit">
关闭
</van-button>
<div v-else>
<van-button style="margin-right: 50px;width: 90px;height: 30px" round type="primary" native-type="submit">
分配
</van-button>
<van-button style="width: 90px;height: 30px" round type="success" @click="goback">
取消
</van-button>
</div>
</div>
</div>
</div> </div>
</van-form> </van-form>
</template> </template>
...@@ -160,6 +198,7 @@ const store = useStore(); ...@@ -160,6 +198,7 @@ const store = useStore();
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
const name = route.query.name; const name = route.query.name;
const state = route.query.declareState
const title = ref('') const title = ref('')
const formData = reactive({ const formData = reactive({
sub:'', sub:'',
...@@ -170,24 +209,16 @@ const formData = reactive({ ...@@ -170,24 +209,16 @@ const formData = reactive({
experimentName:'', experimentName:'',
experimentClassify:'', experimentClassify:'',
chapterContent:'', chapterContent:'',
declareState:'' declareState:'',
labName:''
}) })
const selectStartTime = ref('') const selectStartTime = ref('')
const selectEndTime = ref('') const selectEndTime = ref('')
const checked = ref([]) const checked = ref([])
const columnsLab = ref([]) const columnsLab = ref([])
onMounted(async ()=>{ onMounted(async ()=>{
let labResult = await getLabList() console.log('state', state)
console.log('labResult',labResult)
if(labResult.code == 200){
columnsLab.value = labResult.rows.map(item => {
return{
text:item.labName,
value:item.id
}
})
console.log('columnsLab.value',columnsLab.value)
}
if(name == 'personal'){ if(name == 'personal'){
//个人实验审批接口 //个人实验审批接口
title.value = '实验室分配' title.value = '实验室分配'
...@@ -195,12 +226,12 @@ onMounted(async ()=>{ ...@@ -195,12 +226,12 @@ onMounted(async ()=>{
console.log('res',res) console.log('res',res)
if(res.code == 200){ if(res.code == 200){
Object.assign(formData,res.data) Object.assign(formData,res.data)
if(res.data.schoolLabClassYearRelationList!=null || undefined || ''){ if(res.data.schoolTeacherExperimentApplyLabsList!=null || res.data.schoolTeacherExperimentApplyLabsList!=undefined || res.data.schoolTeacherExperimentApplyLabsList!=''){
checked.value = res.data.schoolLabClassYearRelationList.map(item => { console.log('666666')
checked.value = res.data.schoolTeacherExperimentApplyLabsList.map(item => {
return item.labId return item.labId
}) })
} }
console.log('checked.value',checked.value) console.log('checked.value',checked.value)
formData.sub = formData.sub == '1' ? '物理' : formData.sub == '2' ? '化学' : '生物'; formData.sub = formData.sub == '1' ? '物理' : formData.sub == '2' ? '化学' : '生物';
formData.semester = formData.semester == '1' ? '上学期' : '下学期'; formData.semester = formData.semester == '1' ? '上学期' : '下学期';
...@@ -210,22 +241,58 @@ onMounted(async ()=>{ ...@@ -210,22 +241,58 @@ onMounted(async ()=>{
} }
if(name == 'grade'){ if(name == 'grade'){
title.value = '年级实验室分配' title.value = '年级实验室分配'
//管理员年级实验分配接口
let res = await getGradePlanDetail(route.query.id) if(route.query.declareState == '3'){
console.log('res',res) //已分配
if(res.code == 200){ //管理员年级实验分配接口
Object.assign(formData,res.data) let res = await getGradePlanDetail(route.query.id)
if(res.data.schoolLabClassYearRelationList!=null || undefined || ''){ console.log('res',res)
checked.value = res.data.schoolLabClassYearRelationList.map(item => { if(res.code == 200){
return item.labId Object.assign(formData,res.data)
if(res.data.schoolLabClassYearRelationList!=null || undefined || ''){
checked.value = res.data.schoolLabClassYearRelationList.map(item => {
return item.labId
})
}
console.log('checked.value',checked.value)
formData.sub = formData.sub == '1' ? '物理' : formData.sub == '2' ? '化学' : '生物';
formData.semester = formData.semester == '1' ? '上学期' : '下学期';
formData.experimentClassify = formData.experimentClassify == '1' ? '分组实验': formData.experimentClassify == '2' ? '演示实验' : '探究实验';
formData.plannedTime = res.data.plannedStartTime + '-' + res.data.plannedEndTime
formData.labName = res.data.schoolLabClassYearRelationList.map(item => item.labName).toString()
}
}else{
//未分配
//详情
let res = await getGradePlanDetail(route.query.id)
console.log('res',res)
if(res.code == 200){
Object.assign(formData,res.data)
formData.sub = formData.sub == '1' ? '物理' : formData.sub == '2' ? '化学' : '生物';
formData.semester = formData.semester == '1' ? '上学期' : '下学期';
formData.experimentClassify = formData.experimentClassify == '1' ? '分组实验': formData.experimentClassify == '2' ? '演示实验' : '探究实验';
formData.plannedTime = res.data.plannedStartTime + '-' + res.data.plannedEndTime
}
console.log('未分配')
const params = {
plannedStartTime:route.query.plannedStartTime,
plannedEndTime:route.query.plannedEndTime
}
//实验室列表
let labResult = await getLabList(params)
console.log('labResult',labResult)
if(labResult.code == 200){
columnsLab.value = labResult.data.map(item => {
return{
text:item.labName,
value:item.labId
}
}) })
// console.log('columnsLab.value',columnsLab.value)
} }
console.log('checked.value',checked.value)
formData.sub = formData.sub == '1' ? '物理' : formData.sub == '2' ? '化学' : '生物';
formData.semester = formData.semester == '1' ? '上学期' : '下学期';
formData.experimentClassify = formData.experimentClassify == '1' ? '分组实验': formData.experimentClassify == '2' ? '演示实验' : '探究实验';
formData.plannedTime = res.data.plannedStartTime + '-' + res.data.plannedEndTime
} }
} }
}) })
...@@ -246,7 +313,7 @@ const onConfirmDate = (values) => { ...@@ -246,7 +313,7 @@ const onConfirmDate = (values) => {
const dateArrays = ref([]) const dateArrays = ref([])
//提交 //提交
const onSubmit = async (values) => { const onSubmit = async (values) => {
console.log('values',values)
console.log('checked.value',checked.value) console.log('checked.value',checked.value)
if(name == 'grade' && checked.value.length!=0){ if(name == 'grade' && checked.value.length!=0){
console.log('submit', values); console.log('submit', values);
......
...@@ -21,13 +21,14 @@ ...@@ -21,13 +21,14 @@
@load="onLoad" @load="onLoad"
> >
<div v-for="(item,index) in list" :key="index"> <div v-for="(item,index) in list" :key="index">
<div class="card" @click="toDetail(item.id)"> <div class="card" @click="toDetail(item.id,item.declareState,item.plannedStartTime,item.plannedEndTime)">
<div class="topContent"> <div class="topContent">
<div class="topLeft"> <div class="topLeft">
<van-image v-if="item.sub == '1'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/physics.png')"></van-image> <van-image v-if="item.sub == '1'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/physics.png')"></van-image>
<van-image v-if="item.sub == '3'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/biology.png')"></van-image> <van-image v-if="item.sub == '3'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/biology.png')"></van-image>
<van-image v-if="item.sub == '2'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/chemistry.png')"></van-image> <van-image v-if="item.sub == '2'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/chemistry.png')"></van-image>
<span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{item.sub == '1' ? '物理' : item.sub == '2' ? '化学' : '生物'}}研究</span> <!-- <span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{item.sub == '1' ? '物理' : item.sub == '2' ? '化学' : '生物'}}研究</span>-->
<span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{item.experimentName}}</span>
</div> </div>
<div class="topRight"> <div class="topRight">
<div v-if="item.declareState == '3'" class="assigned">已分配</div> <div v-if="item.declareState == '3'" class="assigned">已分配</div>
...@@ -90,38 +91,44 @@ const onLoad = async () => { ...@@ -90,38 +91,44 @@ const onLoad = async () => {
refreshing.value = false; refreshing.value = false;
} }
console.log('semester.value',semester.value) console.log('semester.value',semester.value)
if(semester.value == '上学期' ||semester.value == '1' ){ // if(semester.value == '上学期' ||semester.value == '1' ){
semester.value = '1' // semester.value = '1'
}else{ // }else{
semester.value = '2' // semester.value = '2'
} // }
const params = { if(semester.value){
schoolYear: year.value, const params = {
semester: semester.value schoolYear: year.value,
} semester: semester.value
console.log('params', params) }
//接口 console.log('params', params)
let result = await getGradeAllocationList(params) //接口
console.log('result',result) let result = await getGradeAllocationList(params)
if(result.code == 200){ console.log('result',result)
loading.value = false; if(result.code == 200){
list.value = result.data loading.value = false;
finished.value = true list.value = result.data
}else{ finished.value = true
Toast("获取信息失败!"); }else{
finished.value = true; Toast("获取信息失败!");
loading.value = false; finished.value = true;
return; loading.value = false;
return;
}
} }
} }
//点击事件 //点击事件
const toDetail = (id) =>{ const toDetail = (id,declareState,statrtTime,endTime) =>{
router.push({ router.push({
path:'/laboratoryManagement/gradeLaboratory/checkGradeComplete', path:'/laboratoryManagement/gradeLaboratory/checkGradeComplete',
query:{ query:{
id:id, id:id,
name:'grade' name:'grade',
declareState:declareState,
plannedStartTime:statrtTime,
plannedEndTime:endTime,
} }
}) })
} }
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
@load="onLoad" @load="onLoad"
> >
<div v-for="(item,index) in list" :key="index"> <div v-for="(item,index) in list" :key="index">
<div class="card" @click="toDetail(item.id)"> <div class="card" @click="toDetail(item.id,item.declareState)">
<div class="topContent"> <div class="topContent">
<div class="topLeft"> <div class="topLeft">
<van-image v-if="item.sub == '1'" style="height: 20px;width: 20px;vertical-align: middle" <van-image v-if="item.sub == '1'" style="height: 20px;width: 20px;vertical-align: middle"
...@@ -40,23 +40,23 @@ ...@@ -40,23 +40,23 @@
</div> </div>
</div> </div>
<div class="middleContent"> <div class="middleContent">
<div style="margin-right: 50px"> <div style="width: 50%">
<span>级部:</span> <span>级部:</span>
<span>{{ item.grade }}</span> <span>{{ item.grade }}</span>
</div> </div>
<div> <div style="width: 50%;">
<span>学期:</span> <span>学期:</span>
<span>{{ item.schoolYear }}{{item.semester == '1' ? '上学期':'下学期'}}</span> <span>{{ item.schoolYear }}{{item.semester == '1' ? '上学期':'下学期'}}</span>
</div> </div>
</div> </div>
<div class="bottomContent"> <div class="bottomContent">
<div style="margin-right: 70px"> <div style="width: 50%">
<span>教师:</span> <span>教师:</span>
<span>{{ item.applyName }}</span> <span>{{ item.applyName }}</span>
</div> </div>
<div> <div style="width: 50%;">
<span>实验室:</span> <span>实验室:</span>
<span>{{ item.labName }}</span> <span>{{ item.schoolTeacherExperimentApplyLabsList.map(item => item.labName).toString() }}</span>
</div> </div>
</div> </div>
...@@ -133,12 +133,13 @@ const onLoad = async () => { ...@@ -133,12 +133,13 @@ const onLoad = async () => {
} }
//点击事件 //点击事件
const toDetail = (id) => { const toDetail = (id,declareState) => {
router.push({ router.push({
path: '/laboratoryManagement/gradeLaboratory/checkGradeComplete', path: '/laboratoryManagement/gradeLaboratory/checkGradeComplete',
query: { query: {
id: id, id: id,
name: 'personal' name: 'personal',
declareState:declareState
} }
}) })
} }
...@@ -224,7 +225,7 @@ const goback = () => { ...@@ -224,7 +225,7 @@ const goback = () => {
padding-bottom: 10px; padding-bottom: 10px;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
/*justify-content: space-between;*/ /*justify-content: space-around;*/
color: #6f787d; color: #6f787d;
} }
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<schoolYear @select="handleSelect"></schoolYear> <schoolYear @select="handleSelect"></schoolYear>
<!--新增按钮 --> <!--新增按钮 -->
<div style="margin-right: 20px;"> <div style="margin-right: 20px;">
<van-button size="mini" round type="primary" @click="addDetail">新增申请</van-button> <van-button :disabled="noSub" size="mini" round type="primary" @click="addDetail" >新增申请</van-button>
</div> </div>
</div> </div>
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
:src="require('../../../../assets/icon/biology.png')"></van-image> :src="require('../../../../assets/icon/biology.png')"></van-image>
<van-image v-if="item.sub == '2'" style="height: 20px;width: 20px;vertical-align: middle" <van-image v-if="item.sub == '2'" style="height: 20px;width: 20px;vertical-align: middle"
:src="require('../../../../assets/icon/chemistry.png')"></van-image> :src="require('../../../../assets/icon/chemistry.png')"></van-image>
<span <!-- <span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{ item.sub == '1' ? '物理' : item.sub == '2' ? '化学' : '生物' }}研究</span>-->
style="font-size: 16px;font-weight: bold;padding-left: 5px">{{ item.sub == '1' ? '物理' : item.sub == '2' ? '化学' : '生物' }}研究</span> <span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{ item.experimentName }}</span>
</div> </div>
<div class="topRight"> <div class="topRight">
<div v-if="item.declareState == '3'" class="assigned">已分配</div> <div v-if="item.declareState == '3'" class="assigned">已分配</div>
...@@ -82,7 +83,7 @@ ...@@ -82,7 +83,7 @@
<script setup> <script setup>
import {getPersonalLabApplyList,deleteApply,applyToReport} from '@/service/laboratoryManagement' import {getPersonalLabApplyList,deleteApply,applyToReport} from '@/service/laboratoryManagement'
import {getSubject } from '@/service/laboratoryManagement'
import {reactive, onMounted, toRefs, ref} from "vue"; import {reactive, onMounted, toRefs, ref} from "vue";
import {useStore} from "vuex"; import {useStore} from "vuex";
import {useRouter, useRoute} from "vue-router"; import {useRouter, useRoute} from "vue-router";
...@@ -110,7 +111,18 @@ const loading = ref(false); ...@@ -110,7 +111,18 @@ const loading = ref(false);
const finished = ref(false); const finished = ref(false);
const refreshing = ref(false); const refreshing = ref(false);
const searchValue = ref(''); const searchValue = ref('');
const noSub = ref(false)
onMounted(async()=>{
// 获取学科
let subjectResult = await getSubject()
console.log('subjectResult',subjectResult)
if(subjectResult.code == 200){
if(JSON.stringify(subjectResult.data)== "{}"){
noSub.value = true
}
}
})
//列表加载事件 //列表加载事件
const onLoad = async () => { const onLoad = async () => {
if (refreshing.value) { if (refreshing.value) {
...@@ -118,32 +130,36 @@ const onLoad = async () => { ...@@ -118,32 +130,36 @@ const onLoad = async () => {
refreshing.value = false; refreshing.value = false;
} }
console.log('semester.value', semester.value) console.log('semester.value', semester.value)
if (semester.value == '上学期' || semester.value == '1') { // if (semester.value == '上学期' || semester.value == '1') {
semester.value = '1' // semester.value = '1'
} else { // } else {
semester.value = '2' // semester.value = '2'
} // }
const params = { if(semester.value){
schoolYear: year.value, const params = {
semester: semester.value, schoolYear: year.value,
querText: searchValue.value, semester: semester.value,
} querText: searchValue.value,
console.log('params', params) applyId: store.state.userInfo.userId
//接口 }
let resultList = await getPersonalLabApplyList(params) console.log('params', params)
console.log('resultList', resultList) //接口
if (resultList.code == 200) { let resultList = await getPersonalLabApplyList(params)
loading.value = false; console.log('resultList', resultList)
list.value = resultList.data; if (resultList.code == 200) {
loading.value = false;
list.value = resultList.data;
finished.value = true finished.value = true
console.log(' list.value ', list.value ) console.log(' list.value ', list.value )
} else { } else {
Toast("获取信息失败!"); Toast("获取信息失败!");
finished.value = true; finished.value = true;
loading.value = false; loading.value = false;
return; return;
}
} }
} }
//新增按钮 //新增按钮
const addDetail = () => { const addDetail = () => {
......
...@@ -4,11 +4,35 @@ ...@@ -4,11 +4,35 @@
</div> </div>
<van-form> <van-form>
<van-cell-group inset> <van-cell-group inset>
<van-field <div>
v-model="formData.sub" <div v-if="name == '新增' && subSelect">
readonly <van-field
label="学科" v-model="formData.subName"
/> is-link
readonly
name="picker"
label="学科"
placeholder="点击选择学科"
@click="showPickerSub = true"
:rules="[{ required: true, message: '学科不能为空' }]"
/>
<van-popup v-model:show="showPickerSub" position="bottom">
<van-picker
:columns="columnsSub"
@confirm="onConfirmSub"
@cancel="showPickerSub = false"
/>
</van-popup>
</div>
<van-field
v-else
v-model="formData.sub"
readonly
label="学科"
:rules="[{ required: true, message: '学科不能为空' }]"
/>
</div>
<van-field <van-field
readonly readonly
v-model="formData.grade" v-model="formData.grade"
...@@ -35,6 +59,7 @@ ...@@ -35,6 +59,7 @@
:readonly="name == '查看' ? true : false" :readonly="name == '查看' ? true : false"
v-model="formData.experimentName" v-model="formData.experimentName"
label="实验名称" label="实验名称"
:rules="[{ required: true, message: '实验名称不能为空' }]"
/> />
<van-field <van-field
v-if="name == '新增' ||name =='修改'" v-if="name == '新增' ||name =='修改'"
...@@ -45,6 +70,7 @@ ...@@ -45,6 +70,7 @@
label="计划开始时间" label="计划开始时间"
placeholder="点击选择实验时间" placeholder="点击选择实验时间"
@click="showStartCalendar = true" @click="showStartCalendar = true"
:rules="[{ required: true, message: '计划开始时间不能为空' }]"
/> />
<van-calendar v-model:show="showStartCalendar" @confirm="onConfirmStartTime" /> <van-calendar v-model:show="showStartCalendar" @confirm="onConfirmStartTime" />
<van-field <van-field
...@@ -56,6 +82,8 @@ ...@@ -56,6 +82,8 @@
label="计划结束时间" label="计划结束时间"
placeholder="点击选择实验时间" placeholder="点击选择实验时间"
@click="showEndCalendar = true" @click="showEndCalendar = true"
:rules="[{ required: true, message: '计划结束时间不能为空' }]"
/> />
<van-calendar v-model:show="showEndCalendar" @confirm="onConfirmEndTime" /> <van-calendar v-model:show="showEndCalendar" @confirm="onConfirmEndTime" />
<div v-if="name == '新增' ||name =='修改'"> <div v-if="name == '新增' ||name =='修改'">
...@@ -65,6 +93,8 @@ ...@@ -65,6 +93,8 @@
v-model="formData.experimentClassify" v-model="formData.experimentClassify"
label="实验分类" label="实验分类"
@click="showPickerClassify = true" @click="showPickerClassify = true"
:rules="[{ required: true, message: '实验分类不能为空' }]"
/> />
<van-popup v-model:show="showPickerClassify" position="bottom"> <van-popup v-model:show="showPickerClassify" position="bottom">
<van-picker <van-picker
...@@ -204,9 +234,12 @@ const name = route.query.name ...@@ -204,9 +234,12 @@ const name = route.query.name
const submitSub = ref(); const submitSub = ref();
const gradeId = ref(); const gradeId = ref();
const submitSemester = ref(); const submitSemester = ref();
const submitExperimentClassify = ref() const submitExperimentClassify = ref();
//学科是否展示下拉框
const subSelect = ref(false);
const formData = reactive({ const formData = reactive({
sub:'', sub:'',
subName:'',
grade:'', grade:'',
semester:'', semester:'',
experimentTime:'', experimentTime:'',
...@@ -223,17 +256,22 @@ const formData = reactive({ ...@@ -223,17 +256,22 @@ const formData = reactive({
plannedStartTime:'', plannedStartTime:'',
plannedEndTime:'', plannedEndTime:'',
}) })
//学科下拉框
const showPickerSub = ref(false)
const columnsSub = ref([])
//实验分类下拉框 //实验分类下拉框
const showPickerClassify = ref(false); const showPickerClassify = ref(false);
const columnsClassify = ref([]); const columnsClassify = ref([]);
//实验室下拉框 //实验室下拉框
const showPickerLab = ref(false); // const showPickerLab = ref(false);
const columnsLab = ref([]); // const columnsLab = ref([]);
//节次下拉框 //节次下拉框
const showPickerSection = ref(false); // const showPickerSection = ref(false);
const columnsSection = ref([]); // const columnsSection = ref([]);
//班级下拉框 //班级下拉框
const showPickerClass = ref(false); const showPickerClass = ref(false);
...@@ -258,6 +296,7 @@ onMounted(async () => { ...@@ -258,6 +296,7 @@ onMounted(async () => {
formData.sub = formData.sub == '1' ? '物理' : formData.sub == '2' ? '化学' : '生物'; formData.sub = formData.sub == '1' ? '物理' : formData.sub == '2' ? '化学' : '生物';
formData.semester = formData.semester == '1' ? '上学期' : '下学期'; formData.semester = formData.semester == '1' ? '上学期' : '下学期';
formData.experimentClassify = formData.experimentClassify == '1' ? '分组实验': formData.experimentClassify == '2' ? '演示实验' : '探究实验'; formData.experimentClassify = formData.experimentClassify == '1' ? '分组实验': formData.experimentClassify == '2' ? '演示实验' : '探究实验';
formData.labName = detailResult.data.schoolTeacherExperimentApplyLabsList.map(item => item.labName).toString()
} }
if(name == '修改'){ if(name == '修改'){
title.value = '修改教师演示实验室申请' title.value = '修改教师演示实验室申请'
...@@ -271,7 +310,21 @@ onMounted(async () => { ...@@ -271,7 +310,21 @@ onMounted(async () => {
let subjectResult = await getSubject() let subjectResult = await getSubject()
console.log('subjectResult',subjectResult) console.log('subjectResult',subjectResult)
if(subjectResult.code == 200){ if(subjectResult.code == 200){
formData.sub = subjectResult.msg const arr = Object.keys(subjectResult.data)
console.log('arr',arr)
if(arr.length > 0){
subSelect.value = true
columnsSub.value = arr.map(item => {
console.log(item,subjectResult.data[item])
return{
text : item,
value: subjectResult.data[item]
}
})
console.log('columnsSub.value',columnsSub.value)
}else{
subSelect.value = false
}
} }
//获取级部和学期 //获取级部和学期
...@@ -295,29 +348,35 @@ onMounted(async () => { ...@@ -295,29 +348,35 @@ onMounted(async () => {
} }
//实验室下拉框 //实验室下拉框
let labResult = await getLabList() // let labResult = await getLabList()
console.log('labResult',labResult) // console.log('labResult',labResult)
if(labResult.code == 200){ // if(labResult.code == 200){
columnsLab.value = labResult.rows.map(item => { // columnsLab.value = labResult.rows.map(item => {
return{ // return{
text:item.labName, // text:item.labName,
value:item.id // value:item.id
} // }
}) // })
console.log('columnsLab.value',columnsLab.value) // console.log('columnsLab.value',columnsLab.value)
}; // };
//节次下拉框 //节次下拉框
let sectionResult = await getDicts('course_arrange') // let sectionResult = await getDicts('course_arrange')
console.log('sectionResult',sectionResult) // console.log('sectionResult',sectionResult)
if(sectionResult.code == 200){ // if(sectionResult.code == 200){
sectionResult.data.forEach(ele => { // sectionResult.data.forEach(ele => {
columnsSection.value.push({text:ele.dictLabel,value:ele.dictValue}) // columnsSection.value.push({text:ele.dictLabel,value:ele.dictValue})
}) // })
} // }
}) })
//学科选择
const onConfirmSub = (value) => {
console.log('value',value)
formData.subName = value.text;
formData.sub = value.value;
showPickerSub.value = false
}
//实验类型选择 //实验类型选择
const onConfirmClassify = (value) => { const onConfirmClassify = (value) => {
console.log('value',value) console.log('value',value)
...@@ -342,17 +401,17 @@ const onConfirmEndTime = (date) => { ...@@ -342,17 +401,17 @@ const onConfirmEndTime = (date) => {
//实验室分类下拉框 //实验室分类下拉框
const onConfirmLab = (value) => { // const onConfirmLab = (value) => {
formData.labName = value.text; // formData.labName = value.text;
formData.labNameId = value.value; // formData.labNameId = value.value;
showPickerLab.value = false; // showPickerLab.value = false;
}; // };
//节次分类下拉框 //节次分类下拉框
const onConfirmSection = (value) => { // const onConfirmSection = (value) => {
formData.section = value.text; // formData.section = value.text;
formData.sectionId = value.value; // formData.sectionId = value.value;
showPickerSection.value = false; // showPickerSection.value = false;
}; // };
//班级分类下拉框 //班级分类下拉框
const onConfirmClass = (value) => { const onConfirmClass = (value) => {
...@@ -410,6 +469,7 @@ const submit = async () => { ...@@ -410,6 +469,7 @@ const submit = async () => {
applyTime:formatDate(new Date()), applyTime:formatDate(new Date()),
} }
console.log('新增data',data) console.log('新增data',data)
let addResult = await addPersonalApply(data) let addResult = await addPersonalApply(data)
console.log('addResult',addResult) console.log('addResult',addResult)
if(addResult.code == 200){ if(addResult.code == 200){
......
...@@ -31,8 +31,9 @@ ...@@ -31,8 +31,9 @@
:src="require('../../../../assets/icon/biology.png')"></van-image> :src="require('../../../../assets/icon/biology.png')"></van-image>
<van-image v-if="item.sub == '2'" style="height: 20px;width: 20px;vertical-align: middle" <van-image v-if="item.sub == '2'" style="height: 20px;width: 20px;vertical-align: middle"
:src="require('../../../../assets/icon/chemistry.png')"></van-image> :src="require('../../../../assets/icon/chemistry.png')"></van-image>
<span <!-- <span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{ item.sub == '1' ? '物理' : item.sub == '2' ? '化学' : '生物' }}研究</span>-->
style="font-size: 16px;font-weight: bold;padding-left: 5px">{{ item.sub == '1' ? '物理' : item.sub == '2' ? '化学' : '生物' }}研究</span> <span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{ item.experimentName }}</span>
</div> </div>
<div class="topRight"> <div class="topRight">
<div v-if="item.applyState == '0'" class="assigned">未回复</div> <div v-if="item.applyState == '0'" class="assigned">未回复</div>
...@@ -105,31 +106,34 @@ const onLoad = async () => { ...@@ -105,31 +106,34 @@ const onLoad = async () => {
refreshing.value = false; refreshing.value = false;
} }
console.log('semester.value', semester.value) console.log('semester.value', semester.value)
if (semester.value == '上学期' || semester.value == '1') { // if (semester.value == '上学期' || semester.value == '1') {
semester.value = '1' // semester.value = '1'
} else { // } else {
semester.value = '2' // semester.value = '2'
} // }
const params = { if(semester.value){
schoolYear: year.value, const params = {
semester: semester.value, schoolYear: year.value,
querText: searchValue.value, semester: semester.value,
userId: store.state.userInfo.userId querText: searchValue.value,
} // userId: store.state.userInfo.userId
console.log('params', params) }
//接口 console.log('params', params)
let result = await getLabApplyList(params) //接口
console.log('result', result) let result = await getLabApplyList(params)
if (result.code == 200) { console.log('result', result)
loading.value = false; if (result.code == 200) {
list.value = result.data loading.value = false;
finished.value = true list.value = result.data
} else { finished.value = true
Toast("获取信息失败!"); } else {
finished.value = true; Toast("获取信息失败!");
loading.value = false; finished.value = true;
return; loading.value = false;
return;
}
} }
} }
//card点击事件 //card点击事件
......
...@@ -29,10 +29,12 @@ ...@@ -29,10 +29,12 @@
<van-image v-if="item.sub == '1'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/physics.png')"></van-image> <van-image v-if="item.sub == '1'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/physics.png')"></van-image>
<van-image v-if="item.sub == '3'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/biology.png')"></van-image> <van-image v-if="item.sub == '3'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/biology.png')"></van-image>
<van-image v-if="item.sub == '2'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/chemistry.png')"></van-image> <van-image v-if="item.sub == '2'" style="height: 20px;width: 20px;vertical-align: middle" :src="require('../../../../assets/icon/chemistry.png')"></van-image>
<span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{item.sub == '1' ? '物理' : item.sub == '2' ? '化学' : '生物'}}研究</span> <!-- <span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{item.sub == '1' ? '物理' : item.sub == '2' ? '化学' : '生物'}}研究</span>-->
<span style="font-size: 16px;font-weight: bold;padding-left: 5px">{{item.experimentName}}</span>
</div> </div>
<div class="topRight"> <div class="topRight">
<div class="assigned" @click="toApply(item.id)">申请</div> <div class="assigned" @click.stop="toApply(item.id)">申请</div>
<!-- <div class="unAssigned">未分配</div>--> <!-- <div class="unAssigned">未分配</div>-->
</div> </div>
</div> </div>
...@@ -78,6 +80,7 @@ const router = useRouter(); ...@@ -78,6 +80,7 @@ const router = useRouter();
const semester = ref(''); const semester = ref('');
const year = ref(''); const year = ref('');
const searchValue = ref(''); const searchValue = ref('');
//选中学年的参数 //选中学年的参数
const handleSelect = (value) => { const handleSelect = (value) => {
console.log('handleSelect', value) console.log('handleSelect', value)
...@@ -102,31 +105,37 @@ const onLoad = async () => { ...@@ -102,31 +105,37 @@ const onLoad = async () => {
list.value = []; list.value = [];
refreshing.value = false; refreshing.value = false;
} }
// if(semester.value == '上学期' ||semester.value == '1' ){
// semester.value = '1'
// }else{
// semester.value = '2'
// }
console.log('semester.value',semester.value) console.log('semester.value',semester.value)
if(semester.value == '上学期' ||semester.value == '1' ){ if(semester.value){
semester.value = '1' const params = {
}else{ // schoolYear: year.value,
semester.value = '2' semester: semester.value,
} querText: searchValue.value,
const params = { declareState:'3'
schoolYear: year.value, // applyId : store.state.userInfo.userId
semester: semester.value, }
querText: searchValue.value console.log('params', params)
} //接口
console.log('params', params) let result = await getGradeAppointmentList(params)
//接口 console.log('result',result)
let result = await getGradeAppointmentList(params) if(result.code == 200){
console.log('result',result) loading.value = false;
if(result.code == 200){ list.value = result.data
loading.value = false; finished.value = true
list.value = result.data }else{
finished.value = true Toast("获取信息失败!");
}else{ finished.value = true;
Toast("获取信息失败!"); loading.value = false;
finished.value = true; return;
loading.value = false; }
return;
} }
} }
//card点击事件 //card点击事件
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<van-field readonly v-model="borrowForm.returnEquipmentCondition" label="归还时设备情况"/> <van-field readonly v-model="borrowForm.returnEquipmentCondition" label="归还时设备情况"/>
</div> </div>
<van-field :readonly="queryId ? true : false" v-model="borrowForm.deadline" label="借用期限(天)" <van-field :readonly="queryId ? true : false" v-model="borrowForm.deadline" label="借用期限(天)"
placeholder="请输入借用期限"/> placeholder="请输入借用期限" :rules="[{pattern:/^[0-9]*$/, message: '请输入数字',trigger:'onBlur'}]"/>
</van-cell-group> </van-cell-group>
<div v-if="queryId" style="margin: 30px; display: flex;justify-content: center"> <div v-if="queryId" style="margin: 30px; display: flex;justify-content: center">
<van-button round type="success" size="small" style="width: 80px;margin-left: 20px;" @click="goback"> <van-button round type="success" size="small" style="width: 80px;margin-left: 20px;" @click="goback">
......
...@@ -55,7 +55,7 @@ const getCode = () => { ...@@ -55,7 +55,7 @@ const getCode = () => {
// router.push({ // router.push({
// path: "/schoolProperty/borrow/detail", // path: "/schoolProperty/borrow/detail",
// query: { // query: {
// encode:'100101202300003' // encode:'100000202300024'
// } // }
// }) // })
} }
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<van-button size="small" round type="danger" class="btn" @click="deleteDevice(item.id)">删 除</van-button> <van-button size="small" round type="danger" class="btn" @click="deleteDevice(item.id)">删 除</van-button>
</div> </div>
<div v-if="item.disposeState == 1" > <div v-if="item.disposeState == 1" >
<van-button style="margin-right: 10px" size="small" round type="success" class="btn" @click="toDetail('反馈',item.id)">反 馈</van-button> <!-- <van-button style="margin-right: 10px" size="small" round type="success" class="btn" @click="toDetail('反馈',item.id)">反 馈</van-button>-->
<van-button size="small" round type="default" class="btn" @click="toDetail('查看',item.id)">查 看</van-button> <van-button size="small" round type="default" class="btn" @click="toDetail('查看',item.id)">查 看</van-button>
</div> </div>
<div class="state"> <div class="state">
......
...@@ -337,7 +337,8 @@ const onSubmit = async () => { ...@@ -337,7 +337,8 @@ const onSubmit = async () => {
reportRepairTime: fixForm.reportRepairTime, reportRepairTime: fixForm.reportRepairTime,
reportRepairId: fixForm.reportRepairId, reportRepairId: fixForm.reportRepairId,
reportRepair: fixForm.reportRepair, reportRepair: fixForm.reportRepair,
problem: fixForm.problem problem: fixForm.problem,
place:fixForm.place
} }
console.log('params', params) console.log('params', params)
let result = await editDevice(params) let result = await editDevice(params)
...@@ -355,7 +356,9 @@ const onSubmit = async () => { ...@@ -355,7 +356,9 @@ const onSubmit = async () => {
classificationCode: fixForm.classificationCode, classificationCode: fixForm.classificationCode,
reportRepairId: userId, reportRepairId: userId,
reportRepair: fixForm.reportRepair, reportRepair: fixForm.reportRepair,
problem: fixForm.problem problem: fixForm.problem,
place:fixForm.place,
} }
console.log('params', params) console.log('params', params)
let result = await addDevice(params) let result = await addDevice(params)
...@@ -376,7 +379,8 @@ const feedBack = async () => { ...@@ -376,7 +379,8 @@ const feedBack = async () => {
repairId: fixForm.repairId, repairId: fixForm.repairId,
repairState: fixForm.repairState, repairState: fixForm.repairState,
repairPhone: fixForm.repairPhone, repairPhone: fixForm.repairPhone,
repairTime: fixForm.repairTime repairTime: fixForm.repairTime,
disposeState:'1'
} }
console.log('params', params) console.log('params', params)
let result = await submitFeedback(params) let result = await submitFeedback(params)
......
...@@ -19,7 +19,29 @@ ...@@ -19,7 +19,29 @@
<!-- </div>--> <!-- </div>-->
<van-field readonly v-model="returnForm.deadline" label="借用期限" <van-field readonly v-model="returnForm.deadline" label="借用期限"
placeholder="请输入借用期限"/> placeholder="请输入借用期限"/>
<van-field :readonly="queryId ? true : false" v-model="returnForm.returnEquipmentCondition" label="归还时设备情况"/> <div>
<van-field v-if="queryId" readonly v-model="returnForm.returnEquipmentCondition" label="归还时设备情况"/>
<!-- <van-field v-else v-model="returnForm.returnEquipmentCondition" label="归还时设备情况"/>-->
<van-field
v-else
v-model="returnForm.returnEquipmentConditionText"
is-link
readonly
name="picker"
label="归还时设备情况"
placeholder="点击选择归还时设备情况"
@click="showPickerReturn = true"
/>
<van-popup v-model:show="showPickerReturn" position="bottom">
<van-picker
:columns="columnsReturn"
@confirm="onConfirmReturn"
@cancel="showPickerReturn = false"
/>
</van-popup>
</div>
<van-field :readonly="queryId ? true : false" v-model="returnForm.remark" label="备注" placeholder="请输入备注"/> <van-field :readonly="queryId ? true : false" v-model="returnForm.remark" label="备注" placeholder="请输入备注"/>
</van-cell-group> </van-cell-group>
<div v-if="queryId" style="margin: 30px; display: flex;justify-content: center"> <div v-if="queryId" style="margin: 30px; display: flex;justify-content: center">
...@@ -38,7 +60,10 @@ ...@@ -38,7 +60,10 @@
<script setup> <script setup>
import moment from 'moment'; import moment from 'moment';
import {returnEquipment, getEquipmentDetail} from "@/service/schoolProperty" import {returnEquipment, getEquipmentDetail, getDeatil} from "@/service/schoolProperty"
import {
getDicts
} from "@/service/studentCourseSelection";
import {reactive, ref, onMounted} from "vue"; import {reactive, ref, onMounted} from "vue";
import {useRoute, useRouter} from "vue-router"; import {useRoute, useRouter} from "vue-router";
import {Dialog, Toast} from "vant"; import {Dialog, Toast} from "vant";
...@@ -53,9 +78,11 @@ console.log('queryEncode', queryEncode) ...@@ -53,9 +78,11 @@ console.log('queryEncode', queryEncode)
const store = useStore() const store = useStore()
const userName = store.state.userInfo.teacherName const userName = store.state.userInfo.teacherName
const userId = store.state.userInfo.userId const userId = store.state.userInfo.userId
const showPickerReturn = ref(false);
const columnsReturn = ref([])
let title = ref('') // 页面标题 let title = ref('') // 页面标题
let returnForm = reactive({ // 表单数据 let returnForm = reactive({ // 表单数据
id:'',
encode: '', //自编码 encode: '', //自编码
equipmentName: '', //设备名称 equipmentName: '', //设备名称
model: '', //型号 model: '', //型号
...@@ -68,19 +95,45 @@ let returnForm = reactive({ // 表单数据 ...@@ -68,19 +95,45 @@ let returnForm = reactive({ // 表单数据
receivedBy: '' receivedBy: ''
}) })
onMounted(async () => { onMounted(async () => {
if (queryId) { if (queryId) {
let result = await getEquipmentDetail(queryEncode)
let result = await getDeatil(queryId)
if(result.code == 200){ if(result.code == 200){
console.log('result', result) console.log('result', result)
title.value = '归还情况查看' title.value = '归还情况查看'
Object.assign(returnForm, result.data) Object.assign(returnForm, result.data)
returnForm.borrowTime = result.data.borrowTime returnForm.borrowTime = result.data.borrowTime
returnForm.returnTime = result.data.returnTime returnForm.returnTime = result.data.returnTime
returnForm.deadline = returnForm.returnTime - returnForm.borrowTime // returnForm.deadline = returnForm.returnTime - returnForm.borrowTime
returnForm.deadline = result.data.sjuseTime
}
let dictList = await getDicts('equipment_state')
console.log('dictList',dictList)
if(dictList.code == 200){
dictList.data.map(item => {
if(returnForm.returnEquipmentCondition == item.dictValue){
returnForm.returnEquipmentCondition = item.dictLabel
}
})
} }
} else { } else {
title.value = '物品归还' title.value = '物品归还'
//归还状态下拉框
let dictList = await getDicts('equipment_state')
console.log('dictList',dictList)
if (dictList.code == 200) {
dictList.data.forEach(item => {
columnsReturn.value.push({
value: item.dictValue,
text: item.dictLabel
})
})
}
let equipmentRes = await getEquipmentDetail(queryEncode) let equipmentRes = await getEquipmentDetail(queryEncode)
console.log('equipmentRes',equipmentRes)
if (equipmentRes.code == 3000) { if (equipmentRes.code == 3000) {
Dialog.alert({ Dialog.alert({
title: '提示', title: '提示',
...@@ -116,6 +169,12 @@ onMounted(async () => { ...@@ -116,6 +169,12 @@ onMounted(async () => {
} }
}); });
//归还时设备情况确认
const onConfirmReturn = (value) => {
returnForm.returnEquipmentConditionText = value.text;
returnForm.returnEquipmentCondition = value.value;
showPickerReturn.value = false;
};
//借用日期确认 //借用日期确认
const onConfirmBorrowTime = (date) => { const onConfirmBorrowTime = (date) => {
borrowTime.value = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}` borrowTime.value = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`
...@@ -140,7 +199,8 @@ const onSubmit = async () => { ...@@ -140,7 +199,8 @@ const onSubmit = async () => {
remark: returnForm.remark, remark: returnForm.remark,
receivedById: userId, receivedById: userId,
receivedBy: userName, receivedBy: userName,
equipmentId: returnForm.equipmentId equipmentId: returnForm.equipmentId,
sjuseTime:returnForm.deadline
} }
console.log('params', params) console.log('params', params)
let result = await returnEquipment(params) let result = await returnEquipment(params)
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="getList"> <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="getList">
<div v-for="(item,index) in list" :key="index" @click="toDetailPage(item.id,item.encode)" > <div v-for="(item,index) in list" :key="index" @click="toDetailPage(item.id,item.encode)" >
<div v-if="item.returnState == 0" class="listBlock"> <div v-if="item.returnState == 0" class="listBlock">
<div class="flexBLock" > <div class="flexBLock" >
<div> <div>
<div>型号:{{ item.model}}</div> <div>型号:{{ item.model}}</div>
...@@ -23,7 +24,7 @@ ...@@ -23,7 +24,7 @@
<div>借用期限(天)</div> <div>借用期限(天)</div>
</div> </div>
</div> </div>
<div>备注:已借用取回,暂不外借,设备换修。已借用取回,暂不外借,设备换修。</div> <div>备注:{{ item.remark }}</div>
<div v-if="item.returnState == 0" class="waitReturn">待归还</div> <div v-if="item.returnState == 0" class="waitReturn">待归还</div>
<!-- <div v-if="item.returnState == 1" class="endReturn">已归还</div>--> <!-- <div v-if="item.returnState == 1" class="endReturn">已归还</div>-->
</div> </div>
...@@ -34,12 +35,15 @@ ...@@ -34,12 +35,15 @@
<script setup> <script setup>
import { getEquipmentList } from "@/service/schoolProperty" import { getEquipmentList } from "@/service/schoolProperty"
import {
getDicts
} from "@/service/studentCourseSelection";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import {onMounted, ref, reactive} from "vue"; import {onMounted, ref, reactive} from "vue";
import {useStore} from "vuex"; import {useStore} from "vuex";
import {Toast} from "vant"; import {Toast} from "vant";
import {scanCodeFun} from "../../../utils/scanCode"; import {scanCodeFun} from "../../../utils/scanCode";
import {login} from "../../../service/home";
const router = useRouter(); const router = useRouter();
const store = useStore(); const store = useStore();
const id = store.state.userInfo.userId ; const id = store.state.userInfo.userId ;
...@@ -50,9 +54,14 @@ const pullLoading = ref(false); ...@@ -50,9 +54,14 @@ const pullLoading = ref(false);
const finished = ref(false); const finished = ref(false);
const pageNum = ref(0); const pageNum = ref(0);
const equipmentName = ref('') const equipmentName = ref('')
const retrunDetail = ref([])
onMounted(async ()=>{ onMounted(async ()=>{
let dictList = await getDicts('equipment_state')
if(dictList.code == 200){
retrunDetail.value = dictList.data
console.log('retrunDetail.value',retrunDetail.value)
}
}) })
//获取列表数据 //获取列表数据
const getList = async () => { const getList = async () => {
...@@ -65,10 +74,16 @@ const getList = async () => { ...@@ -65,10 +74,16 @@ const getList = async () => {
userId:id, userId:id,
} }
let result = await getEquipmentList(params) let result = await getEquipmentList(params)
console.log('result',result) console.log('list',result)
if(result.code == 200){ if(result.code == 200){
loading.value = false; loading.value = false;
list.value = result.data; list.value = result.data;
list.value.map(item => {
const same = retrunDetail.value.find(value => item.returnEquipmentCondition === value.dictValue)
if(same){
item.returnEquipmentCondition = same.dictLabel
}
})
finished.value = true finished.value = true
}else{ }else{
Toast("获取信息失败!"); Toast("获取信息失败!");
...@@ -97,15 +112,14 @@ const onSearch = async (val) =>{ ...@@ -97,15 +112,14 @@ const onSearch = async (val) =>{
} }
//扫码获取 //扫码获取
const getCode = () => { const getCode = () => {
// let enCode = scanCodeFun(store.state.appid,2) //获取到的设备自编码
let enCode = scanCodeFun(2) //获取到的设备自编码 let enCode = scanCodeFun(2) //获取到的设备自编码
// console.log(1)
//测试 //测试
// router.push({ // router.push({
// path: "/schoolProperty/return/detail", // path: "/schoolProperty/return/detail",
// query: { // query: {
// encode:'100101202300003' // encode:'100000202300026'
// } // }
// }) // })
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment