projectList.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980
  1. <template>
  2. <div class="app-container">
  3. <el-form
  4. v-if="type !== '2'"
  5. :model="queryParams"
  6. ref="queryForm"
  7. size="small"
  8. :inline="true"
  9. v-show="showSearch"
  10. label-width="90px"
  11. style="margin-left: -22px"
  12. >
  13. <el-form-item label="项目名称" prop="projectName">
  14. <el-input
  15. v-model.trim="queryParams.projectName"
  16. placeholder="请输入项目名称"
  17. clearable
  18. @keyup.enter.native="handleQuery"
  19. />
  20. </el-form-item>
  21. <el-form-item label="项目负责人" prop="investHead">
  22. <el-input
  23. v-model.trim="queryParams.investHead"
  24. placeholder="请输入项目负责人"
  25. clearable
  26. @keyup.enter.native="handleQuery"
  27. />
  28. </el-form-item>
  29. <el-form-item label="公司联系人" prop="projectContacts">
  30. <el-input
  31. v-model.trim="queryParams.projectContacts"
  32. placeholder="请输入公司联系人"
  33. clearable
  34. @keyup.enter.native="handleQuery"
  35. />
  36. </el-form-item>
  37. <el-form-item label="渠道" prop="channel">
  38. <el-select v-model="queryParams.channel" placeholder="全部" clearable>
  39. <el-option
  40. v-for="item in channelList"
  41. :key="item.id"
  42. :label="item.channelName"
  43. :value="item.id"
  44. />
  45. </el-select>
  46. </el-form-item>
  47. <el-form-item label="所属组别" prop="projectGroup">
  48. <el-select
  49. v-model="queryParams.projectGroup"
  50. placeholder="全部"
  51. clearable
  52. >
  53. <el-option
  54. v-for="dict in dict.type.project_group"
  55. :key="dict.value"
  56. :label="dict.label"
  57. :value="dict.value"
  58. />
  59. </el-select>
  60. </el-form-item>
  61. <el-form-item label="项目公司" prop="company">
  62. <el-input
  63. v-model.trim="queryParams.company"
  64. placeholder="请输入项目所属公司"
  65. clearable
  66. @keyup.enter.native="handleQuery"
  67. />
  68. </el-form-item>
  69. <el-form-item class="searchWrapper">
  70. <el-button
  71. type="primary"
  72. icon="el-icon-search"
  73. size="mini"
  74. @click="handleQuery"
  75. >搜索</el-button
  76. >
  77. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
  78. >重置</el-button
  79. >
  80. </el-form-item>
  81. </el-form>
  82. <el-row
  83. :gutter="10"
  84. class="mb8"
  85. v-if="type === '2' && stage == '4' ? false : true"
  86. >
  87. <el-col :span="1.5">
  88. <el-button
  89. v-if="type === '1' && stage == '1'"
  90. type="primary"
  91. plain
  92. icon="el-icon-plus"
  93. size="mini"
  94. @click="handleAdd"
  95. v-hasPermi="['invest:pool:add']"
  96. >新增</el-button
  97. >
  98. </el-col>
  99. <el-col :span="1.5">
  100. <el-button
  101. :disabled="multiple"
  102. plain
  103. type="success"
  104. v-if="stage === '1'"
  105. size="mini"
  106. icon="el-icon-edit"
  107. @click="handleSelectData(1)"
  108. v-hasPermi="['invest:pool:edit']"
  109. >修改</el-button
  110. >
  111. </el-col>
  112. <el-col :span="1.5">
  113. <el-button
  114. :disabled="multiple"
  115. plain
  116. type="primary"
  117. size="mini"
  118. icon="el-icon-edit"
  119. v-if="stage === '2'"
  120. @click="handleSelectData(5)"
  121. v-hasPermi="['invest:pool:assess']"
  122. >上传评估意见</el-button
  123. >
  124. </el-col>
  125. <el-col :span="1.5">
  126. <el-button
  127. plain
  128. :disabled="multiple"
  129. type="warning"
  130. v-if="stage == '3'"
  131. size="mini"
  132. icon="el-icon-document"
  133. @click="handleSelectData(6)"
  134. v-hasPermi="['invest:pool:lx:apply']"
  135. >立项申请</el-button
  136. >
  137. </el-col>
  138. <el-col :span="1.5">
  139. <el-button
  140. plain
  141. :disabled="multiple"
  142. type="warning"
  143. v-if="stage == '3'"
  144. size="mini"
  145. icon="el-icon-chat-line-round"
  146. @click="handleSelectData(7, 'LX')"
  147. v-hasPermi="['invest:pool:lx:meeting']"
  148. >发起立项会议</el-button
  149. >
  150. </el-col>
  151. <el-col :span="1.5">
  152. <el-button
  153. plain
  154. :disabled="multiple"
  155. type="primary"
  156. v-if="stage == '3'"
  157. size="mini"
  158. icon="el-icon-document-checked"
  159. @click="handleSelectData(8)"
  160. >上传打分表</el-button
  161. >
  162. </el-col>
  163. <el-col :span="1.5">
  164. <el-button
  165. plain
  166. :disabled="multiple"
  167. type="warning"
  168. v-if="stage == '4'"
  169. size="mini"
  170. icon="el-icon-tickets"
  171. @click="handleSelectData(9)"
  172. v-hasPermi="['invest:pool:due']"
  173. >尽调申请</el-button
  174. >
  175. </el-col>
  176. <el-col :span="1.5">
  177. <el-button
  178. plain
  179. :disabled="multiple"
  180. type="primary"
  181. v-if="stage == '4'"
  182. size="mini"
  183. icon="el-icon-document-checked"
  184. @click="handleSelectData(10)"
  185. >上传尽调报告</el-button
  186. >
  187. </el-col>
  188. <el-col :span="1.5">
  189. <el-button
  190. plain
  191. :disabled="multiple"
  192. type="warning"
  193. v-if="stage == '5'"
  194. size="mini"
  195. icon="el-icon-document"
  196. @click="handleSelectData(11)"
  197. v-hasPermi="['invest:pool:tj:apply']"
  198. >投决申请</el-button
  199. >
  200. </el-col>
  201. <el-col :span="1.5">
  202. <el-button
  203. plain
  204. :disabled="multiple"
  205. type="warning"
  206. v-if="stage == '5'"
  207. size="mini"
  208. icon="el-icon-chat-line-square"
  209. @click="handleSelectData(12, 'TJ')"
  210. v-hasPermi="['invest:pool:tj:meeting']"
  211. >发起投决会议</el-button
  212. >
  213. </el-col>
  214. <el-col :span="1.5">
  215. <el-button
  216. plain
  217. :disabled="multiple"
  218. type="primary"
  219. v-if="stage == '5'"
  220. size="mini"
  221. icon="el-icon-document-checked"
  222. @click="handleSelectData(13)"
  223. >上传打分表</el-button
  224. >
  225. </el-col>
  226. <el-col :span="1.5">
  227. <el-button
  228. :disabled="multiple"
  229. plain
  230. type="success"
  231. v-if="stage !== '0'"
  232. size="mini"
  233. icon="el-icon-setting"
  234. v-hasPermi="['invest:pool:stage']"
  235. @click="handleSelectData(3)"
  236. >设置项目阶段</el-button
  237. >
  238. </el-col>
  239. <el-col :span="1.5">
  240. <el-button
  241. @click="handleSelectData(4)"
  242. v-if="type === '1' && stage !== '0'"
  243. type="danger"
  244. plain
  245. icon="el-icon-switch-button"
  246. size="mini"
  247. :disabled="multiple"
  248. v-hasPermi="['invest:pool:remove']"
  249. >终止</el-button
  250. >
  251. </el-col>
  252. <el-col :span="1.5">
  253. <el-button
  254. v-if="type === '1' && stage == '0'"
  255. type="warning"
  256. plain
  257. icon="el-icon-download"
  258. size="mini"
  259. @click="handleExport"
  260. v-hasPermi="['invest:pool:export']"
  261. >导出</el-button
  262. >
  263. </el-col>
  264. <right-toolbar
  265. :showSearch.sync="showSearch"
  266. @queryTable="getList"
  267. ></right-toolbar>
  268. </el-row>
  269. <el-table
  270. ref="dataTable"
  271. @row-click="clickRow"
  272. class="tableWrapper"
  273. v-loading="loading"
  274. border
  275. :data="poolList"
  276. @selection-change="handleSelectionChange"
  277. >
  278. <el-table-column type="selection" width="40" align="center" />
  279. <el-table-column
  280. type="index"
  281. label="序号"
  282. width="50"
  283. align="center"
  284. ></el-table-column>
  285. <!-- <el-table-column label="主键id" align="center" prop="id" /> -->
  286. <el-table-column label="项目名称" align="center" prop="projectName">
  287. <template slot-scope="scope">
  288. <div
  289. :title="scope.row.projectName"
  290. class="public-text-blue public-cursor"
  291. @click="handleDetail(scope.row)"
  292. >
  293. {{ scope.row.projectName }}
  294. </div>
  295. </template>
  296. </el-table-column>
  297. <el-table-column
  298. label="公司名称"
  299. align="center"
  300. prop="tProjectCompany.companyName"
  301. >
  302. <template slot-scope="scope">
  303. <div :title="scope.row.tProjectCompany.companyName">
  304. {{ scope.row.tProjectCompany.companyName }}
  305. </div>
  306. </template>
  307. </el-table-column>
  308. <el-table-column
  309. label="注册地址"
  310. align="center"
  311. prop="tProjectCompany.registeredAddress"
  312. >
  313. <template slot-scope="scope">
  314. <div :title="scope.row.tProjectCompany.registeredAddress">
  315. {{ scope.row.tProjectCompany.registeredAddress }}
  316. </div>
  317. </template>
  318. </el-table-column>
  319. <el-table-column label="项目所属行业" align="center" prop="industry"
  320. ><template slot-scope="scope">
  321. <dict-tag
  322. :options="dict.type.CUSTOMER_TRADE"
  323. :value="scope.row.industry"
  324. />
  325. </template>
  326. </el-table-column>
  327. <el-table-column label="项目阶段" align="center" prop="projectStage">
  328. <template slot-scope="scope">
  329. <dict-tag
  330. :options="dict.type.project_stage"
  331. :value="scope.row.projectStage"
  332. />
  333. </template>
  334. </el-table-column>
  335. <el-table-column label="项目状态" align="center" prop="projectState">
  336. <template slot-scope="scope">
  337. <dict-tag
  338. :options="dict.type.project_state"
  339. :value="scope.row.projectState"
  340. />
  341. </template>
  342. </el-table-column>
  343. <el-table-column label="立项通过日期" align="center" prop="projectDate">
  344. <template slot-scope="scope">
  345. <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
  346. </template>
  347. </el-table-column>
  348. <el-table-column label="投决通过日期" align="center" prop="decisionDate">
  349. <template slot-scope="scope">
  350. <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
  351. </template>
  352. </el-table-column>
  353. <el-table-column label="项目负责人" align="center" prop="investHead">
  354. <template slot-scope="scope">
  355. <div :title="scope.row.investHead">
  356. {{ scope.row.investHead }}
  357. </div>
  358. </template>
  359. </el-table-column>
  360. <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
  361. <el-table-column
  362. label="渠道"
  363. align="center"
  364. prop="tProjectChannel.channelName"
  365. >
  366. <template slot-scope="scope">
  367. <div
  368. v-if="
  369. scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
  370. "
  371. :title="scope.row.tProjectChannel.channelName"
  372. >
  373. {{ scope.row.tProjectChannel.channelName }}
  374. </div>
  375. </template>
  376. </el-table-column>
  377. <!-- <el-table-column
  378. label="所属组别"
  379. align="center"
  380. prop="tProjectChannel.channelGroup"
  381. >
  382. <template slot-scope="scope">
  383. <dict-tag
  384. :options="dict.type.project_group"
  385. :value="scope.row.tProjectChannel.channelGroup"
  386. />
  387. </template>
  388. </el-table-column> -->
  389. <!-- <el-table-column
  390. label="项目联系人"
  391. align="center"
  392. prop="tProjectContacts.name"
  393. >
  394. <template slot-scope="scope">
  395. <div :title="scope.row.tProjectContacts.name">
  396. {{ scope.row.tProjectContacts.name }}
  397. </div>
  398. </template>
  399. </el-table-column> -->
  400. <!--<el-table-column
  401. label="创建人"
  402. width="120"
  403. align="center"
  404. prop="createBy"
  405. />
  406. <el-table-column
  407. label="创建时间"
  408. align="center"
  409. prop="createTime"
  410. width="160"
  411. /> -->
  412. <!-- delFlag -->
  413. <el-table-column
  414. label="状态"
  415. align="center"
  416. prop="investHead"
  417. width="50px"
  418. >
  419. <template slot-scope="scope">
  420. <div :title="scope.row.delFlag === '1' ? '终止' : '正常'">
  421. {{ scope.row.delFlag === "1" ? "终止" : "正常" }}
  422. </div>
  423. </template>
  424. </el-table-column>
  425. <!-- fixed="right" -->
  426. <el-table-column label="操作" align="center" v-if="false">
  427. <template slot-scope="scope">
  428. <!-- stage//0=全部 1=项目报备 2=评估考察 3=项目立项 4=尽职背调 5=项目投决 -->
  429. <!-- <el-button
  430. class="custom-orange-color"
  431. v-if="stage == '1'"
  432. size="mini"
  433. type="text"
  434. icon="el-icon-thumb"
  435. @click="handlefollowRecord(scope.row)"
  436. >上传跟进记录</el-button> -->
  437. <!-- <el-button
  438. class="custom-orange-color"
  439. v-if="stage == '3' && scope.row.delFlag !== '1'"
  440. size="mini"
  441. type="text"
  442. icon="el-icon-chat-line-round"
  443. @click="handleMeeting(scope.row, 'LX')"
  444. >发起立项会议</el-button
  445. >
  446. <el-button
  447. class="custom-orange-color"
  448. v-if="stage == '5' && scope.row.delFlag !== '1'"
  449. size="mini"
  450. type="text"
  451. icon="el-icon-chat-line-square"
  452. @click="handleMeeting(scope.row, 'TJ')"
  453. >发起投决会议</el-button
  454. >
  455. <el-button
  456. class="custom-orange-color"
  457. v-if="stage == '4' && scope.row.delFlag !== '1'"
  458. size="mini"
  459. type="text"
  460. icon="el-icon-tickets"
  461. @click="handleDropdown($event, scope.row)"
  462. >尽职背调</el-button
  463. >
  464. <el-button
  465. v-if="scope.row.delFlag !== '1' && stage !== '0'"
  466. size="mini"
  467. type="text"
  468. icon="el-icon-setting"
  469. @click="handleBusinessUpdate(scope.row)"
  470. >设置项目阶段</el-button
  471. >
  472. <el-button
  473. v-if="scope.row.delFlag !== '1' && stage !== '0'"
  474. size="mini"
  475. type="text"
  476. icon="el-icon-edit"
  477. @click="handleUpdate(scope.row)"
  478. v-hasPermi="['invest:pool:edit']"
  479. >修改</el-button
  480. >
  481. <el-button
  482. class="custom-blue-color"
  483. size="mini"
  484. type="text"
  485. icon="el-icon-search"
  486. @click="handleDetail(scope.row)"
  487. v-hasPermi="['invest:pool:query']"
  488. >详情</el-button
  489. > -->
  490. <el-button
  491. v-if="scope.row.delFlag !== '1' && stage !== '0'"
  492. class="custom-red-color"
  493. size="mini"
  494. type="text"
  495. icon="el-icon-switch-button"
  496. @click="handleDelete(scope.row)"
  497. v-hasPermi="['invest:pool:remove']"
  498. >终止</el-button
  499. >
  500. </template>
  501. </el-table-column>
  502. </el-table>
  503. <pagination
  504. v-show="total > 0"
  505. :total="total"
  506. :page.sync="queryParams.pageNum"
  507. :limit.sync="queryParams.pageSize"
  508. @pagination="getList"
  509. />
  510. <!-- 设置项目状态对话框 -->
  511. <businessUpdate @getList="getList" ref="businessUpdate"></businessUpdate>
  512. <!-- 上传评估意见对话框 -->
  513. <!-- <el-dialog
  514. :title="titleAssess"
  515. :visible.sync="openAssess"
  516. width="800px"
  517. append-to-body
  518. >
  519. <el-form
  520. ref="formAssess"
  521. :model="formAssess"
  522. :rules="rulesAssess"
  523. label-width="120px"
  524. >
  525. <el-form-item label="评估意见" prop="assess">
  526. <el-input
  527. maxlength="200"
  528. rows="4"
  529. type="textarea"
  530. v-model="formAssess.assess"
  531. placeholder="请填写评估意见"
  532. >
  533. </el-input>
  534. </el-form-item>
  535. </el-form>
  536. <div slot="footer" class="dialog-footer">
  537. <el-button type="primary" @click="submitAssessForm" v-preventReClick
  538. >确 定</el-button
  539. >
  540. <el-button @click="openAssess = false">取 消</el-button>
  541. </div>
  542. </el-dialog> -->
  543. <!-- 尽调组件 -->
  544. <!-- <dueDiligenceList
  545. ref="dueDiligenceLists"
  546. :projectId="projectId"
  547. :projectName="form.projectName"
  548. ></dueDiligenceList> -->
  549. <!-- 跟进记录组件 -->
  550. <!-- <followList
  551. :type="'3'"
  552. ref="followList"
  553. :projectId="projectId"
  554. ></followList> -->
  555. <!-- 会议管理组件 -->
  556. <!-- <meetingList
  557. :type="'3'"
  558. ref="meetingList"
  559. :projectId="projectId"
  560. ></meetingList> -->
  561. </div>
  562. </template>
  563. <script>
  564. import { listPool, delPool, editStage } from "@/api/invest/pool";
  565. import { selectByFlowKey } from "@/api/flowable/definition";
  566. import { listChannel } from "@/api/invest/channel";
  567. import dueDiligenceList from "./dueDiligenceList";
  568. import followList from "./followList";
  569. import meetingList from "./meetingList";
  570. import businessUpdate from "./businessUpdate";
  571. import { mapGetters } from "vuex";
  572. export default {
  573. props: {
  574. type: {
  575. type: String,
  576. default: "1", //1=显示全部列表 2=显示某项目下的详情列表
  577. },
  578. stage: {
  579. type: String,
  580. default: "0", //0=全部 1=项目报备 2=评估考察 3=项目立项 4=尽职背调 5=项目投决
  581. },
  582. projectId: {
  583. type: String,
  584. },
  585. },
  586. dicts: ["project_group", "project_stage", "project_state", "CUSTOMER_TRADE"],
  587. components: {
  588. dueDiligenceList,
  589. followList,
  590. meetingList,
  591. businessUpdate,
  592. },
  593. data() {
  594. return {
  595. // 遮罩层
  596. loading: false,
  597. // 选中id数组
  598. ids: [],
  599. idsName: [],
  600. // 非单个禁用
  601. single: true,
  602. // 非多个禁用
  603. multiple: true,
  604. // 选中数组
  605. selectRowList: [],
  606. // 显示搜索条件
  607. showSearch: false,
  608. // 总条数
  609. total: 0,
  610. // 项目池表格数据
  611. poolList: [],
  612. // 查询参数
  613. queryParams: {
  614. id: null,
  615. pageNum: 1,
  616. pageSize: 10,
  617. projectName: null,
  618. projectGroup: null,
  619. projectCode: null,
  620. channel: null,
  621. contactDate: null,
  622. projectDate: null,
  623. decisionDate: null,
  624. industry: null,
  625. company: null,
  626. projectContacts: null,
  627. investHead: null,
  628. previousFinancing: null,
  629. financingStage: null,
  630. financingMoney: null,
  631. financingDate: null,
  632. investValuation: null,
  633. investMoney: null,
  634. investType: null,
  635. investPloy: null,
  636. investWorth: null,
  637. projectStage: null,
  638. projectState: null,
  639. orderByColumn: "createTime",
  640. isAsc: "desc",
  641. createTime: null,
  642. },
  643. channelList: [],
  644. // isInitiator: false, //是否是发起人
  645. // needInitiate: false, //需要发起申请
  646. // needUpload: false, //需要上传
  647. // dueForm: {
  648. // id: null,
  649. // investigateName: null,
  650. // investigateCode: null,
  651. // projectPoolId: null,
  652. // investigatePerson: null,
  653. // investigatePersonId: null,
  654. // investigateCost: null,
  655. // describe: null,
  656. // remark: null,
  657. // delFlag: null,
  658. // createBy: null,
  659. // createTime: null,
  660. // updateBy: null,
  661. // updateTime: null,
  662. // projectPoolId: null,
  663. // projectName: null,
  664. // },
  665. // 上传评估意见
  666. // formAssess: {
  667. // id: null,
  668. // assess: null,
  669. // projectPoolId: null,
  670. // },
  671. // openAssess: false,
  672. // titleAssess: "",
  673. // rulesAssess: {
  674. // assess: [{ required: true, trigger: "blur", message: "请输入" }],
  675. // },
  676. };
  677. },
  678. computed: {
  679. ...mapGetters(["user"]),
  680. },
  681. created() {},
  682. mounted() {
  683. // 项目阶段
  684. if (this.stage != "0") {
  685. this.queryParams.projectStage = this.stage;
  686. }
  687. if (this.projectId) {
  688. this.queryParams.id = this.projectId;
  689. }
  690. this.getList();
  691. // 渠道
  692. listChannel({
  693. pageNum: 1,
  694. pageSize: 100,
  695. }).then((response) => {
  696. this.channelList = response.rows;
  697. });
  698. },
  699. activated() {
  700. // 项目阶段
  701. if (this.stage != "0") {
  702. this.queryParams.projectStage = this.stage;
  703. }
  704. this.getList();
  705. },
  706. methods: {
  707. /** 查询项目池列表 */
  708. getList() {
  709. this.loading = true;
  710. listPool(this.queryParams).then((response) => {
  711. this.poolList = response.rows;
  712. this.total = response.total;
  713. this.loading = false;
  714. });
  715. },
  716. /** 搜索按钮操作 */
  717. handleQuery() {
  718. this.queryParams.pageNum = 1;
  719. this.getList();
  720. },
  721. /** 重置按钮操作 */
  722. resetQuery() {
  723. this.resetForm("queryForm");
  724. this.queryParams.orderByColumn = "createTime";
  725. this.queryParams.isAsc = "desc";
  726. this.handleQuery();
  727. },
  728. // 多选框选中数据
  729. handleSelectionChange(selection) {
  730. this.ids = selection.map((item) => item.id);
  731. this.idsName = selection.map((item) => item.projectName);
  732. this.single = selection.length !== 1;
  733. this.multiple = !selection.length;
  734. this.selectRowList = selection;
  735. },
  736. clickRow(row) {
  737. this.$refs.dataTable.toggleRowSelection(row);
  738. },
  739. /** 新增按钮操作 */
  740. handleAdd() {
  741. this.$router.push({ path: "/invest/pool/add" });
  742. },
  743. handleSelectData(type, otherData) {
  744. // type 1=修改 2=详情 3=设置项目阶段 4=终止 5=上传评估意见
  745. // 6=立项申请 7=发起立项会议 8=上传打分表(立项)
  746. // 9=尽调申请 10=上传尽调报告
  747. // 11=投决申请 12=发起投决会议 13=上传打分表(投决)
  748. if (this.selectRowList.length == 1) {
  749. const row = this.selectRowList[0];
  750. // 项目负责人
  751. if (row.investHead === this.user.nickName) {
  752. if (type === 4) {
  753. if (row.delFlag === "1") {
  754. this.$message({
  755. message: "项目已终止",
  756. duration: 1200,
  757. type: "error",
  758. });
  759. } else {
  760. this.handleDelete(row);
  761. }
  762. } else if (row.delFlag !== "1") {
  763. // 未终止
  764. if (type === 1) {
  765. // 修改
  766. this.handleUpdate(row);
  767. } else if (type === 2) {
  768. // 详情
  769. this.handleDetail(row);
  770. } else if (type === 3) {
  771. if (row.projectState !== "1") {
  772. // 设置项目阶段
  773. this.$refs.businessUpdate.handleBusinessUpdate(row);
  774. } else {
  775. this.$message({
  776. message: "暂存时不能修改项目阶段",
  777. duration: 1200,
  778. type: "warning",
  779. });
  780. }
  781. } else if (type === 5) {
  782. // 上传评估意见
  783. this.handleAssessPop(row);
  784. } else if (type === 6) {
  785. // 立项申请
  786. this.$refs.meetingList.showLXApplyPop(row);
  787. } else if (type === 7) {
  788. // 发起立项会议
  789. this.handleMeeting(row, otherData);
  790. } else if (type === 8) {
  791. // 立项-去打分
  792. this.$refs.meetingList.handleMark(row, "1", false);
  793. } else if (type === 9) {
  794. // 尽调申请
  795. this.handleDropdown("1", row);
  796. } else if (type === 10) {
  797. // 上传尽调报告
  798. this.handleDropdown("3", row);
  799. } else if (type === 11) {
  800. // 投决申请
  801. this.$refs.meetingList.showTJApplyPop(row);
  802. } else if (type === 12) {
  803. // 发起投决会议
  804. this.handleMeeting(row, otherData);
  805. } else if (type === 13) {
  806. // 投决-去打分
  807. this.$refs.meetingList.handleMark(row, "3", false);
  808. }
  809. } else {
  810. this.$message({
  811. message: "无权限",
  812. duration: 1200,
  813. type: "error",
  814. });
  815. }
  816. } else {
  817. this.$message({
  818. message: "无权限",
  819. duration: 1200,
  820. type: "error",
  821. });
  822. }
  823. } else {
  824. this.$message({
  825. message: "只能选择一条数据",
  826. duration: 1200,
  827. type: "warning",
  828. });
  829. }
  830. },
  831. handleDetail(row) {
  832. const id = row.id || this.ids;
  833. this.$router.push({ path: "/invest/pool/detail", query: { id: id } });
  834. },
  835. /** 修改按钮操作 */
  836. handleUpdate(row) {
  837. const id = row.id;
  838. this.$router.push({ path: "/invest/pool/add", query: { id: id } });
  839. },
  840. /**终止按钮操作 */
  841. handleDelete(row) {
  842. const ids = row.id || this.ids;
  843. const idsName = row.projectName ? row.projectName : this.idsName;
  844. this.$modal
  845. .confirm('是否终止"' + idsName + '"项目?')
  846. .then(function () {
  847. return delPool(ids);
  848. })
  849. .then(() => {
  850. this.getList();
  851. this.$modal.msgSuccess("已终止");
  852. })
  853. .catch(() => {});
  854. },
  855. /** 导出按钮操作 */
  856. handleExport() {
  857. this.download(
  858. "invest/pool/export",
  859. {
  860. ...this.queryParams,
  861. },
  862. `pool_${new Date().getTime()}.xlsx`
  863. );
  864. },
  865. // // 上传评估意见
  866. // handleAssessPop(row) {
  867. // this.resetAssess();
  868. // this.openAssess = true;
  869. // this.titleAssess = "上传评估意见";
  870. // },
  871. // // 发起会议
  872. // handleMeeting(row, meetingType) {
  873. // this.$store.commit("SET_PROJECTITEMMESSAGE", row);
  874. // this.$refs.meetingList.handleAdd(row.id, meetingType);
  875. // },
  876. // getButtonItem(row) {
  877. // let that = this;
  878. // this.needUpload = false;
  879. // // 是否是发起人
  880. // this.isInitiator = row.investHead == this.user.nickName;
  881. // getlistProjectPoolId(row.id).then((response) => {
  882. // // 是否有尽调报告
  883. // if (response.tProjectInvestigate) {
  884. // // 修改尽调申请
  885. // this.needInitiate = false;
  886. // this.dueForm = response.tProjectInvestigate;
  887. // // 如果上传人有 this.user.userId 那么 needUpload=true
  888. // // 需要上传的人数组
  889. // let investigatePersonIdList =
  890. // response.tProjectInvestigate.investigatePersonId.split(",");
  891. // if (investigatePersonIdList.indexOf(this.user.userId) > -1) {
  892. // this.needUpload = true;
  893. // }
  894. // if (!this.needUpload && !this.isInitiator) {
  895. // this.$message({
  896. // message: "暂无更多操作权限",
  897. // duration: 1200,
  898. // type: "warning",
  899. // });
  900. // }
  901. // } else {
  902. // // 发起尽调申请
  903. // this.needInitiate = true;
  904. // if (!this.isInitiator) {
  905. // this.$message({
  906. // message: "暂无更多操作权限",
  907. // duration: 1200,
  908. // type: "warning",
  909. // });
  910. // }
  911. // }
  912. // });
  913. // },
  914. // // 上传跟进记录
  915. // handlefollowRecord(row) {
  916. // this.$store.commit("SET_PROJECTITEMMESSAGE", row);
  917. // this.$refs.followList.handleAdd(row.id);
  918. // },
  919. // // 设置上传评估意见表单重置
  920. // resetAssess() {
  921. // this.formAssess = {
  922. // id: null,
  923. // assess: null,
  924. // projectPoolId: this.selectRowList[0].id,
  925. // };
  926. // this.resetForm("formAssess");
  927. // },
  928. // // 上传评估意见提交
  929. // submitAssessForm() {
  930. // let that = this;
  931. // this.$refs["formAssess"].validate((valid) => {
  932. // if (valid) {
  933. // // editStage(this.formAssess).then((response) => {
  934. // // that.$modal.msgSuccess("提交成功");
  935. // // that.openAssess = false;
  936. // // });
  937. // }
  938. // });
  939. // },
  940. },
  941. };
  942. </script>
  943. <style lang="scss" scoped>
  944. .tableWrapper {
  945. font-size: 12px;
  946. color: #000;
  947. ::v-deep .el-table__header-wrapper th {
  948. font-size: 12px;
  949. font-weight: bolder;
  950. color: #000;
  951. }
  952. ::v-deep td.el-table__cell:not(:last-child) div {
  953. text-overflow: -o-ellipsis-lastline;
  954. overflow: hidden;
  955. text-overflow: ellipsis;
  956. display: -webkit-box;
  957. -webkit-line-clamp: 1;
  958. line-clamp: 1;
  959. -webkit-box-orient: vertical;
  960. }
  961. }
  962. </style>