index.vue 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <template>
  2. <view class="jnpf-wrap jnpf-wrap-workflow">
  3. <u-form :model="dataForm" :rules="rules" ref="dataForm" :errorType="['toast']" label-position="left"
  4. label-width="150" label-align="left">
  5. <view class="u-p-l-20 u-p-r-20 form-item-box">
  6. <u-form-item label="流程标题" prop="flowTitle" :required="requiredList.flowTitle"
  7. v-if="judgeShow('flowTitle')">
  8. <u-input v-model="dataForm.flowTitle" placeholder="流程标题" :disabled="judgeWrite('flowTitle')"
  9. input-align="right"></u-input>
  10. </u-form-item>
  11. <u-form-item label="流程编码" prop="billNo" v-if="judgeShow('billNo')" :required="requiredList.billNo">
  12. <u-input v-model="dataForm.billNo" placeholder="流程编码" disabled input-align="right"></u-input>
  13. </u-form-item>
  14. </view>
  15. <view class="jnpf-card">
  16. <view class="u-p-l-20 u-p-r-20 form-item-box">
  17. <u-form-item label="申请人员" prop="applyUser" v-if="judgeShow('applyUser')"
  18. :required="requiredList.applyUser">
  19. <u-input v-model="dataForm.applyUser" placeholder="请输入申请人员" :disabled="judgeWrite('applyUser')"
  20. input-align="right">
  21. </u-input>
  22. </u-form-item>
  23. <u-form-item label="申请部门" prop="applyDept" v-if="judgeShow('applyDept')"
  24. :required="requiredList.applyDept">
  25. <u-input v-model="dataForm.applyDept" placeholder="请输入申请部门" :disabled="judgeWrite('applyDept')"
  26. input-align="right">
  27. </u-input>
  28. </u-form-item>
  29. <u-form-item label="申请职位" prop="applyPost" v-if="judgeShow('applyPost')"
  30. :required="requiredList.applyPost">
  31. <u-input v-model="dataForm.applyPost" placeholder="请输入申请职位" :disabled="judgeWrite('applyPost')"
  32. input-align="right">
  33. </u-input>
  34. </u-form-item>
  35. <u-form-item label="申请日期" prop="applyDate" v-if="judgeShow('applyDate')"
  36. :required="requiredList.applyDate">
  37. <JnpfDatePicker v-model="dataForm.applyDate" placeholder="请输入申请日期"
  38. :disabled="judgeWrite('applyDate')" />
  39. </u-form-item>
  40. <u-form-item label="请假类别" prop="leaveType" v-if="judgeShow('leaveType')"
  41. :required="requiredList.leaveType">
  42. <JnpfSelect v-model="dataForm.leaveType" placeholder="请选择请假类别" :options="leaveTypeList"
  43. :disabled="judgeWrite('leaveType')" />
  44. </u-form-item>
  45. <u-form-item label="请假原因" prop="leaveReason" v-if="judgeShow('leaveReason')"
  46. :required="requiredList.leaveReason">
  47. <u-input v-model="dataForm.leaveReason" placeholder="请输入请假原因" type="textarea"
  48. :disabled="judgeWrite('leaveReason')" input-align="right"></u-input>
  49. </u-form-item>
  50. <u-form-item label="起始时间" prop="leaveStartTime" v-if="judgeShow('leaveStartTime')"
  51. :required="requiredList.leaveStartTime">
  52. <JnpfDatePicker format="yyyy-MM-dd HH:mm:ss" v-model="dataForm.leaveStartTime"
  53. placeholder="请选择起始时间" :disabled="judgeWrite('leaveStartTime')" />
  54. </u-form-item>
  55. <u-form-item label="结束时间" prop="leaveEndTime" v-if="judgeShow('leaveEndTime')"
  56. :required="requiredList.leaveEndTime">
  57. <JnpfDatePicker format="yyyy-MM-dd HH:mm:ss" v-model="dataForm.leaveEndTime"
  58. placeholder="请选择结束时间" :disabled="judgeWrite('leaveEndTime')" />
  59. </u-form-item>
  60. <u-form-item label="请假天数" prop="leaveDayCount" v-if="judgeShow('leaveDayCount')"
  61. :required="requiredList.leaveDayCount">
  62. <u-input v-model="dataForm.leaveDayCount" placeholder="请输入请假天数"
  63. :disabled="judgeWrite('leaveDayCount')" input-align="right"></u-input>
  64. </u-form-item>
  65. <u-form-item label="请假小时" prop="leaveHour" v-if="judgeShow('leaveHour')"
  66. :required="requiredList.leaveHour">
  67. <u-input v-model="dataForm.leaveHour" placeholder="请输入请假小时" type="number"
  68. :disabled="judgeWrite('leaveHour')" input-align="right"></u-input>
  69. </u-form-item>
  70. <!-- #ifndef APP-HARMONY -->
  71. <u-form-item label="相关附件" prop="fileJson" v-if="judgeShow('fileJson')"
  72. :required="requiredList.fileJson">
  73. <JnpfUploadFile v-model="fileList" :disabled="judgeWrite('fileJson')" />
  74. </u-form-item>
  75. <!-- #endif -->
  76. </view>
  77. </view>
  78. </u-form>
  79. </view>
  80. </template>
  81. <script>
  82. import comMixin from '../mixin'
  83. export default {
  84. name: 'LeaveApply',
  85. mixins: [comMixin],
  86. data() {
  87. return {
  88. billEnCode: 'WF_LeaveApplyNo',
  89. dataForm: {
  90. flowTitle: '',
  91. billNo: '',
  92. flowUrgent: 1,
  93. applyUser: '',
  94. leaveHour: '',
  95. applyDept: '',
  96. leaveStartTime: '',
  97. leaveEndTime: '',
  98. leaveDayCount: '',
  99. leaveReason: '',
  100. applyDate: '',
  101. leaveType: '',
  102. fileJson: '',
  103. applyPost: '',
  104. description: ''
  105. },
  106. rules: {
  107. flowTitle: [{
  108. required: true,
  109. message: '流程标题不能为空',
  110. trigger: 'blur'
  111. }],
  112. flowUrgent: [{
  113. required: true,
  114. message: '紧急程度不能为空',
  115. trigger: 'change',
  116. type: 'number'
  117. }],
  118. billNo: [{
  119. required: true,
  120. message: '流程编码不能为空',
  121. trigger: 'blur',
  122. }],
  123. leaveHour: [{
  124. required: true,
  125. message: '请假小时不能为空',
  126. trigger: 'blur',
  127. }],
  128. leaveStartTime: [{
  129. required: true,
  130. message: '起始时间不能为空',
  131. trigger: 'blur',
  132. type: 'number'
  133. }],
  134. leaveDayCount: [{
  135. required: true,
  136. message: '请假天数不能为空',
  137. trigger: 'blur',
  138. }],
  139. leaveEndTime: [{
  140. required: true,
  141. message: '结束时间不能为空',
  142. trigger: 'blur',
  143. type: 'number'
  144. }],
  145. leaveReason: [{
  146. required: true,
  147. message: '请假原因不能为空',
  148. trigger: 'blur',
  149. type: 'string'
  150. }],
  151. },
  152. leaveTypeList: [{
  153. fullName: '事假',
  154. id: '事假',
  155. checked: false
  156. },
  157. {
  158. fullName: '病假',
  159. id: '病假',
  160. checked: false
  161. },
  162. {
  163. fullName: '婚假',
  164. id: '婚假',
  165. checked: false
  166. },
  167. {
  168. fullName: '产假',
  169. id: '产假',
  170. checked: false
  171. },
  172. {
  173. fullName: '丧假',
  174. id: '丧假',
  175. checked: false
  176. },
  177. {
  178. fullName: '年假',
  179. id: '年假',
  180. checked: false
  181. },
  182. {
  183. fullName: '调休',
  184. id: '调休',
  185. checked: false
  186. },
  187. {
  188. fullName: '其他',
  189. id: '其他',
  190. checked: false
  191. },
  192. ],
  193. }
  194. },
  195. methods: {
  196. selfInit(data) {
  197. this.dataForm.applyDate = new Date().getTime()
  198. this.dataForm.flowTitle = this.userInfo.userName + "的请假申请表"
  199. this.dataForm.applyUser = this.userInfo.userName + '/' + this.userInfo.userAccount
  200. this.dataForm.applyDept = this.userInfo.organizeName
  201. if (this.userInfo.positionIds && this.userInfo.positionIds.length) {
  202. let list = this.userInfo.positionIds.map(o => o.name)
  203. this.dataForm.applyPost = list.join(',')
  204. }
  205. },
  206. }
  207. }
  208. </script>
  209. <style>
  210. </style>