projectList.vue 27 KB

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