@@ -1,4 +1,4 @@ | |||
(function () { | |||
(function () { | |||
var weekChina = ["一", "二", "三", "四", "五", "六", "日"]; | |||
var begin = ''; | |||
var end = ''; | |||
@@ -13,6 +13,7 @@ | |||
lclass: page.lclass, | |||
rows: 10, // 每页行数 | |||
getData: function (param, callback) {// 获取数据 param 分页参数,callback 异步回调 | |||
console.log(param) | |||
param.multipleData = multipleData; | |||
page.loadData(param, callback, $page); | |||
}, | |||
@@ -48,6 +49,7 @@ | |||
_postParam.queryJson = JSON.stringify({ StuNo: JSON.parse(localStorage.userinfo).baseinfo.account, StuMajorNo: JSON.parse(localStorage.userinfo).baseinfo.majorno, StuGrade: JSON.parse(localStorage.userinfo).baseinfo.grade }); | |||
} | |||
learun.httpget(config.webapi + 'learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/pagelist', _postParam, (data) => { | |||
console.log(data) | |||
$page.find('.lr-badge').text('0'); | |||
if (data) { | |||
$page.find('.lr-badge').text(data.records); | |||
@@ -117,8 +119,13 @@ | |||
_postData.StuNo = JSON.parse(localStorage.userinfo).baseinfo.account; | |||
learun.layer.loading(true, '正在取消报名...'); | |||
learun.httppost(config.webapi + 'learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/CancelPre', _postData, (data, info) => { | |||
console.log(data) | |||
console.log(info) | |||
if (data) {// 成功 | |||
learun.layer.toast(info); | |||
console.log(1111111111) | |||
console.log(data) | |||
console.log(info) | |||
//learun.layer.toast(info); | |||
page.grid.reload(); | |||
} | |||
learun.layer.loading(false); | |||
@@ -1,4 +1,4 @@ | |||
(function () { | |||
(function () { | |||
var keyValue = ''; | |||
var weekChina = ["一", "二", "三", "四", "五", "六", "日"]; | |||
var $header = null; | |||
@@ -35,10 +35,12 @@ | |||
}); | |||
page.bind($page, param); | |||
if (keyValue) { | |||
console.log(keyValue) | |||
$page.find('.lr-form-container').setFormRead(); | |||
// 获取表单数据 | |||
learun.layer.loading(true, '获取表单数据'); | |||
learun.httpget(config.webapi + 'learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/form', keyValue, (data) => { | |||
console.log(data) | |||
if (data) { | |||
for (var id in data) { | |||
if (data[id].length) { | |||
@@ -1,7 +1,7 @@ | |||
<div class="lr-page lr-EducationalAdministrationThermography-page"> | |||
<div class="lr-page lr-EducationalAdministrationThermography-page"> | |||
<div class="lr-page-tool"> | |||
<div class="lr-tool-left"> | |||
总共<span class="lr-badge lr-badge-primary">0</span>条 | |||
总共1<span class="lr-badge lr-badge-primary">0</span>条 | |||
</div> | |||
<div class="lr-tool-right"> | |||
<div class="lr-tool-right-btn lr_multiple_search"> | |||
@@ -1,4 +1,4 @@ | |||
/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn) | |||
/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn) | |||
* Copyright (c) 2013-2018 北京泉江科技有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2020-02-03 14:37 | |||
@@ -18,6 +18,7 @@ | |||
lclass: page.lclass, | |||
rows: 10, // 每页行数 | |||
getData: function (param, callback) {// 获取数据 param 分页参数,callback 异步回调 | |||
console.log(param) | |||
param.multipleData = multipleData; | |||
page.loadData(param, callback, $page); | |||
}, | |||
@@ -37,6 +38,8 @@ | |||
// 多条件查询 | |||
var $multiple = $page.find('.lr_multiple_search').multiplequery({ | |||
callback: function (data) { | |||
console.log(11) | |||
console.log(data) | |||
begin = ''; | |||
end = ''; | |||
multipleData = data || {}; | |||
@@ -63,14 +66,20 @@ | |||
queryJson: '{}' | |||
}; | |||
var userInfo = learun.storage.get('userinfo'); | |||
//console.log(param) | |||
var aaa=''; | |||
if (param.multipleData) { | |||
multipleData.Creater = userInfo.baseinfo.userId; | |||
_postParam.queryJson = JSON.stringify(multipleData); | |||
} | |||
if (param.begin && param.end) { | |||
_postParam.queryJson = JSON.stringify({ StartTime: param.begin, EndTime: param.end }); | |||
} | |||
}else{ | |||
_postParam.queryJson=JSON.stringify({Creater:userInfo.baseinfo.userId}) | |||
} | |||
// if (param.begin && param.end) { | |||
// _postParam.queryJson = JSON.stringify({ StartTime: param.begin, EndTime: param.end,Creater:userInfo.baseinfo.userId }); | |||
// } | |||
_postParam.queryJson=JSON.stringify({Creater:userInfo.baseinfo.userId}) | |||
learun.httpget(config.webapi + 'learun/PersonnelManagement/EpidemicSituationCopy/pagelist', _postParam, (data) => { | |||
// console.log(data) | |||
$page.find('.lr-badge').text('0'); | |||
if (data) { | |||
$page.find('.lr-badge').text(data.records); | |||
@@ -90,55 +99,13 @@ | |||
keyId:'f_userid', | |||
text:'f_realname' | |||
})); | |||
//_$item.append($('<p class="lr-ellipsis"><span>单位名称:</span></p>').dataFormatter({ value: _item.UnitName })); | |||
//_$item.append($('<p class="lr-ellipsis"><span>返工人员:</span></p>').dataFormatter({ value: _item.BackUser })); | |||
//_$item.append($('<p class="lr-ellipsis"><span>类别:</span></p>').dataFormatter({ value: _item.Type, | |||
// type: 'dataItem', | |||
// code: 'EUserType' | |||
//})); | |||
//_$item.append($('<p class="lr-ellipsis"><span>所在部门:</span></p>').dataFormatter({ value: _item.Department })); | |||
//_$item.append($('<p class="lr-ellipsis"><span>关系:</span></p>').dataFormatter({ value: _item.RelationShip, | |||
// type: 'dataItem', | |||
// code: 'ERelationship' | |||
//})); | |||
//_$item.append($('<p class="lr-ellipsis"><span>性别:</span></p>').dataFormatter({ | |||
// value: _item.Gender, | |||
// type: 'dataItem', | |||
// code: 'usersex' | |||
//})); | |||
_$item.append($('<p class="lr-ellipsis"><span>填报时间:</span></p>').dataFormatter({ value: _item.CreateTime, | |||
_$item.append($('<p class="lr-ellipsis"><span>填报时间:</span></p>').dataFormatter({ | |||
value: _item.CreateTime, | |||
type: 'datetime', | |||
dateformat: 'yyyy-MM-dd' | |||
})); | |||
//_$item.append($('<p class="lr-ellipsis"><span>身份证号:</span></p>').dataFormatter({ value: _item.IDCard })); | |||
//_$item.append($('<p class="lr-ellipsis"><span>家庭住址:</span></p>').dataFormatter({ value: _item.HomeAddress })); | |||
//_$item.append($('<p class="lr-ellipsis"><span>联系方式:</span></p>').dataFormatter({ value: _item.Mobile })); | |||
//_$item.append($('<p class="lr-ellipsis"><span>前往省份:</span></p>').dataFormatter({ value: _item.Provice, | |||
// type: 'dataSource', | |||
// code: 'DIC_PROVINCE', | |||
// keyId: 'pcode', | |||
// text: 'pname' | |||
//})); | |||
//_$item.append($('<p class="lr-ellipsis"><span>前往详细地址:</span></p>').dataFormatter({ value: _item.Objective })); | |||
//_$item.append($('<p class="lr-ellipsis"><span>外出原因:</span></p>').dataFormatter({ | |||
// value: _item.OutReason, | |||
// type: 'dataItem', | |||
// code: 'OutReason' | |||
//})); | |||
//_$item.append($('<p class="lr-ellipsis"><span>外出时间:</span></p>').dataFormatter({ value: _item.OutTime, | |||
// type: 'datetime', | |||
// dateformat: 'yyyy-MM-dd' | |||
//})); | |||
//_$item.append($('<p class="lr-ellipsis"><span>返回时间:</span></p>').dataFormatter({ value: _item.BackHomeTime, | |||
// type: 'datetime', | |||
// dateformat: 'yyyy-MM-dd' | |||
//})); | |||
//_$item.append($('<p class="lr-ellipsis"><span>交通工具:</span></p>').dataFormatter({ value: _item.Vehicle, | |||
// type: 'dataItem', | |||
// code: 'Vehicle' | |||
//})); | |||
//_$item.append($('<p class="lr-ellipsis"><span>交通工具号码:</span></p>').dataFormatter({ value: _item.VehicleNum })); | |||
//_$item.append($('<p class="lr-ellipsis"><span>返回抵达目的地:</span></p>').dataFormatter({ value: _item.BackAddress })); | |||
return ''; | |||
}, | |||
rowClick: function (item, $item, $page) {// 列表行点击触发方法 | |||
@@ -1,4 +1,4 @@ | |||
<div class="lr-form-container"> | |||
<div class="lr-form-container"> | |||
<div class="lr-form-row " data-table="EpidemicSituation"> | |||
<label>填报人员</label> | |||
@@ -1,4 +1,4 @@ | |||
/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn) | |||
/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn) | |||
* Copyright (c) 2013-2018 北京泉江科技有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2020-02-03 14:37 | |||
@@ -174,6 +174,8 @@ | |||
$header.find('.lr-form-header-btnlist').show(); | |||
// 获取表单数据 | |||
learun.layer.loading(true, '获取表单数据'); | |||
// console.log(11) | |||
// console.log(keyValue) | |||
learun.httpget(config.webapi + 'learun/PersonnelManagement/EpidemicSituationCopy/form', keyValue, (data) => { | |||
if (data) { | |||
//省市区数据处理 | |||
@@ -194,8 +196,6 @@ | |||
$page.find('[data-table="' + id + '"]').lrformSet(data[id]); | |||
} | |||
} | |||
} | |||
learun.layer.loading(false); | |||
}); | |||
@@ -322,6 +322,7 @@ | |||
//新建时获取登陆人信息 | |||
var userInfo = learun.storage.get('userinfo'); | |||
//console.log(userInfo) | |||
if (!keyValue) { | |||
@@ -340,6 +341,7 @@ | |||
learun.httpget(config.webapi + 'learun/PersonnelManagement/EpidemicSituationCopy/getStuSource', | |||
userInfo.baseinfo.account, | |||
(data) => { | |||
console.log(data) | |||
if (data) { | |||
$page.find('#HomeAddress').val(data.Address); | |||
$page.find('#StudentSource').val(data.res); | |||
@@ -1,4 +1,4 @@ | |||
<div class="lr-form-container"> | |||
<div class="lr-form-container"> | |||
<div class="lr-form-row " hidden data-table="StuAttendanceLeave"> | |||
<label>学年度</label> | |||
@@ -109,5 +109,4 @@ | |||
<label>备注</label> | |||
<textarea id="Remark" style="height:100px;"></textarea> | |||
</div> | |||
</div> |
@@ -1,4 +1,4 @@ | |||
/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn) | |||
/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn) | |||
* Copyright (c) 2013-2018 北京泉江科技有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2019-06-24 14:40 | |||
@@ -50,35 +50,7 @@ | |||
$header.find('.f-page-title').text('请假'); | |||
$page.find('.lr-form-container').setFormWrite(); | |||
}); | |||
//// 更多 | |||
//$header.find('.lr-form-header-more').on('tap', function () { | |||
// learun.actionsheet({ | |||
// id: 'more', | |||
// data: [ | |||
// { | |||
// text: '删除', | |||
// mark: true, | |||
// event: function () {// 删除当前条信息 | |||
// learun.layer.confirm('确定要删除该笔数据吗?', function (_index) { | |||
// if (_index === '1') { | |||
// learun.layer.loading(true, '正在删除该笔数据'); | |||
// learun.httppost(config.webapi + 'learun/EducationalAdministration/StuAttendanceLeave/delete', keyValue, (data) => { | |||
// learun.layer.loading(false); | |||
// if (data) {// 删除数据成功 | |||
// learun.nav.closeCurrent(); | |||
// var prepage = learun.nav.getpage('EducationalAdministration/StuAttendanceLeave'); | |||
// prepage.grid.reload(); | |||
// } | |||
// }); | |||
// } | |||
// }, '智慧校园提示', ['取消', '确定']); | |||
// } | |||
// } | |||
// ], | |||
// cancel: function () { | |||
// } | |||
// }); | |||
//}); | |||
// 提交 | |||
$header.find('.lr-form-header-submit').on('tap', function () { | |||
// 获取表单数据 | |||
@@ -115,10 +87,9 @@ | |||
$header.find('.lr-form-header-btnlist').show(); | |||
// 获取表单数据 | |||
learun.layer.loading(true, '获取表单数据'); | |||
learun.httpget(config.webapi + 'learun/EducationalAdministration/StuAttendanceLeave/leaveform', keyValue, (data) => { | |||
learun.httpget(config.webapi + 'learun/EducationalAdministration/StuAttendanceLeave/leaveform', {}, (data) => { | |||
console.log(data); | |||
if (data) { | |||
for (var id in data) { | |||
if (data[id]) { | |||
if (data[id].length) { | |||
@@ -1 +1,11 @@ | |||
@pubColor: #0C86D8; | |||
@pubColor: #0C86D8; | |||
.btn { | |||
width: 50%; | |||
line-height: 34px; | |||
background-color: #0c86d8; | |||
text-align: center; | |||
color: #fff; | |||
border-radius: 4px; | |||
margin: 30px auto; | |||
} |
@@ -37,6 +37,19 @@ export default { | |||
SundayTime: SundayTime, | |||
Sunday: this.fmtDate(SundayTime) | |||
} | |||
}, | |||
compare (key) { | |||
return (obj1, obj2) => { | |||
let value1 = obj1[key] | |||
let value2 = obj2[key] | |||
if (value1 < value2) { | |||
return -1; | |||
} else if (value1 > value2) { | |||
return 1; | |||
} else { | |||
return 0 | |||
} | |||
} | |||
} | |||
} | |||
@@ -0,0 +1,15 @@ | |||
export default { | |||
fmtDate(obj) { | |||
let date =obj? new Date(obj) : new Date(); | |||
let y = 1900+date.getYear(); | |||
let m = "0"+(date.getMonth()+1); | |||
let d = "0"+date.getDate(); | |||
let h = "0"+date.getHours(); | |||
let min = "0"+date.getMinutes(); | |||
return { | |||
ymdhMin:y+"-"+m.substring(m.length-2,m.length)+"-"+d.substring(d.length-2,d.length) + ' ' + h.substring(h.length-2,h.length) + ':' + min.substring(min.length-2,min.length), | |||
ymd:y+"-"+m.substring(m.length-2,m.length)+"-"+d.substring(d.length-2,d.length) | |||
}; | |||
} | |||
} | |||
@@ -76,6 +76,7 @@ | |||
@change="customChange" | |||
title="结束时间" | |||
placeholder="点击来选取" | |||
/> | |||
</view> | |||
</template> | |||
@@ -26,7 +26,9 @@ export default { | |||
required: {}, | |||
value: {} | |||
}, | |||
created() { | |||
console.log(this.end) | |||
}, | |||
methods: { | |||
click(e) { | |||
if (this.disabled) { | |||
@@ -5,6 +5,8 @@ import store from '@/common/store.js' | |||
import mixins from '@/common/mixins.js' | |||
import '@/components/learun-mpui' | |||
import '@/common/css/common.less'; | |||
moment.locale('zh-cn') | |||
Vue.mixin(mixins) | |||
@@ -646,10 +646,89 @@ | |||
"navigationBarTitleText": "考试安排", | |||
"backgroundColor": "#ffffff" | |||
} | |||
}, | |||
//奖励信息 | |||
{ | |||
"path": "pages/StuEncourgement/list", | |||
"style": { | |||
"navigationBarTitleText": "奖励信息" | |||
} | |||
}, | |||
//我的课表 | |||
{ | |||
"path": "pages/timeTable/list", | |||
"style": { | |||
"navigationBarTitleText": "我的课表" | |||
} | |||
}, | |||
{ | |||
"path": "pages/timeTable/leaveFrom", | |||
"style": { | |||
"navigationBarTitleText": "详细" | |||
} | |||
}, | |||
//选修课选课(预) | |||
{ | |||
"path": "pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentPre/list", | |||
"style": { | |||
"navigationBarTitleText": "选修课选课(预)" | |||
} | |||
}, | |||
{ | |||
"path": "pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentPre/from", | |||
"style": { | |||
"navigationBarTitleText": "查看详情" | |||
} | |||
}, | |||
//选修课选课 | |||
{ | |||
"path": "pages/EducationalAdministration/OpenLessonPlanOfElectiveStudent/list", | |||
"style": { | |||
"navigationBarTitleText": "选修课选课" | |||
} | |||
}, | |||
{ | |||
"path": "pages/EducationalAdministration/OpenLessonPlanOfElectiveStudent/from", | |||
"style": { | |||
"navigationBarTitleText": "查看详情" | |||
} | |||
}, | |||
//我的选修课 | |||
{ | |||
"path": "pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentSelected/list", | |||
"style": { | |||
"navigationBarTitleText": "我的选修课" | |||
} | |||
}, | |||
{ | |||
"path": "pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentSelected/from", | |||
"style": { | |||
"navigationBarTitleText": "查看详情" | |||
} | |||
}, | |||
//学费查询 | |||
{ | |||
"path": "pages/StuPayFee/list", | |||
"style": { | |||
"navigationBarTitleText": "学费查询" | |||
} | |||
}, | |||
//自诊打卡 | |||
{ | |||
"path": "pages/PersonnelManagement/EpidemicSituationCopy/list", | |||
"style": { | |||
"navigationBarTitleText": "自诊打卡" | |||
} | |||
}, | |||
{ | |||
"path": "pages/PersonnelManagement/EpidemicSituationCopy/from", | |||
"style": { | |||
"navigationBarTitleText": "查看详情" | |||
} | |||
} | |||
], | |||
], | |||
// 全局样式 | |||
"globalStyle": { | |||
@@ -1,475 +1,428 @@ | |||
<template> | |||
<view class="page"> | |||
<!-- 主列表页 --> | |||
<view :class="sideOpen ? 'show' : ''" class="mainpage" style="padding-top: 80rpx;"> | |||
<!-- 顶部条目/分页信息栏 --> | |||
<l-customlist-banner @buttonClick="sideOpen = true">{{ tips }}</l-customlist-banner> | |||
<!-- 滚动列表,跨端支持上拉/下拉 --> | |||
<l-scroll-list v-if="ready" @pullDown="pullDown" @toBottom="fetchList()" ref="list"> | |||
<l-customlist :tips="loadState" showTips> | |||
<!-- 单条记录 --> | |||
<view class="customlist-item" v-for="item of list" :key="item.Id"> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">调度类型:</text> | |||
{{ displayListItem(item, 'AttemperType') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">调度时限:</text> | |||
{{ displayListItem(item, 'AttemperTimeType') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">调度时间:</text> | |||
{{ showField(item, 'AttemperStartTime') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">学年学期:</text> | |||
{{ showField(item, 'AcademicYearNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">系部:</text> | |||
{{ displayListItem(item, 'DeptNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">专业:</text> | |||
{{ displayListItem(item, 'MajorNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">课程:</text> | |||
{{ displayListItem(item, 'LessonNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">班级信息:</text> | |||
{{ displayListItem(item, 'TeachClassNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">教师:</text> | |||
{{ displayListItem(item, 'EmpNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">教室:</text> | |||
{{ displayListItem(item, 'ClassroomNo') }} | |||
</view> | |||
<view v-show="item.AttemperType!= '02'"> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">新系部:</text> | |||
{{ displayListItem(item, 'NewDeptNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">新专业:</text> | |||
{{ displayListItem(item, 'NewMajorNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">新课程:</text> | |||
{{ displayListItem(item, 'NewLessonNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">新班级:</text> | |||
{{ displayListItem(item, 'NewTeachClassNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">新教师:</text> | |||
{{ displayListItem(item, 'NewEmpNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">新教室:</text> | |||
{{ displayListItem(item, 'NewClassroomNo') }} | |||
</view> | |||
</view> | |||
</view> | |||
</l-customlist> | |||
</l-scroll-list> | |||
</view> | |||
<!-- 关闭侧边抽屉按钮 --> | |||
<view @click="sideOpen = false" :class="sideOpen ? 'show' : ''" class="sideclose"> | |||
<l-icon type="pullright" color="blue" /> | |||
</view> | |||
<!-- 侧边栏,用于设置查询条件 --> | |||
<scroll-view :class="sideOpen ? 'show' : ''" class="sidepage" scroll-y> | |||
<view v-if="ready" class="padding"> | |||
<l-customlist-sidepage-datefilter | |||
v-model="dateRange" | |||
@change="searchChange" | |||
title="按时间日期查询: " | |||
ref="datefilter" | |||
class="margin-bottom" | |||
/> | |||
<l-select | |||
v-model="queryData.AttemperType" | |||
@change="searchChange" | |||
:range="dataSource.AttemperType" | |||
title ="调度类型" | |||
placeholder="按调度类型查询" | |||
/> | |||
<l-input | |||
v-model="queryData.AcademicYearNo" | |||
@change="searchChange" | |||
title ="学年学期" | |||
placeholder="按学年学期查询" | |||
/> | |||
<l-select | |||
v-model="queryData.DeptNo" | |||
@change="searchChange" | |||
:range="dataSource.DeptNo" | |||
title ="系部" | |||
placeholder="按系部查询" | |||
/> | |||
<l-select | |||
v-model="queryData.MajorNo" | |||
@change="searchChange" | |||
:range="dataSource.MajorNo" | |||
title ="专业" | |||
placeholder="按专业查询" | |||
/> | |||
<l-select | |||
v-model="queryData.LessonNo" | |||
@change="searchChange" | |||
:range="dataSource.LessonNo" | |||
title ="课程" | |||
placeholder="按课程查询" | |||
/> | |||
<l-select | |||
v-model="queryData.TeachClassNo" | |||
@change="searchChange" | |||
:range="dataSource.TeachClassNo" | |||
title ="班级信息" | |||
placeholder="按班级信息查询" | |||
/> | |||
<l-select | |||
v-model="queryData.EmpNo" | |||
@change="searchChange" | |||
:range="dataSource.EmpNo" | |||
title ="教师" | |||
placeholder="按教师查询" | |||
/> | |||
<!-- 重置查询条件按钮 --> | |||
<view class="padding-tb"> | |||
<l-button @click="reset" line="orange" class="block" block>重置查询条件</l-button> | |||
</view> | |||
</view> | |||
</scroll-view> | |||
</view> | |||
</template> | |||
<script> | |||
/* | |||
* 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn) | |||
* Copyright (c) 2013-2020 上海力软信息技术有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2020-10-20 14:32 | |||
* 描 述:调度信息 | |||
<template> | |||
<view class="page"> | |||
<!-- 主列表页 --> | |||
<view :class="sideOpen ? 'show' : ''" class="mainpage" style="padding-top: 80rpx;"> | |||
<!-- 顶部条目/分页信息栏 --> | |||
<l-customlist-banner @buttonClick="sideOpen = true">{{ tips }}</l-customlist-banner> | |||
<!-- 滚动列表,跨端支持上拉/下拉 --> | |||
<l-scroll-list v-if="ready" @pullDown="pullDown" @toBottom="fetchList()" ref="list"> | |||
<l-customlist :tips="loadState" showTips> | |||
<!-- 单条记录 --> | |||
<view class="customlist-item" v-for="item of list" :key="item.Id"> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">调度类型:</text> | |||
{{ displayListItem(item, 'AttemperType') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">调度时限:</text> | |||
{{ displayListItem(item, 'AttemperTimeType') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">调度时间:</text> | |||
{{ showField(item, 'AttemperStartTime') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">学年学期:</text> | |||
{{ showField(item, 'AcademicYearNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">系部:</text> | |||
{{ displayListItem(item, 'DeptNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">专业:</text> | |||
{{ displayListItem(item, 'MajorNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">课程:</text> | |||
{{ displayListItem(item, 'LessonNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">班级信息:</text> | |||
{{ displayListItem(item, 'TeachClassNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">教师:</text> | |||
{{ displayListItem(item, 'EmpNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">教室:</text> | |||
{{ displayListItem(item, 'ClassroomNo') }} | |||
</view> | |||
<view v-show="item.AttemperType != '02'"> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">新系部:</text> | |||
{{ displayListItem(item, 'NewDeptNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">新专业:</text> | |||
{{ displayListItem(item, 'NewMajorNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">新课程:</text> | |||
{{ displayListItem(item, 'NewLessonNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">新班级:</text> | |||
{{ displayListItem(item, 'NewTeachClassNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">新教师:</text> | |||
{{ displayListItem(item, 'NewEmpNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">新教室:</text> | |||
{{ displayListItem(item, 'NewClassroomNo') }} | |||
</view> | |||
</view> | |||
</view> | |||
</l-customlist> | |||
</l-scroll-list> | |||
</view> | |||
<!-- 关闭侧边抽屉按钮 --> | |||
<view @click="sideOpen = false" :class="sideOpen ? 'show' : ''" class="sideclose"><l-icon type="pullright" color="blue" /></view> | |||
<!-- 侧边栏,用于设置查询条件 --> | |||
<scroll-view :class="sideOpen ? 'show' : ''" class="sidepage" scroll-y> | |||
<view v-if="ready" class="padding"> | |||
<l-customlist-sidepage-datefilter v-model="dateRange" @change="searchChange" title="按时间日期查询: " ref="datefilter" class="margin-bottom" /> | |||
<l-select v-model="queryData.AttemperType" @change="searchChange" :range="dataSource.AttemperType" title="调度类型" placeholder="按调度类型查询" /> | |||
<l-input v-model="queryData.AcademicYearNo" @change="searchChange" title="学年学期" placeholder="按学年学期查询" /> | |||
<l-select v-model="queryData.DeptNo" @change="searchChange" :range="dataSource.DeptNo" title="系部" placeholder="按系部查询" /> | |||
<l-select v-model="queryData.MajorNo" @change="searchChange" :range="dataSource.MajorNo" title="专业" placeholder="按专业查询" /> | |||
<l-select v-model="queryData.LessonNo" @change="searchChange" :range="dataSource.LessonNo" title="课程" placeholder="按课程查询" /> | |||
<l-select v-model="queryData.TeachClassNo" @change="searchChange" :range="dataSource.TeachClassNo" title="班级信息" placeholder="按班级信息查询" /> | |||
<l-select v-model="queryData.EmpNo" @change="searchChange" :range="dataSource.EmpNo" title="教师" placeholder="按教师查询" /> | |||
<!-- 重置查询条件按钮 --> | |||
<view class="padding-tb"><l-button @click="reset" line="orange" class="block" block>重置查询条件</l-button></view> | |||
</view> | |||
</scroll-view> | |||
</view> | |||
</template> | |||
<script> | |||
/* | |||
* 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn) | |||
* Copyright (c) 2013-2020 上海力软信息技术有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2020-10-20 14:32 | |||
* 描 述:调度信息 | |||
*/ | |||
/** | |||
* 本段代码由移动端代码生成器输出,移动端须 2.2.0 版本及以上可以使用 | |||
* 请在移动端 /pages.json 中的 pages 字段中添加一条记录: | |||
* { "path": "pages/EducationalAdministration/ArrangeLessonTermAttemper/list", "style": { "navigationBarTitleText": "表单列表页" } } | |||
* | |||
* (navigationBarTitleText 字段为本页面的标题文本,可以修改) | |||
* (必须自行操作该步骤,力软代码生成器不会自动帮您修改 /pages.json 文件) | |||
/** | |||
* 本段代码由移动端代码生成器输出,移动端须 2.2.0 版本及以上可以使用 | |||
* 请在移动端 /pages.json 中的 pages 字段中添加一条记录: | |||
* { "path": "pages/EducationalAdministration/ArrangeLessonTermAttemper/list", "style": { "navigationBarTitleText": "表单列表页" } } | |||
* | |||
* (navigationBarTitleText 字段为本页面的标题文本,可以修改) | |||
* (必须自行操作该步骤,力软代码生成器不会自动帮您修改 /pages.json 文件) | |||
*/ | |||
import moment from 'moment' | |||
import get from 'lodash/get' | |||
import set from 'lodash/set' | |||
import pickBy from 'lodash/pickBy' | |||
import mapValues from 'lodash/mapValues' | |||
export default { | |||
data() { | |||
return { | |||
// 数据项的数据类型、结构 | |||
scheme: { | |||
AttemperType: { type: 'select', itemCode: 'AttemperType', dataSource: '0' }, | |||
AttemperTimeType: { type: 'select', itemCode: 'AttemperTimeType', dataSource: '0' }, | |||
AttemperStartTime: { type: 'text' }, | |||
AcademicYearNo: { type: 'text' }, | |||
DeptNo: { type: 'select', dataSource: '1', dataSourceId: 'CdDeptInfo,deptname,deptno' }, | |||
MajorNo: { type: 'select', dataSource: '1', dataSourceId: 'CdMajorInfo,majorname,majorno' }, | |||
LessonNo: { type: 'select', dataSource: '1', dataSourceId: 'LessonInfo,lessonname,lessonno' }, | |||
TeachClassNo: { type: 'select', dataSource: '1', dataSourceId: 'bjsj,classname,classno' }, | |||
EmpNo: { type: 'select', dataSource: '1', dataSourceId: 'EmpInfo,empname,empno' }, | |||
ClassroomNo: { type: 'select', dataSource: '1', dataSourceId: 'ClassRoomInfo,classroomname,classroomno' }, | |||
NewDeptNo: { type: 'select', dataSource: '1', dataSourceId: 'CdDeptInfo,deptname,deptno' }, | |||
NewMajorNo: { type: 'select', dataSource: '1', dataSourceId: 'CdMajorInfo,majorname,majorno' }, | |||
NewLessonNo: { type: 'select', dataSource: '1', dataSourceId: 'LessonInfo,lessonname,lessonno' }, | |||
NewTeachClassNo: { type: 'select', dataSource: '1', dataSourceId: 'bjsj,classname,classno' }, | |||
NewEmpNo: { type: 'select', dataSource: '1', dataSourceId: 'EmpInfo,empname,empno' }, | |||
NewClassroomNo: { type: 'select', dataSource: '1', dataSourceId: 'ClassRoomInfo,classroomname,classroomno' }, | |||
}, | |||
// 查询条件 | |||
searchData: {}, | |||
defaultQueryData: {}, | |||
queryData: { | |||
AttemperType: '', | |||
AcademicYearNo: '', | |||
DeptNo: '', | |||
MajorNo: '', | |||
LessonNo: '', | |||
TeachClassNo: '', | |||
EmpNo: '', | |||
}, | |||
// 数据源 | |||
dataSource: { | |||
AttemperType: Object.values(this.GET_GLOBAL('dataDictionary').AttemperType).map(t => ({ value: t.value, text: t.text })), | |||
AttemperTimeType: Object.values(this.GET_GLOBAL('dataDictionary').AttemperTimeType).map(t => ({ value: t.value, text: t.text })), | |||
DeptNo: [], | |||
MajorNo: [], | |||
LessonNo: [], | |||
TeachClassNo: [], | |||
EmpNo: [], | |||
ClassroomNo: [], | |||
NewDeptNo: [], | |||
NewMajorNo: [], | |||
NewLessonNo: [], | |||
NewTeachClassNo: [], | |||
NewEmpNo: [], | |||
NewClassroomNo: [], | |||
}, | |||
// 时间查询参数 | |||
dateRange: null, | |||
// 页面相关参数 | |||
ready: false, | |||
tips: '加载中...', | |||
loadState: '向下翻以加载更多', | |||
sideOpen: false, | |||
// 列表与分页信息 | |||
page: 1, | |||
total: 2, | |||
list: [] | |||
} | |||
}, | |||
async onLoad() { | |||
await this.init() | |||
}, | |||
onUnload() { | |||
this.OFF('EducationalAdministrationArrangeLessonTermAttemper-list-change') | |||
}, | |||
methods: { | |||
// 页面初始化 | |||
async init() { | |||
this.ON('EducationalAdministrationArrangeLessonTermAttemper-list-change', this.refreshList) | |||
// 拉取加载列表和数据源 | |||
await Promise.all([ | |||
this.FETCH_DATASOURCE('CdDeptInfo').then(result => { | |||
this.dataSource.DeptNo = result.data.map(t => ({ text: t.deptname, value: t.deptno })) | |||
}), | |||
this.FETCH_DATASOURCE('CdMajorInfo').then(result => { | |||
this.dataSource.MajorNo = result.data.map(t => ({ text: t.majorname, value: t.majorno })) | |||
}), | |||
this.FETCH_DATASOURCE('LessonInfo').then(result => { | |||
this.dataSource.LessonNo = result.data.map(t => ({ text: t.lessonname, value: t.lessonno })) | |||
}), | |||
this.FETCH_DATASOURCE('bjsj').then(result => { | |||
this.dataSource.TeachClassNo = result.data.map(t => ({ text: t.classname, value: t.classno })) | |||
}), | |||
this.FETCH_DATASOURCE('EmpInfo').then(result => { | |||
this.dataSource.EmpNo = result.data.map(t => ({ text: t.empname, value: t.empno })) | |||
}), | |||
this.FETCH_DATASOURCE('ClassRoomInfo').then(result => { | |||
this.dataSource.ClassroomNo = result.data.map(t => ({ text: t.classroomname, value: t.classroomno })) | |||
}), | |||
this.FETCH_DATASOURCE('CdDeptInfo').then(result => { | |||
this.dataSource.NewDeptNo = result.data.map(t => ({ text: t.deptname, value: t.deptno })) | |||
}), | |||
this.FETCH_DATASOURCE('CdMajorInfo').then(result => { | |||
this.dataSource.NewMajorNo = result.data.map(t => ({ text: t.majorname, value: t.majorno })) | |||
}), | |||
this.FETCH_DATASOURCE('LessonInfo').then(result => { | |||
this.dataSource.NewLessonNo = result.data.map(t => ({ text: t.lessonname, value: t.lessonno })) | |||
}), | |||
this.FETCH_DATASOURCE('bjsj').then(result => { | |||
this.dataSource.NewTeachClassNo = result.data.map(t => ({ text: t.classname, value: t.classno })) | |||
}), | |||
this.FETCH_DATASOURCE('EmpInfo').then(result => { | |||
this.dataSource.NewEmpNo = result.data.map(t => ({ text: t.empname, value: t.empno })) | |||
}), | |||
this.FETCH_DATASOURCE('ClassRoomInfo').then(result => { | |||
this.dataSource.NewClassroomNo = result.data.map(t => ({ text: t.classroomname, value: t.classroomno })) | |||
}), | |||
() => {} | |||
]) | |||
await this.fetchList() | |||
// 初始化查询条件 | |||
this.defaultQueryData = this.COPY(this.queryData) | |||
this.ready = true | |||
}, | |||
// 拉取列表 | |||
async fetchList() { | |||
if (this.page > this.total) { return } | |||
const result = await this.HTTP_GET( | |||
'learun/adms/EducationalAdministration/ArrangeLessonTermAttemper/pagelist', | |||
{ | |||
// 这里 sidx 表示排序字段,sord 表示排序方式(DESC=降序,ASC=升序) | |||
// 代码生成器生成时默认按照主键排序,您可以修改成按创建时间的字段降序 | |||
pagination: { rows: 10, page: this.page, sidx: 'Id', sord: 'DESC' }, | |||
queryJson: JSON.stringify(this.searchData) | |||
}, | |||
'加载数据时出错' | |||
) | |||
if (!result) { return } | |||
this.total = result.total | |||
this.page = result.page + 1 | |||
this.list = this.list.concat(result.rows) | |||
this.tips = `已加载 ${Math.min(result.page, result.total)} / ${result.total} 页,共 ${result.records} 项` | |||
this.loadState = result.page >= result.total ? '已加载所有项目' : '向下翻以加载更多' | |||
}, | |||
// 刷新清空列表 | |||
async refreshList() { | |||
this.page = 1 | |||
this.total = 2 | |||
this.list = [] | |||
await this.fetchList() | |||
}, | |||
// 列表下拉 | |||
pullDown() { | |||
this.refreshList().then(() => { | |||
this.$refs.list.stopPullDown() | |||
}) | |||
}, | |||
// 设置搜索条件 | |||
async searchChange() { | |||
const result = {} | |||
// 时间查询相关参数 | |||
if (this.dateRange) { | |||
result.StartTime = this.dateRange.start | |||
result.EndTime = this.dateRange.end | |||
} | |||
// 将其他查询项添加到查询 JSON 中 | |||
const queryObj = pickBy(this.queryData, t => (Array.isArray(t) ? t.length > 0 : t)) | |||
Object.assign(result, mapValues(queryObj, t => (Array.isArray(t) ? t.join(',') : t))) | |||
this.searchData = result | |||
await this.refreshList() | |||
}, | |||
// 点击「清空查询条件」按钮 | |||
reset() { | |||
this.$refs.datefilter.changeDateRange('all') | |||
this.queryData = this.COPY(this.defaultQueryData) | |||
this.searchChange() | |||
}, | |||
// 点击「编辑」、「查看」、「添加」、「删除」按钮 | |||
async action(type, id = '') { | |||
switch (type) { | |||
case 'view': | |||
this.NAV_TO(`./single?type=view&id=${id}`) | |||
return | |||
case 'add': | |||
this.NAV_TO('./single?type=create') | |||
return | |||
case 'edit': | |||
this.NAV_TO(`./single?type=edit&id=${id}`) | |||
return | |||
case 'delete': | |||
if (!(await this.CONFIRM('删除项目', '确定要删除该项吗?', true))) { | |||
return | |||
} | |||
this.HTTP_POST('learun/adms/EducationalAdministration/ArrangeLessonTermAttemper/delete', id, '删除失败').then(success => { | |||
if(!success) { return } | |||
this.TOAST('删除成功', 'success') | |||
this.refreshList() | |||
}) | |||
return | |||
default: | |||
return | |||
} | |||
}, | |||
// 显示列表中的标题项 | |||
displayListItem(item, field) { | |||
const fieldItem = this.scheme[field] | |||
const value = item[field] | |||
switch (fieldItem.type) { | |||
case 'currentInfo': | |||
case 'organize': | |||
return fieldItem.dataType === 'time' ? value : get(this.GET_GLOBAL(fieldItem.dataType), `${value}.name`, '') | |||
case 'radio': | |||
case 'select': | |||
const selectItem = this.dataSource[field].find(t => t.value === String(value)) | |||
return get(selectItem, 'text', '') | |||
case 'checkbox': | |||
if (!value || value.split(',').length <= 0) { return '' } | |||
const checkboxItems = value.split(',') | |||
return this.dataSource[field].filter(t => checkboxItems.includes(t.value)).map(t => t.text).join(',') | |||
case 'datetime': | |||
if (!value) { return '' } | |||
return moment(value).format(Number(fieldItem.dateformat) === 0 ? 'YYYY年 M月 D日' : 'YYYY-MM-DD HH:mm') | |||
default: return value === null || value === undefined ? '' : value | |||
} | |||
}, | |||
showField(item,field){ | |||
switch(field){ | |||
case 'AttemperStartTime': | |||
return (item.AttemperStartTime == null ? "-" : item.AttemperStartTime) + "到" + (item.AttemperEndTime == null ? "-" : item.AttemperEndTime) | |||
case 'AcademicYearNo': | |||
return item.AcademicYearNo + "学年第" + item.Semester + "学期" | |||
} | |||
} | |||
} | |||
} | |||
</script> | |||
<style lang="less" scoped> | |||
@import '~@/common/css/sidepage.less'; | |||
@import '~@/common/css/customlist.less'; | |||
</style> | |||
import moment from 'moment'; | |||
import get from 'lodash/get'; | |||
import set from 'lodash/set'; | |||
import pickBy from 'lodash/pickBy'; | |||
import mapValues from 'lodash/mapValues'; | |||
export default { | |||
data() { | |||
return { | |||
// 数据项的数据类型、结构 | |||
scheme: { | |||
AttemperType: { type: 'select', itemCode: 'AttemperType', dataSource: '0' }, | |||
AttemperTimeType: { type: 'select', itemCode: 'AttemperTimeType', dataSource: '0' }, | |||
AttemperStartTime: { type: 'text' }, | |||
AcademicYearNo: { type: 'text' }, | |||
DeptNo: { type: 'select', dataSource: '1', dataSourceId: 'CdDeptInfo,deptname,deptno' }, | |||
MajorNo: { type: 'select', dataSource: '1', dataSourceId: 'CdMajorInfo,majorname,majorno' }, //code name id | |||
LessonNo: { type: 'select', dataSource: '1', dataSourceId: 'LessonInfo,lessonname,lessonno' }, | |||
TeachClassNo: { type: 'select', dataSource: '1', dataSourceId: 'bjsj,classname,classno' }, | |||
EmpNo: { type: 'select', dataSource: '1', dataSourceId: 'EmpInfo,empname,empno' }, | |||
ClassroomNo: { type: 'select', dataSource: '1', dataSourceId: 'ClassRoomInfo,classroomname,classroomno' }, | |||
NewDeptNo: { type: 'select', dataSource: '1', dataSourceId: 'CdDeptInfo,deptname,deptno' }, | |||
NewMajorNo: { type: 'select', dataSource: '1', dataSourceId: 'CdMajorInfo,majorname,majorno' }, | |||
NewLessonNo: { type: 'select', dataSource: '1', dataSourceId: 'LessonInfo,lessonname,lessonno' }, | |||
NewTeachClassNo: { type: 'select', dataSource: '1', dataSourceId: 'bjsj,classname,classno' }, | |||
NewEmpNo: { type: 'select', dataSource: '1', dataSourceId: 'EmpInfo,empname,empno' }, | |||
NewClassroomNo: { type: 'select', dataSource: '1', dataSourceId: 'ClassRoomInfo,classroomname,classroomno' } | |||
}, | |||
// 查询条件 | |||
searchData: {}, | |||
defaultQueryData: {}, | |||
queryData: { | |||
AttemperType: '', | |||
AcademicYearNo: '', | |||
DeptNo: '', | |||
MajorNo: '', | |||
LessonNo: '', | |||
TeachClassNo: '', | |||
EmpNo: '' | |||
}, | |||
// 数据源 | |||
dataSource: { | |||
AttemperType: Object.values(this.GET_GLOBAL('dataDictionary').AttemperType).map(t => ({ value: t.value, text: t.text })), | |||
AttemperTimeType: Object.values(this.GET_GLOBAL('dataDictionary').AttemperTimeType).map(t => ({ value: t.value, text: t.text })), | |||
DeptNo: [], | |||
MajorNo: [], | |||
LessonNo: [], | |||
TeachClassNo: [], | |||
EmpNo: [], | |||
ClassroomNo: [], | |||
NewDeptNo: [], | |||
NewMajorNo: [], | |||
NewLessonNo: [], | |||
NewTeachClassNo: [], | |||
NewEmpNo: [], | |||
NewClassroomNo: [] | |||
}, | |||
// 时间查询参数 | |||
dateRange: null, | |||
// 页面相关参数 | |||
ready: false, | |||
tips: '加载中...', | |||
loadState: '向下翻以加载更多', | |||
sideOpen: false, | |||
// 列表与分页信息 | |||
page: 1, | |||
total: 2, | |||
list: [] | |||
}; | |||
}, | |||
async onLoad() { | |||
await this.init(); | |||
}, | |||
onUnload() { | |||
this.OFF('EducationalAdministrationArrangeLessonTermAttemper-list-change'); | |||
}, | |||
methods: { | |||
// 页面初始化 | |||
async init() { | |||
this.ON('EducationalAdministrationArrangeLessonTermAttemper-list-change', this.refreshList); | |||
// 拉取加载列表和数据源 | |||
await Promise.all([ | |||
this.FETCH_DATASOURCE('CdDeptInfo').then(result => { | |||
this.dataSource.DeptNo = result.data.map(t => ({ text: t.deptname, value: t.deptno })); | |||
}), | |||
this.FETCH_DATASOURCE('CdMajorInfo').then(result => { | |||
this.dataSource.MajorNo = result.data.map(t => ({ text: t.majorname, value: t.majorno })); | |||
}), | |||
this.FETCH_DATASOURCE('LessonInfo').then(result => { | |||
this.dataSource.LessonNo = result.data.map(t => ({ text: t.lessonname, value: t.lessonno })); | |||
}), | |||
this.FETCH_DATASOURCE('bjsj').then(result => { | |||
this.dataSource.TeachClassNo = result.data.map(t => ({ text: t.classname, value: t.classno })); | |||
}), | |||
this.FETCH_DATASOURCE('EmpInfo').then(result => { | |||
this.dataSource.EmpNo = result.data.map(t => ({ text: t.empname, value: t.empno })); | |||
}), | |||
this.FETCH_DATASOURCE('ClassRoomInfo').then(result => { | |||
this.dataSource.ClassroomNo = result.data.map(t => ({ text: t.classroomname, value: t.classroomno })); | |||
}), | |||
this.FETCH_DATASOURCE('CdDeptInfo').then(result => { | |||
this.dataSource.NewDeptNo = result.data.map(t => ({ text: t.deptname, value: t.deptno })); | |||
}), | |||
this.FETCH_DATASOURCE('CdMajorInfo').then(result => { | |||
this.dataSource.NewMajorNo = result.data.map(t => ({ text: t.majorname, value: t.majorno })); | |||
}), | |||
this.FETCH_DATASOURCE('LessonInfo').then(result => { | |||
this.dataSource.NewLessonNo = result.data.map(t => ({ text: t.lessonname, value: t.lessonno })); | |||
}), | |||
this.FETCH_DATASOURCE('bjsj').then(result => { | |||
this.dataSource.NewTeachClassNo = result.data.map(t => ({ text: t.classname, value: t.classno })); | |||
}), | |||
this.FETCH_DATASOURCE('EmpInfo').then(result => { | |||
this.dataSource.NewEmpNo = result.data.map(t => ({ text: t.empname, value: t.empno })); | |||
}), | |||
this.FETCH_DATASOURCE('ClassRoomInfo').then(result => { | |||
this.dataSource.NewClassroomNo = result.data.map(t => ({ text: t.classroomname, value: t.classroomno })); | |||
}), | |||
() => {} | |||
]); | |||
await this.fetchList(); | |||
// 初始化查询条件 | |||
this.defaultQueryData = this.COPY(this.queryData); | |||
this.ready = true; | |||
}, | |||
// 拉取列表 | |||
async fetchList() { | |||
if (this.page > this.total) { | |||
return; | |||
} | |||
const result = await this.HTTP_GET( | |||
'learun/adms/EducationalAdministration/ArrangeLessonTermAttemper/pagelist', | |||
{ | |||
// 这里 sidx 表示排序字段,sord 表示排序方式(DESC=降序,ASC=升序) | |||
// 代码生成器生成时默认按照主键排序,您可以修改成按创建时间的字段降序 | |||
pagination: { rows: 10, page: this.page, sidx: 'Id', sord: 'DESC' }, | |||
queryJson: JSON.stringify(this.searchData) | |||
}, | |||
'加载数据时出错' | |||
); | |||
if (!result) { | |||
return; | |||
} | |||
this.total = result.total; | |||
this.page = result.page + 1; | |||
this.list = this.list.concat(result.rows); | |||
this.tips = `已加载 ${Math.min(result.page, result.total)} / ${result.total} 页,共 ${result.records} 项`; | |||
this.loadState = result.page >= result.total ? '已加载所有项目' : '向下翻以加载更多'; | |||
}, | |||
// 刷新清空列表 | |||
async refreshList() { | |||
this.page = 1; | |||
this.total = 2; | |||
this.list = []; | |||
await this.fetchList(); | |||
}, | |||
// 列表下拉 | |||
pullDown() { | |||
this.refreshList().then(() => { | |||
this.$refs.list.stopPullDown(); | |||
}); | |||
}, | |||
// 设置搜索条件 | |||
async searchChange() { | |||
const result = {}; | |||
// 时间查询相关参数 | |||
if (this.dateRange) { | |||
result.StartTime = this.dateRange.start; | |||
result.EndTime = this.dateRange.end; | |||
} | |||
// 将其他查询项添加到查询 JSON 中 | |||
const queryObj = pickBy(this.queryData, t => (Array.isArray(t) ? t.length > 0 : t)); | |||
Object.assign(result, mapValues(queryObj, t => (Array.isArray(t) ? t.join(',') : t))); | |||
this.searchData = result; | |||
await this.refreshList(); | |||
}, | |||
// 点击「清空查询条件」按钮 | |||
reset() { | |||
this.$refs.datefilter.changeDateRange('all'); | |||
this.queryData = this.COPY(this.defaultQueryData); | |||
this.searchChange(); | |||
}, | |||
// 点击「编辑」、「查看」、「添加」、「删除」按钮 | |||
async action(type, id = '') { | |||
switch (type) { | |||
case 'view': | |||
this.NAV_TO(`./single?type=view&id=${id}`); | |||
return; | |||
case 'add': | |||
this.NAV_TO('./single?type=create'); | |||
return; | |||
case 'edit': | |||
this.NAV_TO(`./single?type=edit&id=${id}`); | |||
return; | |||
case 'delete': | |||
if (!(await this.CONFIRM('删除项目', '确定要删除该项吗?', true))) { | |||
return; | |||
} | |||
this.HTTP_POST('learun/adms/EducationalAdministration/ArrangeLessonTermAttemper/delete', id, '删除失败').then(success => { | |||
if (!success) { | |||
return; | |||
} | |||
this.TOAST('删除成功', 'success'); | |||
this.refreshList(); | |||
}); | |||
return; | |||
default: | |||
return; | |||
} | |||
}, | |||
// 显示列表中的标题项 | |||
displayListItem(item, field) { | |||
const fieldItem = this.scheme[field]; | |||
const value = item[field]; | |||
switch (fieldItem.type) { | |||
case 'currentInfo': | |||
case 'organize': | |||
return fieldItem.dataType === 'time' ? value : get(this.GET_GLOBAL(fieldItem.dataType), `${value}.name`, ''); | |||
case 'radio': | |||
case 'select': | |||
const selectItem = this.dataSource[field].find(t => t.value === String(value)); | |||
return get(selectItem, 'text', ''); | |||
case 'checkbox': | |||
if (!value || value.split(',').length <= 0) { | |||
return ''; | |||
} | |||
const checkboxItems = value.split(','); | |||
return this.dataSource[field] | |||
.filter(t => checkboxItems.includes(t.value)) | |||
.map(t => t.text) | |||
.join(','); | |||
case 'datetime': | |||
if (!value) { | |||
return ''; | |||
} | |||
return moment(value).format(Number(fieldItem.dateformat) === 0 ? 'YYYY年 M月 D日' : 'YYYY-MM-DD HH:mm'); | |||
default: | |||
return value === null || value === undefined ? '' : value; | |||
} | |||
}, | |||
showField(item, field) { | |||
switch (field) { | |||
case 'AttemperStartTime': | |||
return (item.AttemperStartTime == null ? '-' : item.AttemperStartTime) + '到' + (item.AttemperEndTime == null ? '-' : item.AttemperEndTime); | |||
case 'AcademicYearNo': | |||
return item.AcademicYearNo + '学年第' + item.Semester + '学期'; | |||
} | |||
} | |||
} | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
@import '~@/common/css/sidepage.less'; | |||
@import '~@/common/css/customlist.less'; | |||
</style> |
@@ -106,7 +106,7 @@ import mapValues from 'lodash/mapValues' | |||
export default { | |||
data() { | |||
return { | |||
return { | |||
// 数据项的数据类型、结构 | |||
scheme: { | |||
BorrowTime: { type: 'text' }, | |||
@@ -0,0 +1,91 @@ | |||
<template> | |||
<view class="page"> | |||
<l-input title="学年" placeholder="请填写学年" disabled left /> | |||
<l-input title="学期" placeholder="请填写学期" disabled left /> | |||
<l-input title="课程名称" placeholder="请填写课程名称" disabled left /> | |||
<view class="txt">课程简介:</view> | |||
<view class="bg-white"> | |||
<l-textarea placeholder="输入点什么..." readonly="readonly" /> | |||
</view> | |||
<l-input title="上课节次" placeholder="请填写上课节次" disabled left /> | |||
<l-input title="上课时间" placeholder="请填写上课时间" disabled left /> | |||
<l-input title="学分" placeholder="请填写学分" disabled left /> | |||
<l-input title="教师姓名" placeholder="请填写教师姓名" disabled left /> | |||
<view class="txt">教师简介:</view> | |||
<view class="bg-white"> | |||
<l-textarea disabled placeholder="输入点什么..." readonly="readonly" /> | |||
</view> | |||
<l-input title="教室名称" placeholder="请填写教室名称" disabled left /> | |||
<l-input title="姓名" placeholder="请填写姓名" disabled left /> | |||
<l-input title="人数上限" placeholder="请填写人数上限" disabled left /> | |||
<l-input title="已报名人数" placeholder="请填写已报名人数" disabled left /> | |||
<view class="btn" @click="fromBtn">报名</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default{ | |||
data() { | |||
return { | |||
weekChina: ["一", "二", "三", "四", "五", "六", "日"], | |||
keyValue: '' | |||
} | |||
}, | |||
methods:{ | |||
init() { | |||
this.keyValue = this.GET_PARAM(); //获取页面传递参数 | |||
// console.log(this.keyValue); | |||
let _this = this; | |||
_this.LOADING('加载数据中…'); | |||
_this.HTTP_GET('learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/form', { | |||
"keyValue":_this.keyValue | |||
}, '加载数据时出错').then(res => { | |||
this.HIDE_LOADING(); | |||
console.log(res); | |||
}); | |||
}, | |||
fromBtn() { | |||
var _postData = {} | |||
let _this = this; | |||
let user = this.GET_GLOBAL('loginUser');; | |||
_postData.keyValue = this.keyValue; | |||
_postData.StuNo = user.account; | |||
_this.LOADING('正在提交…'); | |||
_this.HTTP_POST('learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/SignInByMobile', _postData, '加载数据时出错').then((res,info, code) => { | |||
// this.HIDE_LOADING(); | |||
console.log(res); | |||
console.log(info); | |||
console.log(code); | |||
if (res) {// 表单数据保存成功 | |||
//判断队列结果 | |||
let timer = setInterval(function () { | |||
_this.HTTP_POST('learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/GetApplyResult', | |||
_postData, '加载数据时出错').then((dataresult, inforesult) => { | |||
this.HIDE_LOADING(); | |||
clearInterval(timer); | |||
console.log(dataresult); | |||
}); | |||
}, 5000); | |||
} | |||
}); | |||
} | |||
}, | |||
created() { | |||
this.init() | |||
} | |||
} | |||
</script> | |||
<style lang="less" scoped> | |||
.txt{ | |||
line-height: 24px; | |||
font-size: 15px; | |||
background-color: #fff; | |||
padding: 10px 0 10px 15px; | |||
} | |||
.page{ | |||
background-color: #fff; | |||
padding-bottom: 1px; | |||
} | |||
</style> |
@@ -0,0 +1,239 @@ | |||
<template> | |||
<view class="page"> | |||
<view class="mainpage" :class="sideOpen ? 'show' : ''" style="padding-top: 40px;"> | |||
<!-- <l-customlist-banner></l-customlist-banner> --> | |||
<view class="records">共 {{ records }} 条数据</view> | |||
<l-scroll-list v-if="ready" @pullDown="pullDown" @toBottom="fetchList()" ref="data"> | |||
<l-customlist :tips="loadState" showTips> | |||
<view class="pageBox customlist-item" showDelete="true" v-for="(item, ind) in data" :key="item.MakeDate" @click="tapClick(item)"> | |||
<view class=""> | |||
<text>学年:</text> | |||
{{ item.AcademicYearNo }} | |||
</view> | |||
<view class=""> | |||
<text>学期:</text> | |||
{{ item.Semester }} | |||
</view> | |||
<view class=""> | |||
<text>课程名称:</text> | |||
{{ item.LessonName }} | |||
</view> | |||
<view class=""> | |||
<text>上课节次:</text> | |||
{{ jieci(item.LessonSection) }} | |||
</view> | |||
<view class=""> | |||
<text>上课时间:</text> | |||
{{ item.LessonTime }} | |||
</view> | |||
<view class=""> | |||
<text>学分:</text> | |||
{{ item.StudyScore }} | |||
</view> | |||
<view class=""> | |||
<text>教师姓名:</text> | |||
{{ item.EmpName }} | |||
</view> | |||
<view class=""> | |||
<text>教室名称:</text> | |||
{{ item.ClassRoomNo }} | |||
</view> | |||
<view class=""> | |||
<text>人数上限:</text> | |||
{{ item.StuNumMax }} | |||
</view> | |||
<view class=""> | |||
<text>已报名人数:</text> | |||
{{ item.StuNumOfApplyPre }} | |||
</view> | |||
<view class="pageType">{{ typePd(item.StatusPre) }}</view> | |||
<view class="delbtn" @click.stop="delTap(item)">取消报名</view> | |||
</view> | |||
</l-customlist> | |||
</l-scroll-list> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
weekChina: ['一', '二', '三', '四', '五', '六', '日'], | |||
user: null, | |||
data: [], | |||
total: 1, | |||
records: 0, | |||
ready: false, | |||
page: 1, | |||
rows: 10, | |||
multipleData: null, | |||
sideOpen: false, | |||
loadState: '向下翻以加载更多' | |||
}; | |||
}, | |||
onUnload() { | |||
this.OFF('EducationalAdministrationBookBorrow-list-change'); | |||
}, | |||
methods: { | |||
init() { | |||
this.ON('EducationalAdministrationBookBorrow-list-change', this.refreshList); | |||
// 拉取加载列表和数据源 | |||
Promise.all([() => {}]); | |||
var _this = this; | |||
this.user = this.GET_GLOBAL('loginUser'); | |||
this.fetchList(); | |||
this.ready = true; | |||
}, | |||
// 拉取列表 | |||
async fetchList() { | |||
if (this.page > this.total) { | |||
return; | |||
} | |||
let _this = this; | |||
let _postParam = { | |||
pagination: { | |||
rows: _this.rows, | |||
page: _this.page, | |||
sidx: 'LessonNo', | |||
sord: 'asc' | |||
}, | |||
queryJson: '{}' | |||
}; | |||
if (true) { | |||
_postParam.queryJson = JSON.stringify({ | |||
StuNo: _this.user.account, | |||
StuMajorNo: _this.user.majorno, | |||
StuGrade: _this.user.grade | |||
}); | |||
} | |||
// console.log(_this.user) | |||
_this.LOADING('加载数据中…') | |||
_this.HTTP_GET('learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/pagelist', _postParam, '加载数据时出错').then(res => { | |||
_this.HIDE_LOADING(); | |||
// console.log(res); | |||
this.data = this.data.concat(res.rows); | |||
_this.total = res.total; | |||
_this.records = res.records; | |||
this.page = res.page + 1; | |||
this.loadState = res.page >= res.total ? '已加载所有项目' : '向下翻以加载更多'; | |||
// console.log(_this.data); | |||
}); | |||
}, | |||
// 列表下拉 | |||
pullDown() { | |||
this.refreshList().then(() => { | |||
this.$refs.data.stopPullDown(); | |||
}); | |||
}, | |||
async refreshList() { | |||
this.page = 1; | |||
this.total = 1; | |||
this.data = []; | |||
this.fetchList(); | |||
}, | |||
tapClick(data) { | |||
this.NAV_TO('./from', data.Id, true); | |||
}, | |||
delTap (item) { | |||
// console.log(item) | |||
let _this = this; | |||
this.CONFIRM('数字化校园提示', '确定要取消报名吗?', true).then( res => { | |||
if(res){ | |||
let _postData = { | |||
keyValue: item.Id, | |||
StuNo: _this.user.account | |||
} | |||
_this.LOADING('正在取消报名…') | |||
_this.HTTP_POST( | |||
'learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/Cancel', | |||
_postData, | |||
'加载数据时出错' | |||
).then( data => { | |||
_this.HIDE_LOADING() | |||
console.log(data) | |||
// console.log(info) | |||
// console.log(code) | |||
if (data) {// 成功 | |||
// _this.TOAST(info); | |||
// item.pageType = | |||
} | |||
}) | |||
} | |||
}) | |||
} | |||
}, | |||
computed: { | |||
jieci() { | |||
return str => { | |||
let ls = ''; | |||
if (str.indexOf(',') == -1) ls = '星期' + this.weekChina[str.slice(0, 1) - 1] + '第' + str.slice(1) + '节'; | |||
else ls = '星期' + this.weekChina[str.slice(0, 1) - 1] + '第' + str.slice(1, 2) + '、' + str.slice(4) + '节'; | |||
return ls; | |||
}; | |||
}, | |||
typePd() { | |||
return num => { | |||
let txt = ''; | |||
if (num == 1) { | |||
txt = '审核中'; | |||
} else if (num == 2) { | |||
txt = '报名成功'; | |||
} else if (num == 3) { | |||
txt = '报名失败'; | |||
} else { | |||
txt = '未报名'; | |||
} | |||
return txt; | |||
}; | |||
} | |||
}, | |||
created() { | |||
this.init(); | |||
} | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
@import '~@/common/css/sidepage.less'; | |||
@import '~@/common/css/customlist.less'; | |||
.page { | |||
background-color: #fff; | |||
} | |||
.page-content { | |||
margin-top: 39px; | |||
} | |||
.records { | |||
color: #8f8f94; | |||
background: #ffffff; | |||
padding: 10px 12px; | |||
width: 100%; | |||
vertical-align: middle; | |||
border-bottom: 0.5px solid #ddd; | |||
position: fixed; | |||
top: var(--window-top); | |||
z-index: 1024; | |||
border-bottom: 0.5px solid #ddd; | |||
height: 40px; | |||
width: 100%; | |||
box-shadow: 0 0.5px 3px rgba(0, 0, 0, 0.1); | |||
// background: #f1f1f1; | |||
} | |||
.pageBox { | |||
// margin-top: 34px; | |||
padding: 5px 15px; | |||
line-height: 24px; | |||
border-bottom: 5px solid #f5f5f5; | |||
} | |||
.delbtn { | |||
position: absolute; | |||
right: 15px; | |||
bottom: 7px; | |||
padding: 3px 10px; | |||
background: #dd524d; | |||
color: #fff; | |||
border-radius: 3px; | |||
} | |||
</style> |
@@ -0,0 +1,86 @@ | |||
<template> | |||
<view class="page"> | |||
<l-input title="学年" placeholder="请填写学年" disabled left /> | |||
<l-input title="学期" placeholder="请填写学期" disabled left /> | |||
<l-input title="课程名称" placeholder="请填写课程名称" disabled left /> | |||
<view class="txt">课程简介:</view> | |||
<view class="bg-white"> | |||
<l-textarea placeholder="输入点什么..." readonly="readonly" /> | |||
</view> | |||
<l-input title="上课节次" placeholder="请填写上课节次" disabled left /> | |||
<l-input title="上课时间" placeholder="请填写上课时间" disabled left /> | |||
<l-input title="学分" placeholder="请填写学分" disabled left /> | |||
<l-input title="教师姓名" placeholder="请填写教师姓名" disabled left /> | |||
<view class="txt">教师简介:</view> | |||
<view class="bg-white"> | |||
<l-textarea disabled placeholder="输入点什么..." readonly="readonly" /> | |||
</view> | |||
<l-input title="教室名称" placeholder="请填写教室名称" disabled left /> | |||
<l-input title="姓名" placeholder="请填写姓名" disabled left /> | |||
<l-input title="人数上限" placeholder="请填写人数上限" disabled left /> | |||
<l-input title="已报名人数" placeholder="请填写已报名人数" disabled left /> | |||
<view class="btn" @click="fromBtn">报名</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default{ | |||
data() { | |||
return { | |||
weekChina: ["一", "二", "三", "四", "五", "六", "日"], | |||
keyValue: '' | |||
} | |||
}, | |||
methods:{ | |||
init() { | |||
this.keyValue = this.GET_PARAM(); //获取页面传递参数 | |||
// console.log(this.keyValue); | |||
let _this = this; | |||
_this.LOADING('加载数据中…'); | |||
_this.HTTP_GET('learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/form', { | |||
"keyValue":_this.keyValue | |||
}, '加载数据时出错').then(res => { | |||
this.HIDE_LOADING(); | |||
console.log(res); | |||
}); | |||
}, | |||
fromBtn() { | |||
var _postData = {} | |||
let _this = this; | |||
let user = this.GET_GLOBAL('loginUser');; | |||
_postData.keyValue = this.keyValue; | |||
_postData.StuNo = user.account; | |||
_this.LOADING('加载数据中…'); | |||
_this.HTTP_POST('learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/SignInPre', _postData, '加载数据时出错').then(res => { | |||
this.HIDE_LOADING(); | |||
console.log(res); | |||
}); | |||
// learun.httppost(config.webapi + '', _postData, (data,info) => { | |||
// learun.layer.loading(false); | |||
// if (data) {// 表单数据保存成功 | |||
// learun.layer.toast(info); | |||
// learun.nav.closeCurrent(); | |||
// var prepage = learun.nav.getpage('EducationalAdministration/OpenLessonPlanOfElectiveStudentPre'); | |||
// prepage.grid.reload(); | |||
// } | |||
// }); | |||
} | |||
}, | |||
created() { | |||
this.init() | |||
} | |||
} | |||
</script> | |||
<style lang="less" scoped> | |||
.txt{ | |||
line-height: 24px; | |||
font-size: 15px; | |||
background-color: #fff; | |||
padding: 10px 0 10px 15px; | |||
} | |||
.page{ | |||
background-color: #fff; | |||
padding-bottom: 1px; | |||
} | |||
</style> |
@@ -0,0 +1,238 @@ | |||
<template> | |||
<view class="page"> | |||
<view class="mainpage" :class="sideOpen ? 'show' : ''" style="padding-top: 40px;"> | |||
<!-- <l-customlist-banner></l-customlist-banner> --> | |||
<view class="records">共 {{ records }} 条数据</view> | |||
<l-scroll-list v-if="ready" @pullDown="pullDown" @toBottom="fetchList()" ref="data"> | |||
<l-customlist :tips="loadState" showTips> | |||
<view class="pageBox customlist-item" showDelete="true" v-for="(item, ind) in data" :key="item.MakeDate" @click="tapClick(item)"> | |||
<view class=""> | |||
<text>学年:</text> | |||
{{ item.AcademicYearNo }} | |||
</view> | |||
<view class=""> | |||
<text>学期:</text> | |||
{{ item.Semester }} | |||
</view> | |||
<view class=""> | |||
<text>课程名称:</text> | |||
{{ item.LessonName }} | |||
</view> | |||
<view class=""> | |||
<text>上课节次:</text> | |||
{{ jieci(item.LessonSection) }} | |||
</view> | |||
<view class=""> | |||
<text>上课时间:</text> | |||
{{ item.LessonTime }} | |||
</view> | |||
<view class=""> | |||
<text>学分:</text> | |||
{{ item.StudyScore }} | |||
</view> | |||
<view class=""> | |||
<text>教师姓名:</text> | |||
{{ item.EmpName }} | |||
</view> | |||
<view class=""> | |||
<text>教室名称:</text> | |||
{{ item.ClassRoomNo }} | |||
</view> | |||
<view class=""> | |||
<text>人数上限:</text> | |||
{{ item.StuNumMax }} | |||
</view> | |||
<view class=""> | |||
<text>已报名人数:</text> | |||
{{ item.StuNumOfApplyPre }} | |||
</view> | |||
<view class="pageType">{{ typePd(item.StatusPre) }}</view> | |||
<view class="delbtn" @click.stop="delTap(item)">取消报名</view> | |||
</view> | |||
</l-customlist> | |||
</l-scroll-list> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
weekChina: ['一', '二', '三', '四', '五', '六', '日'], | |||
user: null, | |||
data: [], | |||
total: 1, | |||
records: 0, | |||
ready: false, | |||
page: 1, | |||
rows: 10, | |||
multipleData: null, | |||
sideOpen: false, | |||
loadState: '向下翻以加载更多' | |||
}; | |||
}, | |||
onUnload() { | |||
this.OFF('EducationalAdministrationBookBorrow-list-change'); | |||
}, | |||
methods: { | |||
init() { | |||
this.ON('EducationalAdministrationBookBorrow-list-change', this.refreshList); | |||
// 拉取加载列表和数据源 | |||
Promise.all([() => {}]); | |||
var _this = this; | |||
this.user = this.GET_GLOBAL('loginUser'); | |||
this.fetchList(); | |||
this.ready = true; | |||
}, | |||
// 拉取列表 | |||
async fetchList() { | |||
if (this.page > this.total) { | |||
return; | |||
} | |||
let _this = this; | |||
let _postParam = { | |||
pagination: { | |||
rows: _this.rows, | |||
page: _this.page, | |||
sidx: 'LessonNo', | |||
sord: 'asc' | |||
}, | |||
queryJson: '{}' | |||
}; | |||
if (true) { | |||
_postParam.queryJson = JSON.stringify({ | |||
StuNo: _this.user.account, | |||
StuMajorNo: _this.user.majorno, | |||
StuGrade: _this.user.grade | |||
}); | |||
} | |||
_this.LOADING('加载数据中…') | |||
_this.HTTP_GET('learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/pagelist', _postParam, '加载数据时出错').then(res => { | |||
_this.HIDE_LOADING(); | |||
// console.log(res); | |||
this.data = this.data.concat(res.rows); | |||
_this.total = res.total; | |||
_this.records = res.records; | |||
this.page = res.page + 1; | |||
this.loadState = res.page >= res.total ? '已加载所有项目' : '向下翻以加载更多'; | |||
// console.log(_this.data); | |||
}); | |||
}, | |||
// 列表下拉 | |||
pullDown() { | |||
this.refreshList().then(() => { | |||
this.$refs.data.stopPullDown(); | |||
}); | |||
}, | |||
async refreshList() { | |||
this.page = 1; | |||
this.total = 1; | |||
this.data = []; | |||
this.fetchList(); | |||
}, | |||
tapClick(data) { | |||
this.NAV_TO('./from', data.Id, true); | |||
}, | |||
delTap (item) { | |||
// console.log(item) | |||
let _this = this; | |||
this.CONFIRM('数字化校园提示', '确定要取消报名吗?', true).then( res => { | |||
if(res){ | |||
let _postData = { | |||
keyValue: item.Id, | |||
StuNo: _this.user.account | |||
} | |||
_this.LOADING('正在取消报名…') | |||
console.log(123); | |||
_this.HTTP_POST( | |||
'learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/CancelPre', | |||
_postData, | |||
'加载数据时出错' | |||
).then( (data) => { | |||
_this.HIDE_LOADING() | |||
console.log(data) | |||
if (data) {// 成功 | |||
_this.TOAST(info); | |||
// item.pageType = | |||
} | |||
}) | |||
} | |||
}) | |||
} | |||
}, | |||
computed: { | |||
jieci() { | |||
return str => { | |||
let ls = ''; | |||
if (str.indexOf(',') == -1) ls = '星期' + this.weekChina[str.slice(0, 1) - 1] + '第' + str.slice(1) + '节'; | |||
else ls = '星期' + this.weekChina[str.slice(0, 1) - 1] + '第' + str.slice(1, 2) + '、' + str.slice(4) + '节'; | |||
return ls; | |||
}; | |||
}, | |||
typePd() { | |||
return num => { | |||
let txt = ''; | |||
if (num == 1) { | |||
txt = '审核中'; | |||
} else if (num == 2) { | |||
txt = '报名成功'; | |||
} else if (num == 3) { | |||
txt = '报名失败'; | |||
} else { | |||
txt = '未报名'; | |||
} | |||
return txt; | |||
}; | |||
} | |||
}, | |||
created() { | |||
this.init(); | |||
} | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
@import '~@/common/css/sidepage.less'; | |||
@import '~@/common/css/customlist.less'; | |||
.page { | |||
background-color: #fff; | |||
} | |||
.page-content { | |||
margin-top: 39px; | |||
} | |||
.records { | |||
color: #8f8f94; | |||
background: #ffffff; | |||
padding: 10px 12px; | |||
width: 100%; | |||
vertical-align: middle; | |||
border-bottom: 0.5px solid #ddd; | |||
position: fixed; | |||
top: var(--window-top); | |||
z-index: 1024; | |||
border-bottom: 0.5px solid #ddd; | |||
height: 40px; | |||
width: 100%; | |||
box-shadow: 0 0.5px 3px rgba(0, 0, 0, 0.1); | |||
// background: #f1f1f1; | |||
} | |||
.pageBox { | |||
// margin-top: 34px; | |||
padding: 5px 15px; | |||
line-height: 24px; | |||
border-bottom: 5px solid #f5f5f5; | |||
} | |||
.delbtn { | |||
position: absolute; | |||
right: 15px; | |||
bottom: 7px; | |||
padding: 3px 10px; | |||
background: #dd524d; | |||
color: #fff; | |||
border-radius: 3px; | |||
} | |||
</style> |
@@ -0,0 +1,65 @@ | |||
<template> | |||
<view class="page"> | |||
<l-input title="学年" placeholder="请填写学年" disabled left /> | |||
<l-input title="学期" placeholder="请填写学期" disabled left /> | |||
<l-input title="课程名称" placeholder="请填写课程名称" disabled left /> | |||
<view class="txt">课程简介:</view> | |||
<view class="bg-white"> | |||
<l-textarea placeholder="输入点什么..." readonly="readonly" /> | |||
</view> | |||
<l-input title="上课节次" placeholder="请填写上课节次" disabled left /> | |||
<l-input title="上课时间" placeholder="请填写上课时间" disabled left /> | |||
<l-input title="学分" placeholder="请填写学分" disabled left /> | |||
<l-input title="教师姓名" placeholder="请填写教师姓名" disabled left /> | |||
<view class="txt">教师简介:</view> | |||
<view class="bg-white"> | |||
<l-textarea disabled placeholder="输入点什么..." readonly="readonly" /> | |||
</view> | |||
<l-input title="教室名称" placeholder="请填写教室名称" disabled left /> | |||
<l-input title="姓名" placeholder="请填写姓名" disabled left /> | |||
<l-input title="人数上限" placeholder="请填写人数上限" disabled left /> | |||
<l-input title="已报名人数" placeholder="请填写已报名人数" disabled left /> | |||
<view class="btn" @click="fromBtn">报名</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default{ | |||
data() { | |||
return { | |||
weekChina: ["一", "二", "三", "四", "五", "六", "日"], | |||
keyValue: '' | |||
} | |||
}, | |||
methods:{ | |||
init() { | |||
this.keyValue = this.GET_PARAM(); //获取页面传递参数 | |||
// console.log(this.keyValue); | |||
let _this = this; | |||
_this.LOADING('加载数据中…'); | |||
_this.HTTP_GET('learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/form', { | |||
"keyValue":_this.keyValue | |||
}, '加载数据时出错').then(res => { | |||
this.HIDE_LOADING(); | |||
console.log(res); | |||
}); | |||
} | |||
}, | |||
created() { | |||
this.init() | |||
} | |||
} | |||
</script> | |||
<style lang="less" scoped> | |||
.txt{ | |||
line-height: 24px; | |||
font-size: 15px; | |||
background-color: #fff; | |||
padding: 10px 0 10px 15px; | |||
} | |||
.page{ | |||
background-color: #fff; | |||
padding-bottom: 1px; | |||
} | |||
</style> |
@@ -0,0 +1,199 @@ | |||
<template> | |||
<view class="page"> | |||
<view class="mainpage" :class="sideOpen ? 'show' : ''" style="padding-top: 40px;"> | |||
<!-- <l-customlist-banner></l-customlist-banner> --> | |||
<view class="records">共 {{ records }} 条数据</view> | |||
<l-scroll-list v-if="ready" @pullDown="pullDown" @toBottom="fetchList()" ref="data"> | |||
<l-customlist :tips="loadState" showTips> | |||
<view></view> | |||
<view class="pageBox customlist-item" v-for="(item, ind) in data" :key="item.MakeDate" @click="tapClick(item)"> | |||
<view class=""> | |||
<text>学年:</text> | |||
{{ item.AcademicYearNo }} | |||
</view> | |||
<view class=""> | |||
<text>学期:</text> | |||
{{ item.Semester }} | |||
</view> | |||
<view class=""> | |||
<text>课程名称:</text> | |||
{{ item.LessonName }} | |||
</view> | |||
<view class=""> | |||
<text>上课节次:</text> | |||
{{ jieci(item.LessonSection) }} | |||
</view> | |||
<view class=""> | |||
<text>上课时间:</text> | |||
{{ item.LessonTime }} | |||
</view> | |||
<view class=""> | |||
<text>学分:</text> | |||
{{ item.StudyScore }} | |||
</view> | |||
<view class=""> | |||
<text>教师姓名:</text> | |||
{{ item.EmpName }} | |||
</view> | |||
<view class=""> | |||
<text>教室名称:</text> | |||
{{ item.ClassRoomNo }} | |||
</view> | |||
<view class=""> | |||
<text>人数上限:</text> | |||
{{ item.StuNumMax }} | |||
</view> | |||
<view class=""> | |||
<text>已报名人数:</text> | |||
{{ item.StuNumOfApplyPre }} | |||
</view> | |||
<view class="pageType">{{ typePd(item.Status) }}</view> | |||
</view> | |||
</l-customlist> | |||
</l-scroll-list> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
weekChina: ['一', '二', '三', '四', '五', '六', '日'], | |||
user: null, | |||
data: [], | |||
total: 1, | |||
records: 0, | |||
ready: false, | |||
page: 1, | |||
rows: 10, | |||
multipleData: null, | |||
sideOpen: false, | |||
loadState: '向下翻以加载更多' | |||
}; | |||
}, | |||
onUnload() { | |||
this.OFF('EducationalAdministrationBookBorrow-list-change'); | |||
}, | |||
methods: { | |||
init() { | |||
this.ON('EducationalAdministrationBookBorrow-list-change', this.refreshList); | |||
// 拉取加载列表和数据源 | |||
Promise.all([() => {}]); | |||
var _this = this; | |||
this.user = this.GET_GLOBAL('loginUser'); | |||
this.fetchList(); | |||
this.ready = true; | |||
}, | |||
// 拉取列表 | |||
async fetchList() { | |||
if (this.page > this.total) { | |||
return; | |||
} | |||
let _this = this; | |||
let _postParam = { | |||
pagination: { | |||
rows: _this.rows, | |||
page: _this.page, | |||
sidx: 'LessonNo', | |||
sord: 'asc' | |||
}, | |||
queryJson: '{}' | |||
}; | |||
if (true) { | |||
_postParam.queryJson = JSON.stringify({ | |||
StuNo: _this.user.account | |||
}); | |||
} | |||
_this.LOADING('加载数据中…') | |||
_this.HTTP_GET('learun/EducationalAdministration/OpenLessonPlanOfElectiveStudent/studentpagelist', _postParam, '加载数据时出错').then(res => { | |||
_this.HIDE_LOADING(); | |||
// console.log(res); | |||
this.data = this.data.concat(res.rows); | |||
_this.total = res.total; | |||
_this.records = res.records; | |||
this.page = res.page + 1; | |||
this.loadState = res.page >= res.total ? '已加载所有项目' : '向下翻以加载更多'; | |||
// console.log(_this.data); | |||
}); | |||
}, | |||
// 列表下拉 | |||
pullDown() { | |||
this.refreshList().then(() => { | |||
this.$refs.data.stopPullDown(); | |||
}); | |||
}, | |||
async refreshList() { | |||
this.page = 1; | |||
this.total = 1; | |||
this.data = []; | |||
this.fetchList(); | |||
}, | |||
tapClick(data) { | |||
this.NAV_TO('./from', data.Id, true); | |||
} | |||
}, | |||
computed: { | |||
jieci() { | |||
return str => { | |||
let ls = ''; | |||
if (str.indexOf(',') == -1) ls = '星期' + this.weekChina[str.slice(0, 1) - 1] + '第' + str.slice(1) + '节'; | |||
else ls = '星期' + this.weekChina[str.slice(0, 1) - 1] + '第' + str.slice(1, 2) + '、' + str.slice(4) + '节'; | |||
return ls; | |||
}; | |||
}, | |||
typePd() { | |||
return num => { | |||
let txt = ''; | |||
if (num == 1) { | |||
txt = '审核中'; | |||
} else if (num == 2) { | |||
txt = '报名成功'; | |||
} else if (num == 3) { | |||
txt = '报名失败'; | |||
} else { | |||
txt = '未报名'; | |||
} | |||
return txt; | |||
}; | |||
} | |||
}, | |||
created() { | |||
this.init(); | |||
} | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
@import '~@/common/css/sidepage.less'; | |||
@import '~@/common/css/customlist.less'; | |||
.page { | |||
background-color: #fff; | |||
} | |||
.page-content { | |||
margin-top: 39px; | |||
} | |||
.records { | |||
color: #8f8f94; | |||
background: #ffffff; | |||
padding: 10px 12px; | |||
width: 100%; | |||
vertical-align: middle; | |||
border-bottom: 0.5px solid #ddd; | |||
position: fixed; | |||
top: var(--window-top); | |||
z-index: 1024; | |||
border-bottom: 0.5px solid #ddd; | |||
height: 40px; | |||
width: 100%; | |||
box-shadow: 0 0.5px 3px rgba(0, 0, 0, 0.1); | |||
} | |||
.pageBox { | |||
padding: 5px 15px; | |||
line-height: 24px; | |||
border-bottom: 5px solid #f5f5f5; | |||
background-color: #fff; | |||
} | |||
</style> |
@@ -1,146 +1,88 @@ | |||
<template> | |||
<view class="page"> | |||
<!-- 主列表页 --> | |||
<view | |||
:class="sideOpen ? 'show' : ''" | |||
class="mainpage" | |||
style="padding-top: 80rpx" | |||
> | |||
<!-- 顶部条目/分页信息栏 --> | |||
<l-customlist-banner @buttonClick="sideOpen = true">{{ | |||
tips | |||
}}</l-customlist-banner> | |||
<!-- 滚动列表,跨端支持上拉/下拉 --> | |||
<l-scroll-list | |||
v-if="ready" | |||
@pullDown="pullDown" | |||
@toBottom="fetchList()" | |||
ref="list" | |||
> | |||
<l-customlist :tips="loadState" showTips> | |||
<!-- 单条记录 --> | |||
<view class="customlist-item" v-for="item of list" :key="item.ID"> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">班级:</text> | |||
{{ displayListItem(item, "ClassNo") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">测温人:</text> | |||
{{ displayListItem(item, "MeasurerID") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">被测温人:</text> | |||
{{ displayListItem(item, "PersonBeingMeasured") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">测量时间:</text> | |||
{{ displayListItem(item, "MeasureDate") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">测温时间段:</text> | |||
{{ displayListItem(item, "MeasureTime") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">状态:</text> | |||
{{ displayListItem(item, "Status") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">温度:</text> | |||
{{ displayListItem(item, "Temperature") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">处理结果:</text> | |||
{{ displayListItem(item, "ProcessingResult") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">备注:</text> | |||
{{ displayListItem(item, "Remark") }} | |||
</view> | |||
<l-customlist-action | |||
showEdit | |||
@edit="action('edit', item.ID)" | |||
showDelete | |||
@delete="action('delete', item.ID)" | |||
@view="action('view', item.ID)" | |||
/> | |||
</view> | |||
</l-customlist> | |||
</l-scroll-list> | |||
</view> | |||
<!-- 关闭侧边抽屉按钮 --> | |||
<view | |||
@click="sideOpen = false" | |||
:class="sideOpen ? 'show' : ''" | |||
class="sideclose" | |||
> | |||
<l-icon type="pullright" color="blue" /> | |||
</view> | |||
<!-- 侧边栏,用于设置查询条件 --> | |||
<scroll-view :class="sideOpen ? 'show' : ''" class="sidepage" scroll-y> | |||
<view v-if="ready" class="padding"> | |||
<l-customlist-sidepage-datefilter | |||
v-model="dateRange" | |||
@change="searchChange" | |||
title="按时间日期查询: " | |||
ref="datefilter" | |||
class="margin-bottom" | |||
/> | |||
<l-select | |||
v-model="queryData.ClassNo" | |||
@change="searchChange" | |||
:range="dataSource.ClassNo" | |||
title="班级" | |||
placeholder="按班级查询" | |||
/> | |||
<l-select | |||
v-model="queryData.PersonBeingMeasured" | |||
@change="searchChange" | |||
:range="dataSource.PersonBeingMeasured" | |||
title="被测温人" | |||
placeholder="按被测温人查询" | |||
/> | |||
<l-select | |||
v-model="queryData.MeasureTime" | |||
@change="searchChange" | |||
:range="dataSource.MeasureTime" | |||
title="测温时间段" | |||
placeholder="按测温时间段查询" | |||
/> | |||
<l-select | |||
v-model="queryData.Status" | |||
@change="searchChange" | |||
:range="dataSource.Status" | |||
title="状态" | |||
placeholder="按状态查询" | |||
/> | |||
<!-- 重置查询条件按钮 --> | |||
<view class="padding-tb"> | |||
<l-button @click="reset" line="orange" class="block" block | |||
>重置查询条件</l-button | |||
> | |||
</view> | |||
</view> | |||
</scroll-view> | |||
<l-customlist-add v-if="!sideOpen" @click="action('add')" /> | |||
</view> | |||
<view class="page"> | |||
<!-- 主列表页 --> | |||
<view :class="sideOpen ? 'show' : ''" class="mainpage" style="padding-top: 80rpx"> | |||
<!-- 顶部条目/分页信息栏 --> | |||
<l-customlist-banner @buttonClick="sideOpen = true">{{ tips }}</l-customlist-banner> | |||
<!-- 滚动列表,跨端支持上拉/下拉 --> | |||
<l-scroll-list v-if="ready" @pullDown="pullDown" @toBottom="fetchList()" ref="list"> | |||
<l-customlist :tips="loadState" showTips> | |||
<!-- 单条记录 --> | |||
<view class="customlist-item" v-for="item of list" :key="item.ID"> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">班级:</text> | |||
{{ displayListItem(item, 'ClassNo') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">测温人:</text> | |||
{{ displayListItem(item, 'MeasurerID') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">被测温人:</text> | |||
{{ displayListItem(item, 'PersonBeingMeasured') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">测量时间:</text> | |||
{{ displayListItem(item, 'MeasureDate') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">测温时间段:</text> | |||
{{ displayListItem(item, 'MeasureTime') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">状态:</text> | |||
{{ displayListItem(item, 'Status') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">温度:</text> | |||
{{ displayListItem(item, 'Temperature') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">处理结果:</text> | |||
{{ displayListItem(item, 'ProcessingResult') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">备注:</text> | |||
{{ displayListItem(item, 'Remark') }} | |||
</view> | |||
<l-customlist-action showEdit @edit="action('edit', item.ID)" showDelete @delete="action('delete', item.ID)" @view="action('view', item.ID)" /> | |||
</view> | |||
</l-customlist> | |||
</l-scroll-list> | |||
</view> | |||
<!-- 关闭侧边抽屉按钮 --> | |||
<view @click="sideOpen = false" :class="sideOpen ? 'show' : ''" class="sideclose"><l-icon type="pullright" color="blue" /></view> | |||
<!-- 侧边栏,用于设置查询条件 --> | |||
<scroll-view :class="sideOpen ? 'show' : ''" class="sidepage" scroll-y> | |||
<view v-if="ready" class="padding"> | |||
<l-customlist-sidepage-datefilter v-model="dateRange" @change="searchChange" title="按时间日期查询: " ref="datefilter" class="margin-bottom" /> | |||
<l-select v-model="queryData.ClassNo" @change="searchChange" :range="dataSource.ClassNo" title="班级" placeholder="按班级查询" /> | |||
<l-select v-model="queryData.PersonBeingMeasured" @change="searchChange" :range="dataSource.PersonBeingMeasured" title="被测温人" placeholder="按被测温人查询" /> | |||
<l-select v-model="queryData.MeasureTime" @change="searchChange" :range="dataSource.MeasureTime" title="测温时间段" placeholder="按测温时间段查询" /> | |||
<l-select v-model="queryData.Status" @change="searchChange" :range="dataSource.Status" title="状态" placeholder="按状态查询" /> | |||
<!-- 重置查询条件按钮 --> | |||
<view class="padding-tb"><l-button @click="reset" line="orange" class="block" block>重置查询条件</l-button></view> | |||
</view> | |||
</scroll-view> | |||
<l-customlist-add v-if="!sideOpen" @click="action('add')" /> | |||
</view> | |||
</template> | |||
<script> | |||
/* | |||
* 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn) | |||
@@ -158,299 +100,271 @@ | |||
* (navigationBarTitleText 字段为本页面的标题文本,可以修改) | |||
* (必须自行操作该步骤,力软代码生成器不会自动帮您修改 /pages.json 文件) | |||
*/ | |||
import moment from "moment"; | |||
import get from "lodash/get"; | |||
import set from "lodash/set"; | |||
import pickBy from "lodash/pickBy"; | |||
import mapValues from "lodash/mapValues"; | |||
import moment from 'moment'; | |||
import get from 'lodash/get'; | |||
import set from 'lodash/set'; | |||
import pickBy from 'lodash/pickBy'; | |||
import mapValues from 'lodash/mapValues'; | |||
export default { | |||
data() { | |||
return { | |||
// 数据项的数据类型、结构 | |||
scheme: { | |||
ClassNo: { | |||
type: "select", | |||
dataSource: "1", | |||
dataSourceId: "bjsj,classname,classno", | |||
}, | |||
MeasurerID: { | |||
type: "select", | |||
dataSource: "1", | |||
dataSourceId: "BaseUser,f_realname,f_account", | |||
}, | |||
PersonBeingMeasured: { | |||
type: "select", | |||
dataSource: "1", | |||
dataSourceId: "StuInfoBasic,stuname,stuno", | |||
}, | |||
MeasureDate: { type: "datetime", dateformat: "0" }, | |||
MeasureTime: { | |||
type: "select", | |||
itemCode: "MeasureTime", | |||
dataSource: "0", | |||
}, | |||
Status: { | |||
type: "select", | |||
itemCode: "TemperatureMeasure", | |||
dataSource: "0", | |||
}, | |||
Temperature: { type: "text" }, | |||
ProcessingResult: { type: "textarea" }, | |||
Remark: { type: "textarea" }, | |||
}, | |||
// 查询条件 | |||
searchData: { | |||
MeasurerID: this.GET_GLOBAL("loginUser").account, | |||
}, | |||
defaultQueryData: {}, | |||
queryData: { | |||
ClassNo: "", | |||
PersonBeingMeasured: "", | |||
MeasureTime: "", | |||
Status: "", | |||
MeasurerID: this.GET_GLOBAL("loginUser").account, | |||
}, | |||
// 数据源 | |||
dataSource: { | |||
ClassNo: [], | |||
MeasurerID: [], | |||
PersonBeingMeasured: [], | |||
MeasureTime: Object.values( | |||
this.GET_GLOBAL("dataDictionary").MeasureTime | |||
).map((t) => ({ value: t.value, text: t.text })), | |||
Status: Object.values( | |||
this.GET_GLOBAL("dataDictionary").TemperatureMeasure | |||
).map((t) => ({ value: t.value, text: t.text })), | |||
}, | |||
// 时间查询参数 | |||
dateRange: null, | |||
// 页面相关参数 | |||
ready: false, | |||
tips: "加载中...", | |||
loadState: "向下翻以加载更多", | |||
sideOpen: false, | |||
// 列表与分页信息 | |||
page: 1, | |||
total: 2, | |||
list: [], | |||
}; | |||
}, | |||
async onLoad() { | |||
await this.init(); | |||
}, | |||
onUnload() { | |||
this.OFF("EducationalAdministrationThermography-list-change"); | |||
}, | |||
methods: { | |||
// 页面初始化 | |||
async init() { | |||
this.ON( | |||
"EducationalAdministrationThermography-list-change", | |||
this.refreshList | |||
); | |||
// 拉取加载列表和数据源 | |||
await Promise.all([ | |||
this.FETCH_DATASOURCE("bjsj").then((data) => { | |||
this.dataSource.ClassNo = data.data.map((t) => ({ | |||
text: t.classname, | |||
value: t.classno, | |||
})); | |||
}), | |||
this.FETCH_DATASOURCE("BaseUser").then((data) => { | |||
this.dataSource.MeasurerID = data.data.map((t) => ({ | |||
text: t.f_realname, | |||
value: t.f_account, | |||
})); | |||
}), | |||
this.FETCH_DATASOURCE("StuInfoBasic").then((data) => { | |||
this.dataSource.PersonBeingMeasured = data.data.map((t) => ({ | |||
text: t.stuname, | |||
value: t.stuno, | |||
})); | |||
}), | |||
() => {}, | |||
]); | |||
await this.fetchList(); | |||
// 初始化查询条件 | |||
this.defaultQueryData = this.COPY(this.queryData); | |||
this.ready = true; | |||
}, | |||
// 拉取列表 | |||
async fetchList() { | |||
if (this.page > this.total) { | |||
return; | |||
} | |||
const result = await this.HTTP_GET( | |||
"learun/adms/EducationalAdministration/Thermography/pagelist", | |||
{ | |||
// 这里 sidx 表示排序字段,sord 表示排序方式(DESC=降序,ASC=升序) | |||
// 代码生成器生成时默认按照主键排序,您可以修改成按创建时间的字段降序 | |||
pagination: { rows: 10, page: this.page, sidx: "ID", sord: "DESC" }, | |||
queryJson: JSON.stringify(this.searchData), | |||
}, | |||
"加载数据时出错" | |||
); | |||
if (!result) { | |||
return; | |||
} | |||
this.total = result.total; | |||
this.page = result.page + 1; | |||
this.list = this.list.concat(result.rows); | |||
this.tips = `已加载 ${Math.min(result.page, result.total)} / ${ | |||
result.total | |||
} 页,共 ${result.records} 项`; | |||
this.loadState = | |||
result.page >= result.total ? "已加载所有项目" : "向下翻以加载更多"; | |||
}, | |||
// 刷新清空列表 | |||
async refreshList() { | |||
this.page = 1; | |||
this.total = 2; | |||
this.list = []; | |||
await this.fetchList(); | |||
}, | |||
// 列表下拉 | |||
pullDown() { | |||
this.refreshList().then(() => { | |||
this.$refs.list.stopPullDown(); | |||
}); | |||
}, | |||
// 设置搜索条件 | |||
async searchChange() { | |||
const result = {}; | |||
// 时间查询相关参数 | |||
if (this.dateRange) { | |||
result.StartTime = this.dateRange.start; | |||
result.EndTime = this.dateRange.end; | |||
} | |||
// 将其他查询项添加到查询 JSON 中 | |||
const queryObj = pickBy(this.queryData, (t) => | |||
Array.isArray(t) ? t.length > 0 : t | |||
); | |||
Object.assign( | |||
result, | |||
mapValues(queryObj, (t) => (Array.isArray(t) ? t.join(",") : t)) | |||
); | |||
this.searchData = result; | |||
await this.refreshList(); | |||
}, | |||
// 点击「清空查询条件」按钮 | |||
reset() { | |||
this.$refs.datefilter.changeDateRange("all"); | |||
this.queryData = this.COPY(this.defaultQueryData); | |||
this.searchChange(); | |||
}, | |||
// 点击「编辑」、「查看」、「添加」、「删除」按钮 | |||
async action(type, id = "") { | |||
switch (type) { | |||
case "view": | |||
this.NAV_TO(`./single?type=view&id=${id}`); | |||
return; | |||
case "add": | |||
this.NAV_TO("./single?type=create"); | |||
return; | |||
case "edit": | |||
this.NAV_TO(`./single?type=edit&id=${id}`); | |||
return; | |||
case "delete": | |||
if (!(await this.CONFIRM("删除项目", "确定要删除该项吗?", true))) { | |||
return; | |||
} | |||
this.HTTP_POST( | |||
"learun/adms/EducationalAdministration/Thermography/delete", | |||
id, | |||
"删除失败" | |||
).then((success) => { | |||
if (!success) { | |||
return; | |||
} | |||
this.TOAST("删除成功", "success"); | |||
this.refreshList(); | |||
}); | |||
return; | |||
default: | |||
return; | |||
} | |||
}, | |||
// 显示列表中的标题项 | |||
displayListItem(item, field) { | |||
const fieldItem = this.scheme[field]; | |||
const value = item[field]; | |||
switch (fieldItem.type) { | |||
case "currentInfo": | |||
case "organize": | |||
return fieldItem.dataType === "time" | |||
? value | |||
: get(this.GET_GLOBAL(fieldItem.dataType), `${value}.name`, ""); | |||
case "radio": | |||
case "select": | |||
const selectItem = this.dataSource[field].find( | |||
(t) => t.value === String(value) | |||
); | |||
return get(selectItem, "text", ""); | |||
case "checkbox": | |||
if (!value || value.split(",").length <= 0) { | |||
return ""; | |||
} | |||
const checkboxItems = value.split(","); | |||
return this.dataSource[field] | |||
.filter((t) => checkboxItems.includes(t.value)) | |||
.map((t) => t.text) | |||
.join(","); | |||
case "datetime": | |||
if (!value) { | |||
return ""; | |||
} | |||
return moment(value).format( | |||
Number(fieldItem.dateformat) === 0 | |||
? "YYYY年 M月 D日" | |||
: "YYYY-MM-DD HH:mm" | |||
); | |||
default: | |||
return value === null || value === undefined ? "" : value; | |||
} | |||
}, | |||
}, | |||
data() { | |||
return { | |||
// 数据项的数据类型、结构 | |||
scheme: { | |||
ClassNo: { | |||
type: 'select', | |||
dataSource: '1', | |||
dataSourceId: 'bjsj,classname,classno' | |||
}, | |||
MeasurerID: { | |||
type: 'select', | |||
dataSource: '1', | |||
dataSourceId: 'BaseUser,f_realname,f_account' | |||
}, | |||
PersonBeingMeasured: { | |||
type: 'select', | |||
dataSource: '1', | |||
dataSourceId: 'StuInfoBasic,stuname,stuno' | |||
}, | |||
MeasureDate: { type: 'datetime', dateformat: '0' }, | |||
MeasureTime: { | |||
type: 'select', | |||
itemCode: 'MeasureTime', | |||
dataSource: '0' | |||
}, | |||
Status: { | |||
type: 'select', | |||
itemCode: 'TemperatureMeasure', | |||
dataSource: '0' | |||
}, | |||
Temperature: { type: 'text' }, | |||
ProcessingResult: { type: 'textarea' }, | |||
Remark: { type: 'textarea' } | |||
}, | |||
// 查询条件 | |||
searchData: { | |||
MeasurerID: this.GET_GLOBAL('loginUser').account | |||
}, | |||
defaultQueryData: {}, | |||
queryData: { | |||
ClassNo: '', | |||
PersonBeingMeasured: '', | |||
MeasureTime: '', | |||
Status: '', | |||
MeasurerID: this.GET_GLOBAL('loginUser').account | |||
}, | |||
// 数据源 | |||
dataSource: { | |||
ClassNo: [], | |||
MeasurerID: [], | |||
PersonBeingMeasured: [], | |||
MeasureTime: Object.values(this.GET_GLOBAL('dataDictionary').MeasureTime).map(t => ({ value: t.value, text: t.text })), | |||
Status: Object.values(this.GET_GLOBAL('dataDictionary').TemperatureMeasure).map(t => ({ value: t.value, text: t.text })) | |||
}, | |||
// 时间查询参数 | |||
dateRange: null, | |||
// 页面相关参数 | |||
ready: false, | |||
tips: '加载中...', | |||
loadState: '向下翻以加载更多', | |||
sideOpen: false, | |||
// 列表与分页信息 | |||
page: 1, | |||
total: 2, | |||
list: [] | |||
}; | |||
}, | |||
async onLoad() { | |||
await this.init(); | |||
}, | |||
onUnload() { | |||
this.OFF('EducationalAdministrationThermography-list-change'); | |||
}, | |||
methods: { | |||
// 页面初始化 | |||
async init() { | |||
this.ON('EducationalAdministrationThermography-list-change', this.refreshList); | |||
// 拉取加载列表和数据源 | |||
await Promise.all([ | |||
this.FETCH_DATASOURCE('bjsj').then(data => { | |||
this.dataSource.ClassNo = data.data.map(t => ({ | |||
text: t.classname, | |||
value: t.classno | |||
})); | |||
}), | |||
this.FETCH_DATASOURCE('BaseUser').then(data => { | |||
this.dataSource.MeasurerID = data.data.map(t => ({ | |||
text: t.f_realname, | |||
value: t.f_account | |||
})); | |||
}), | |||
this.FETCH_DATASOURCE('StuInfoBasic').then(data => { | |||
this.dataSource.PersonBeingMeasured = data.data.map(t => ({ | |||
text: t.stuname, | |||
value: t.stuno | |||
})); | |||
}), | |||
() => {} | |||
]); | |||
await this.fetchList(); | |||
// 初始化查询条件 | |||
this.defaultQueryData = this.COPY(this.queryData); | |||
this.ready = true; | |||
}, | |||
// 拉取列表 | |||
async fetchList() { | |||
if (this.page > this.total) { | |||
return; | |||
} | |||
const result = await this.HTTP_GET( | |||
'learun/adms/EducationalAdministration/Thermography/pagelist', | |||
{ | |||
// 这里 sidx 表示排序字段,sord 表示排序方式(DESC=降序,ASC=升序) | |||
// 代码生成器生成时默认按照主键排序,您可以修改成按创建时间的字段降序 | |||
pagination: { rows: 10, page: this.page, sidx: 'ID', sord: 'DESC' }, | |||
queryJson: JSON.stringify(this.searchData) | |||
}, | |||
'加载数据时出错' | |||
); | |||
if (!result) { | |||
return; | |||
} | |||
this.total = result.total; | |||
this.page = result.page + 1; | |||
this.list = this.list.concat(result.rows); | |||
this.tips = `已加载 ${Math.min(result.page, result.total)} / ${result.total} 页,共 ${result.records} 项`; | |||
this.loadState = result.page >= result.total ? '已加载所有项目' : '向下翻以加载更多'; | |||
}, | |||
// 刷新清空列表 | |||
async refreshList() { | |||
this.page = 1; | |||
this.total = 2; | |||
this.list = []; | |||
await this.fetchList(); | |||
}, | |||
// 列表下拉 | |||
pullDown() { | |||
this.refreshList().then(() => { | |||
this.$refs.list.stopPullDown(); | |||
}); | |||
}, | |||
// 设置搜索条件 | |||
async searchChange() { | |||
const result = {}; | |||
// 时间查询相关参数 | |||
if (this.dateRange) { | |||
result.StartTime = this.dateRange.start; | |||
result.EndTime = this.dateRange.end; | |||
} | |||
// 将其他查询项添加到查询 JSON 中 | |||
const queryObj = pickBy(this.queryData, t => (Array.isArray(t) ? t.length > 0 : t)); | |||
Object.assign(result, mapValues(queryObj, t => (Array.isArray(t) ? t.join(',') : t))); | |||
this.searchData = result; | |||
await this.refreshList(); | |||
}, | |||
// 点击「清空查询条件」按钮 | |||
reset() { | |||
this.$refs.datefilter.changeDateRange('all'); | |||
this.queryData = this.COPY(this.defaultQueryData); | |||
this.searchChange(); | |||
}, | |||
// 点击「编辑」、「查看」、「添加」、「删除」按钮 | |||
async action(type, id = '') { | |||
switch (type) { | |||
case 'view': | |||
this.NAV_TO(`./single?type=view&id=${id}`); | |||
return; | |||
case 'add': | |||
this.NAV_TO('./single?type=create'); | |||
return; | |||
case 'edit': | |||
this.NAV_TO(`./single?type=edit&id=${id}`); | |||
return; | |||
case 'delete': | |||
if (!(await this.CONFIRM('删除项目', '确定要删除该项吗?', true))) { | |||
return; | |||
} | |||
this.HTTP_POST('learun/adms/EducationalAdministration/Thermography/delete', id, '删除失败').then(success => { | |||
if (!success) { | |||
return; | |||
} | |||
this.TOAST('删除成功', 'success'); | |||
this.refreshList(); | |||
}); | |||
return; | |||
default: | |||
return; | |||
} | |||
}, | |||
// 显示列表中的标题项 | |||
displayListItem(item, field) { | |||
const fieldItem = this.scheme[field]; | |||
const value = item[field]; | |||
switch (fieldItem.type) { | |||
case 'currentInfo': | |||
case 'organize': | |||
return fieldItem.dataType === 'time' ? value : get(this.GET_GLOBAL(fieldItem.dataType), `${value}.name`, ''); | |||
case 'radio': | |||
case 'select': | |||
const selectItem = this.dataSource[field].find(t => t.value === String(value)); | |||
return get(selectItem, 'text', ''); | |||
case 'checkbox': | |||
if (!value || value.split(',').length <= 0) { | |||
return ''; | |||
} | |||
const checkboxItems = value.split(','); | |||
return this.dataSource[field] | |||
.filter(t => checkboxItems.includes(t.value)) | |||
.map(t => t.text) | |||
.join(','); | |||
case 'datetime': | |||
if (!value) { | |||
return ''; | |||
} | |||
return moment(value).format(Number(fieldItem.dateformat) === 0 ? 'YYYY年 M月 D日' : 'YYYY-MM-DD HH:mm'); | |||
default: | |||
return value === null || value === undefined ? '' : value; | |||
} | |||
} | |||
} | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
@import "~@/common/css/sidepage.less"; | |||
@import "~@/common/css/customlist.less"; | |||
@import '~@/common/css/sidepage.less'; | |||
@import '~@/common/css/customlist.less'; | |||
</style> |
@@ -0,0 +1,307 @@ | |||
<template> | |||
<view class="page"> | |||
<view class="uni-list"> | |||
<view class="uni-list-cell"> | |||
<view class="uni-list-cell-left">当前选择</view> | |||
<view class="uni-list-cell-db"> | |||
<picker mode="multiSelector" @columnchange="bindMultiPickerColumnChange" :value="multiIndex" :range="multiArray"> | |||
<view class="uni-input">{{ multiArray[0][multiIndex[0]] }},{{ multiArray[1][multiIndex[1]] }},{{ multiArray[2][multiIndex[2]] }}</view> | |||
</picker> | |||
</view> | |||
</view> | |||
</view> | |||
<l-select v-model="queryData.Creater" :range="dataSource.Creater" title="填报人员" placeholder="请选择填报人员" /> | |||
<l-date-picker v-model="queryData.CreateTime" title="填报时间" placeholder="" :start="todayTime" :end="todayTime" /> | |||
<l-select v-model="queryData.Type" :range="dataSource.Type" title="类别" placeholder="请选择" /> | |||
<l-select v-if="!DepartFlag" v-model="queryData.Department" :range="dataSource.Department" title="所在部门" placeholder="请选择" /> | |||
<l-input v-if="DepartFlag" v-model="queryData.StudentSource" title="所在班级" placeholder="请填写所在班级" right /> | |||
<l-select v-model="queryData.HealthSituation" :range="dataSource.HealthSituation" title="健康状况" placeholder="请选择" /> | |||
<l-select v-model="queryData.Gender" :range="dataSource.Gender" title="性别" placeholder="请选择" /> | |||
<l-input v-model="queryData.HomeAddress" title="家庭住址" placeholder="请填写家庭住址" right /> | |||
<l-input v-model="queryData.Mobile" title="联系方式" placeholder="请填写联系方式" right /> | |||
<l-input v-model="queryData.Objective" title="当前地址" placeholder="请填写当前地址" right /> | |||
<l-select v-model="queryData.IsOut" :range="dataSource.YesOrNoInt" title="*是否外出" placeholder="请选择" /> | |||
<view class="checkInBox" v-show="queryData.IsOut == 1"> | |||
<view class="checkInCon" v-for="(item, i) in queryData.PassPlaces" :key="item.Time"> | |||
<view class="checkInT"> | |||
经过地点记录({{ i + 1 }}) | |||
<text class="remove" v-show="queryData.PassPlaces.length > 1">删除</text> | |||
</view> | |||
<l-select v-model="item.PassType" :range="dataSource.Type" title="类别" placeholder="请选择" /> | |||
<l-select v-model="item.ProvinceArea" :range="dataSource.Type" title="省市区" placeholder="请选择省市区(必填)" /> | |||
<l-input v-model="item.Address" title="详细住址" placeholder="请填写详细住址" right /> | |||
<l-select v-model="item.Time" :range="dataSource.Type" title="时间" placeholder="请选择时间" /> | |||
<l-select v-model="item.Vehicle" :range="dataSource.Type" title="交通工具" placeholder="请选择交通工具" /> | |||
<l-input v-model="item.VehicleNo" title="班次号" placeholder="请填写班次号" right /> | |||
</view> | |||
<view class="checkInBtn"> | |||
<text class="text-xxl cuIcon cuIcon-add"></text> | |||
增加经过地点记录 | |||
</view> | |||
</view> | |||
<l-select v-model="queryData.HasFamily" :range="dataSource.YesOrNoInt" title="*家人异常" placeholder="请选择" /> | |||
<view class="checkInBox" v-show="queryData.HasFamily == 1"> | |||
<view class="checkInCon" v-for="(item, i) in queryData.ContactsDetails" :key="item.QTTime"> | |||
<view class="checkInT"> | |||
接触家人({{ i + 1 }}) | |||
<text class="remove" v-show="queryData.ContactsDetails.length > 1">删除</text> | |||
</view> | |||
<l-input v-model="item.Name" title="名字" placeholder="请填写名字" right /> | |||
<l-select v-model="item.Gender" :range="dataSource.Type" title="性别" placeholder="请选择性别" /> | |||
<l-input v-model="item.Mobile" title="联系方式" placeholder="请填写联系方式" right /> | |||
<l-select v-model="item.QTType" :range="dataSource.Type" title="隔离方式" placeholder="请选择隔离方式" /> | |||
<l-select v-model="item.ProvinceArea" :range="dataSource.Type" title="省市区" placeholder="请选择省市区(必填)" /> | |||
<l-input v-model="item.QTAddress" title="隔离地点" placeholder="请填写隔离地点" right /> | |||
<l-select v-model="item.QTTime" :range="dataSource.Type" title="隔离时间" placeholder="请选择隔离时间" /> | |||
<l-select v-model="item.QTContactTime" :range="dataSource.Type" title="接触隔离时间" placeholder="请选择" /> | |||
<l-select v-model="item.Fever" :range="dataSource.Type" title="健康状况" placeholder="请选择健康状况" /> | |||
</view> | |||
<view class="checkInBtn"> | |||
<text class="text-xxl cuIcon cuIcon-add"></text> | |||
增加接触家人 | |||
</view> | |||
</view> | |||
<l-select v-model="queryData.HasPeople" :range="dataSource.YesOrNoInt" title="*疫区人异常" placeholder="请选择" /> | |||
<view class="checkInBox" v-show="queryData.HasPeople == 1"> | |||
<view class="checkInCon" v-for="(item, i) in queryData.ContactsDetails" :key="item.QTTime"> | |||
<view class="checkInT"> | |||
接触人({{ i + 1 }}) | |||
<text class="remove" v-show="queryData.PassPlaces.length > 1">删除</text> | |||
</view> | |||
<l-input v-model="queryData.PeopleDetails.Name" title="名字" placeholder="请填写名字" right /> | |||
<l-select v-model="queryData.PeopleDetails.Gender" :range="dataSource.Type" title="性别" placeholder="请选择性别" /> | |||
<l-input v-model="queryData.PeopleDetails.Mobile" title="联系方式" placeholder="请填写联系方式" right /> | |||
<l-select v-model="queryData.PeopleDetails.QTType" :range="dataSource.Type" title="隔离方式" placeholder="请选择隔离方式" /> | |||
<l-select v-model="queryData.PeopleDetails.ProvinceArea" :range="dataSource.Type" title="省市区" placeholder="请选择省市区(必填)" /> | |||
<l-input v-model="queryData.PeopleDetails.QTAddress" title="隔离地点" placeholder="请填写隔离地点" right /> | |||
<l-select v-model="queryData.PeopleDetails.QTTime" :range="dataSource.Type" title="隔离时间" placeholder="请选择隔离时间" /> | |||
<l-select v-model="queryData.PeopleDetails.QTContactTime" :range="dataSource.Type" title="接触隔离时间" placeholder="请选择" /> | |||
<l-select v-model="queryData.PeopleDetails.Fever" :range="dataSource.Type" title="健康状况" placeholder="请选择健康状况" /> | |||
</view> | |||
<view class="checkInBtn"> | |||
<text class="text-xxl cuIcon cuIcon-add"></text> | |||
增加接触人 | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
import todayTime from '@/common/js/todayTime.js'; | |||
import city from '@/common/js/city.js'; | |||
export default { | |||
data() { | |||
return { | |||
multiArray: [[], [], []], | |||
multiIndex: [0, 0, 0], | |||
select3: '0', | |||
pageInfo: null, | |||
userInfo: null, | |||
todayTime: todayTime.fmtDate().ymd, | |||
DepartFlag: true, | |||
//下拉 | |||
dataSource: { | |||
Creater: [], | |||
Type: [], | |||
HealthSituation: [], | |||
Gender: [], | |||
YesOrNoInt: [], | |||
Department: [] | |||
}, | |||
queryData: { | |||
Creater: '', | |||
Type: '', | |||
Department: '', | |||
CreateTime: todayTime.fmtDate().ymd, | |||
StudentSource: '', | |||
HealthSituation: '', | |||
Gender: '', | |||
HomeAddress: '', | |||
Mobile: '', | |||
Objective: '', | |||
IsOut: '', | |||
PassPlaces: [ | |||
{ | |||
PassType: '', | |||
ProvinceArea: '', | |||
Address: '', | |||
Time: '', | |||
Vehicle: '', | |||
VehicleNo: '' | |||
} | |||
], | |||
HasFamily: '', | |||
ContactsDetails: [ | |||
{ | |||
Name: '', | |||
Gender: '', | |||
Mobile: '', | |||
QTType: '', | |||
ProvinceArea: '', | |||
QTAddress: '', | |||
QTTime: '', | |||
QTContactTime: '', | |||
Fever: '' | |||
} | |||
], | |||
HasPeople: '', | |||
PeopleDetails: [ | |||
{ | |||
Name: '', | |||
Gender: '', | |||
Mobile: '', | |||
QTType: '', | |||
ProvinceArea: '', | |||
QTAddress: '', | |||
QTTime: '', | |||
QTContactTime: '', | |||
Fever: '' | |||
} | |||
] | |||
} | |||
}; | |||
}, | |||
methods: { | |||
bindMultiPickerColumnChange: function(e) { | |||
// console.log(e); | |||
console.log('修改的列为:' + e.detail.column + ',值为:' + e.detail.value); | |||
let _this = this; | |||
this.multiIndex[e.detail.column] = e.detail.value; | |||
if(e.detail.column == 0){ | |||
_this.multiArray[1].length = 0; | |||
_this.multiArray[2].length = 0; | |||
this.cityCl (city.cityData[_this.multiIndex[0]].children, 1) | |||
}else if(e.detail.column == 1){ | |||
_this.multiArray[2].length = 0; | |||
this.cityCl (city.cityData[_this.multiIndex[0]].children[_this.multiIndex[1]].children, 2) | |||
} | |||
this.$forceUpdate(); | |||
}, | |||
cityCl (data, num){ | |||
let _this = this; | |||
data.forEach((n, i) => { | |||
if(i == 0 ){ | |||
if(n.children){ | |||
let number = num + 1; | |||
_this.cityCl (n.children, number) | |||
}else{ | |||
return | |||
} | |||
} | |||
_this.multiArray[num].push(n.text) | |||
}); | |||
}, | |||
async init() { | |||
console.log(city.cityData); | |||
let _this = this; | |||
_this.cityCl (city.cityData, 0) | |||
//console.log(this.multiArray) | |||
// 拉取加载列表和数据源 | |||
await Promise.all([ | |||
this.FETCH_DATASOURCE('classdata').then(data => { | |||
//console.log(data) | |||
this.dataSource.Department = data.data.map(t => ({ | |||
text: t.f_fullname, | |||
value: t.f_parentid | |||
})); | |||
}), | |||
() => {} | |||
]); | |||
let dataDictionary = this.GET_GLOBAL('dataDictionary'); | |||
this.dataSource.Type = Object.values(dataDictionary.EUserType).map(t => ({ value: t.value, text: t.text })); | |||
this.dataSource.HealthSituation = Object.values(dataDictionary.EpiHealth).map(t => ({ value: t.value, text: t.text })); | |||
this.dataSource.Gender = Object.values(dataDictionary.usersex).map(t => ({ value: t.value, text: t.text })); | |||
this.dataSource.YesOrNoInt = Object.values(dataDictionary.YesOrNoInt).map(t => ({ value: t.value, text: t.text })); | |||
console.log(this.dataSource.YesOrNoInt); | |||
// 拉取加载列表和数据源 | |||
_this.pageInfo = _this.GET_PARAM(); //获取页面传递参数 | |||
// console.log(_this.pageInfo.type); | |||
_this.userInfo = _this.GET_GLOBAL('loginUser'); | |||
// console.log(_this.userInfo); | |||
//新建时获取登陆人信息 | |||
if (_this.pageInfo.type == 'add') { | |||
_this.dataSource.Creater = [ | |||
{ | |||
text: _this.userInfo.realName, | |||
value: _this.userInfo.userId | |||
} | |||
]; | |||
_this.queryData.Creater = _this.userInfo.userId; | |||
_this.queryData.Department = _this.userInfo.departmentId; | |||
_this.queryData.Gender = JSON.stringify(_this.userInfo.gender); | |||
_this.queryData.Mobile = _this.userInfo.mobile; | |||
_this.queryData.IsOut = '0'; | |||
_this.queryData.HasFamily = '0'; | |||
_this.queryData.HasPeople = '0'; | |||
_this.queryData.HealthSituation = '0'; | |||
//定位 | |||
// $page.find('#Objective').val(returnCitySN.cname) | |||
if (_this.userInfo.Description == '学生') { | |||
_this.queryData.Type = '5'; | |||
_this.LOADING('加载数据中…'); | |||
_this.HTTP_GET('learun/PersonnelManagement/EpidemicSituationCopy/getStuSource', _this.userInfo.account, '加载数据时出错').then(data => { | |||
this.HIDE_LOADING(); | |||
if (data) { | |||
_this.queryData.HomeAddress = data.Address; | |||
_this.queryData.StudentSource = data.res; | |||
} | |||
}); | |||
} else { | |||
_this.LOADING('加载数据中…'); | |||
_this.HTTP_GET('learun/PersonnelManagement/EpidemicSituationCopy/getUserSource', _this.userInfo.userId, '加载数据时出错').then(data => { | |||
this.HIDE_LOADING(); | |||
if (data) { | |||
_this.queryData.HomeAddress = data.Address; | |||
} | |||
}); | |||
} | |||
if (_this.userInfo.Description != '学生') { | |||
_this.DepartFlag = false; | |||
} | |||
// _this.LOADING('加载数据中…'); | |||
// _this.HTTP_GET('learun/EducationalAdministration/StuAttendanceLeave/leaveform', {}, '加载数据时出错').then(res => { | |||
// this.HIDE_LOADING(); | |||
// _this.ProcessingData(res); | |||
// }); | |||
} | |||
} | |||
}, | |||
created() { | |||
this.init(); | |||
} | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
@import '~@/common/css/sidepage.less'; | |||
@import '~@/common/css/customlist.less'; | |||
@import '~@/common/css/common.less'; | |||
.checkInT { | |||
padding: 0.5px 15px; | |||
line-height: 40px; | |||
font-size: 12px; | |||
} | |||
.checkInBtn { | |||
text-align: center; | |||
line-height: 40px; | |||
color: @pubColor; | |||
background-color: #fff; | |||
border-bottom: 0.5px solid #eee; | |||
} | |||
.checkInBtn text { | |||
position: relative; | |||
top: 2px; | |||
margin-right: 5px; | |||
font-size: 20px; | |||
} | |||
</style> |
@@ -0,0 +1,336 @@ | |||
<template> | |||
<view class="page"> | |||
<!-- 主列表页 --> | |||
<view :class="sideOpen ? 'show' : ''" class="mainpage" style="padding-top: 80rpx"> | |||
<!-- 顶部条目/分页信息栏 --> | |||
<l-customlist-banner @buttonClick="sideOpen = true"> | |||
共 | |||
<text class="records">{{ records }}</text> | |||
数据 | |||
</l-customlist-banner> | |||
<!-- 滚动列表,跨端支持上拉/下拉 --> | |||
<l-scroll-list v-if="ready" @pullDown="pullDown" @toBottom="fetchList()" ref="list"> | |||
<l-customlist :tips="loadState" showTips> | |||
<view class=""></view> | |||
<!-- 单条记录 --> | |||
<view class="pageBox customlist-item" showDelete="true" v-for="(item, ind) in list" :key="item.MakeDate" @click="tapClick(item)"> | |||
<view class=""> | |||
<text>填表人员:</text> | |||
{{ displayListItem(item, 'Creater') }} | |||
</view> | |||
<view class=""> | |||
<text>填报时间:</text> | |||
<!-- {{ item.CreateTime }} --> | |||
{{ displayListItem(item, 'CreateTime') }} | |||
</view> | |||
<view class="listBtn" @click="action('delete', item.ID)">删除</view> | |||
</view> | |||
</l-customlist> | |||
</l-scroll-list> | |||
</view> | |||
<!-- 关闭侧边抽屉按钮 --> | |||
<view @click="sideOpen = false" :class="sideOpen ? 'show' : ''" class="sideclose"><l-icon type="pullright" color="blue" /></view> | |||
<!-- 侧边栏,用于设置查询条件 --> | |||
<scroll-view :class="sideOpen ? 'show' : ''" class="sidepage" scroll-y> | |||
<view v-if="ready" class="padding"> | |||
<l-input v-model="queryData.Creater" title="填表人员" placeholder="请填写填表人员" right /> | |||
<l-select v-model="queryData.Type" :range="dataSource.Type" title="类别" placeholder="按类别查询" /> | |||
<l-input v-model="queryData.UnitName" title="单位名称" placeholder="请填写单位名称" right /> | |||
<l-input v-model="queryData.StudentSource" title="系专业班级" placeholder="请填写系专业班级" right /> | |||
<!-- 重置查询条件按钮 --> | |||
<view class="padding-tb"><l-button @click="reset" line="orange" class="block" block>重置查询条件</l-button></view> | |||
<view class="padding-tb"><l-button @click="searchChange" line="orange" class="block" block>查询</l-button></view> | |||
</view> | |||
</scroll-view> | |||
<l-customlist-add v-if="!sideOpen" @click="action('add')" /> | |||
</view> | |||
</template> | |||
<script> | |||
/* | |||
* 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn) | |||
* Copyright (c) 2013-2020 上海力软信息技术有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2020-10-12 17:22 | |||
* 描 述:班级自诊打卡 | |||
*/ | |||
/** | |||
* 本段代码由移动端代码生成器输出,移动端须 2.2.0 版本及以上可以使用 | |||
* 请在移动端 /pages.json 中的 pages 字段中添加一条记录: | |||
* { "path": "pages/EducationalAdministration/Thermography/list", "style": { "navigationBarTitleText": "表单列表页" } } | |||
* | |||
* (navigationBarTitleText 字段为本页面的标题文本,可以修改) | |||
* (必须自行操作该步骤,力软代码生成器不会自动帮您修改 /pages.json 文件) | |||
*/ | |||
import moment from 'moment'; | |||
import get from 'lodash/get'; | |||
import set from 'lodash/set'; | |||
import pickBy from 'lodash/pickBy'; | |||
import mapValues from 'lodash/mapValues'; | |||
export default { | |||
data() { | |||
return { | |||
user: null, | |||
// 数据项的数据类型、结构 | |||
scheme: { | |||
Creater: { | |||
type: 'select', | |||
dataSource: '1', | |||
dataSourceId: 'BaseUser,f_realname,f_userid' | |||
}, | |||
CreateTime: { | |||
type: 'text' | |||
} | |||
}, | |||
// 查询条件 | |||
searchData: { | |||
MeasurerID: this.GET_GLOBAL('loginUser').account | |||
}, | |||
defaultQueryData: {}, | |||
queryData: { | |||
Creater: '', | |||
Type: '', | |||
UnitName: '', | |||
StudentSource: '' | |||
}, | |||
// 数据源 | |||
dataSource: { | |||
Creater: '', | |||
Type: Object.values(this.GET_GLOBAL('dataDictionary').EUserType).map(t => ({ value: t.value, text: t.text })) | |||
}, | |||
// 时间查询参数 | |||
dateRange: null, | |||
// 页面相关参数 | |||
ready: false, | |||
tips: '加载中...', | |||
loadState: '向下翻以加载更多', | |||
sideOpen: false, | |||
// 列表与分页信息 | |||
page: 1, | |||
total: 2, | |||
rows: 10, | |||
list: [], | |||
// records: '加载中...', | |||
records: 0, | |||
multipleData: null | |||
}; | |||
}, | |||
async onLoad() { | |||
await this.init(); | |||
}, | |||
onUnload() { | |||
this.OFF('EducationalAdministrationThermography-list-change'); | |||
}, | |||
methods: { | |||
// 页面初始化 | |||
async init() { | |||
this.ON('EducationalAdministrationThermography-list-change', this.refreshList); | |||
this.user = this.GET_GLOBAL('loginUser'); | |||
// this.queryData.Creater = this.user.userId | |||
// 拉取加载列表和数据源 | |||
await Promise.all([ | |||
this.FETCH_DATASOURCE('BaseUser').then(data => { | |||
// console.log(data) | |||
this.dataSource.Creater = data.data.map(t => ({ | |||
text: t.f_realname, | |||
value: t.f_userid | |||
})); | |||
}), | |||
() => {} | |||
]); | |||
// console.log(this.page) | |||
// console.log(this.dataSource.Type); | |||
this.fetchList(); | |||
// 初始化查询条件 | |||
this.defaultQueryData = this.COPY(this.queryData); | |||
this.ready = true; | |||
}, | |||
// 拉取列表 | |||
async fetchList() { | |||
// console.log(this.page) | |||
// console.log(this.total) | |||
this.sideOpen = false; | |||
if (this.page > this.total) { | |||
return; | |||
} | |||
let _this = this; | |||
let _postParam = { | |||
pagination: { | |||
rows: _this.rows, | |||
page: _this.page, | |||
sidx: 'ID', | |||
sord: 'DESC' | |||
}, | |||
queryJson: '{}' | |||
}; | |||
if(_this.queryData.Creater.length != 0){ | |||
_postParam.queryJson = JSON.stringify(_this.queryData); | |||
}else{ | |||
_postParam.queryJson = JSON.stringify({ Creater: _this.user.userId }); | |||
} | |||
// console.log(_this.user) | |||
_this.LOADING('加载数据中…'); | |||
// _this.HIDE_LOADING(); | |||
_this.HTTP_GET('learun/PersonnelManagement/EpidemicSituationCopy/pagelist', _postParam, '加载数据时出错').then(res => { | |||
_this.HIDE_LOADING(); | |||
// console.log(res); | |||
_this.list = _this.list.concat(res.rows); | |||
_this.total = res.total; | |||
_this.records = res.records; | |||
_this.page = res.page + 1; | |||
_this.loadState = res.page >= res.total ? '已加载所有项目' : '向下翻以加载更多'; | |||
// console.log(_this.list); | |||
}); | |||
}, | |||
// 刷新清空列表 | |||
async refreshList() { | |||
this.page = 1; | |||
this.total = 2; | |||
this.list = []; | |||
await this.fetchList(); | |||
}, | |||
// 列表下拉 | |||
pullDown() { | |||
this.refreshList().then(() => { | |||
this.$refs.list.stopPullDown(); | |||
}); | |||
}, | |||
// 设置搜索条件 | |||
async searchChange() { | |||
const result = {}; | |||
// 时间查询相关参数 | |||
if (this.dateRange) { | |||
result.StartTime = this.dateRange.start; | |||
result.EndTime = this.dateRange.end; | |||
} | |||
// 将其他查询项添加到查询 JSON 中 | |||
// this.multipleData = data || {}; | |||
console.log(this.queryData) | |||
this.searchData = result; | |||
await this.refreshList(); | |||
}, | |||
// 点击「清空查询条件」按钮 | |||
reset() { | |||
// this.$refs.datefilter.changeDateRange('all'); | |||
this.queryData = this.COPY(this.defaultQueryData); | |||
this.searchChange(); | |||
}, | |||
// 点击「编辑」、「查看」、「添加」、「删除」按钮 | |||
async action(type, id = '') { | |||
switch (type) { | |||
case 'view': | |||
this.NAV_TO(`./single?type=view&id=${id}`); | |||
return; | |||
case 'add': | |||
this.NAV_TO('./from', {type: 'add'}, true); | |||
return; | |||
case 'delete': | |||
if (!(await this.CONFIRM('删除项目', '确定要删除该数据吗?', true))) { | |||
return; | |||
} | |||
this.LOADING('删除数据中…'); | |||
// _this.HIDE_LOADING(); | |||
this.HTTP_POST('learun/PersonnelManagement/EpidemicSituationCopy/delete', id, '删除失败').then(success => { | |||
if (!success) { | |||
return; | |||
} | |||
this.HIDE_LOADING(); | |||
this.TOAST('删除成功', 'success'); | |||
this.refreshList(); | |||
}); | |||
return; | |||
default: | |||
return; | |||
} | |||
}, | |||
// 显示列表中的标题项 | |||
displayListItem(item, field) { | |||
const fieldItem = this.scheme[field]; | |||
const value = item[field]; | |||
switch (fieldItem.type) { | |||
case 'currentInfo': | |||
case 'organize': | |||
return fieldItem.dataType === 'time' ? value : get(this.GET_GLOBAL(fieldItem.dataType), `${value}.name`, ''); | |||
case 'radio': | |||
case 'select': | |||
const selectItem = this.dataSource[field].find(t => t.value === String(value)); | |||
return get(selectItem, 'text', ''); | |||
case 'checkbox': | |||
if (!value || value.split(',').length <= 0) { | |||
return ''; | |||
} | |||
const checkboxItems = value.split(','); | |||
return this.dataSource[field] | |||
.filter(t => checkboxItems.includes(t.value)) | |||
.map(t => t.text) | |||
.join(','); | |||
case 'datetime': | |||
if (!value) { | |||
return ''; | |||
} | |||
return moment(value).format(Number(fieldItem.dateformat) === 0 ? 'YYYY年 M月 D日' : 'YYYY-MM-DD HH:mm'); | |||
default: | |||
return value === null || value === undefined ? '' : value; | |||
} | |||
} | |||
} | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
@import '~@/common/css/sidepage.less'; | |||
@import '~@/common/css/customlist.less'; | |||
@import '~@/common/css/common.less'; | |||
.records { | |||
display: inline-block; | |||
width: 16px; | |||
height: 16px; | |||
background-color: @pubColor; | |||
border-radius: 50%; | |||
color: #fff; | |||
font-size: 12px; | |||
line-height: 16px; | |||
text-align: center; | |||
margin: 0 5px; | |||
} | |||
.listBtn{ | |||
background-color: @pubColor; | |||
border-radius: 3px; | |||
display: inline-block; | |||
padding: 3px 10px; | |||
color: #fff; | |||
margin-top: 5px; | |||
} | |||
</style> |
@@ -0,0 +1,191 @@ | |||
<template> | |||
<view class="page"> | |||
<view class="studSeeSec1"> | |||
<view class="studSeeSec1Box"> | |||
<l-select :range="selectArr1" :placeholder="placeholder" @change="bindDateChange" valueField="value" textField="text" /> | |||
</view> | |||
</view> | |||
<view class="studSeeSec2"> | |||
<view class="tips" v-show="!flag">暂无数据!</view> | |||
<view class="studSeeSec2List" v-show="flag"> | |||
<view class="studSeeSec2Li" v-for="(n,ind) in data" :key="n.ID"> | |||
<div> | |||
<text>{{ n.EncourgeName }}</text> | |||
<text class="EncourgeLevel" v-if="n.EncourgeLevel != null">【 {{ n.EncourgeLevel }} 】 【 {{ n.EncourgeSort }} 】</text> | |||
</div> | |||
<div>奖励金额:<text>{{ n.Fee }}</text>元</div> | |||
<div>{{ n.Reason }}</div> | |||
<div class="dateRow">奖励日期:{{ n.EncourgeDate }}</div> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default{ | |||
data() { | |||
return { | |||
value: 0, | |||
flag:false, | |||
selectArr1: [], | |||
placeholder: '请选择学期', | |||
data: [] | |||
} | |||
}, | |||
methods:{ | |||
init() { | |||
//获取学年学期列表 | |||
let _this = this; | |||
_this.LOADING('加载数据中…') | |||
_this.HTTP_GET( | |||
'StuEncourgement/academicAndSemesterList', | |||
{}, | |||
'加载数据时出错' | |||
).then( res => { | |||
this.HIDE_LOADING() | |||
// console.log(res) | |||
_this.selectArr1 = res; | |||
_this.placeholder = res[0].text; | |||
_this.getListAjax(res[0].value); | |||
}) | |||
}, | |||
bindDateChange: function(e) { | |||
// console.log(e); | |||
this.getListAjax(e) | |||
}, | |||
getListAjax(id) { | |||
var param = { value: id }; | |||
let _this = this; | |||
_this.LOADING('加载数据中…') | |||
_this.HTTP_GET( | |||
'StuEncourgement/encourgementList', | |||
param, | |||
'加载数据时出错' | |||
).then( res => { | |||
this.HIDE_LOADING() | |||
// console.log(res) | |||
if (res == null || res.length <= 0) { | |||
_this.flag = false; | |||
return; | |||
} | |||
_this.flag = true; | |||
_this.data = res; | |||
}) | |||
} | |||
}, | |||
created() { | |||
this.init() | |||
} | |||
} | |||
</script> | |||
<style lang="less" scoped> | |||
/deep/ .picker { | |||
text-align: center; | |||
} | |||
/deep/ .cu-form-group { | |||
background: #fff; | |||
height: 28px; | |||
border-radius: 14px; | |||
line-height: 28px; | |||
text-align: center; | |||
font-size: 15px; | |||
color: #1a1a1a; | |||
position: relative; | |||
margin: 0 auto; | |||
min-height: 28px; | |||
} | |||
.studSeeSec1 { | |||
background: #0c86d8; | |||
height: 100px; | |||
padding-top: 10px; | |||
} | |||
.studSeeSec1Box { | |||
width: 84%; | |||
background: #fff; | |||
height: 28px; | |||
border-radius: 14px; | |||
line-height: 28px; | |||
text-align: center; | |||
font-size: 15px; | |||
color: #1a1a1a; | |||
position: relative; | |||
margin: 0 auto; | |||
} | |||
.studSeeSec2Top { | |||
padding: 0 12px; | |||
margin-top: -52px; | |||
} | |||
.studSeeSec2TopBox { | |||
background: #fff; | |||
padding: 20px 0; | |||
text-align: center; | |||
font-size: 0; | |||
border-radius: 4px; | |||
} | |||
.studSeeSec2TopBox > * { | |||
display: inline-block; | |||
vertical-align: middle; | |||
} | |||
.studSeeSec2Line { | |||
height: 25px; | |||
width: 1px; | |||
background: #d6dfe2; | |||
margin: 0 40px; | |||
} | |||
.studSeeSec2Txt { | |||
color: #8a8a8a; | |||
} | |||
.studSeeSec2Txt view:first-child { | |||
font-size: 12px; | |||
} | |||
.studSeeSec2Txt view:first-child text { | |||
font-size: 20px; | |||
color: #0089fe; | |||
margin-right: 5px; | |||
} | |||
.studSeeSec2Txt view:last-child { | |||
font-size: 15px; | |||
} | |||
.studSeeSec2List { | |||
margin-top: 10px; | |||
background: #fff; | |||
} | |||
.studSeeSec2Li { | |||
padding: 0 12px 0 30px; | |||
border-bottom: 1px solid #d6dfe2; | |||
line-height: 24px; | |||
font-size: 13px; | |||
color: #7a7a7a; | |||
position: relative; | |||
} | |||
.studSeeSec2Li:before { | |||
/*content: '';*/ | |||
position: absolute; | |||
top: 0; | |||
bottom: 0; | |||
left: 12px; | |||
margin: auto; | |||
width: 6px; | |||
height: 6px; | |||
background: #8ac9ff; | |||
border-radius: 50%; | |||
} | |||
.studSeeSec2List .EncourgeLevel { | |||
float: right; | |||
} | |||
.studSeeSec2List image { | |||
width: 12px; | |||
margin-right: 5px; | |||
position: relative; | |||
top: 2px; | |||
} | |||
.studSeeSec2Li .dateRow { | |||
text-align: right; | |||
} | |||
.studSeeSec2 .tips { | |||
text-align: center; | |||
} | |||
</style> |
@@ -0,0 +1,103 @@ | |||
<template> | |||
<view class="page"> | |||
<!--标题--> | |||
<view class="noticeT"><text id="AcademicYearNo">{{ data.AcademicYearNo }}</text>学年第<text id="Semester">{{ data.Semester }}</text>学期收费标准</view> | |||
<!--简介--> | |||
<view class="noticeBox"> | |||
<view class="noticeTitle">费用明细</view> | |||
<view id="list"> | |||
<view class="noticeTxt" v-for="(item, i) in data.FinaChargesStandardList" :key="item.ChargeItemID"> | |||
<text> {{ item.ChargeItemName }} :</text><text> {{ item.Standard }} 元</text> | |||
</view> | |||
</view> | |||
<view class="noticeTxt"> | |||
<text>合计:</text><text><text id="total">{{ data.PayFeeTotal }}</text>元</text> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default{ | |||
data() { | |||
return { | |||
data: null | |||
} | |||
}, | |||
methods:{ | |||
init() { | |||
//数据绑定 | |||
let _this = this; | |||
_this.LOADING('加载数据中…') | |||
_this.HTTP_GET('StuInfoFresh/payFeeDetail', {}, '加载数据时出错').then(res => { | |||
_this.HIDE_LOADING(); | |||
console.log(res); | |||
_this.data = res; | |||
}); | |||
} | |||
}, | |||
created() { | |||
this.init() | |||
} | |||
} | |||
</script> | |||
<style scoped lang="less"> | |||
/deep/ uni-page{ | |||
background-color: #fff; | |||
} | |||
.f-page-body { | |||
background: #fff; | |||
} | |||
.page { | |||
padding: 10px 12px; | |||
background: #fff; | |||
} | |||
.noticeT { | |||
font-size: 20px; | |||
line-height: 26px; | |||
text-align: center; | |||
} | |||
.noticeTitle { | |||
font-size: 16px; | |||
/* border-top: 10px #f9f9f9 solid; */ | |||
/* margin: 0 -12px; */ | |||
margin: 15px 0 10px; | |||
} | |||
.noticeBox { | |||
margin: 10px 0; | |||
padding: 12px; | |||
background: #f9f9f9; | |||
border-radius: 14px; | |||
} | |||
.noticeBox .noticeTitle:first-child { | |||
margin-top: 0; | |||
} | |||
.noticeTxt, | |||
.noticeText { | |||
font-size: 14px; | |||
line-height: 24px; | |||
overflow: hidden; | |||
margin: 5px 0; | |||
} | |||
.noticeText { | |||
text-align: right; | |||
} | |||
.noticeTxt > *:last-child { | |||
float: right; | |||
} | |||
.noticeLine { | |||
height: 1px; | |||
margin: 10px 0; | |||
background: #e4e4e4; | |||
} | |||
</style> |
@@ -15,12 +15,12 @@ | |||
</view> | |||
</view> | |||
<view class="timeTable_sec2"> | |||
<ul class="tSec2Top"> | |||
<view class="tSec2Top"> | |||
<view class="tSec2TopLi" v-for="(item, ind) in weekArr" :key="item.en" @click="liTap(ind)" :class="ind == num ? 'active' : ''"> | |||
<text>{{ item.en }}</text> | |||
<text>{{ item.cn }}</text> | |||
</view> | |||
</ul> | |||
</view> | |||
<view class="tSec2Box"> | |||
<view class="tSec2Con" v-for="(items, i) in dataArr" :key="items.num" v-show="i == num"> | |||
<view class="tSec2List"> | |||
@@ -119,9 +119,7 @@ export default { | |||
_this.loadData(_this.todayWeek.Monday, _this.todayWeek.Sunday); | |||
}, | |||
loadData(start, end) { | |||
// judgeDate(todayWeek.SundayTime); | |||
var param = { startTime: start, endTime: end }; | |||
let _this = this; | |||
_this.LOADING('加载数据中…'); | |||
_this.HTTP_GET('arrangeExam/stuList', param, '加载数据时出错').then(res => { | |||
@@ -177,6 +175,9 @@ export default { | |||
} | |||
}); | |||
}); | |||
dataM.forEach((n, i) => { | |||
n.lessonData.sort(common.compare('sectionTime')); | |||
}); | |||
this.dataArr = dataM; | |||
} | |||
}, | |||
@@ -187,7 +188,6 @@ export default { | |||
</script> | |||
<style lang="less" scoped> | |||
.page { | |||
background: #fff; | |||
padding-bottom: 1px; | |||
@@ -110,7 +110,7 @@ export default { | |||
'learun/adms/timetable/StuLessonInfo', | |||
{StartDate:Monday, EndDate:Sunday}, | |||
'加载数据时出错' | |||
).then( res => { | |||
).then( res => { | |||
_this.HIDE_LOADING() | |||
//console.log(res) | |||
_this.dataArr.length = 0; | |||
@@ -0,0 +1,67 @@ | |||
<template> | |||
<view class="page"> | |||
<l-input title="学年度" placeholder="请填写学年度" disabled left /> | |||
<l-input title="学期" placeholder="请填写学期" disabled left /> | |||
<l-input title="学号" placeholder="请填写学号" disabled left /> | |||
<l-input title="姓名" placeholder="请填写姓名" disabled left /> | |||
<l-input title="年级" placeholder="请填写年级" disabled left /> | |||
<l-input title="教师号" placeholder="请填写教师号" disabled left /> | |||
<l-input title="系所码" placeholder="请填写系所码" disabled left /> | |||
<l-input title="系名" placeholder="请填写系名" disabled left /> | |||
<l-input title="专业码" placeholder="请填写专业码" disabled left /> | |||
<l-input title="专业名" placeholder="请填写专业名" disabled left /> | |||
<l-input title="所在行政班号" placeholder="请填写所在行政班号" disabled left /> | |||
<l-input title="班级名称" placeholder="请填写班级名称" disabled left /> | |||
<l-input title="课程号" placeholder="请填写课程号" disabled left /> | |||
<l-input title="课程名称" placeholder="请填写课程名称" disabled left /> | |||
<l-input title="课程类别码" placeholder="请填写课程类别码" disabled left /> | |||
<l-input title="课程类别" placeholder="请填写课程类别" disabled left /> | |||
<l-input title="教室码" placeholder="请填写教室码" disabled left /> | |||
<l-input title="教室名称" placeholder="请填写教室名称" disabled left /> | |||
<l-input title="原上课日期" placeholder="请填写原上课日期" disabled left /> | |||
<l-input title="上课时间" placeholder="请填写上课时间" disabled left /> | |||
<div class="lr-form-row " data-table="StuAttendanceLeave"> | |||
<label>请假类型</label> | |||
<div id="LeaveType"></div> | |||
</div> | |||
<l-title>备注:</l-title> | |||
<view class="bg-white"> | |||
<l-textarea placeholder="输入点什么..." /> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
pageInfo: null | |||
}; | |||
}, | |||
methods: { | |||
init() { | |||
this.pageInfo = this.GET_PARAM(); //获取页面传递参数 | |||
console.log(this.pageInfo); | |||
let _this = this; | |||
// _this.LOADING('加载数据中…'); | |||
_this.LOADING('页面未做完…'); | |||
setTimeout(function(){ | |||
_this.HIDE_LOADING(); | |||
}, 2000) | |||
_this.HTTP_GET('learun/EducationalAdministration/StuAttendanceLeave/leaveform', {}, '加载数据时出错').then(res => { | |||
this.HIDE_LOADING(); | |||
// console.log(res); | |||
_this.ProcessingData(res); | |||
}); | |||
} | |||
}, | |||
created() { | |||
this.init(); | |||
} | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
</style> |
@@ -0,0 +1,384 @@ | |||
<template> | |||
<view class="page"> | |||
<view class="timeTable_sec1"> | |||
<view class="tSec1Box" id="semester"> | |||
<image src="~@/common/images/timeT1-1.png" mode="widthFix"></image> | |||
<text>{{ semester }}</text> | |||
</view> | |||
<!--<span class="tSec1Line"></span>--> | |||
<view class="tSec1Box" id="weekTime"> | |||
<text class="text-xxl cuIcon cuIcon-back" @click="timeTap(1)"></text> | |||
<text>{{todayWeek.Monday}}</text> | |||
- | |||
<text>{{todayWeek.Sunday}}</text> | |||
<text class="text-xxl cuIcon cuIcon-right" @click="timeTap(2)"></text> | |||
</view> | |||
</view> | |||
<view class="timeTable_sec2"> | |||
<view class="tSec2Top"> | |||
<view class="tSec2TopLi" v-for="(item, ind) in weekArr" :key="item.en" @click="liTap(ind)" :class="ind == num? 'active' : ''"> | |||
<text>{{ item.en }}</text> | |||
<text>{{ item.cn }}</text> | |||
</view> | |||
</view> | |||
<view class="tSec2Box"> | |||
<view class="tSec2Con" v-for="(items, i) in dataArr" :key="items.num" v-show="i == num"> | |||
<view class="tSec2List"> | |||
<view v-if="items.lessonData.length <= 0" class="tSec2ListLi"><view class="noHtml">该时间段没有考试</view></view> | |||
<view v-if="items.lessonData.length > 0"> | |||
<view class="tSec2ListLi" v-for="(k, j) in items.lessonData" :key="j" @click="classTap(k)"> | |||
<view class="tSec2ListL">第 {{ k.sectionTime }} 节</view> | |||
<view class="tSec2ListR"> | |||
<view class="tSec2ListBox"> | |||
<view class="tSec2ListT">{{ k.LessonName }}</view> | |||
<view class="tSec2ListTxt"> | |||
<text class="text-xxl cuIcon cuIcon-profile"></text> | |||
{{ k.EmpName }} | |||
</view> | |||
</view> | |||
<view class="tSec2Location"> | |||
<text class="text-xxl cuIcon cuIcon-location"></text> | |||
{{ k.ClassroomName }} | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
import common from '@/common/js/common.js' | |||
export default { | |||
data() { | |||
return { | |||
semester: '', | |||
num: 0, | |||
user: null, | |||
weekDayTime: 0, | |||
todayWeek: {}, | |||
dataArr: [], | |||
weekArr: [ | |||
{ | |||
en: 'MON', | |||
cn: '星期一' | |||
}, | |||
{ | |||
en: 'TUE', | |||
cn: '星期二' | |||
}, | |||
{ | |||
en: 'WED', | |||
cn: '星期三' | |||
}, | |||
{ | |||
en: 'THU', | |||
cn: '星期四' | |||
}, | |||
{ | |||
en: 'FRI', | |||
cn: '星期五' | |||
}, | |||
{ | |||
en: 'SAT', | |||
cn: '星期六' | |||
}, | |||
{ | |||
en: 'SUN', | |||
cn: '星期日' | |||
} | |||
] | |||
}; | |||
}, | |||
methods: { | |||
async init() { | |||
let _this = this; | |||
_this.todayWeek = common.weekday(); | |||
_this.semester = common.judgeDate(); | |||
_this.weekDayTime = 7 * common.oneDayTime(); | |||
_this.user = _this.GET_GLOBAL('loginUser'); | |||
_this.loadData(_this.todayWeek.Monday, _this.todayWeek.Sunday); | |||
}, | |||
liTap(ind) { | |||
this.num = ind; | |||
}, | |||
timeTap(num) { | |||
let _this = this; | |||
if (num == 1) { | |||
_this.todayWeek.MondayTime = _this.todayWeek.MondayTime - _this.weekDayTime; | |||
_this.todayWeek.SundayTime = _this.todayWeek.SundayTime - _this.weekDayTime; | |||
} else { | |||
_this.todayWeek.MondayTime = _this.todayWeek.MondayTime + _this.weekDayTime; | |||
_this.todayWeek.SundayTime = _this.todayWeek.SundayTime + _this.weekDayTime; | |||
} | |||
_this.num = 0; | |||
_this.todayWeek.Monday = common.fmtDate(_this.todayWeek.MondayTime); | |||
_this.todayWeek.Sunday = common.fmtDate(_this.todayWeek.SundayTime); | |||
_this.semester = common.judgeDate(_this.todayWeek.SundayTime); | |||
_this.loadData(_this.todayWeek.Monday, _this.todayWeek.Sunday); | |||
}, | |||
loadData(start, end) { | |||
// var param = { StartDate: start, EndDate: end }; | |||
let param = { StartDate: '2018-11-05', EndDate: '2018-11-11' }; | |||
let _this = this; | |||
_this.LOADING('加载数据中…'); | |||
_this.HTTP_GET('learun/adms/timetable/list', param, '加载数据时出错').then(res => { | |||
this.HIDE_LOADING(); | |||
// console.log(res); | |||
_this.ProcessingData(res); | |||
}); | |||
}, | |||
ProcessingData(data) { | |||
let dataM = [ | |||
{ | |||
weekTime: 1, | |||
num: Math.floor(Math.random() * 100000000), | |||
lessonData: [] | |||
}, | |||
{ | |||
weekTime: 2, | |||
num: Math.floor(Math.random() * 100000000), | |||
lessonData: [] | |||
}, | |||
{ | |||
weekTime: 3, | |||
num: Math.floor(Math.random() * 100000000), | |||
lessonData: [] | |||
}, | |||
{ | |||
weekTime: 4, | |||
num: Math.floor(Math.random() * 100000000), | |||
lessonData: [] | |||
}, | |||
{ | |||
weekTime: 5, | |||
num: Math.floor(Math.random() * 100000000), | |||
lessonData: [] | |||
}, | |||
{ | |||
weekTime: 6, | |||
num: Math.floor(Math.random() * 100000000), | |||
lessonData: [] | |||
}, | |||
{ | |||
weekTime: 7, | |||
num: Math.floor(Math.random() * 100000000), | |||
lessonData: [] | |||
} | |||
]; | |||
data.forEach((n, i) => { | |||
n.sectionTime = n.LessonTime.slice(1); | |||
dataM.forEach((k, j) => { | |||
if (k.weekTime == n.LessonTime.slice(0, 1)) { | |||
k.lessonData.push(n); | |||
} | |||
}); | |||
}); | |||
dataM.forEach((n, i) => { | |||
n.lessonData.sort(common.compare('sectionTime')); | |||
}); | |||
this.dataArr = dataM; | |||
}, | |||
classTap(data) { | |||
let _this = this; | |||
// console.log(_this.user) | |||
if (_this.user.Description == "教师") { | |||
//console.log("教师"); | |||
} else if (_this.user.Description == "学生") { | |||
let LeaveType = data.LeaveType; | |||
//console.log(LeaveType); | |||
let IsCheck = data.IsCheck; | |||
//console.log(IsCheck); | |||
if (LeaveType == "1") { | |||
let msg = "请假申请中"; | |||
if (IsCheck == "1") { | |||
msg = "请假通过"; | |||
} | |||
if (IsCheck == "2") { | |||
msg = "请假未通过"; | |||
} | |||
_this.TOAST(msg); | |||
} | |||
else { | |||
var param = { | |||
AcademicYearNo: data.AcademicYear, | |||
ClassRoomNo: data.ClassRoomNo, | |||
EmpNo: data.EmpNo, | |||
LessonDate: data.LessonDate, | |||
LessonNo: data.LessonNo, | |||
LessonSortNo: data.LessonSortNo, | |||
LessonTime: data.LessonTime, | |||
Semester: data.Semester | |||
}; | |||
this.NAV_TO('./leaveFrom', data, true); | |||
} | |||
} | |||
} | |||
}, | |||
created() { | |||
this.init() | |||
} | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
.page{ | |||
background: #fff; | |||
} | |||
.timeTable_sec1 { | |||
padding: 14px 12px; | |||
text-align: center; | |||
background: #0075c4; | |||
color: #94d4ff; | |||
font-size: 0; | |||
} | |||
.tSec1Box > * { | |||
display: inline-block; | |||
vertical-align: middle; | |||
} | |||
.tSec1Line { | |||
height: 13px; | |||
width: 1px; | |||
background: #94d4ff; | |||
margin: 0 10px; | |||
} | |||
.tSec1Box { | |||
font-size: 15px; | |||
overflow: hidden; | |||
white-space: nowrap; | |||
text-overflow: ellipsis; | |||
} | |||
#semester { | |||
margin-bottom: 10px; | |||
} | |||
#weekTime { | |||
} | |||
#weekTime text { | |||
margin: 0 10px; | |||
} | |||
.tSec1Box > text { | |||
width: auto; | |||
text-align: center; | |||
line-height: 22px; | |||
} | |||
.tSec1Box image { | |||
width: 15px; | |||
margin-right: 2px; | |||
} | |||
.tSec1Box text:after { | |||
display: none; | |||
} | |||
.timeTable_sec2 { | |||
margin-bottom: 30px; | |||
} | |||
.tSec2Top { | |||
padding: 0 12px; | |||
background: #0075c4; | |||
height: 55px; | |||
text-align: center; | |||
overflow: hidden; | |||
} | |||
.tSec2TopLi { | |||
width: 14.285714%; | |||
float: left; | |||
line-height: 18px; | |||
padding: 9px 0 9px; | |||
color: #fff; | |||
font-size: 13px; | |||
border-right: 1px solid #1084d2; | |||
border-top: 1px solid #1084d2; | |||
} | |||
.tSec2TopLi:first-child { | |||
border-left: 1px solid #1084d2; | |||
} | |||
.tSec2TopLi.active { | |||
color: #0075c4; | |||
background: #fff; | |||
border-color: #fff; | |||
} | |||
.tSec2TopLi text { | |||
display: block; | |||
} | |||
.tSec2TopLi text:first-child { | |||
letter-spacing: 2px; | |||
text-transform: uppercase; | |||
} | |||
.tSec2Box { | |||
padding: 0 12px; | |||
margin-top: 10px; | |||
} | |||
.tSec2Con { | |||
border-left: 1px solid #d5eaf7; | |||
border-right: 1px solid #d5eaf7; | |||
border-top: 1px solid #d5eaf7; | |||
// display: none; | |||
} | |||
.tSec2Con:first-child { | |||
display: block; | |||
} | |||
.tSec2List { | |||
margin-top: 10px; | |||
} | |||
.tSec2List:first-child { | |||
margin-top: 0; | |||
} | |||
.tSec2ListLi { | |||
border-bottom: 1px solid #d5eaf7; | |||
overflow: hidden; | |||
height: 60px; | |||
} | |||
.tSec2ListL { | |||
float: left; | |||
background: #e8f6ff; | |||
height: 100%; | |||
width: 25%; | |||
text-align: center; | |||
line-height: 36px; | |||
padding: 11px 0; | |||
font-size: 14px; | |||
color: #646464; | |||
} | |||
.tSec2ListR { | |||
float: left; | |||
width: 75%; | |||
height: 100%; | |||
line-height: 18px; | |||
padding: 4px 0; | |||
overflow: hidden; | |||
} | |||
.tSec2ListBox { | |||
width: 70%; | |||
float: left; | |||
padding-left: 5px; | |||
} | |||
.tSec2ListT { | |||
color: #3e3e3e; | |||
font-size: 15px; | |||
margin: 5px 0; | |||
overflow: hidden; | |||
white-space: nowrap; | |||
text-overflow: ellipsis; | |||
} | |||
.tSec2ListTxt { | |||
color: #888888; | |||
font-size: 13px; | |||
} | |||
.tSec2Location { | |||
width: 30%; | |||
float: left; | |||
line-height: 44px; | |||
font-size: 13px; | |||
color: #888888; | |||
} | |||
.noHtml { | |||
height: 100%; | |||
line-height: 60px; | |||
text-align: center; | |||
font-size: 14px; | |||
} | |||
</style> |