feat: 🚀 按钮权限
This commit is contained in:
1
src/components.d.ts
vendored
1
src/components.d.ts
vendored
@@ -49,5 +49,6 @@ declare module 'vue' {
|
|||||||
IEpSwitchButton: typeof import('~icons/ep/switch-button')['default']
|
IEpSwitchButton: typeof import('~icons/ep/switch-button')['default']
|
||||||
RouterLink: typeof import('vue-router')['RouterLink']
|
RouterLink: typeof import('vue-router')['RouterLink']
|
||||||
RouterView: typeof import('vue-router')['RouterView']
|
RouterView: typeof import('vue-router')['RouterView']
|
||||||
|
Synchronous: typeof import('./components/ListBtns/components/Synchronous.vue')['default']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="common-btn-box1 font12" @click="handleBtnClick()" style="">
|
<div class="common-btn-box1 font12" @click="handleBtnClick()" v-if="isBtnShow[routeName]">
|
||||||
<span>新增</span>
|
<span>新增</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
|
const authStore = useAuthStore();
|
||||||
const $router = useRouter();
|
const $router = useRouter();
|
||||||
const routeName: string = $router.currentRoute.value.name as string;
|
const routeName: string = $router.currentRoute.value.name as string;
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
@@ -25,6 +27,16 @@ const handleBtnClick = () => {
|
|||||||
query: { sjtag: Math.random() * 36, type: "add", data: null }
|
query: { sjtag: Math.random() * 36, type: "add", data: null }
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
//渲染按钮
|
||||||
|
const isBtnShow = computed(() => {
|
||||||
|
const btnShowObj: any = {
|
||||||
|
boxMarkIndex: false,
|
||||||
|
subscriptionIndex: false
|
||||||
|
};
|
||||||
|
let btnName = routeName + "Add";
|
||||||
|
btnShowObj[routeName] = authStore.btnsAuthList.includes(btnName);
|
||||||
|
return btnShowObj;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="common-btn-box font12" @click="handleBtnClick()">
|
<div class="common-btn-box font12" @click="handleBtnClick()" v-if="isBtnShow[routeName]">
|
||||||
<span>删除</span>
|
<span>删除</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -8,7 +8,10 @@
|
|||||||
import { ElMessageBox } from "element-plus";
|
import { ElMessageBox } from "element-plus";
|
||||||
import { useMsg } from "@/hooks/useMsg";
|
import { useMsg } from "@/hooks/useMsg";
|
||||||
import { commitListApi } from "@/api/modules/global";
|
import { commitListApi } from "@/api/modules/global";
|
||||||
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
|
const authStore = useAuthStore();
|
||||||
const $router = useRouter();
|
const $router = useRouter();
|
||||||
|
const routeName: string = $router.currentRoute.value.name as string;
|
||||||
// 接口地址映射
|
// 接口地址映射
|
||||||
const URLS: Record<string, string> = {
|
const URLS: Record<string, string> = {
|
||||||
boxMarkIndex: "BoxMark/delete", //入库任务列表
|
boxMarkIndex: "BoxMark/delete", //入库任务列表
|
||||||
@@ -39,7 +42,6 @@ const handleBtnClick = () => {
|
|||||||
type: "warning"
|
type: "warning"
|
||||||
})
|
})
|
||||||
.then(async () => {
|
.then(async () => {
|
||||||
const routeName: string = $router.currentRoute.value.name as string;
|
|
||||||
const result = await commitListApi(URLS[routeName], { ids: ids });
|
const result = await commitListApi(URLS[routeName], { ids: ids });
|
||||||
if (result.status === 200) {
|
if (result.status === 200) {
|
||||||
useMsg("success", "删除成功 !");
|
useMsg("success", "删除成功 !");
|
||||||
@@ -52,6 +54,16 @@ const handleBtnClick = () => {
|
|||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
};
|
};
|
||||||
|
//渲染按钮
|
||||||
|
const isBtnShow = computed(() => {
|
||||||
|
const btnShowObj: any = {
|
||||||
|
boxMarkIndex: false,
|
||||||
|
subscriptionIndex: false
|
||||||
|
};
|
||||||
|
let btnName = routeName + "Del";
|
||||||
|
btnShowObj[routeName] = authStore.btnsAuthList.includes(btnName);
|
||||||
|
return btnShowObj;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="common-btn-box font12" @click="handleBtnClick()">
|
<div class="common-btn-box font12" @click="handleBtnClick()" v-if="isBtnShow[routeName]">
|
||||||
<span>导出</span>
|
<span>导出</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -7,23 +7,19 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useMsg } from "@/hooks/useMsg";
|
import { useMsg } from "@/hooks/useMsg";
|
||||||
import { commitListApi } from "@/api/modules/global";
|
import { commitListApi } from "@/api/modules/global";
|
||||||
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
|
const authStore = useAuthStore();
|
||||||
const $router = useRouter();
|
const $router = useRouter();
|
||||||
|
const routeName: string = $router.currentRoute.value.name as string;
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
selectionList?: any[];
|
selectionList?: any[];
|
||||||
handleChildBtnCallback?: () => void;
|
handleChildBtnCallback?: () => void;
|
||||||
ruleForm: any;
|
ruleForm: any;
|
||||||
}>();
|
}>();
|
||||||
// console.log(props.selectionList);
|
|
||||||
// const emits = defineEmits<{
|
|
||||||
// (e: "handleChildBtnCallback", result: Record<string, any>): void;
|
|
||||||
// }>();
|
|
||||||
|
|
||||||
// 接口地址映射
|
// 接口地址映射
|
||||||
const URLS: Record<string, string> = {
|
const URLS: Record<string, string> = {
|
||||||
ofInboundInstructionsList: "InStockTask/Export", //入库单任务列表
|
ofInboundInstructionsList: "InStockTask/Export", //入库单任务列表
|
||||||
outboundOrderList: "OutStock/Export", //出库单列表
|
outboundOrderList: "OutStock/Export", //出库单列表
|
||||||
// outboundTaskList: "OutStockTask/Export", //出库单任务列表
|
|
||||||
warehouseReceiptList: "InStock/Export", //入库单列表
|
warehouseReceiptList: "InStock/Export", //入库单列表
|
||||||
boxModificationsList: "ChangeBoxRecord/Export", //改箱列表
|
boxModificationsList: "ChangeBoxRecord/Export", //改箱列表
|
||||||
movingBoxesList: "MoveBoxRecord/Export", //移箱列表
|
movingBoxesList: "MoveBoxRecord/Export", //移箱列表
|
||||||
@@ -37,20 +33,35 @@ const URLS: Record<string, string> = {
|
|||||||
|
|
||||||
// 提交事件
|
// 提交事件
|
||||||
const handleBtnClick = async () => {
|
const handleBtnClick = async () => {
|
||||||
const routeName: string = $router.currentRoute.value.name as string;
|
|
||||||
// 根据不同的路由进行不同的参数解构
|
// 根据不同的路由进行不同的参数解构
|
||||||
console.log(props.ruleForm);
|
console.log(props.ruleForm);
|
||||||
// 内部处理好了请求后的数据再返回到父页面;
|
// 内部处理好了请求后的数据再返回到父页面;
|
||||||
const result = await commitListApi(URLS[routeName], { ...props.ruleForm });
|
const result = await commitListApi(URLS[routeName], { ...props.ruleForm });
|
||||||
if (result.status === 200) {
|
if (result.status === 200) {
|
||||||
useMsg("success", "导出成功请前往导出列表中进行下载 !");
|
useMsg("success", "导出成功请前往导出列表中进行下载 !");
|
||||||
// emits("handleChildBtnCallback", {
|
|
||||||
// type: "Retransmission"
|
|
||||||
// });
|
|
||||||
} else {
|
} else {
|
||||||
useMsg("warning", "导出失败,请稍后重试 !");
|
useMsg("warning", "导出失败,请稍后重试 !");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
//渲染按钮
|
||||||
|
const isBtnShow = computed(() => {
|
||||||
|
const btnShowObj: any = {
|
||||||
|
ofInboundInstructionsListExport: false, //入库单任务列表
|
||||||
|
outboundOrderListExport: false, //出库单列表
|
||||||
|
warehouseReceiptListExport: false, //入库单列表
|
||||||
|
boxModificationsListExport: false, //改箱列表
|
||||||
|
movingBoxesListExport: false, //移箱列表
|
||||||
|
inventoryListExport: false, //盘点列表
|
||||||
|
inboundOutboundRollbackListExport: false, //出入库回退列表
|
||||||
|
immediatelyExport: false, //即时库存
|
||||||
|
materialExport: false, //物料收发
|
||||||
|
boxStorageExport: false, //箱库存查询
|
||||||
|
finishedProductIndexExport: false //成品即时仓库
|
||||||
|
};
|
||||||
|
let btnName = routeName + "Export";
|
||||||
|
btnShowObj[routeName] = authStore.btnsAuthList.includes(btnName);
|
||||||
|
return btnShowObj;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dropdown>
|
<el-dropdown v-if="isBtnShow[routeName]">
|
||||||
<div class="common-btn-box font12" style="border: none">导出</div>
|
<div class="common-btn-box font12" style="border: none">导出</div>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
@@ -13,13 +13,16 @@
|
|||||||
<script setup lang="ts" name="Exprots">
|
<script setup lang="ts" name="Exprots">
|
||||||
import { useMsg } from "@/hooks/useMsg";
|
import { useMsg } from "@/hooks/useMsg";
|
||||||
import { commitListApi } from "@/api/modules/global";
|
import { commitListApi } from "@/api/modules/global";
|
||||||
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
|
const authStore = useAuthStore();
|
||||||
const $router = useRouter();
|
const $router = useRouter();
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
selectionList: any[];
|
selectionList: any[];
|
||||||
handleChildBtnCallback?: () => void;
|
handleChildBtnCallback?: () => void;
|
||||||
ruleForm: any;
|
ruleForm: any;
|
||||||
}>();
|
}>();
|
||||||
const routeName: any = ref($router.currentRoute.value.name);
|
// const routeName: any = ref($router.currentRoute.value.name);
|
||||||
|
const routeName: string = $router.currentRoute.value.name as string;
|
||||||
const emits = defineEmits<{
|
const emits = defineEmits<{
|
||||||
(e: "handleChildBtnCallback", result: Record<string, any>): void;
|
(e: "handleChildBtnCallback", result: Record<string, any>): void;
|
||||||
}>();
|
}>();
|
||||||
@@ -35,7 +38,7 @@ const URLS1: Record<string, string> = {
|
|||||||
const handleBtnClick = async () => {
|
const handleBtnClick = async () => {
|
||||||
// 根据不同的路由进行不同的参数解构
|
// 根据不同的路由进行不同的参数解构
|
||||||
// 内部处理好了请求后的数据再返回到父页面;
|
// 内部处理好了请求后的数据再返回到父页面;
|
||||||
const result = await commitListApi(URLS[routeName.value], { ...props.ruleForm });
|
const result = await commitListApi(URLS[routeName], { ...props.ruleForm });
|
||||||
if (result.status === 200) {
|
if (result.status === 200) {
|
||||||
useMsg("success", "导出成功请前往导出列表中进行下载 !");
|
useMsg("success", "导出成功请前往导出列表中进行下载 !");
|
||||||
emits("handleChildBtnCallback", {
|
emits("handleChildBtnCallback", {
|
||||||
@@ -54,7 +57,7 @@ const handleBtnClick1 = async () => {
|
|||||||
props.selectionList.forEach((item: any) => {
|
props.selectionList.forEach((item: any) => {
|
||||||
ids.push(item.id);
|
ids.push(item.id);
|
||||||
});
|
});
|
||||||
const result = await commitListApi(URLS1[routeName.value], { ...props.ruleForm, ids: ids });
|
const result = await commitListApi(URLS1[routeName], { ...props.ruleForm, ids: ids });
|
||||||
if (result.status === 200) {
|
if (result.status === 200) {
|
||||||
useMsg("success", "导出成功请前往导出列表中进行下载 !");
|
useMsg("success", "导出成功请前往导出列表中进行下载 !");
|
||||||
emits("handleChildBtnCallback", {
|
emits("handleChildBtnCallback", {
|
||||||
@@ -64,6 +67,15 @@ const handleBtnClick1 = async () => {
|
|||||||
useMsg("warning", "导出失败,请稍后重试 !");
|
useMsg("warning", "导出失败,请稍后重试 !");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
//渲染按钮
|
||||||
|
const isBtnShow = computed(() => {
|
||||||
|
const btnShowObj: any = {
|
||||||
|
outboundTaskList: false
|
||||||
|
};
|
||||||
|
let btnName = routeName + "Export";
|
||||||
|
btnShowObj[routeName] = authStore.btnsAuthList.includes(btnName);
|
||||||
|
return btnShowObj;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="common-btn-box font12" @click="handleBtnClick()">
|
<div class="common-btn-box font12" @click="handleBtnClick()" v-if="isBtnShow[routeName]">
|
||||||
<span>合并</span>
|
<span>合并</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -7,8 +7,10 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useMsg } from "@/hooks/useMsg";
|
import { useMsg } from "@/hooks/useMsg";
|
||||||
import { commitListApi } from "@/api/modules/global";
|
import { commitListApi } from "@/api/modules/global";
|
||||||
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
|
const authStore = useAuthStore();
|
||||||
const $router = useRouter();
|
const $router = useRouter();
|
||||||
|
const routeName: string = $router.currentRoute.value.name as string;
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
selectionList: any[];
|
selectionList: any[];
|
||||||
handleChildBtnCallback?: () => void;
|
handleChildBtnCallback?: () => void;
|
||||||
@@ -25,7 +27,6 @@ const URLS: Record<string, string> = {
|
|||||||
|
|
||||||
// 提交事件
|
// 提交事件
|
||||||
const handleBtnClick = async () => {
|
const handleBtnClick = async () => {
|
||||||
const routeName: string = $router.currentRoute.value.name as string;
|
|
||||||
if (!props.selectionList.length) {
|
if (!props.selectionList.length) {
|
||||||
useMsg("warning", "请选择对应的数据后进行操作 !");
|
useMsg("warning", "请选择对应的数据后进行操作 !");
|
||||||
return;
|
return;
|
||||||
@@ -49,6 +50,15 @@ const handleBtnClick = async () => {
|
|||||||
useMsg("error", result.message);
|
useMsg("error", result.message);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
//渲染按钮
|
||||||
|
const isBtnShow = computed(() => {
|
||||||
|
const btnShowObj: any = {
|
||||||
|
outboundTaskList: false
|
||||||
|
};
|
||||||
|
let btnName = routeName + "Merge";
|
||||||
|
btnShowObj[routeName] = authStore.btnsAuthList.includes(btnName);
|
||||||
|
return btnShowObj;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="common-btn-box font12" @click="handleBtnClick()">
|
<div class="common-btn-box font12" @click="handleBtnClick()" v-if="isBtnShow[routeName]">
|
||||||
<span>打印</span>
|
<span>打印</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
import { useMsg } from "@/hooks/useMsg";
|
import { useMsg } from "@/hooks/useMsg";
|
||||||
|
const authStore = useAuthStore();
|
||||||
|
const $router = useRouter();
|
||||||
|
const routeName: string = $router.currentRoute.value.name as string;
|
||||||
|
|
||||||
const props: any = defineProps<{
|
const props: any = defineProps<{
|
||||||
selectionList?: any[];
|
selectionList?: any[];
|
||||||
handleChildBtnCallback?: () => void;
|
handleChildBtnCallback?: () => void;
|
||||||
@@ -25,6 +30,15 @@ const handleBtnClick = () => {
|
|||||||
type: "Print"
|
type: "Print"
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
//渲染按钮
|
||||||
|
const isBtnShow = computed(() => {
|
||||||
|
const btnShowObj: any = {
|
||||||
|
boxMarkIndex: false
|
||||||
|
};
|
||||||
|
let btnName = routeName + "Print";
|
||||||
|
btnShowObj[routeName] = authStore.btnsAuthList.includes(btnName);
|
||||||
|
return btnShowObj;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="common-btn-box font12" @click="handleBtnClick()">
|
<div class="common-btn-box font12" @click="handleBtnClick()" v-if="isBtnShow[routeName]">
|
||||||
<span>刷新</span>
|
<span>刷新</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -7,8 +7,10 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useMsg } from "@/hooks/useMsg";
|
import { useMsg } from "@/hooks/useMsg";
|
||||||
import { commitListApi } from "@/api/modules/global";
|
import { commitListApi } from "@/api/modules/global";
|
||||||
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
|
const authStore = useAuthStore();
|
||||||
const $router = useRouter();
|
const $router = useRouter();
|
||||||
|
const routeName: string = $router.currentRoute.value.name as string;
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
selectionList: any[];
|
selectionList: any[];
|
||||||
handleChildBtnCallback?: () => void;
|
handleChildBtnCallback?: () => void;
|
||||||
@@ -26,15 +28,6 @@ const URLS: Record<string, string> = {
|
|||||||
|
|
||||||
// 提交事件
|
// 提交事件
|
||||||
const handleBtnClick = async () => {
|
const handleBtnClick = async () => {
|
||||||
const routeName: string = $router.currentRoute.value.name as string;
|
|
||||||
// if (!props.selectionList.length) {
|
|
||||||
// useMsg("warning", "请选择对应的数据后进行操作 !");
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// if (props.selectionList.length > 10) {
|
|
||||||
// useMsg("warning", "一次最多刷新10条数据 !");
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
let ids: number[] = [];
|
let ids: number[] = [];
|
||||||
props.selectionList.forEach((item: any) => {
|
props.selectionList.forEach((item: any) => {
|
||||||
ids.push(item.id);
|
ids.push(item.id);
|
||||||
@@ -55,6 +48,16 @@ const handleBtnClick = async () => {
|
|||||||
useMsg("error", result.message);
|
useMsg("error", result.message);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
//渲染按钮
|
||||||
|
const isBtnShow = computed(() => {
|
||||||
|
const btnShowObj: any = {
|
||||||
|
ofInboundInstructionsList: false,
|
||||||
|
outboundTaskList: false
|
||||||
|
};
|
||||||
|
let btnName = routeName + "Refresh";
|
||||||
|
btnShowObj[routeName] = authStore.btnsAuthList.includes(btnName);
|
||||||
|
return btnShowObj;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="common-btn-box font12" @click="handleBtnClick()">
|
<div class="common-btn-box font12" @click="handleBtnClick()" v-if="isBtnShow[routeName]">
|
||||||
<span>重传</span>
|
<span>重传</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -7,8 +7,10 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useMsg } from "@/hooks/useMsg";
|
import { useMsg } from "@/hooks/useMsg";
|
||||||
import { commitListApi } from "@/api/modules/global";
|
import { commitListApi } from "@/api/modules/global";
|
||||||
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
|
const authStore = useAuthStore();
|
||||||
const $router = useRouter();
|
const $router = useRouter();
|
||||||
|
const routeName: string = $router.currentRoute.value.name as string;
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
selectionList: any[];
|
selectionList: any[];
|
||||||
handleChildBtnCallback?: () => void;
|
handleChildBtnCallback?: () => void;
|
||||||
@@ -27,7 +29,6 @@ const URLS: Record<string, string> = {
|
|||||||
|
|
||||||
// 提交事件
|
// 提交事件
|
||||||
const handleBtnClick = async () => {
|
const handleBtnClick = async () => {
|
||||||
const routeName: string = $router.currentRoute.value.name as string;
|
|
||||||
if (!props.selectionList.length) {
|
if (!props.selectionList.length) {
|
||||||
useMsg("warning", "请选择需要重传的数据 !");
|
useMsg("warning", "请选择需要重传的数据 !");
|
||||||
return false;
|
return false;
|
||||||
@@ -37,10 +38,11 @@ const handleBtnClick = async () => {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
let some = props.selectionList.some((item: any) => {
|
let some = props.selectionList.some((item: any) => {
|
||||||
return item.successSync == "成功";
|
return item.successSync === "成功" || item.successSync === "--";
|
||||||
});
|
});
|
||||||
|
|
||||||
if (some) {
|
if (some) {
|
||||||
useMsg("warning", "请选择正确的数据 !");
|
useMsg("warning", "请选择同步结果为“同步失败和同步中”的数据进行重传 !");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
let ids: any[] = [];
|
let ids: any[] = [];
|
||||||
@@ -64,6 +66,17 @@ const handleBtnClick = async () => {
|
|||||||
useMsg("error", result.message);
|
useMsg("error", result.message);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
//渲染按钮
|
||||||
|
const isBtnShow = computed(() => {
|
||||||
|
const btnShowObj: any = {
|
||||||
|
outboundOrderList: false,
|
||||||
|
warehouseReceiptList: false,
|
||||||
|
inventoryList: false
|
||||||
|
};
|
||||||
|
let btnName = routeName + "Retransmission";
|
||||||
|
btnShowObj[routeName] = authStore.btnsAuthList.includes(btnName);
|
||||||
|
return btnShowObj;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="font12" @click="handleBtnClick()" style="display: flex; align-items: center">
|
<div v-if="isBtnShow[routeName]" class="font12" @click="handleBtnClick()" style="display: flex; align-items: center">
|
||||||
<div style="margin-right: 4px">
|
<div style="margin-right: 4px">
|
||||||
<span>打印份数设置</span>
|
<span>打印份数设置</span>
|
||||||
<el-tooltip class="box-item" effect="dark" content="默认打印2份,关闭打印1份" placement="top">
|
<el-tooltip class="box-item" effect="dark" content="默认打印2份,关闭打印1份" placement="top">
|
||||||
@@ -13,6 +13,10 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { QuestionFilled } from "@element-plus/icons-vue";
|
import { QuestionFilled } from "@element-plus/icons-vue";
|
||||||
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
|
const authStore = useAuthStore();
|
||||||
|
const $router = useRouter();
|
||||||
|
const routeName: string = $router.currentRoute.value.name as string;
|
||||||
const props: any = defineProps<{
|
const props: any = defineProps<{
|
||||||
selectionList?: any[];
|
selectionList?: any[];
|
||||||
handleChildBtnCallback?: () => void;
|
handleChildBtnCallback?: () => void;
|
||||||
@@ -27,15 +31,20 @@ const emits = defineEmits<{
|
|||||||
|
|
||||||
// 提交事件
|
// 提交事件
|
||||||
const handleBtnClick = () => {
|
const handleBtnClick = () => {
|
||||||
// if (!props.selectionList.length) {
|
|
||||||
// useMsg("warning", "请选择需要打印的数据 !");
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
emits("handleChildBtnCallback", {
|
emits("handleChildBtnCallback", {
|
||||||
type: "Switch",
|
type: "Switch",
|
||||||
data: switchValue.value ? 2 : 1
|
data: switchValue.value ? 2 : 1
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
//渲染按钮
|
||||||
|
const isBtnShow = computed(() => {
|
||||||
|
const btnShowObj: any = {
|
||||||
|
boxMarkIndex: false
|
||||||
|
};
|
||||||
|
let btnName = routeName + "Switch";
|
||||||
|
btnShowObj[routeName] = authStore.btnsAuthList.includes(btnName);
|
||||||
|
return btnShowObj;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
53
src/components/ListBtns/components/Synchronous.vue
Normal file
53
src/components/ListBtns/components/Synchronous.vue
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
<template>
|
||||||
|
<div class="common-btn-box font12" @click="handleBtnClick()" v-if="isBtnShow[routeName]">
|
||||||
|
<span>同步成功</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { useMsg } from "@/hooks/useMsg";
|
||||||
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
|
const authStore = useAuthStore();
|
||||||
|
const $router = useRouter();
|
||||||
|
const routeName: string = $router.currentRoute.value.name as string;
|
||||||
|
|
||||||
|
const props = defineProps<{
|
||||||
|
selectionList: any[];
|
||||||
|
handleChildBtnCallback?: () => void;
|
||||||
|
}>();
|
||||||
|
const emits = defineEmits<{
|
||||||
|
(e: "handleChildBtnCallback", result: Record<string, any>): void;
|
||||||
|
}>();
|
||||||
|
// 提交事件
|
||||||
|
const handleBtnClick = async () => {
|
||||||
|
if (!props.selectionList.length) {
|
||||||
|
useMsg("warning", "请选择需要修改状态的数据 !");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let isSuccess = props.selectionList.some((item: any) => {
|
||||||
|
return item.successSyncStatus == 1;
|
||||||
|
});
|
||||||
|
if (isSuccess) {
|
||||||
|
useMsg("warning", "请选择同步结果为“同步失败和同步中”的数据修改同步结果 !");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
emits("handleChildBtnCallback", {
|
||||||
|
type: "Synchronous"
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
//渲染按钮
|
||||||
|
const isBtnShow = computed(() => {
|
||||||
|
const btnShowObj: any = {
|
||||||
|
warehouseReceiptList: false
|
||||||
|
};
|
||||||
|
|
||||||
|
let btnName = routeName + "Synchronous";
|
||||||
|
btnShowObj[routeName] = authStore.btnsAuthList.includes(btnName);
|
||||||
|
return btnShowObj;
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
@import "../index.scss";
|
||||||
|
</style>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="common-btn-box font12" @click="handleBtnClick()">
|
<div class="common-btn-box font12" @click="handleBtnClick()" v-if="isBtnShow[routeName]">
|
||||||
<span>作废</span>
|
<span>作废</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -8,7 +8,10 @@
|
|||||||
import { ElMessageBox } from "element-plus";
|
import { ElMessageBox } from "element-plus";
|
||||||
import { useMsg } from "@/hooks/useMsg";
|
import { useMsg } from "@/hooks/useMsg";
|
||||||
import { commitListApi } from "@/api/modules/global";
|
import { commitListApi } from "@/api/modules/global";
|
||||||
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
|
const authStore = useAuthStore();
|
||||||
const $router = useRouter();
|
const $router = useRouter();
|
||||||
|
const routeName: string = $router.currentRoute.value.name as string;
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
selectionList: any[];
|
selectionList: any[];
|
||||||
@@ -27,8 +30,6 @@ const URLS: Record<string, string> = {
|
|||||||
|
|
||||||
// 提交事件
|
// 提交事件
|
||||||
const handleBtnClick = async () => {
|
const handleBtnClick = async () => {
|
||||||
const routeName: string = $router.currentRoute.value.name as string;
|
|
||||||
console.log(props.selectionList, "=props.selectionList=");
|
|
||||||
if (!props.selectionList.length) {
|
if (!props.selectionList.length) {
|
||||||
useMsg("warning", "请选择对应的数据后进行操作 !");
|
useMsg("warning", "请选择对应的数据后进行操作 !");
|
||||||
return;
|
return;
|
||||||
@@ -73,6 +74,16 @@ const handleBtnClick = async () => {
|
|||||||
// });
|
// });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
//渲染按钮
|
||||||
|
const isBtnShow = computed(() => {
|
||||||
|
const btnShowObj: any = {
|
||||||
|
outboundTaskList: false, //出库任务列表
|
||||||
|
ofInboundInstructionsList: false //入库任务列表
|
||||||
|
};
|
||||||
|
let btnName = routeName + "ToVoid";
|
||||||
|
btnShowObj[routeName] = authStore.btnsAuthList.includes(btnName);
|
||||||
|
return btnShowObj;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="common-btn-box font12" @click="handleBtnClick()">
|
<div class="common-btn-box font12" @click="handleBtnClick()" v-if="isBtnShow[routeName]">
|
||||||
<span>反作废</span>
|
<span>反作废</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -8,8 +8,10 @@
|
|||||||
import { ElMessageBox } from "element-plus";
|
import { ElMessageBox } from "element-plus";
|
||||||
import { useMsg } from "@/hooks/useMsg";
|
import { useMsg } from "@/hooks/useMsg";
|
||||||
import { commitListApi } from "@/api/modules/global";
|
import { commitListApi } from "@/api/modules/global";
|
||||||
|
import { useAuthStore } from "@/stores/modules/auth";
|
||||||
|
const authStore = useAuthStore();
|
||||||
const $router = useRouter();
|
const $router = useRouter();
|
||||||
|
const routeName: string = $router.currentRoute.value.name as string;
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
selectionList: any[];
|
selectionList: any[];
|
||||||
handleChildBtnCallback?: () => void;
|
handleChildBtnCallback?: () => void;
|
||||||
@@ -30,7 +32,6 @@ const WARNS: Record<string, string> = {
|
|||||||
};
|
};
|
||||||
// 提交事件
|
// 提交事件
|
||||||
const handleBtnClick = async () => {
|
const handleBtnClick = async () => {
|
||||||
const routeName: string = $router.currentRoute.value.name as string;
|
|
||||||
console.log(props.selectionList, "=props.selectionList=");
|
console.log(props.selectionList, "=props.selectionList=");
|
||||||
if (!props.selectionList.length) {
|
if (!props.selectionList.length) {
|
||||||
useMsg("warning", "请选择对应的数据后进行操作 !");
|
useMsg("warning", "请选择对应的数据后进行操作 !");
|
||||||
@@ -78,6 +79,16 @@ const handleBtnClick = async () => {
|
|||||||
// });
|
// });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
//渲染按钮
|
||||||
|
const isBtnShow = computed(() => {
|
||||||
|
const btnShowObj: any = {
|
||||||
|
outboundTaskList: false,
|
||||||
|
ofInboundInstructionsList: false
|
||||||
|
};
|
||||||
|
let btnName = routeName + "NoToVoid";
|
||||||
|
btnShowObj[routeName] = authStore.btnsAuthList.includes(btnName);
|
||||||
|
return btnShowObj;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ import Del from "./components/Del.vue";
|
|||||||
import Print from "./components/Print.vue";
|
import Print from "./components/Print.vue";
|
||||||
import Switch from "./components/Switch.vue";
|
import Switch from "./components/Switch.vue";
|
||||||
import noToVoid from "./components/noToVoid.vue";
|
import noToVoid from "./components/noToVoid.vue";
|
||||||
|
import Synchronous from "./components/Synchronous.vue";
|
||||||
const $router = useRouter();
|
const $router = useRouter();
|
||||||
|
|
||||||
const routeName: any = ref($router.currentRoute.value.name);
|
const routeName: any = ref($router.currentRoute.value.name);
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
@@ -38,7 +40,7 @@ const emits = defineEmits<{
|
|||||||
}>();
|
}>();
|
||||||
const BTNS_ROUTE: any = {
|
const BTNS_ROUTE: any = {
|
||||||
ofInboundInstructionsList: [ToVoid, noToVoid, Export, Refresh],
|
ofInboundInstructionsList: [ToVoid, noToVoid, Export, Refresh],
|
||||||
warehouseReceiptList: [Retransmission, Export],
|
warehouseReceiptList: [Retransmission, Export, Synchronous],
|
||||||
outboundOrderList: [Export],
|
outboundOrderList: [Export],
|
||||||
outboundTaskList: [Merge, ToVoid, noToVoid, Refresh, ExprotSelect],
|
outboundTaskList: [Merge, ToVoid, noToVoid, Refresh, ExprotSelect],
|
||||||
inboundOutboundRollbackList: [Export],
|
inboundOutboundRollbackList: [Export],
|
||||||
|
|||||||
@@ -105,7 +105,6 @@ const props = withDefaults(defineProps<ProTableProps>(), {
|
|||||||
let ruleFormParams = ref(props.ruleForm);
|
let ruleFormParams = ref(props.ruleForm);
|
||||||
const $router = useRouter();
|
const $router = useRouter();
|
||||||
const routeName: any = ref($router.currentRoute.value.name);
|
const routeName: any = ref($router.currentRoute.value.name);
|
||||||
console.log(routeName.value, "=routerName=");
|
|
||||||
// 表格 DOM 元素
|
// 表格 DOM 元素
|
||||||
const tableRef = ref<InstanceType<typeof ElTable>>();
|
const tableRef = ref<InstanceType<typeof ElTable>>();
|
||||||
// 清空选中数据列表
|
// 清空选中数据列表
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ const router = useRouter();
|
|||||||
const authStore = useAuthStore();
|
const authStore = useAuthStore();
|
||||||
// const menuList = computed(() => authStore.flatMenuListGet.filter(item => !item.hidden));
|
// const menuList = computed(() => authStore.flatMenuListGet.filter(item => !item.hidden));
|
||||||
const menuList = computed(() =>
|
const menuList = computed(() =>
|
||||||
authStore.flatMenuListGet.filter(item => {
|
authStore.flatMenuListGet.filter((item: any) => {
|
||||||
const ON_PATH = ["收货入库", "发货出库", "盘点", "报表", "其他库内操作"];
|
const ON_PATH = ["收货入库", "发货出库", "盘点", "报表", "其他库内操作"];
|
||||||
return !item.hidden && !ON_PATH.includes(item.meta.title);
|
return !item.hidden && !ON_PATH.includes(item.meta.title);
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ const tabsDrop = () => {
|
|||||||
|
|
||||||
// 初始化需要固定的 tabs
|
// 初始化需要固定的 tabs
|
||||||
const initTabs = () => {
|
const initTabs = () => {
|
||||||
authStore.flatMenuListGet.forEach(item => {
|
authStore.flatMenuListGet.forEach((item: any) => {
|
||||||
if (item.meta.isAffix && !item.hidden && !item.meta.isFull) {
|
if (item.meta.isAffix && !item.hidden && !item.meta.isFull) {
|
||||||
const tabsParams = {
|
const tabsParams = {
|
||||||
icon: item.meta.icon,
|
icon: item.meta.icon,
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ router.beforeEach(async (to, from, next) => {
|
|||||||
* */
|
* */
|
||||||
export const resetRouter = () => {
|
export const resetRouter = () => {
|
||||||
const authStore = useAuthStore();
|
const authStore = useAuthStore();
|
||||||
authStore.flatMenuListGet.forEach(route => {
|
authStore.flatMenuListGet.forEach((route: any) => {
|
||||||
const { name } = route;
|
const { name } = route;
|
||||||
if (name && router.hasRoute(name)) router.removeRoute(name);
|
if (name && router.hasRoute(name)) router.removeRoute(name);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ export const initDynamicRouter = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 3.添加动态路由
|
// 3.添加动态路由
|
||||||
authStore.flatMenuListGet.forEach(item => {
|
authStore.flatMenuListGet.forEach((item: any) => {
|
||||||
item.children && delete item.children;
|
item.children && delete item.children;
|
||||||
if (item.component && typeof item.component == "string") {
|
if (item.component && typeof item.component == "string") {
|
||||||
item.component = modules["/src/views" + item.component + ".vue"];
|
item.component = modules["/src/views" + item.component + ".vue"];
|
||||||
|
|||||||
Reference in New Issue
Block a user