代码格式修改

This commit is contained in:
2025-10-18 17:13:04 +08:00
parent b9224ed8bb
commit 81017eb280
837 changed files with 102784 additions and 98409 deletions

View File

@@ -1,185 +1,197 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="40px">
<el-form-item label="学院" prop="moreDeptName">
<el-input v-model="queryParams.moreDeptName" placeholder="请输入学院" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="学号" prop="stuNo">
<el-input v-model="queryParams.stuNo" placeholder="请输入学号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="主题" prop="surveyId">
<el-select clearable v-model="queryParams.surveyId" placeholder="请选择去向调查">
<el-option v-for="item in surveyList" :key="item.surveyId" :value="item.surveyId"
:label="item.surveyName" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="warning" plain icon="el-icon-download" size="mini"
@click="handleExport">导出学生填写记录可以先搜索再导出</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="itineraryList">
<el-table-column label="#" align="center" prop="returnSchoolId" />
<el-table-column label="主题" align="center" prop="surveyName" width="120" />
<el-table-column label="学号" align="center" prop="stuNo" width="120" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="班级" align="center" prop="className" width="300" />
<el-table-column label="联系电话" align="center" prop="phone" width="140" />
<el-table-column label="是否离校" align="center">
<template slot-scope="scope">
{{ scope.row.isLeave == "1" ? "是" : "否" }}
<div v-if="scope.row.isLeave == 1">{{ scope.row.isLeave == "1" && scope.row.isHome == "是" ? "已到家" :
"未到家" }}</div>
</template>
</el-table-column>
<el-table-column label="是否到校" prop="reachSchoolStatus" align="center" />
<el-table-column label="离校审核状态" align="center" prop="configType">
<template slot-scope="scope">
<dict-tag :options="dict.type.sur_status" :value="scope.row.leaveStatus" />
</template>
</el-table-column>
<el-table-column label="校审核状态" align="center" prop="configType">
<template slot-scope="scope">
<dict-tag :options="dict.type.sur_status" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view"
@click="auditVClick(scope.row)">查看</el-button>
</template>
</el-table-column>
</el-table>
<div class="app-container">
<el-form v-show="showSearch" ref="queryForm" :model="queryParams" size="small" :inline="true"
label-width="40px"
>
<el-form-item label="学院" prop="moreDeptName">
<el-input v-model="queryParams.moreDeptName" placeholder="请输入学院" clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="学号" prop="stuNo">
<el-input v-model="queryParams.stuNo" placeholder="请输入学号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="主题" prop="surveyId">
<el-select v-model="queryParams.surveyId" clearable placeholder="请选择去向调查">
<el-option v-for="item in surveyList" :key="item.surveyId" :value="item.surveyId"
:label="item.surveyName"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="warning" plain icon="el-icon-download" size="mini"
@click="handleExport"
>导出学生填写记录可以先搜索再导出</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="itineraryList">
<el-table-column label="#" align="center" prop="returnSchoolId" />
<el-table-column label="主题" align="center" prop="surveyName" width="120" />
<el-table-column label="学号" align="center" prop="stuNo" width="120" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="班级" align="center" prop="className" width="300" />
<el-table-column label="联系电话" align="center" prop="phone" width="140" />
<el-table-column label="是否离校" align="center">
<template slot-scope="scope">
{{ scope.row.isLeave == "1" ? "是" : "否" }}
<div v-if="scope.row.isLeave == 1">{{ scope.row.isLeave == "1" && scope.row.isHome == "是" ? "已到家" :
"未到家" }}</div>
</template>
</el-table-column>
<el-table-column label="是否到校" prop="reachSchoolStatus" align="center" />
<el-table-column label="校审核状态" align="center" prop="configType">
<template slot-scope="scope">
<dict-tag :options="dict.type.sur_status" :value="scope.row.leaveStatus" />
</template>
</el-table-column>
<el-table-column label="到校审核状态" align="center" prop="configType">
<template slot-scope="scope">
<dict-tag :options="dict.type.sur_status" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view"
@click="auditVClick(scope.row)"
>查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList"
/>
<el-dialog :title="title" :visible.sync="open" width="920px" append-to-body>
<el-form ref="form" class="lookForm" size="mini" label-width="160px">
<el-form-item label="主题">
<el-input v-model="form.surveyName" readonly />
</el-form-item>
<el-form-item label="班级">
<el-input v-model="form.className" readonly />
</el-form-item>
<el-form-item label="学院">
<el-input v-model="form.moreDeptName" readonly />
</el-form-item>
<el-form-item label="学号">
<el-input v-model="form.stuNo" readonly />
</el-form-item>
<el-form-item label="姓名">
<el-input v-model="form.name" readonly />
</el-form-item>
<el-form-item label="宿舍">
<el-input
:value="form.campusName + '--' + form.parkName + '--' + form.buildingName + '--' + form.roomNo"
readonly />
</el-form-item>
<el-form-item label="联系电话">
<el-input v-model="form.phone" readonly />
</el-form-item>
<el-form-item label="紧急联系人">
<el-input v-model="form.emergencyContact" readonly />
</el-form-item>
<el-form-item label="紧急联系人电话">
<el-input v-model="form.emergencyContactPhone" readonly />
</el-form-item>
<el-form-item label="家长姓名">
<el-input v-model="form.famName" readonly />
</el-form-item>
<el-form-item label="家长电话">
<el-input v-model="form.famPhone" readonly />
</el-form-item>
<el-form-item label="家长是否知晓">
<el-input v-model="form.famKnow" readonly />
</el-form-item>
<el-form-item label="是否离校">
<el-input :value="form.isLeave == '1' ? '是' : '否'" readonly />
</el-form-item>
<el-dialog :title="title" :visible.sync="open" width="920px" append-to-body>
<el-form ref="form" class="lookForm" size="mini" label-width="160px">
<el-form-item label="主题">
<el-input v-model="form.surveyName" readonly />
</el-form-item>
<el-form-item label="班级">
<el-input v-model="form.className" readonly />
</el-form-item>
<el-form-item label="学院">
<el-input v-model="form.moreDeptName" readonly />
</el-form-item>
<el-form-item label="学号">
<el-input v-model="form.stuNo" readonly />
</el-form-item>
<el-form-item label="姓名">
<el-input v-model="form.name" readonly />
</el-form-item>
<el-form-item label="宿舍">
<el-input
:value="form.campusName + '--' + form.parkName + '--' + form.buildingName + '--' + form.roomNo"
readonly
/>
</el-form-item>
<el-form-item label="联系电话">
<el-input v-model="form.phone" readonly />
</el-form-item>
<el-form-item label="紧急联系人">
<el-input v-model="form.emergencyContact" readonly />
</el-form-item>
<el-form-item label="紧急联系人电话">
<el-input v-model="form.emergencyContactPhone" readonly />
</el-form-item>
<el-form-item label="家长姓名">
<el-input v-model="form.famName" readonly />
</el-form-item>
<el-form-item label="家长电话">
<el-input v-model="form.famPhone" readonly />
</el-form-item>
<el-form-item label="家长是否知晓">
<el-input v-model="form.famKnow" readonly />
</el-form-item>
<el-form-item label="是否离校">
<el-input :value="form.isLeave == '1' ? '是' : '否'" readonly />
</el-form-item>
<el-form-item label="预计离校时间" v-if="form.isLeave == '1'">
<el-input :value="form.willLeaveTime" readonly />
</el-form-item>
<el-form-item v-if="form.isLeave == '1'" label="预计离校时间">
<el-input :value="form.willLeaveTime" readonly />
</el-form-item>
<el-form-item label="是否到家" v-if="form.isLeave == '1'">
<el-input :value="form.isHome == '1' ? '是' : '否'" readonly />
</el-form-item>
<el-form-item v-if="form.isLeave == '1'" label="是否到家">
<el-input :value="form.isHome == '1' ? '是' : '否'" readonly />
</el-form-item>
<el-form-item :label="form.isHome == '1' ? '到家定位经纬度' : '到目的地定位经纬度'"
v-if="form.isLeave == '1' && !isEmpty(form.homeGps)">
<el-input :value="form.homeGps" readonly />
<span style="color: red;font-size: 12px;">(*定位可能有误差)</span>
</el-form-item>
<el-form-item v-if="form.isLeave == '1' && !isEmpty(form.homeGps)"
:label="form.isHome == '1' ? '到家定位经纬度' : '到目的地定位经纬度'"
>
<el-input :value="form.homeGps" readonly />
<span style="color: red;font-size: 12px;">(*定位可能有误差)</span>
</el-form-item>
<el-form-item :label="form.isHome == '1' ? '到家定位详细地址' : '到目的地定位详细地址'"
v-if="form.isLeave == '1' && !isEmpty(form.homeGpsAddr)">
<el-input :value="form.homeGpsAddr" readonly />
<span style="color: red;font-size: 12px;">(*定位可能有误差)</span>
</el-form-item>
<el-form-item v-if="form.isLeave == '1' && !isEmpty(form.homeGpsAddr)"
:label="form.isHome == '1' ? '到家定位详细地址' : '到目的地定位详细地址'"
>
<el-input :value="form.homeGpsAddr" readonly />
<span style="color: red;font-size: 12px;">(*定位可能有误差)</span>
</el-form-item>
<el-form-item label="定位时间" v-if="!isEmpty(form.homeGpsTime)">
<el-input :value="form.homeGpsTime" readonly />
</el-form-item>
<el-form-item v-if="!isEmpty(form.homeGpsTime)" label="定位时间">
<el-input :value="form.homeGpsTime" readonly />
</el-form-item>
<el-form-item label="预计留校时间" v-if="form.isLeave == '0'">
<el-input :value="form.willStayTime" readonly />
</el-form-item>
<el-form-item v-if="form.isLeave == '0'" label="预计留校时间">
<el-input :value="form.willStayTime" readonly />
</el-form-item>
<el-form-item label="留校事由" v-if="form.isLeave == '0'">
<el-input type="textarea" :autosize="{ minRows: 6, maxRows: 10 }" :value="form.stayReason"
readonly />
</el-form-item>
<hr />
<el-form-item label="计划返校时间">
<el-input v-model="form.scheduledReturnTime" readonly />
</el-form-item>
<el-form-item label="家长姓名">
<el-input v-model="form.parentName" readonly />
</el-form-item>
<el-form-item label="家长电话">
<el-input v-model="form.parentPhone" readonly />
</el-form-item>
<el-form-item label="家长是否知晓">
<el-input v-model="form.know" readonly />
</el-form-item>
<el-form-item v-if="!isEmpty(form.reachSchoolStatus)" label="是否到校">
<el-input v-model="form.reachSchoolStatus" readonly />
</el-form-item>
<el-form-item v-if="form.reachSchoolStatus == '是'" label="到校时间">
<el-input v-model="form.attendSchoolTime" readonly />
</el-form-item>
<el-form-item v-if="form.reachSchoolStatus == '否'" label="未返校原因分类">
<el-input v-model="form.absentSchoolType" readonly />
</el-form-item>
<el-form-item v-if="form.reachSchoolStatus == '否'" label="未返校详细原因">
<el-input readonly type="textarea" :autosize="{ minRows: 6, maxRows: 10 }"
v-model="form.absentSchoolRemark" />
</el-form-item>
<el-form-item v-if="form.isLeave == '0'" label="留校事由">
<el-input type="textarea" :autosize="{ minRows: 6, maxRows: 10 }" :value="form.stayReason"
readonly
/>
</el-form-item>
<hr>
<el-form-item label="计划返校时间">
<el-input v-model="form.scheduledReturnTime" readonly />
</el-form-item>
<el-form-item label="家长姓名">
<el-input v-model="form.parentName" readonly />
</el-form-item>
<el-form-item label="家长电话">
<el-input v-model="form.parentPhone" readonly />
</el-form-item>
<el-form-item label="家长是否知晓">
<el-input v-model="form.know" readonly />
</el-form-item>
<el-form-item v-if="!isEmpty(form.reachSchoolStatus)" label="是否到校">
<el-input v-model="form.reachSchoolStatus" readonly />
</el-form-item>
<el-form-item v-if="form.reachSchoolStatus == '是'" label="到校时间">
<el-input v-model="form.attendSchoolTime" readonly />
</el-form-item>
<el-form-item v-if="form.reachSchoolStatus == '否'" label="未返校原因分类">
<el-input v-model="form.absentSchoolType" readonly />
</el-form-item>
<el-form-item v-if="form.reachSchoolStatus == '否'" label="未返校详细原因">
<el-input v-model="form.absentSchoolRemark" readonly type="textarea"
:autosize="{ minRows: 6, maxRows: 10 }"
/>
</el-form-item>
</el-form>
</el-dialog>
</div>
</el-form>
</el-dialog>
</div>
</template>
<script>
import { isEmpty, fullLoading } from "@/api/helpFunc";
import { listXg as listView, updateStuHomeGpsAddr } from "@/api/survey/itinerary";
import { listAllSurvey } from "@/api/survey/survey";
import { isEmpty, fullLoading } from '@/api/helpFunc'
import { listXg as listView, updateStuHomeGpsAddr } from '@/api/survey/itinerary'
import { listAllSurvey } from '@/api/survey/survey'
export default {
name: "Itinerary",
name: 'Itinerary',
dicts: ['sur_status'],
data() {
return {
@@ -199,7 +211,7 @@ export default {
// 学生假期返校表格数据
itineraryList: [],
// 弹出层标题
title: "",
title: '',
// 是否显示弹出层
open: false,
// 查询参数
@@ -243,72 +255,72 @@ export default {
auditForm: {
}
};
}
},
created() {
this.getList();
this.listAllSurvey();
this.getList()
this.listAllSurvey()
},
methods: {
async listAllSurvey() {
let res = await listAllSurvey();
let res = await listAllSurvey()
if (res.code == 200) {
this.surveyList = [...res.data];
this.surveyList = [...res.data]
}
},
handleExport() {
let sdata = { ...this.queryParams };
sdata.pageNum = null;
sdata.pageSize = null;
let sdata = { ...this.queryParams }
sdata.pageNum = null
sdata.pageSize = null
this.download('survey/itinerary/xgExport', {
...sdata
}, `学生假期离校返校填写记录_${new Date().getTime()}.xlsx`);
}, `学生假期离校返校填写记录_${new Date().getTime()}.xlsx`)
},
updateStuHomeGpsAddr() {
if (!isEmpty(this.form.homeGps) && isEmpty(this.form.homeGpsAddr)) {
let loading = fullLoading(this);
this.fetchLocation(this.form.homeGps);
loading.close();
let loading = fullLoading(this)
this.fetchLocation(this.form.homeGps)
loading.close()
}
},
fetchLocation(latlng) {
this.cleanup();
window.baiduCallback = this.baiduCallback;
const script = document.createElement('script');
this.cleanup()
window.baiduCallback = this.baiduCallback
const script = document.createElement('script')
script.src =
`https://api.map.baidu.com/reverse_geocoding/v3/?ak=HUWNwlsBGdZk85kkDkfl3MCYVEqaTey1&output=json&coordtype=gcj02ll&location=${latlng}&callback=baiduCallback`;
document.body.appendChild(script);
`https://api.map.baidu.com/reverse_geocoding/v3/?ak=HUWNwlsBGdZk85kkDkfl3MCYVEqaTey1&output=json&coordtype=gcj02ll&location=${latlng}&callback=baiduCallback`
document.body.appendChild(script)
setTimeout(() => {
this.cleanup();
}, 5000);
this.cleanup()
}, 5000)
},
cleanup() {
const scripts = document.querySelectorAll('script[src*="reverse_geocoding"]');
scripts.forEach(script => script.remove());
window.baiduCallback = null;
const scripts = document.querySelectorAll('script[src*="reverse_geocoding"]')
scripts.forEach(script => script.remove())
window.baiduCallback = null
},
async baiduCallback(data) {
if (data.status == 0) {
this.form.homeGpsAddr = data.result.formatted_address;
await updateStuHomeGpsAddr(this.form);
this.getList();
this.form.homeGpsAddr = data.result.formatted_address
await updateStuHomeGpsAddr(this.form)
this.getList()
} else {
this.form.homeGpsAddr = "定位失败";
this.form.homeGpsAddr = '定位失败'
}
},
getList() {
this.loading = true;
this.loading = true
listView(this.queryParams).then(response => {
this.itineraryList = response.rows;
this.total = response.total;
this.loading = false;
});
this.itineraryList = response.rows
this.total = response.total
this.loading = false
})
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
this.open = false
this.reset()
},
// 表单重置
reset() {
@@ -335,28 +347,28 @@ export default {
attendSchoolTime: null,
status: null,
surveyId: null
};
this.resetForm("form");
}
this.resetForm('form')
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.resetForm('queryForm')
this.classVlue1 = [],
this.handleQuery();
this.handleQuery()
},
auditVClick(row) {
this.form = {};
this.form = { ...row };
this.updateStuHomeGpsAddr();
this.open = true;
this.form = {}
this.form = { ...row }
this.updateStuHomeGpsAddr()
this.open = true
},
}
};
}
</script>
<style lang="scss" scoped>
.lookForm {