Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

271 строка
9.0 KiB

  1. <template>
  2. <view class="page">
  3. <l-input hidden title="学年度" placeholder="请填写学年度" :value="queryData.AcademicYearNo" disabled right />
  4. <l-input hidden title="学期" placeholder="请填写学期" :value="queryData.Semester" disabled right />
  5. <l-input title="学号" placeholder="请填写学号" :value="queryData.StuNo" disabled right />
  6. <l-input title="姓名" placeholder="请填写姓名" :value="queryData.StuName" disabled right />
  7. <l-input title="年级" placeholder="请填写年级" :value="queryData.Grade" disabled right />
  8. <l-input hidden title="教师号" placeholder="请填写教师号" :value="queryData.EmpNo" disabled right />
  9. <l-input hidden title="系所码" placeholder="请填写系所码" :value="queryData.DeptNo" disabled right />
  10. <l-input title="系名" placeholder="请填写系名" :value="queryData.DeptName" disabled right />
  11. <l-input hidden title="专业码" placeholder="请填写专业码" :value="queryData.MajorNo" disabled right />
  12. <l-input title="专业名" placeholder="请填写专业名" :value="queryData.MajorName" disabled right />
  13. <l-input hidden title="所在行政班号" placeholder="请填写所在行政班号" :value="queryData.ClassNo" disabled right />
  14. <l-input title="班级名称" placeholder="请填写班级名称" :value="queryData.ClassName" disabled right />
  15. <l-input hidden title="课程号" placeholder="请填写课程号" :value="queryData.LessonNo" disabled right />
  16. <l-input title="课程名称" placeholder="请填写课程名称" :value="queryData.LessonName" disabled right />
  17. <l-input hidden title="课程类别码" placeholder="请填写课程类别码" :value="queryData.lessonSortNo" disabled right />
  18. <l-input title="课程类别" placeholder="请填写课程类别" :value="queryData.LessonSortName" disabled right />
  19. <l-input hidden title="教室码" placeholder="请填写教室码" :value="queryData.classRoomNo" disabled right />
  20. <l-input title="教室名称" placeholder="请填写教室名称" :value="queryData.ClassroomName" disabled right />
  21. <l-input title="原上课日期" placeholder="请填写原上课日期" :value="queryData.LessonDate" disabled right />
  22. <l-input title="上课时间" placeholder="请填写上课时间" :value="queryData.LessonTime" disabled right />
  23. <div class="lr-form-row">
  24. <l-select v-model="queryData.LeaveType" :range="dataSource.LeaveType" title="请假类型" placeholder="请选择" />
  25. </div>
  26. <view class="bg-white">
  27. <l-textarea v-model="queryData.Remark" title="备注" placeholder="输入点什么..." />
  28. </view>
  29. <view class="btn" @click="tapBtn">
  30. 提交
  31. </view>
  32. </view>
  33. </template>
  34. <script>
  35. import moment from 'moment';
  36. import get from 'lodash/get';
  37. import set from 'lodash/set';
  38. export default {
  39. data() {
  40. return {
  41. scheme: {
  42. DeptNo: {
  43. type: 'select',
  44. dataSource: '1',
  45. dataSourceId: 'BaseUser,f_realname,f_userid'
  46. },
  47. MajorNo: {
  48. type: 'select',
  49. dataSource: '1',
  50. dataSourceId: 'BaseUser,f_realname,f_userid'
  51. },
  52. ClassNo: {
  53. type: 'select',
  54. dataSource: '1',
  55. dataSourceId: 'BaseUser,f_realname,f_userid'
  56. },
  57. LessonNo: {
  58. type: 'select',
  59. dataSource: '1',
  60. dataSourceId: 'BaseUser,f_realname,f_userid'
  61. },
  62. lessonSortNo: {
  63. type: 'select',
  64. dataSource: '1',
  65. dataSourceId: 'BaseUser,f_realname,f_userid'
  66. },
  67. classRoomNo: {
  68. type: 'select',
  69. dataSource: '1',
  70. dataSourceId: 'BaseUser,f_realname,f_userid'
  71. }
  72. },
  73. dataSource: {
  74. DeptNo: [],
  75. MajorNo: [],
  76. ClassNo: [],
  77. LessonNo: [],
  78. lessonSortNo: [],
  79. classRoomNo: [],
  80. LeaveType: Object.values(this.GET_GLOBAL('dataDictionary').LeaveType).map(t => ({ value: t.value, text: t.text }))
  81. },
  82. pageInfo: null,
  83. data: {},
  84. userinfo: {},
  85. queryData: {
  86. AcademicYearNo: '',
  87. Semester: '',
  88. StuNo: '',
  89. StuName: '',
  90. Grade: '',
  91. EmpNo: '',
  92. DeptNo: '',
  93. DeptName: '',
  94. MajorNo: '',
  95. MajorName: '',
  96. ClassNo: '',
  97. ClassName: '',
  98. LessonNo: '',
  99. LessonName: '',
  100. lessonSortNo: '',
  101. LessonSortName: '',
  102. classRoomNo: '',
  103. ClassroomName: '',
  104. LessonDate: '',
  105. LessonTime: '',
  106. LeaveType: '',
  107. Remark: ''
  108. }
  109. };
  110. },
  111. methods: {
  112. init() {
  113. // console.log(this.dataSource.LeaveType)
  114. Promise.all([
  115. this.FETCH_DATASOURCE('CdDeptInfo').then(data => {
  116. // console.log(data)
  117. this.dataSource.DeptNo = data.data.map(t => ({
  118. text: t.deptname,
  119. value: t.deptno
  120. }));
  121. }),
  122. this.FETCH_DATASOURCE('CdMajorInfo').then(data => {
  123. // console.log(data)
  124. this.dataSource.MajorNo = data.data.map(t => ({
  125. text: t.majorname,
  126. value: t.majorno
  127. }));
  128. }),
  129. this.FETCH_DATASOURCE('bjsj').then(data => {
  130. // console.log(data)
  131. this.dataSource.ClassNo = data.data.sort((a,b)=>{return b.classno-a.classno}).map(t => ({
  132. text: t.classname,
  133. value: t.classno
  134. }));
  135. }),
  136. this.FETCH_DATASOURCE('LessonInfo').then(data => {
  137. // console.log(data)
  138. this.dataSource.LessonNo = data.data.map(t => ({
  139. text: t.lessonname,
  140. value: t.lessonno
  141. }));
  142. }),
  143. this.FETCH_DATASOURCE('CdLessonSort').then(data => {
  144. console.log(data)
  145. return this.dataSource.lessonSortNo = data.data.map(t => ({
  146. text: t.lessonsortname,
  147. value: t.lessonsortno
  148. }));
  149. }),
  150. this.FETCH_DATASOURCE('ClassRoomInfo').then(data => {
  151. // console.log(data)
  152. this.dataSource.classRoomNo = data.data.map(t => ({
  153. text: t.classroomname,
  154. value: t.classRoomNo
  155. }));
  156. }),
  157. () => {}
  158. ]).then(res=>{
  159. console.log(res)
  160. });
  161. this.userinfo = this.GET_GLOBAL('loginUser'); //获取登录信息
  162. this.pageInfo = this.GET_PARAM(); //获取页面传递参数
  163. // console.log(this.pageInfo);
  164. let _this = this;
  165. _this.LOADING('加载数据中…');
  166. _this.HTTP_GET('learun/adms/EducationalAdministration/StuAttendanceLeave/leaveform', {}, '加载数据时出错').then(res => {
  167. this.HIDE_LOADING();
  168. this.data = res;
  169. // console.log(res)
  170. this.queryData.AcademicYearNo = this.pageInfo.academicyear;
  171. this.queryData.Semester = this.pageInfo.semester;
  172. this.queryData.StuNo = res.StuNo;
  173. this.queryData.StuName = res.StuName;
  174. this.queryData.Grade = res.Grade;
  175. this.queryData.EmpNo = this.pageInfo.empno;
  176. this.queryData.DeptNo = res.DeptNo;
  177. this.queryData.DeptName = this.displayListItem(res, 'DeptNo');
  178. this.queryData.MajorNo = res.MajorNo;
  179. this.queryData.MajorName = this.displayListItem(res, 'MajorNo');
  180. this.queryData.ClassNo = res.ClassNo;
  181. this.queryData.ClassName = this.displayListItem(res, 'ClassNo');
  182. this.queryData.Remark = res.Remark;
  183. this.queryData.LeaveType = '1';
  184. this.queryData.LessonNo = this.pageInfo.lessonNo;
  185. // this.queryData.LessonName = this.displayListItem(this.pageInfo, 'LessonNo');
  186. this.queryData.LessonName =this.pageInfo.curriculum;
  187. this.queryData.lessonSortNo = this.pageInfo.lessonSortNo;
  188. this.queryData.LessonSortName = this.displayListItem(this.pageInfo, 'lessonSortNo');
  189. this.queryData.classRoomNo = this.pageInfo.classRoomNo;
  190. // this.queryData.ClassroomName = this.displayListItem(this.pageInfo, 'classRoomNo');
  191. this.queryData.ClassroomName = this.pageInfo.classRoom;
  192. this.queryData.LessonDate = this.pageInfo.lessonDate;
  193. this.queryData.LessonTime = this.pageInfo.lessonTime;
  194. // console.log(res);
  195. // console.log(this.pageInfo);
  196. console.log(this.queryData);
  197. });
  198. },
  199. tapBtn() {
  200. let _postData = {
  201. keyValue: '',
  202. strEntity: JSON.stringify(this.queryData)
  203. }
  204. this.LOADING('保存数据中…');
  205. this.HTTP_POST('learun/adms/EducationalAdministration/StuAttendanceLeave/save', _postData, '加载数据时出错').then(res => {
  206. this.HIDE_LOADING();
  207. console.log(res)
  208. if(res){
  209. this.TOAST('提交成功!');
  210. this.EMIT('timeTable');
  211. this.NAV_BACK();
  212. }
  213. });
  214. },
  215. // 显示列表中的标题项
  216. displayListItem(item, field) {
  217. const fieldItem = this.scheme[field];
  218. const value = item[field];
  219. switch (fieldItem.type) {
  220. case 'currentInfo':
  221. case 'organize':
  222. return fieldItem.dataType === 'time' ? value : get(this.GET_GLOBAL(fieldItem.dataType), `${value}.name`, '');
  223. case 'radio':
  224. case 'select':
  225. const selectItem = this.dataSource[field].find(t => t.value === String(value));
  226. return get(selectItem, 'text', '');
  227. case 'checkbox':
  228. if (!value || value.split(',').length <= 0) {
  229. return '';
  230. }
  231. const checkboxItems = value.split(',');
  232. return this.dataSource[field]
  233. .filter(t => checkboxItems.includes(t.value))
  234. .map(t => t.text)
  235. .join(',');
  236. case 'datetime':
  237. if (!value) {
  238. return '';
  239. }
  240. return moment(value).format(Number(fieldItem.dateformat) === 0 ? 'YYYY年 M月 D日' : 'YYYY-MM-DD HH:mm');
  241. default:
  242. return value === null || value === undefined ? '' : value;
  243. }
  244. }
  245. },
  246. created() {
  247. this.init();
  248. }
  249. };
  250. </script>
  251. <style lang="less" scoped>
  252. </style>