table.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <template>
  2. <div>
  3. <div>
  4. <el-table :data="tableData" border style="width: 100%" header-row-class-name="custom-table-header" @sort-change="sortChange">
  5. <el-table-column label="#" width="60" type="index" align="center">
  6. <template slot-scope="scope">
  7. <span>{{ (scope.$index + 1) + ((queryParams.current - 1) * queryParams.size) }}</span>
  8. </template>
  9. </el-table-column>
  10. <el-table-column v-for="item in column" :key="item.value" :prop="item.value" :label="item.name" sortable="custom" align="center">
  11. <template slot-scope="scope">
  12. <div v-if="['name'].includes(item.value)">
  13. <el-link @click="handleItem(scope.row,item.value)">{{ scope.row[item.value] }}</el-link>
  14. </div>
  15. <div v-else-if="['eventNames'].includes(item.value)" v-html="getColumnData(scope.row,item.key)"></div>
  16. <div v-else>{{ scope.row[item.value] }}</div>
  17. </template>
  18. </el-table-column>
  19. <el-table-column v-if="[1].indexOf(isOperate) == -1" label="操作" align="center" width="150px">
  20. <template slot-scope="scope">
  21. <el-dropdown @command="handleCommand($event, scope.row)" split-button type="primary" size="small" @click="handleCommand('e',scope.row)">
  22. <span v-if="$reportPermission(scope.row.id,[0,1])">编辑</span>
  23. <span v-else>查看</span>
  24. <el-dropdown-menu slot="dropdown" class="text-align_center">
  25. <el-dropdown-item command="0" v-if="$reportPermission(scope.row.id,[0,1])">分享</el-dropdown-item>
  26. <el-dropdown-item command="1" v-if="[2,3].includes(scope.row.status) && $reportPermission(scope.row.id,[0,1])">导出报告</el-dropdown-item>
  27. <el-dropdown-item command="2" v-if="[2,3].includes(scope.row.status) && $reportPermission(scope.row.id,[0,1])">报告文档</el-dropdown-item>
  28. <el-dropdown-item command="3" v-if="[1,2].includes(scope.row.status)&&[0,1,2,3].includes(scope.row.type) && $reportPermission(scope.row.id,[0,1])">自定义字段</el-dropdown-item>
  29. <el-dropdown-item command="4" v-if="[2].includes(scope.row.status)&& [0,1,2,3].includes(scope.row.type) && $reportPermission(scope.row.id,[0,1])">任务分配</el-dropdown-item>
  30. <el-dropdown-item command="5" v-if="([1].includes(scope.row.status) || (scope.row.type == 4 && [1,2].includes(scope.row.status))) && $reportPermission(scope.row.id,[0,1])">{{!([3,4].includes(scope.row.type))?'拆分特征':'产品信息录入'}}</el-dropdown-item>
  31. <el-dropdown-item command="8" v-if="(scope.row.type == 4 && [1,2].includes(scope.row.status)) && $reportPermission(scope.row.id,[0,1])">专利与产品关联比对</el-dropdown-item>
  32. <el-dropdown-item command="9" v-if="(scope.row.type == 5 && [1,2].includes(scope.row.status)) && $reportPermission(scope.row.id,[0,1])"> 规避方案填写</el-dropdown-item>
  33. <el-dropdown-item command="10" v-if="[0,1,2,3].includes(scope.row.type)&&[2].includes(scope.row.status) && $reportPermission(scope.row.id,[0,1])"> 添加对比文件</el-dropdown-item>
  34. <el-dropdown-item command="11" v-if="[1,2].includes(scope.row.status) && $reportPermission(scope.row.id,[0,1])"> 完成报告</el-dropdown-item>
  35. <el-dropdown-item command="12" v-if="[3].includes(scope.row.status) && $reportPermission(scope.row.id,[0,1])">添加追踪报告</el-dropdown-item>
  36. <el-dropdown-item command="13" v-if="(scope.row.type == 7 && [1,2,3].includes(scope.row.status)) && $reportPermission(scope.row.id,[0,1])">添加无效理由和证据</el-dropdown-item>
  37. <el-dropdown-item command="14" v-if="(scope.row.type == 7 && [1,2,3].includes(scope.row.status)) && $reportPermission(scope.row.id,[0,1])">证据文献</el-dropdown-item>
  38. <!-- <el-dropdown-item command="6" v-if="[2,3].includes(scope.row.status)&& scope.row.type != 4">导入 </el-dropdown-item> -->
  39. <el-dropdown-item command="7" divided style="color: red;" v-if=" $reportPermission(scope.row.id,[0,1])">删除 </el-dropdown-item>
  40. </el-dropdown-menu>
  41. </el-dropdown>
  42. </template>
  43. </el-table-column>
  44. </el-table>
  45. </div>
  46. </div>
  47. </template>
  48. <script>
  49. import mixins from '../mixins';
  50. export default {
  51. mixins:[mixins],
  52. props: {
  53. isOperate: {//控制显示
  54. type: [String,Number],
  55. default:''
  56. },
  57. column: {//显示栏位管理数组
  58. type: Array,
  59. default: () => {
  60. return [
  61. ]
  62. }
  63. }
  64. },
  65. data() {
  66. return {
  67. };
  68. },
  69. watch: {
  70. },
  71. mounted() {
  72. },
  73. methods: {
  74. // 排序
  75. sortChange({ column, prop, order }) {
  76. this.$emit('sort', { column, prop, order })
  77. },
  78. // 获取栏位数据
  79. getColumnData(row,key) {
  80. if (key == 'eventNames') {
  81. if (row[key]) {
  82. var a=''
  83. row[key].forEach(item => {
  84. a+=item.name + '</br>'
  85. });
  86. return a
  87. } else {
  88. return '--'
  89. }
  90. }
  91. },
  92. },
  93. };
  94. </script>
  95. <style lang="scss">
  96. </style>
  97. <style lang="scss" scoped></style>