index.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  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. <!-- #ifdef APP-HARMONY -->
  77. <u-form-item label="相关附件" prop="fileJson" v-if="judgeShow('fileJson')"
  78. :required="requiredList.fileJson">
  79. <JnpfUploadFileH v-model="fileList" :disabled="judgeWrite('fileJson')" />
  80. </u-form-item>
  81. <!-- #endif -->
  82. </view>
  83. </view>
  84. </u-form>
  85. </view>
  86. </template>
  87. <script>
  88. import comMixin from '../mixin'
  89. export default {
  90. name: 'LeaveApply',
  91. mixins: [comMixin],
  92. data() {
  93. return {
  94. billEnCode: 'WF_LeaveApplyNo',
  95. dataForm: {
  96. flowTitle: '',
  97. billNo: '',
  98. flowUrgent: 1,
  99. applyUser: '',
  100. leaveHour: '',
  101. applyDept: '',
  102. leaveStartTime: '',
  103. leaveEndTime: '',
  104. leaveDayCount: '',
  105. leaveReason: '',
  106. applyDate: '',
  107. leaveType: '',
  108. fileJson: '',
  109. applyPost: '',
  110. description: ''
  111. },
  112. rules: {
  113. flowTitle: [{
  114. required: true,
  115. message: '流程标题不能为空',
  116. trigger: 'blur'
  117. }],
  118. flowUrgent: [{
  119. required: true,
  120. message: '紧急程度不能为空',
  121. trigger: 'change',
  122. type: 'number'
  123. }],
  124. billNo: [{
  125. required: true,
  126. message: '流程编码不能为空',
  127. trigger: 'blur',
  128. }],
  129. leaveHour: [{
  130. required: true,
  131. message: '请假小时不能为空',
  132. trigger: 'blur',
  133. }],
  134. leaveStartTime: [{
  135. required: true,
  136. message: '起始时间不能为空',
  137. trigger: 'blur',
  138. type: 'number'
  139. }],
  140. leaveDayCount: [{
  141. required: true,
  142. message: '请假天数不能为空',
  143. trigger: 'blur',
  144. }],
  145. leaveEndTime: [{
  146. required: true,
  147. message: '结束时间不能为空',
  148. trigger: 'blur',
  149. type: 'number'
  150. }],
  151. leaveReason: [{
  152. required: true,
  153. message: '请假原因不能为空',
  154. trigger: 'blur',
  155. type: 'string'
  156. }],
  157. },
  158. leaveTypeList: [{
  159. fullName: '事假',
  160. id: '事假',
  161. checked: false
  162. },
  163. {
  164. fullName: '病假',
  165. id: '病假',
  166. checked: false
  167. },
  168. {
  169. fullName: '婚假',
  170. id: '婚假',
  171. checked: false
  172. },
  173. {
  174. fullName: '产假',
  175. id: '产假',
  176. checked: false
  177. },
  178. {
  179. fullName: '丧假',
  180. id: '丧假',
  181. checked: false
  182. },
  183. {
  184. fullName: '年假',
  185. id: '年假',
  186. checked: false
  187. },
  188. {
  189. fullName: '调休',
  190. id: '调休',
  191. checked: false
  192. },
  193. {
  194. fullName: '其他',
  195. id: '其他',
  196. checked: false
  197. },
  198. ],
  199. }
  200. },
  201. methods: {
  202. selfInit(data) {
  203. this.dataForm.applyDate = new Date().getTime()
  204. this.dataForm.flowTitle = this.userInfo.userName + "的请假申请表"
  205. this.dataForm.applyUser = this.userInfo.userName + '/' + this.userInfo.userAccount
  206. this.dataForm.applyDept = this.userInfo.organizeName
  207. if (this.userInfo?.positionList?.length) {
  208. const list = this.userInfo.positionList.map(o => o.treeName)
  209. this.dataForm.applyPost = list.join(',')
  210. }
  211. },
  212. }
  213. }
  214. </script>
  215. <style>
  216. </style>