You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

354 lines
11 KiB

  1. <template>
  2. <view class="page">
  3. <view v-if="ready">
  4. <l-input
  5. @input="setValue('StuAttendanceLeave.AcademicYearNo', $event)"
  6. :value="getValue('StuAttendanceLeave.AcademicYearNo')"
  7. disabled
  8. title="学年度"
  9. />
  10. <l-input
  11. @input="setValue('StuAttendanceLeave.Semester', $event)"
  12. :value="getValue('StuAttendanceLeave.Semester')"
  13. disabled
  14. title="学期"
  15. />
  16. <l-input
  17. @input="setValue('StuAttendanceLeave.StuNo', $event)"
  18. :value="getValue('StuAttendanceLeave.StuNo')"
  19. disabled
  20. title="学号"
  21. />
  22. <l-input
  23. @input="setValue('StuAttendanceLeave.StuName', $event)"
  24. :value="getValue('StuAttendanceLeave.StuName')"
  25. disabled
  26. title="姓名"
  27. />
  28. <l-input
  29. @input="setValue('StuAttendanceLeave.Grade', $event)"
  30. :value="getValue('StuAttendanceLeave.Grade')"
  31. disabled
  32. title="年级"
  33. />
  34. <l-input
  35. @input="setValue('StuAttendanceLeave.EmpNo', $event)"
  36. :value="getValue('StuAttendanceLeave.EmpNo')"
  37. disabled
  38. title="教师号"
  39. />
  40. <l-input
  41. @input="setValue('StuAttendanceLeave.DeptNo', $event)"
  42. :value="getValue('StuAttendanceLeave.DeptNo')"
  43. disabled
  44. title="系所码"
  45. />
  46. <l-input
  47. @input="setValue('StuAttendanceLeave.DeptName', $event)"
  48. :value="getValue('StuAttendanceLeave.DeptName')"
  49. disabled
  50. title="系名"
  51. />
  52. <l-input
  53. @input="setValue('StuAttendanceLeave.MajorNo', $event)"
  54. :value="getValue('StuAttendanceLeave.MajorNo')"
  55. disabled
  56. title="专业码"
  57. />
  58. <l-input
  59. @input="setValue('StuAttendanceLeave.MajorName', $event)"
  60. :value="getValue('StuAttendanceLeave.MajorName')"
  61. disabled
  62. title="专业名"
  63. />
  64. <l-input
  65. @input="setValue('StuAttendanceLeave.ClassNo', $event)"
  66. :value="getValue('StuAttendanceLeave.ClassNo')"
  67. disabled
  68. title="所在行政班号"
  69. />
  70. <l-input
  71. @input="setValue('StuAttendanceLeave.ClassName', $event)"
  72. :value="getValue('StuAttendanceLeave.ClassName')"
  73. disabled
  74. title="班级名称"
  75. />
  76. <l-input
  77. @input="setValue('StuAttendanceLeave.LessonNo', $event)"
  78. :value="getValue('StuAttendanceLeave.LessonNo')"
  79. disabled
  80. title="课程号"
  81. />
  82. <l-input
  83. @input="setValue('StuAttendanceLeave.LessonName', $event)"
  84. :value="getValue('StuAttendanceLeave.LessonName')"
  85. disabled
  86. title="课程名称"
  87. />
  88. <l-input
  89. @input="setValue('StuAttendanceLeave.LessonSortNo', $event)"
  90. :value="getValue('StuAttendanceLeave.LessonSortNo')"
  91. disabled
  92. title="课程类别码"
  93. />
  94. <l-input
  95. @input="setValue('StuAttendanceLeave.LessonSortName', $event)"
  96. :value="getValue('StuAttendanceLeave.LessonSortName')"
  97. disabled
  98. title="课程类别"
  99. />
  100. <l-input
  101. @input="setValue('StuAttendanceLeave.LessonDate', $event)"
  102. :value="itmeDel(getValue('StuAttendanceLeave.LessonDate'))"
  103. disabled
  104. title="原上课日期"
  105. />
  106. <l-input
  107. @input="setValue('StuAttendanceLeave.LessonTime', $event)"
  108. :value="getValue('StuAttendanceLeave.LessonTime')"
  109. disabled
  110. title="上课时间"
  111. />
  112. <l-input
  113. @input="setValue('StuAttendanceLeave.PlanWeek', $event)"
  114. :value="getValue('StuAttendanceLeave.PlanWeek')"
  115. disabled
  116. title="教学周次"
  117. />
  118. <l-select
  119. @input="setValue('StuAttendanceLeave.LeaveType', $event)"
  120. :value="getValue('StuAttendanceLeave.LeaveType')"
  121. disabled
  122. :range="dataSource.StuAttendanceLeave.LeaveType"
  123. title="请假类型"
  124. />
  125. <l-textarea
  126. @input="setValue('StuAttendanceLeave.Remark', $event)"
  127. :value="getValue('StuAttendanceLeave.Remark')"
  128. readonly
  129. title="备注"
  130. />
  131. <l-select
  132. @input="setValue('StuAttendanceLeave.IsCheck', $event)"
  133. :value="getValue('StuAttendanceLeave.IsCheck')"
  134. :disabled="!edit"
  135. :range="dataSource.StuAttendanceLeave.IsCheck"
  136. title="审核意见"
  137. />
  138. <l-textarea
  139. @input="setValue('StuAttendanceLeave.TecRemark', $event)"
  140. :value="getValue('StuAttendanceLeave.TecRemark')"
  141. :readonly="!edit"
  142. title="备注"
  143. />
  144. </view>
  145. <!-- v-if="ready" -->
  146. <view v-if="edit" class="bg-white margin-tb padding" style="padding-top: 0; overflow: hidden;">
  147. <l-button @click="action('save')" size="lg" color="green" class="block margin-top" block>
  148. 提交保存
  149. </l-button>
  150. <!-- <l-button v-if="!edit && mode !== 'create'" @click="action('edit')" size="lg" line="orange" class="block margin-top" block>
  151. 编辑本页
  152. </l-button>
  153. <l-button v-if="edit && mode !== 'create'" @click="action('reset')" size="lg" line="red" class="block margin-top" block>
  154. 取消编辑
  155. </l-button> -->
  156. <!-- <l-button v-if="!edit && mode !== 'create'" @click="action('delete')" size="lg" line="red" class="block margin-top" block>
  157. 删除
  158. </l-button> -->
  159. </view>
  160. </view>
  161. </template>
  162. <script>
  163. /*
  164. * 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn)
  165. * Copyright (c) 2013-2020 上海力软信息技术有限公司
  166. * 创建人:超级管理员
  167. * 日 期:2020-10-20 15:34
  168. * 描 述:aaa
  169. */
  170. /**
  171. * 本段代码由移动端代码生成器输出,移动端须 2.2.0 版本及以上可以使用
  172. * 请在移动端 /pages.json 中的 pages 字段中添加一条记录:
  173. * { "path": "pages/EducationalAdministration/StuAttendanceLeave/single", "style": { "navigationBarTitleText": "表单详情页" } }
  174. *
  175. * (navigationBarTitleText 字段为本页面的标题文本,可以修改)
  176. * (必须自行操作该步骤,力软代码生成器不会自动帮您修改 /pages.json 文件)
  177. */
  178. import get from 'lodash/get'
  179. import set from 'lodash/set'
  180. import moment from 'moment'
  181. import customPageMixins from '@/common/custompage.js'
  182. export default {
  183. mixins: [customPageMixins],
  184. data() {
  185. return {
  186. // 页面相关参数
  187. id: null,
  188. mode: null,
  189. edit: null,
  190. ready: false,
  191. // 表单数据
  192. current: {},
  193. origin: {},
  194. // 表单项数据结构
  195. scheme: {
  196. StuAttendanceLeave: {
  197. AcademicYearNo: { type: 'text', title: '学年度' },
  198. Semester: { type: 'text', title: '学期' },
  199. StuNo: { type: 'text', title: '学号' },
  200. StuName: { type: 'text', title: '姓名' },
  201. Grade: { type: 'text', title: '年级' },
  202. EmpNo: { type: 'text', title: '教师号' },
  203. DeptNo: { type: 'text', title: '系所码' },
  204. DeptName: { type: 'text', title: '系名' },
  205. MajorNo: { type: 'text', title: '专业码' },
  206. MajorName: { type: 'text', title: '专业名' },
  207. ClassNo: { type: 'text', title: '所在行政班号' },
  208. ClassName: { type: 'text', title: '班级名称' },
  209. LessonNo: { type: 'text', title: '课程号' },
  210. LessonName: { type: 'text', title: '课程名称' },
  211. LessonSortNo: { type: 'text', title: '课程类别码' },
  212. LessonSortName: { type: 'text', title: '课程类别' },
  213. LessonDate: { type: 'text', title: '原上课日期' },
  214. LessonTime: { type: 'text', title: '上课时间' },
  215. PlanWeek: { type: 'text', title: '教学周次' },
  216. LeaveType: { type: 'select', title: '请假类型', itemCode: 'LeaveType', dataSource: '0' },
  217. Remark: { type: 'textarea', title: '备注' },
  218. IsCheck: { type: 'select', title: '下拉框', itemCode: 'LeaveCheck', dataSource: '0' },
  219. TecRemark: { type: 'textarea', title: '备注' },
  220. },
  221. },
  222. // 数据源
  223. dataSource: {
  224. StuAttendanceLeave: {
  225. LeaveType: Object.values(this.GET_GLOBAL('dataDictionary').LeaveType).map(t => ({ value: t.value, text: t.text })),
  226. IsCheck: Object.values(this.GET_GLOBAL('dataDictionary').LeaveCheck).map(t => ({ value: t.value, text: t.text })),
  227. },
  228. }
  229. }
  230. },
  231. async onLoad({ type, id }) {
  232. await this.init(type, id)
  233. },
  234. methods: {
  235. // 页面初始化
  236. async init(type, id) {
  237. this.LOADING('加载数据中...')
  238. this.id = id
  239. this.mode = type
  240. this.edit = ['create', 'edit'].includes(this.mode)
  241. // 拉取表单数据,同时拉取所有来自数据源的选单数据
  242. await Promise.all([
  243. () => {}
  244. ])
  245. await this.fetchForm()
  246. this.ready = true
  247. this.HIDE_LOADING()
  248. },
  249. // 加载表单数据
  250. async fetchForm() {
  251. if (this.mode === 'create') {
  252. this.origin = await this.getDefaultForm()
  253. } else {
  254. const result = await this.HTTP_GET('learun/adms/EducationalAdministration/StuAttendanceLeave/form', this.id)
  255. this.origin = await this.formatFormData(result)
  256. }
  257. this.current = this.COPY(this.origin)
  258. },
  259. // 点击 「编辑」、「重置」、「保存」、「删除」 按钮
  260. async action(type) {
  261. switch (type) {
  262. case 'edit':
  263. this.edit = true
  264. break
  265. case 'reset':
  266. this.current = this.COPY(this.origin)
  267. this.edit = false
  268. break
  269. case 'save':
  270. const verifyResult = this.verifyForm()
  271. if (verifyResult.length > 0) {
  272. this.CONFIRM('表单验证失败', verifyResult.join('\n'))
  273. return
  274. }
  275. if (!(await this.CONFIRM('提交确认', '确定要提交本页表单内容吗?', true))) {
  276. return
  277. }
  278. this.LOADING('正在提交...')
  279. const postData = await this.getPostData(this.id)
  280. this.HTTP_POST('learun/adms/EducationalAdministration/StuAttendanceLeave/save', postData, '表单提交保存失败').then(success => {
  281. this.HIDE_LOADING()
  282. if (!success) {
  283. return
  284. }
  285. this.EMIT('EducationalAdministrationStuAttendanceLeave-list-change')
  286. this.NAV_BACK()
  287. this.TOAST('提交保存成功')
  288. })
  289. break
  290. case 'delete':
  291. if (!(await this.CONFIRM('删除项目', '确定要删除本项吗?', true))) {
  292. return
  293. }
  294. this.LOADING('提交删除中...')
  295. this.HTTP_POST('learun/adms/EducationalAdministration/StuAttendanceLeave/delete', this.id, '删除失败').then(success => {
  296. this.HIDE_LOADING()
  297. if (!success) {
  298. return
  299. }
  300. this.EMIT('EducationalAdministrationStuAttendanceLeave-list-change')
  301. this.NAV_BACK()
  302. this.this.TOAST('删除成功', 'success')
  303. })
  304. break
  305. default: break
  306. }
  307. },
  308. // 获取表单值
  309. getValue(path) {
  310. return get(this.current, path)
  311. },
  312. // 设置表单值
  313. setValue(path, val) {
  314. set(this.current, path, val)
  315. },
  316. itmeDel(data){
  317. var newDate = /\d{4}-\d{1,2}-\d{1,2}/g.exec(data)
  318. return newDate[0]
  319. }
  320. }
  321. }
  322. </script>