Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

leaveFrom.vue 8.8 KiB

há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
há 4 anos
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  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.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. 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. ]);
  159. this.userinfo = this.GET_GLOBAL('loginUser'); //获取登录信息
  160. this.pageInfo = this.GET_PARAM(); //获取页面传递参数
  161. // console.log(this.pageInfo);
  162. let _this = this;
  163. _this.LOADING('加载数据中…');
  164. _this.HTTP_GET('learun/adms/EducationalAdministration/StuAttendanceLeave/leaveform', {}, '加载数据时出错').then(res => {
  165. this.HIDE_LOADING();
  166. this.data = res;
  167. // console.log(res)
  168. this.queryData.AcademicYearNo = this.pageInfo.AcademicYear;
  169. this.queryData.Semester = this.pageInfo.Semester;
  170. this.queryData.StuNo = res.StuNo;
  171. this.queryData.StuName = res.StuName;
  172. this.queryData.Grade = res.Grade;
  173. this.queryData.EmpNo = res.EmpNo;
  174. this.queryData.DeptNo = res.DeptNo;
  175. this.queryData.DeptName = this.displayListItem(res, 'DeptNo');
  176. this.queryData.MajorNo = res.MajorNo;
  177. this.queryData.MajorName = this.displayListItem(res, 'MajorNo');
  178. this.queryData.ClassNo = res.ClassNo;
  179. this.queryData.ClassName = this.displayListItem(res, 'ClassNo');
  180. this.queryData.Remark = res.Remark;
  181. this.queryData.LeaveType = '1';
  182. this.queryData.LessonNo = this.pageInfo.LessonNo;
  183. this.queryData.LessonName = this.displayListItem(this.pageInfo, 'LessonNo');
  184. this.queryData.LessonSortNo = this.pageInfo.LessonSortNo;
  185. this.queryData.LessonSortName = this.displayListItem(this.pageInfo, 'LessonSortNo');
  186. this.queryData.ClassRoomNo = this.pageInfo.ClassRoomNo;
  187. this.queryData.ClassroomName = this.displayListItem(this.pageInfo, 'ClassRoomNo');
  188. this.queryData.LessonDate = this.pageInfo.LessonDate;
  189. this.queryData.LessonTime = this.pageInfo.LessonTime;
  190. // console.log(res);
  191. // console.log(this.pageInfo);
  192. console.log(this.queryData);
  193. });
  194. },
  195. tapBtn() {
  196. let _postData = {
  197. keyValue: '',
  198. strEntity: JSON.stringify(this.queryData)
  199. }
  200. this.LOADING('保存数据中…');
  201. this.HTTP_POST('learun/adms/EducationalAdministration/StuAttendanceLeave/save', _postData, '加载数据时出错').then(res => {
  202. this.HIDE_LOADING();
  203. console.log(res)
  204. if(res){
  205. this.TOAST('提交成功!');
  206. this.EMIT('timeTable');
  207. this.NAV_BACK();
  208. }
  209. });
  210. },
  211. // 显示列表中的标题项
  212. displayListItem(item, field) {
  213. const fieldItem = this.scheme[field];
  214. const value = item[field];
  215. switch (fieldItem.type) {
  216. case 'currentInfo':
  217. case 'organize':
  218. return fieldItem.dataType === 'time' ? value : get(this.GET_GLOBAL(fieldItem.dataType), `${value}.name`, '');
  219. case 'radio':
  220. case 'select':
  221. const selectItem = this.dataSource[field].find(t => t.value === String(value));
  222. return get(selectItem, 'text', '');
  223. case 'checkbox':
  224. if (!value || value.split(',').length <= 0) {
  225. return '';
  226. }
  227. const checkboxItems = value.split(',');
  228. return this.dataSource[field]
  229. .filter(t => checkboxItems.includes(t.value))
  230. .map(t => t.text)
  231. .join(',');
  232. case 'datetime':
  233. if (!value) {
  234. return '';
  235. }
  236. return moment(value).format(Number(fieldItem.dateformat) === 0 ? 'YYYY年 M月 D日' : 'YYYY-MM-DD HH:mm');
  237. default:
  238. return value === null || value === undefined ? '' : value;
  239. }
  240. }
  241. },
  242. created() {
  243. this.init();
  244. }
  245. };
  246. </script>
  247. <style lang="less" scoped>
  248. </style>