edit.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. <template>
  2. <div class="detailWrapper">
  3. <section class="section1 public-flex">
  4. <div class="public-margin-r-20">
  5. <h4>
  6. 投资项目
  7. <span class="alreadyStop" v-if="detailInfo.delFlag === '1'"
  8. >已终止</span
  9. >
  10. </h4>
  11. <p class="projectNameTit">{{ detailInfo.projectName }}</p>
  12. </div>
  13. </section>
  14. <el-divider></el-divider>
  15. <section>
  16. <!-- :space="200" -->
  17. <el-divider></el-divider>
  18. <div
  19. class="public-flex-between basicsInfo"
  20. v-if="detailInfo.projectState != '1'"
  21. >
  22. <div class="public-flex-center-column">
  23. <div>项目公司名称</div>
  24. <p
  25. style="width: 250px; text-align: center"
  26. class="yichu1"
  27. v-if="
  28. detailInfo.tProjectCompany &&
  29. detailInfo.tProjectCompany.companyName
  30. "
  31. >
  32. {{ detailInfo.tProjectCompany.companyName }}
  33. </p>
  34. </div>
  35. <div class="public-flex-center-column">
  36. <div>渠道</div>
  37. <p
  38. v-if="
  39. detailInfo.tProjectChannel &&
  40. detailInfo.tProjectChannel.channelName
  41. "
  42. >
  43. {{ detailInfo.tProjectChannel.channelName }}
  44. </p>
  45. <p v-else>无</p>
  46. </div>
  47. <div class="public-flex-center-column">
  48. <div>项目负责人</div>
  49. <p>{{ detailInfo.investHead }}</p>
  50. </div>
  51. <div class="public-flex-center-column" v-if="detailInfo.projectDate">
  52. <div>立项通过日期</div>
  53. <p>{{ detailInfo.projectDate }}</p>
  54. </div>
  55. <div class="public-flex-center-column" v-if="detailInfo.decisionDate">
  56. <div>投决通过日期</div>
  57. <p>{{ detailInfo.decisionDate }}</p>
  58. </div>
  59. <div class="public-flex-center-column">
  60. <div>投前估值(万元)</div>
  61. <p>{{ detailInfo.investValuation }}</p>
  62. </div>
  63. <div class="public-flex-center-column">
  64. <div>预计投资金额(万元)</div>
  65. <p>{{ detailInfo.investMoney }}</p>
  66. </div>
  67. </div>
  68. </section>
  69. <section class="section3">
  70. <el-tabs v-model="activeName" @tab-click="handleClick">
  71. <el-tab-pane label="投决申请信息" name="0"></el-tab-pane>
  72. <el-tab-pane label="项目基本信息" name="1"></el-tab-pane>
  73. </el-tabs>
  74. <section>
  75. <div v-if="activeName === '0'" class="public-padded-20 detail-meeting">
  76. <el-tabs type="border-card">
  77. <el-tab-pane label="项目投决申请表">
  78. <el-form
  79. v-if="formTJApply.id"
  80. class="special-el-form public-padded-t-20"
  81. ref="formTJApply"
  82. :model="formTJApply"
  83. label-width="120px"
  84. >
  85. <el-form-item
  86. label="股权/其他合作商务条款"
  87. prop="provision"
  88. class="special-el-form-item"
  89. >
  90. <el-input
  91. rows="4"
  92. type="textarea"
  93. maxlength="200"
  94. v-model="formTJApply.provision"
  95. disabled
  96. />
  97. </el-form-item>
  98. <el-form-item
  99. label="投决资料"
  100. prop="listFile"
  101. class="special-el-form-item"
  102. >
  103. <fileItem
  104. ref="fileItemTJApply"
  105. :id="formTJApply.id"
  106. ></fileItem>
  107. </el-form-item>
  108. <!-- <el-form-item
  109. label="通知名单"
  110. prop="participants"
  111. class="special-el-form-item"
  112. >
  113. <el-input
  114. rows="4"
  115. type="textarea"
  116. v-model="formTJApply.participants"
  117. disabled
  118. />
  119. </el-form-item>-->
  120. </el-form>
  121. <div
  122. v-else
  123. class="public-flex-center public-padded-20"
  124. style="color: #909399"
  125. >
  126. 暂无数据
  127. </div>
  128. </el-tab-pane>
  129. <!-- <el-tab-pane label="项目投决评估评审汇总表">
  130. <tableForm
  131. :formType="4"
  132. ref="voteTableForm"
  133. :readonly="true"
  134. :showBack="false"
  135. ></tableForm>
  136. </el-tab-pane>-->
  137. </el-tabs>
  138. </div>
  139. <div v-show="activeName === '1'">
  140. <poolForm :type="type" :id="id"></poolForm>
  141. </div>
  142. </section>
  143. </section>
  144. <section class="approveBtn">
  145. <el-form
  146. ref="flowBaseInfo"
  147. :model="flowBaseInfo"
  148. :rules="rulesFlow"
  149. label-width="120px"
  150. >
  151. <el-form-item class="btnList">
  152. <el-button @click="goBack">返 回</el-button>
  153. <el-button type="primary" @click="handleComplete(true)">提交</el-button>
  154. <el-button type="warning" @click="handleComplete(false)">关闭</el-button>
  155. </el-form-item>
  156. </el-form>
  157. </section>
  158. </div>
  159. </template>
  160. <script>
  161. import poolForm from "../../invest/components/poolForm";
  162. //import tableForm from "../../invest/components/tableForm";
  163. import fileItem from "../../invest/components/fileItem";
  164. import {
  165. getPool
  166. } from "@/api/invest/pool";
  167. import {
  168. listMeeting,
  169. listProjectPoolIdNewDecision,
  170. } from "@/api/invest/meeting";
  171. import{
  172. decisionComplete
  173. } from "@/api/project/decision/pool"
  174. import { mapGetters } from "vuex";
  175. export default {
  176. name: "investPoolDetail",
  177. components: {
  178. poolForm,
  179. //tableForm,
  180. fileItem,
  181. },
  182. data() {
  183. return {
  184. showDueApply: false,
  185. meetingId: "0",
  186. type: "2",
  187. id: "",
  188. active: 0,
  189. detailInfo: {
  190. projectName: "",
  191. },
  192. activeName: "0",
  193. formTJApply: {
  194. id: null,
  195. projectPoolId: null,
  196. projectName: null,
  197. provision: null,
  198. listFile: null,
  199. participants: null,
  200. participantsId: null,
  201. flag:null,
  202. },
  203. flowBaseInfo:{
  204. comment:null,
  205. taskId:null
  206. },
  207. rulesFlow:{
  208. comment: [{ required: true, trigger: "blur", message: "请输入" }],
  209. }
  210. };
  211. },
  212. computed: {
  213. ...mapGetters(["user"]),
  214. },
  215. created() {
  216. this.id = this.$route.query.id;
  217. this.flowBaseInfo.taskId=this.$route.query.taskId;
  218. this.getlistProjectPoolIdNewDecision();
  219. this.getDetail();
  220. if (this.$route.query.activeName) {
  221. this.activeName = this.$route.query.activeName;
  222. }
  223. },
  224. methods: {
  225. getMettingId(type) {
  226. let queryParams = {
  227. pageNum: 1,
  228. pageSize: 10,
  229. meetingType: type,
  230. orderByColumn: "createTime",
  231. isAsc: "desc",
  232. projectPoolId: this.id,
  233. };
  234. listMeeting(queryParams).then((response) => {
  235. let meetingList = response.rows;
  236. if (meetingList.length > 0) {
  237. let meetingId = meetingList[0].id;
  238. if (type === "LX") {
  239. this.$refs.approvalTableForm.initialize(meetingId);
  240. } else if (type === "TJ") {
  241. this.$refs.voteTableForm.initialize(meetingId);
  242. }
  243. } else {
  244. if (type === "LX") {
  245. this.$refs.approvalTableForm.showNodata();
  246. } else if (type === "TJ") {
  247. this.$refs.voteTableForm.showNodata();
  248. }
  249. }
  250. });
  251. },
  252. handleClick(tab, event) {
  253. let that = this;
  254. if (this.activeName === "0") {
  255. // 项目投决
  256. this.getMettingId("TJ");
  257. this.getlistProjectPoolIdNewDecision();
  258. } else if (this.activeName === "1") {
  259. // 项目报备
  260. this.getDetail();
  261. }
  262. },
  263. // 获取投决申请
  264. getlistProjectPoolIdNewDecision() {
  265. let that = this;
  266. listProjectPoolIdNewDecision(this.id).then((response) => {
  267. if (response && response.data) {
  268. that.formTJApply = response.data;
  269. setTimeout(() => {
  270. //that.$refs.fileItemTJApply.handleButton();
  271. that.$refs.fileItemTJApply.fileList = [];
  272. that.$refs.fileItemTJApply.getListFileBusinessId(
  273. that.formTJApply.id
  274. );
  275. }, 300);
  276. }
  277. });
  278. },
  279. //项目报备
  280. getDetail() {
  281. getPool(this.id).then((response) => {
  282. this.detailInfo = response.data;
  283. // 项目退出完成n
  284. if (response.data.projectState === "n") {
  285. this.active = parseInt(response.data.projectStage);
  286. } else {
  287. this.active = parseInt(response.data.projectStage) - 1;
  288. }
  289. });
  290. },
  291. /** 加载审批任务弹框 */
  292. handleComplete(flag) {
  293. this.taskComplete(flag);
  294. },
  295. /** 用户审批任务 */
  296. taskComplete(flag) {
  297. this.formTJApply.flag=flag;
  298. const params={
  299. projectDecision:this.formTJApply,
  300. flowBaseInfo: this.flowBaseInfo
  301. }
  302. decisionComplete(params).then(response => {
  303. this.$modal.msgSuccess(response.msg);
  304. this.goMyTask();
  305. });
  306. },
  307. /*返回*/
  308. goBack() {
  309. this.$router.go(-1);
  310. },
  311. //跳转到我的任务-投资机会
  312. goMyTask(){
  313. this.$router.push({ path: "/myTask/project/decision/myTask"});
  314. },
  315. },
  316. };
  317. </script>
  318. <style lang="scss" scoped>
  319. .detailWrapper {
  320. padding: 20px 0;
  321. width: 92%;
  322. margin: 0 auto;
  323. .section1 {
  324. p {
  325. font-size: 24px;
  326. font-weight: bold;
  327. margin: 0;
  328. }
  329. > div:first-child {
  330. // width: calc(100% - 700px);
  331. width: 100%;
  332. }
  333. .btnList {
  334. width: 700px;
  335. display: flex;
  336. justify-content: flex-end;
  337. }
  338. }
  339. .basicsInfo {
  340. font-size: 14px;
  341. background: #f1f1f1;
  342. margin-top: -24px;
  343. width: 100%;
  344. padding: 30px 20px 10px;
  345. div {
  346. color: #7e7d7d;
  347. }
  348. p {
  349. font-size: 16px;
  350. color: #333;
  351. font-weight: bold;
  352. }
  353. }
  354. .section3 {
  355. margin-top: 40px;
  356. }
  357. .approveBtn {
  358. margin-top: 30px;
  359. .btnList {
  360. display: flex;
  361. justify-content: flex-end;
  362. /* 让内部元素(按钮)整体靠右 */
  363. gap: 10px; /* 替代 margin,给按钮之间加间距,可选 */
  364. padding-right: 50px;
  365. }
  366. }
  367. }
  368. .projectNameTit {
  369. }
  370. .alreadyStop {
  371. font-weight: normal;
  372. font-size: 12px;
  373. background: #ff0000;
  374. color: #fff;
  375. border-radius: 5px;
  376. padding: 5px 10px;
  377. margin-left: 10px;
  378. }
  379. </style>