index.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <template>
  2. <flow-form :data="formData" @submit="submitNextActivity">
  3. <card title="基础信息">
  4. <van-form required="auto" :readonly="formRead">
  5. <van-cell-group inset>
  6. <van-field
  7. v-model="formData.userNickname"
  8. name="申请人"
  9. label="申请人"
  10. placeholder="申请人"
  11. readonly
  12. />
  13. <van-field
  14. v-model="formData.applyTime"
  15. name="申请时间"
  16. label="申请时间"
  17. placeholder="申请时间"
  18. readonly
  19. />
  20. <van-field
  21. v-model="formData.projectName"
  22. name="项目名称"
  23. label="项目名称"
  24. placeholder="项目名称"
  25. readonly
  26. />
  27. <van-field
  28. v-model="formData.xsry"
  29. name="销售人员"
  30. label="销售人员"
  31. placeholder="销售人员"
  32. readonly
  33. />
  34. <van-field
  35. v-model="formData.projectXmbh"
  36. name="项目编号"
  37. label="项目编号"
  38. placeholder="项目编号"
  39. readonly
  40. />
  41. <van-field
  42. v-model="formData.applyWorkerName"
  43. name="立项发起人"
  44. label="立项发起人"
  45. placeholder="立项发起人"
  46. readonly
  47. />
  48. <van-field
  49. v-model="formData.xmjl"
  50. name="项目经理"
  51. label="项目经理"
  52. placeholder="项目经理"
  53. readonly
  54. />
  55. <van-field
  56. v-if="read=='ys'"
  57. v-model="formData.acceptTime"
  58. name="验收时间"
  59. label="验收时间"
  60. placeholder="验收时间"
  61. readonly
  62. />
  63. <van-field
  64. v-if="read=='ys'"
  65. v-model="formData.acceptState"
  66. name="验收单有效性"
  67. label="验收单有效性"
  68. placeholder="验收单有效性"
  69. readonly
  70. />
  71. <van-field
  72. v-if="read=='ys'"
  73. v-model="formData.bz1"
  74. name="验收原因"
  75. label="验收原因"
  76. placeholder="验收原因"
  77. type="textarea"
  78. rows="3"
  79. autosize
  80. readonly
  81. />
  82. <van-field
  83. v-if="read=='jx'"
  84. v-model="formData.bz1"
  85. name="结项原因"
  86. label="结项原因"
  87. placeholder="结项原因"
  88. type="textarea"
  89. rows="3"
  90. autosize
  91. readonly
  92. />
  93. </van-cell-group>
  94. </van-form>
  95. </card>
  96. </flow-form>
  97. </template>
  98. <script setup lang="ts">
  99. import { useRoute } from "vue-router";
  100. import { FlowDTO, getNextActivity } from "@/service/flow";
  101. import reqest from "@/utils/request";
  102. import FlowForm from "@/components/flowForm.vue";
  103. import Card from "@/components/card.vue";
  104. import CardCell from "@/components/cardCell.vue";
  105. import moment from "moment";
  106. const route = useRoute();
  107. interface FormDataType {
  108. instanceId: string;
  109. id: string;
  110. projectName: string;
  111. userNickname: string;
  112. deptName: string;
  113. applyTime: string;
  114. xsry: string;
  115. projectXmbh: string;
  116. applyWorkerName: string;
  117. xmjl: string;
  118. acceptTime: string;
  119. acceptState: string;
  120. bz1: string;
  121. }
  122. const formData = ref<FormDataType>({
  123. instanceId: "",
  124. id: "",
  125. projectName: "",
  126. userNickname: "",
  127. deptName: "",
  128. applyTime: "",
  129. xsry: "",
  130. projectXmbh: "",
  131. applyWorkerName: "",
  132. xmjl: "",
  133. acceptTime: "",
  134. acceptState: "",
  135. bz1: "",
  136. });
  137. const formRead = ref(false);
  138. const { activityInstanceId, participant, flowInstanceId, read } =
  139. route.query as {
  140. activityInstanceId: string;
  141. participant: string;
  142. flowInstanceId: string;
  143. read: string;
  144. };
  145. const activityData: FlowDTO = {
  146. activityInstanceId,
  147. participantId: participant,
  148. flowOpinion: "",
  149. };
  150. const submitNextActivity = async (NextActivity: () => Promise<any>) => {
  151. NextActivity();
  152. };
  153. const jsonToFormData = (json: any): FormData | null => {
  154. const keys: string[] = Object.keys(json);
  155. if (keys.length > 0) {
  156. const formData = new FormData();
  157. keys.forEach((key) => {
  158. formData.append(
  159. key,
  160. json[key] instanceof Object ? JSON.stringify(json[key]) : json[key]
  161. );
  162. });
  163. return formData;
  164. }
  165. return null;
  166. };
  167. /** 初始化表单数据 */
  168. const initFormData = async () => {
  169. const result = await reqest.get(
  170. `/business/ProjectStatus/mobileAdd?flowInstanceId=${flowInstanceId}`
  171. );
  172. formData.value = result.data;
  173. formData.value.applyTime = moment(formData.value.applyTime).format(
  174. "YYYY-MM-DD"
  175. );
  176. formData.value.acceptTime = moment(formData.value.acceptTime).format(
  177. "YYYY-MM-DD"
  178. );
  179. };
  180. /** 初始化 */
  181. onMounted(() => {
  182. initFormData();
  183. });
  184. </script>
  185. <style lang="scss" scoped>
  186. @import "./index.scss";
  187. </style>