| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <template>
- <el-dropdown v-if="operateIsPermissionByPath('edit', 'view') || operateIsPermissionByPath('edit', 'download') || (operateIsPermissionByPath('edit', 'share') && props.searchType === '0')">
- <span style="margin-left: 8px;" class="oper-span more-btn">
- 更多
- <el-icon class="el-icon--right">
- <arrow-down />
- </el-icon>
- </span>
- <template #dropdown>
- <el-dropdown-menu>
- <el-dropdown-item :disabled="menu.permiss ? !operateIsPermissionByPath(menu.permiss, menu.key) : !operateIsPermissionByPath(menu.key)" v-for="menu in menus" :key="menu.key"
- @click="menu.onClick()">
- {{ menu.label }}
- </el-dropdown-item>
- </el-dropdown-menu>
- </template>
- </el-dropdown>
- </template>
- <script setup lang="ts">
- import { computed } from "vue";
- import { shareCase, downloadCase } from "./quisk";
- import { copyCase, getCaseSceneList } from "@/store/case";
- import { alert } from "@/helper/message";
- import { operateIsPermissionByPath } from "@/directive/permission";
- import { usePagging } from "@/hook/pagging";
- const props = defineProps<{
- caseId: any;
- projectName?: string;
- title?: string;
- prevMenu?: any;
- lastMenu?: any;
- searchType?: string;
- }>();
- const appId = import.meta.env.VITE_APP_APP;
- const emit = defineEmits(['copy', 'refresh']);
- const menus = computed(() => {
- if (!props.caseId) {
- return [];
- }
- const caseId = props.caseId;
- return [
- ...(props.prevMenu || []).map((item) => ({
- ...item,
- onClick: () => item.onClick(caseId),
- })),
- {
- key: "view",
- label: "复制",
- permiss: 'edit',
- onClick: () => {
- emit('copy', props.caseId);
- }
- },
- ...(props.searchType === '0' ? [{
- key: "share",
- label: "权限",
- permiss: 'edit',
- onClick: async () => {
- shareCase({ caseId: caseId, projectName: props.projectName || '' });
- },
- }] : []),
- // {
- // key: "download",
- // label: "下载",
- // permiss: 'edit',
- // onClick: async () => {
- // downloadCase({ caseId, title: props.title || '' });
- // },
- // },
- ...(props.lastMenu || []).map((item) => ({
- ...item,
- onClick: () => item.onClick(caseId),
- })),
- ];
- });
- </script>
|