综合办公系统
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.

borrow.vue 4.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <!--
  2. * @Author: ysh
  3. * @Date: 2025-02-20 10:20:22
  4. * @LastEditors: Please set LastEditors
  5. * @LastEditTime: 2025-02-27 10:49:10
  6. -->
  7. <template>
  8. <view class="form-container">
  9. <!-- 表单标题 -->
  10. <view class="form-title">
  11. <text class="title-text">借款审批</text>
  12. <view class="title-line"></view>
  13. </view>
  14. <!-- 表单内容 -->
  15. <uni-forms ref="form" :modelValue="form" :rules="rules" label-position="top" label-width="150" class="custom-form">
  16. <!-- 当前节点 -->
  17. <uni-forms-item label="当前节点" class="form-item">
  18. <uni-tag :inverted="true" type="primary" :text="taskName"></uni-tag>
  19. </uni-forms-item>
  20. <!-- 流程发起人 -->
  21. <uni-forms-item label="填报人" class="form-item">
  22. <uni-tag :inverted="true" type="primary" :text="startUserName"></uni-tag>
  23. </uni-forms-item>
  24. <!-- 填报日期 -->
  25. <uni-forms-item label="填报日期" class="form-item">
  26. <text>{{ form.applyDate }}</text>
  27. </uni-forms-item>
  28. <!-- 借款类型 -->
  29. <uni-forms-item label="借款类型" required class="form-item" name="borrowUsage">
  30. <uni-data-checkbox v-model="form.borrowUsage" :localdata="borrowUsageOptions"></uni-data-checkbox>
  31. </uni-forms-item>
  32. <!-- 借款类型 -->
  33. <uni-forms-item label="借款事由" required class="form-item" name="applyReason" v-if="form.borrowUsage != 0">
  34. <uv-textarea v-model="form.applyReason" placeholder="请输入借款事由"></uv-textarea>
  35. </uni-forms-item>
  36. <!-- 选择项目 -->
  37. <uni-forms-item label="选择项目" required class="form-item" v-if="form.borrowUsage == 0" name="projectId">
  38. <u-button type="primary" @click="openProject = true" v-if="taskName == '借款申请'">选择项目</u-button>
  39. <ProjectPicker :visible.sync="openProject" :selected.sync="selectedProject" @confirm="handleConfirm" />
  40. <ProjectInfo :project="projectObj"></ProjectInfo>
  41. </uni-forms-item>
  42. <!-- 借款明细 -->
  43. <uni-forms-item label="借款明细" required class="form-item">
  44. <BorrowDetail :borrowId="form.borrowId"></BorrowDetail>
  45. </uni-forms-item>
  46. </uni-forms>
  47. </view>
  48. </template>
  49. <script>
  50. import ProjectPicker from '@/pages/components/ProjectPicker.vue';
  51. import ProjectInfo from '@/pages/components/ProjectInfo.vue';
  52. import { parseTime } from "@/utils/common.js"
  53. import { listBorrow, getBorrow, delBorrow, addBorrow, updateBorrow } from "@/api/oa/borrow/borrow";
  54. import { listProject, getProject } from "@/api/oa/project/project";
  55. import BorrowDetail from './borrowDetail.vue';
  56. export default {
  57. components: {
  58. ProjectPicker,
  59. ProjectInfo,
  60. BorrowDetail
  61. },
  62. props: {
  63. taskForm: Object,
  64. taskName: String, // 当前节点
  65. startUserName: String, // 流程发起人
  66. },
  67. created() {
  68. this.initForm();
  69. uni.setNavigationBarTitle({
  70. title: '借款审批'
  71. });
  72. },
  73. data() {
  74. return {
  75. form: {
  76. submitTime: '',
  77. borrowUsage: '0',
  78. },
  79. rules: {},
  80. borrowUsageOptions: [{
  81. text: '项目借款',
  82. value: '0',
  83. disable: false
  84. }, {
  85. text: '非项目借款',
  86. value: '1',
  87. disable: false
  88. }, {
  89. text: '工会借款',
  90. value: '2',
  91. disable: false
  92. }, {
  93. text: '党委借款',
  94. value: '3',
  95. disable: false
  96. }, {
  97. text: '团委借款',
  98. value: '4',
  99. disable: false
  100. }
  101. ],
  102. openProject: false,
  103. selectedProject: null, //选中的项目
  104. projectObj: {}, //项目信息的项目
  105. fromTotal: 0,
  106. }
  107. },
  108. methods: {
  109. initForm() {
  110. getBorrow(this.taskForm.formId).then(res => {
  111. if (res.data) {
  112. this.fromTotal = 1;
  113. this.form = res.data;
  114. console.log(this.form);
  115. if (this.form.projectId) {
  116. getProject(this.form.projectId).then(res => {
  117. if (res.data) {
  118. this.selectedProject = res.data;
  119. this.projectObj = res.data;
  120. }
  121. })
  122. }
  123. } else {
  124. this.fromTotal = 0;
  125. this.form.applier = this.$store.getters.userId;
  126. this.form.applyDate = parseTime(new Date(), "{y}-{m}-{d}");
  127. }
  128. })
  129. },
  130. handleConfirm(project) {
  131. console.log('选中的项目:', project);
  132. this.selectedProject = project;
  133. this.projectObj = project;
  134. },
  135. },
  136. }
  137. </script>
  138. <style lang="scss" scoped></style>