<template>
|
<div>
|
<BasicTable @register="registerTable">
|
<template #toolbar>
|
<!-- <a-button type="primary" @click="handleRenew"> 批量更新 </a-button> -->
|
<a-button type="primary" @click="handleCreate" v-if="HasRole"> 新增物料 </a-button>
|
</template>
|
<template #action="{ record }">
|
<!-- b87079a98deb456a9cfa506bfd1a7bc6 -->
|
<TableAction
|
:actions="[
|
{
|
icon: 'clarity:note-edit-line',
|
onClick: handleEdit.bind(null, record),
|
},
|
{
|
icon: 'ant-design:delete-outlined',
|
color: 'error',
|
popConfirm: {
|
title: '是否确认删除?',
|
placement: 'left',
|
confirm: handleDelete.bind(null, record),
|
},
|
},
|
// {
|
// icon: 'binding|svg',
|
// tooltip: '绑定工艺',
|
// onClick: handleBinding.bind(null, record),
|
// },
|
]"
|
/>
|
</template>
|
</BasicTable>
|
<MaterialDrawer @register="registerDrawer" @success="handleSuccess" />
|
<MaterialModal @register="registerModal" />
|
</div>
|
</template>
|
<script lang="ts" setup>
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
import { useDrawer } from '/@/components/Drawer';
|
import MaterialDrawer from './MaterialDrawer.vue';
|
import MaterialModal from './MaterialModal.vue';
|
import { columns, searchFormSchema } from './Material.data';
|
import { DeleteMaterial, getMaterialListByPage } from '../../../../api/tigerapi/bas/MaterialInfo';
|
import { useModal } from '/@/components/Modal';
|
import { getListByPage } from '/@/api/tigerapi/system';
|
import { useGo } from '/@/hooks/web/usePage';
|
import { useRouter } from 'vue-router';
|
import { onMounted, ref } from 'vue';
|
import { getMenuButtons } from '/@/api/sys/menu';
|
import { useUserStore } from '/@/store/modules/user';
|
|
const go = useGo();
|
const { currentRoute } = useRouter();
|
const [registerDrawer, { openDrawer }] = useDrawer();
|
const [registerModal, { openModal: openMaterialModal }] = useModal();
|
const buttons = ref([]);
|
const HasRole = ref(false);
|
const [registerTable, { reload }] = useTable({
|
title: '物料列表',
|
api: getListByPage,
|
searchInfo: { TABLE_NAME: 'BAS_ITEM' },
|
columns,
|
formConfig: {
|
labelWidth: 120,
|
schemas: searchFormSchema,
|
},
|
useSearchForm: true,
|
showTableSetting: true,
|
bordered: true,
|
showIndexColumn: false,
|
actionColumn: {
|
width: 100,
|
title: '操作',
|
dataIndex: 'action',
|
slots: { customRender: 'action' },
|
},
|
});
|
function handleCreate() {
|
openDrawer(true, {
|
isUpdate: false,
|
});
|
}
|
function handleRenew() {
|
openMaterialModal(true, {
|
data: 'content',
|
info: 'Info',
|
});
|
}
|
function handleSuccess() {
|
reload();
|
}
|
|
function handleEdit(record: Recordable) {
|
openDrawer(true, {
|
record,
|
isUpdate: true,
|
});
|
}
|
function handleDelete(record: Recordable) {
|
console.log(record);
|
//删除物料
|
const apiAction = DeleteMaterial(record);
|
apiAction.then((action) => {
|
if (action.IsSuccessed) {
|
reload();
|
}
|
});
|
}
|
|
onMounted(async () => {
|
buttons.value = (await getMenuButtons(currentRoute.value.meta.menuCode as string)).Data.Items;
|
const roles = useUserStore().getUserInfo.roles;
|
const btnsByrole = buttons.value.filter((btn) => roles.some((item) => item.MENU_CODE === btn['FUNC_CODE']));
|
});
|
</script>
|