chinaXLG 3 yıl önce
ebeveyn
işleme
6b49581370
33 değiştirilmiş dosya ile 14803 ekleme ve 1007 silme
  1. +9
    -2
      Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentPre/OpenLessonPlanOfElectiveStudentPre.js
  2. +3
    -1
      Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentPre/form/form.js
  3. +2
    -2
      Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/EducationalAdministration/Thermography/Thermography.html
  4. +18
    -51
      Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/PersonnelManagement/EpidemicSituationCopy/EpidemicSituationCopy.js
  5. +1
    -1
      Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/PersonnelManagement/EpidemicSituationCopy/form/form.html
  6. +5
    -3
      Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/PersonnelManagement/EpidemicSituationCopy/form/form.js
  7. +1
    -2
      Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/timeTable/form/form.html
  8. +3
    -32
      Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/timeTable/form/form.js
  9. +11
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/css/common.less
  10. +11553
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/js/city.js
  11. +13
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/js/common.js
  12. +15
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/js/todayTime.js
  13. +1
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-app/customlist-sidepage-datefilter.vue
  14. +3
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-mpui/learun-ui-ali/date-picker.vue
  15. +2
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/main.js
  16. +81
    -2
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages.json
  17. +426
    -473
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/ArrangeLessonTermAttemper/list.vue
  18. +1
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/BookBorrow/list.vue
  19. +91
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudent/from.vue
  20. +239
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudent/list.vue
  21. +86
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentPre/from.vue
  22. +238
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentPre/list.vue
  23. +65
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentSelected/from.vue
  24. +199
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentSelected/list.vue
  25. +343
    -429
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/Thermography/list.vue
  26. +307
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/PersonnelManagement/EpidemicSituationCopy/from.vue
  27. +336
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/PersonnelManagement/EpidemicSituationCopy/list.vue
  28. +191
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/StuEncourgement/list.vue
  29. +103
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/StuPayFee/list.vue
  30. +5
    -5
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/stuExamArrangement/list.vue
  31. +1
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/studentCheck/list.vue
  32. +67
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/timeTable/leaveFrom.vue
  33. +384
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/timeTable/list.vue

+ 9
- 2
Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentPre/OpenLessonPlanOfElectiveStudentPre.js Dosyayı Görüntüle

@@ -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);


+ 3
- 1
Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentPre/form/form.js Dosyayı Görüntüle

@@ -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) {


+ 2
- 2
Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/EducationalAdministration/Thermography/Thermography.html Dosyayı Görüntüle

@@ -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">


+ 18
- 51
Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/PersonnelManagement/EpidemicSituationCopy/EpidemicSituationCopy.js Dosyayı Görüntüle

@@ -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
- 1
Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/PersonnelManagement/EpidemicSituationCopy/form/form.html Dosyayı Görüntüle

@@ -1,4 +1,4 @@
<div class="lr-form-container">
<div class="lr-form-container">
<div class="lr-form-row " data-table="EpidemicSituation">

<label>填报人员</label>


+ 5
- 3
Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/PersonnelManagement/EpidemicSituationCopy/form/form.js Dosyayı Görüntüle

@@ -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
- 2
Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/timeTable/form/form.html Dosyayı Görüntüle

@@ -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>

+ 3
- 32
Learun.Framework.Ultimate V7/Learun.Application.Mobile/www/pages/timeTable/form/form.js Dosyayı Görüntüle

@@ -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) {


+ 11
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/css/common.less Dosyayı Görüntüle

@@ -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;
}

+ 11553
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/js/city.js
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


+ 13
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/js/common.js Dosyayı Görüntüle

@@ -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
}
}
}
}


+ 15
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/common/js/todayTime.js Dosyayı Görüntüle

@@ -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)
};
}
}


+ 1
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-app/customlist-sidepage-datefilter.vue Dosyayı Görüntüle

@@ -76,6 +76,7 @@
@change="customChange"
title="结束时间"
placeholder="点击来选取"
/>
</view>
</template>


+ 3
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-mpui/learun-ui-ali/date-picker.vue Dosyayı Görüntüle

@@ -26,7 +26,9 @@ export default {
required: {},
value: {}
},

created() {
console.log(this.end)
},
methods: {
click(e) {
if (this.disabled) {


+ 2
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/main.js Dosyayı Görüntüle

@@ -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)


+ 81
- 2
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages.json Dosyayı Görüntüle

@@ -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": {


+ 426
- 473
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/ArrangeLessonTermAttemper/list.vue Dosyayı Görüntüle

@@ -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>

+ 1
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/BookBorrow/list.vue Dosyayı Görüntüle

@@ -106,7 +106,7 @@ import mapValues from 'lodash/mapValues'
export default {
data() {
return {
return {
// 数据项的数据类型、结构
scheme: {
BorrowTime: { type: 'text' },


+ 91
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudent/from.vue Dosyayı Görüntüle

@@ -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>

+ 239
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudent/list.vue Dosyayı Görüntüle

@@ -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>

+ 86
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentPre/from.vue Dosyayı Görüntüle

@@ -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>

+ 238
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentPre/list.vue Dosyayı Görüntüle

@@ -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>

+ 65
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentSelected/from.vue Dosyayı Görüntüle

@@ -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>

+ 199
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OpenLessonPlanOfElectiveStudentSelected/list.vue Dosyayı Görüntüle

@@ -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>

+ 343
- 429
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/Thermography/list.vue Dosyayı Görüntüle

@@ -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>

+ 307
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/PersonnelManagement/EpidemicSituationCopy/from.vue Dosyayı Görüntüle

@@ -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>

+ 336
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/PersonnelManagement/EpidemicSituationCopy/list.vue Dosyayı Görüntüle

@@ -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>

+ 191
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/StuEncourgement/list.vue Dosyayı Görüntüle

@@ -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>

+ 103
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/StuPayFee/list.vue Dosyayı Görüntüle

@@ -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>

+ 5
- 5
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/stuExamArrangement/list.vue Dosyayı Görüntüle

@@ -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;


+ 1
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/studentCheck/list.vue Dosyayı Görüntüle

@@ -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;


+ 67
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/timeTable/leaveFrom.vue Dosyayı Görüntüle

@@ -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>

+ 384
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/timeTable/list.vue Dosyayı Görüntüle

@@ -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>

Yükleniyor…
İptal
Kaydet