選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

leaveFrom.vue 9.0 KiB

4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
4年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  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>