projectItem.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <template>
  2. <div>
  3. <!-- 选择项目 -->
  4. <el-dialog
  5. title="选择项目"
  6. :visible.sync="showProjectItem"
  7. width="800px"
  8. append-to-body
  9. >
  10. <el-table
  11. class="tableWrapper"
  12. @row-click="clickRow"
  13. ref="multipleTable"
  14. :data="poolList"
  15. @selection-change="handleSelectionChange"
  16. >
  17. <el-table-column type="selection" width="55" align="center" />
  18. <!-- <el-table-column label="主键id" align="center" prop="id" /> -->
  19. <el-table-column label="项目名称" width="150" align="center" prop="projectName">
  20. <template slot-scope="scope">
  21. <div :title="scope.row.projectName">
  22. {{ scope.row.projectName }}
  23. </div>
  24. </template>
  25. </el-table-column>
  26. <el-table-column
  27. label="渠道"
  28. align="center"
  29. prop="tProjectChannel.channelName"
  30. >
  31. <template slot-scope="scope">
  32. <div :title="scope.row.tProjectChannel.channelName">
  33. {{ scope.row.tProjectChannel.channelName }}
  34. </div>
  35. </template>
  36. </el-table-column>
  37. <el-table-column
  38. label="所属组别"
  39. align="center"
  40. prop="tProjectChannel.channelGroup"
  41. >
  42. <template slot-scope="scope">
  43. <dict-tag
  44. :options="dict.type.project_group"
  45. :value="scope.row.tProjectChannel.channelGroup"
  46. />
  47. </template>
  48. </el-table-column>
  49. <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
  50. <el-table-column label="投资负责人" align="center" prop="investHead" />
  51. <el-table-column label="项目阶段" align="center" prop="projectStage">
  52. <template slot-scope="scope">
  53. <dict-tag
  54. :options="dict.type.project_stage"
  55. :value="scope.row.projectStage"
  56. />
  57. </template>
  58. </el-table-column>
  59. <el-table-column label="项目状态" align="center" prop="projectState">
  60. <template slot-scope="scope">
  61. <dict-tag
  62. :options="dict.type.project_state"
  63. :value="scope.row.projectState"
  64. />
  65. </template>
  66. </el-table-column>
  67. </el-table>
  68. <pagination
  69. v-show="projectItemTotal > 0"
  70. :total="projectItemTotal"
  71. :page.sync="projectQueryParams.pageNum"
  72. :limit.sync="projectQueryParams.pageSize"
  73. @pagination="getList"
  74. />
  75. <div slot="footer" class="dialog-footer">
  76. <el-button type="primary" @click="submit" v-preventReClick
  77. >确 定</el-button
  78. >
  79. <el-button @click="cancel">取 消</el-button>
  80. </div>
  81. </el-dialog>
  82. </div>
  83. </template>
  84. <script>
  85. import { listPool } from "@/api/invest/pool";
  86. export default {
  87. props: {
  88. // showProjectItem: {
  89. // type: Boolean,
  90. // default: false,
  91. // },
  92. },
  93. dicts: ["project_group", "project_stage", "project_state"],
  94. data() {
  95. return {
  96. showProjectItem: false,
  97. // 总条数
  98. projectItemTotal: 0,
  99. poolList: [],
  100. projectQueryParams: {
  101. pageNum: 1,
  102. pageSize: 10,
  103. orderByColumn: "createTime",
  104. isAsc: "desc",
  105. },
  106. // 选中数组
  107. ids: [],
  108. idsName: [],
  109. // 非单个禁用
  110. single: true,
  111. // 非多个禁用
  112. multiple: true,
  113. };
  114. },
  115. mounted() {
  116. this.getList();
  117. },
  118. methods: {
  119. clickRow(row) {
  120. this.$refs.multipleTable.toggleRowSelection(row);
  121. },
  122. // 多选框选中数据
  123. handleSelectionChange(selection) {
  124. if (selection.length > 1) {
  125. this.$modal.msg("只能选择一个项目");
  126. this.$refs.multipleTable.clearSelection();
  127. return;
  128. }
  129. if (this.ids.length == 0) {
  130. this.ids = selection;
  131. } else {
  132. this.$modal.msg("只能选择一个项目");
  133. this.ids = [];
  134. // multipleTable与table的ref绑定的一样
  135. this.$refs.multipleTable.clearSelection();
  136. }
  137. },
  138. /** 查询项目池列表 */
  139. getList() {
  140. listPool(this.projectQueryParams).then((response) => {
  141. this.poolList = response.rows;
  142. this.projectItemTotal = response.total;
  143. });
  144. },
  145. submit() {
  146. // console.log("确定", this.ids);
  147. this.$emit("getProjectInfo", this.ids);
  148. this.showProjectItem = false;
  149. },
  150. cancel() {
  151. this.showProjectItem = false;
  152. },
  153. },
  154. };
  155. </script>