tx
杨世强 1 year ago
parent 77b09bec49
commit 0edbecba34

@ -25,7 +25,12 @@ export function deleteBusinessWarehouse(id: number) {
return defHttp.delete({ url: '/system/business-warehouse/delete?id=' + id })
}
// 导出业务线/仓库 Excel
// 导出业务线 Excel
export function exportBusinessWarehouse(params) {
return defHttp.download({ url: '/xxjj/business-warehouse/export-excel', params }, '业务线/仓库.xls')
return defHttp.download({ url: '/system/business-warehouse/export-excel', params }, '业务线.xls')
}
// 查询业务线(精简)列表
export function listSimpleBusiness() {
return defHttp.get({ url: '/system/business-warehouse/list-all-simple' })
}

@ -156,9 +156,11 @@ export enum DICT_TYPE {
// ============= BUSINESSLINE 模块=================
BUSINESS_TYPE = 'business_type', //业务线类型
DIFF_FLAG = 'diff_flag',
CLASS_STATUS = 'class_status', //类别状态
DUTY_TYPE = 'duty_type', //业务线的所属分类
BUSINESS_ORGANIZATION_TYPE = 'business_organization_type', //业务组织类型
// ============= ENTERPRISEBRANCHING 模块=================
ENTERPRISE_TYPE = 'enterprise_type', //业务线类型
CLASS_STATUS = 'class_status',
}

@ -0,0 +1,57 @@
<template>
<BasicModal v-bind="$attrs" @register="registerModal" :title="isUpdate ? t('action.edit') : t('action.create')" @ok="handleSubmit">
<BasicForm @register="registerForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import { ref, unref } from 'vue'
import { useI18n } from '@/hooks/web/useI18n'
import { useMessage } from '@/hooks/web/useMessage'
import { BasicForm, useForm } from '@/components/Form'
import { BasicModal, useModalInner } from '@/components/Modal'
import { createFormSchema, updateFormSchema } from './businessOrganization.data'
import { createBusinessWarehouse, getBusinessWarehouse, updateBusinessWarehouse } from '@/api/xxjj/businessWarehouse'
defineOptions({ name: 'BusinessOrganizationModal' })
const { t } = useI18n()
const { createMessage } = useMessage()
const emit = defineEmits(['success', 'register'])
const isUpdate = ref(true)
const [registerForm, { setFieldsValue, resetFields, resetSchema, validate }] = useForm({
labelWidth: 120,
baseColProps: { span: 24 },
schemas: createFormSchema,
showActionButtonGroup: false,
actionColOptions: { span: 23 }
})
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields()
setModalProps({ confirmLoading: false })
isUpdate.value = !!data?.isUpdate
if (unref(isUpdate)) {
resetSchema(updateFormSchema)
const res = await getBusinessWarehouse(data.record.id)
setFieldsValue({ ...res })
}
})
async function handleSubmit() {
try {
const values = await validate()
setModalProps({ confirmLoading: true })
if (unref(isUpdate)) {
await updateBusinessWarehouse(values)
} else {
await createBusinessWarehouse(values)
}
closeModal()
emit('success')
createMessage.success(t('common.saveSuccessText'))
} finally {
setModalProps({ confirmLoading: false })
}
}
</script>

@ -0,0 +1,258 @@
import { BasicColumn, FormSchema, useRender } from '@/components/Table'
import { DICT_TYPE, getDictOptions } from '@/utils/dict'
import { listSimpleBusiness } from '@/api/xxjj/businessWarehouse'
export const columns: BasicColumn[] = [
{
title: '业务线名称',
dataIndex: 'name',
width: 160
},
{
title: '类型',
dataIndex: 'type',
width: 180,
customRender: ({ text }) => {
return useRender.renderDict(text, DICT_TYPE.BUSINESS_ORGANIZATION_TYPE)
}
},
{
title: '状态',
dataIndex: 'type',
width: 180,
customRender: ({ text }) => {
return useRender.renderDict(text, DICT_TYPE.CLASS_STATUS)
}
},
{
title: '成员数量',
dataIndex: 'employeeNum',
width: 160
},
{
title: '主管人员',
dataIndex: 'belongUserId',
width: 160
},
{
title: '描述',
dataIndex: 'description',
width: 160
},
{
title: '更新时间',
dataIndex: 'updateTime',
width: 180,
customRender: ({ text }) => {
return useRender.renderDate(text)
}
},
]
export const searchFormSchema: FormSchema[] = [
{
label: '业务线名称',
field: 'name',
component: 'Input',
colProps: { span: 8 }
},
// {
// label: '类型',
// field: 'type',
// component: 'Select',
// componentProps: {
// options: getDictOptions(DICT_TYPE.BUSINESS_ORGANIZATION_TYPE)
// },
// colProps: { span: 8 }
// },
// {
// label: '所属行业',
// field: 'industry',
// component: 'Select',
// componentProps: {
// options: getDictOptions(DICT_TYPE.DUTY_TYPE)
// },
// colProps: { span: 8 }
// },
// {
// label: '成立时间',
// field: 'establishDate',
// component: 'RangePicker',
// colProps: { span: 8 }
// },
// {
// label: '归属人员',
// field: 'belongUserId',
// component: 'Input',
// colProps: { span: 8 }
// },
// {
// label: '品牌/业务线/事业群名称',
// field: 'brandName',
// component: 'Input',
// colProps: { span: 8 }
// },
// {
// label: '业务线仓库区分(0业务线,1仓库)',
// field: 'diffFlag',
// component: 'Select',
// componentProps: {
// options: getDictOptions(DICT_TYPE.DIFF_FLAG)
// },
// colProps: { span: 8 }
// },
]
export const createFormSchema: FormSchema[] = [
{
label: '编号',
field: 'id',
show: false,
component: 'Input'
},
{
label: '业务组织编号',
field: 'businessCode',
required: true,
component: 'Input'
},
{
label: '业务组织名称',
field: 'name',
required: true,
component: 'Input'
},
{
label: '业务组织简称',
field: 'businessSimple',
component: 'Input'
},
{
label: '业务组织简称',
field: 'businessSimple',
component: 'Input'
},
{
label: '隶属业务线',
field: 'parentId',
required: true,
component: 'ApiTreeSelect',
componentProps: {
api: () => listSimpleBusiness(),
fieldNames: {
label: 'name',
key: 'id',
value: 'id',
},
handleTree: 'id',
},
},
{
label: '类型',
field: 'type',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.BUSINESS_ORGANIZATION_TYPE, 'number')
}
},
{
label: '所在城市',
field: 'city',
component: 'Input'
},
{
label: '成立时间',
field: 'establishDate',
component: 'DatePicker'
},
{
label: '归属人员',
field: 'belongUserId',
component: 'Input'
},
{
label: '介绍',
field: 'description',
component: 'InputTextArea'
},
{
label: '区分标志',
field: 'diffFlag',
required: true,
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.DIFF_FLAG, 'number')
}
},
]
export const updateFormSchema: FormSchema[] = [
{
label: '编号',
field: 'id',
show: false,
component: 'Input'
},
{
label: '业务线编号',
field: 'businessCode',
required: true,
component: 'Input'
},
{
label: '业务线名称',
field: 'name',
required: true,
component: 'Input'
},
{
label: '业务线简称',
field: 'businessSimple',
component: 'Input'
},
{
label: '类型',
field: 'type',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.BUSINESS_ORGANIZATION_TYPE, 'number')
}
},
{
label: '所属行业',
field: 'industry',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.DUTY_TYPE, 'number')
}
},
{
label: '所在城市',
field: 'city',
component: 'Input'
},
{
label: '成立时间',
field: 'establishDate',
component: 'DatePicker'
},
{
label: '介绍',
field: 'description',
component: 'InputTextArea'
},
{
label: '归属人员',
field: 'belongUserId',
component: 'Input'
},
{
label: '区分标志',
field: 'diffFlag',
required: true,
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.DIFF_FLAG, 'number')
}
},
]

@ -0,0 +1,92 @@
<template>
<div>
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" v-auth="['system:business-warehouse:create']" :preIcon="IconEnum.ADD" @click="handleCreate">
{{ t('action.create') }}
</a-button>
<a-button type="warning" v-auth="['system:business-warehouse:export']" :preIcon="IconEnum.EXPORT" @click="handleExport">
{{ t('action.export') }}
</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{ icon: IconEnum.EDIT, label: t('action.edit'), auth: 'system:business-warehouse:update', onClick: handleEdit.bind(null, record) },
{
icon: IconEnum.DELETE,
color: 'error',
label: t('action.delete'),
auth: 'system:business-warehouse:delete',
popConfirm: {
title: t('common.delMessage'),
placement: 'left',
confirm: handleDelete.bind(null, record)
}
}
]"
/>
</template>
</template>
</BasicTable>
<BusinessOrganizationModal @register="registerModal" @success="reload()" />
</div>
</template>
<script lang="ts" setup>
import { useI18n } from '@/hooks/web/useI18n'
import { useMessage } from '@/hooks/web/useMessage'
import { useModal } from '@/components/Modal'
import BusinessOrganizationModal from './BusinessOrganizationModal.vue'
import { IconEnum } from '@/enums/appEnum'
import { BasicTable, useTable, TableAction } from '@/components/Table'
import { deleteBusinessWarehouse, exportBusinessWarehouse, getBusinessWarehousePage } from '@/api/xxjj/businessWarehouse'
import { columns, searchFormSchema } from './businessOrganization.data'
defineOptions({ name: 'BusinessOrganization' })
const { t } = useI18n()
const { createConfirm, createMessage } = useMessage()
const [registerModal, { openModal }] = useModal()
const [registerTable, { getForm, reload }] = useTable({
title: '业务线列表',
api: getBusinessWarehousePage,
columns,
formConfig: { labelWidth: 120, schemas: searchFormSchema },
useSearchForm: true,
showTableSetting: true,
actionColumn: {
width: 140,
title: t('common.action'),
dataIndex: 'action',
fixed: 'right'
}
})
function handleCreate() {
openModal(true, { isUpdate: false })
}
function handleEdit(record: Recordable) {
openModal(true, { record, isUpdate: true })
}
async function handleExport() {
createConfirm({
title: t('common.exportTitle'),
iconType: 'warning',
content: t('common.exportMessage'),
async onOk() {
await exportBusinessWarehouse(getForm().getFieldsValue())
createMessage.success(t('common.exportSuccessText'))
}
})
}
async function handleDelete(record: Recordable) {
await deleteBusinessWarehouse(record.id)
createMessage.success(t('common.delSuccessText'))
reload()
}
</script>

@ -0,0 +1,42 @@
<script lang="ts" setup>
import { onMounted, ref } from 'vue'
import type { TreeItem } from '@/components/Tree'
import { BasicTree } from '@/components/Tree'
import { listSimpleDept } from '@/api/system/dept'
import { listSimpleBusiness } from '@/api/xxjj/businessWarehouse'
import { handleTree } from '@/utils/tree'
defineOptions({ name: 'SystemDeptTree' })
const emit = defineEmits(['select'])
const treeData = ref<TreeItem[]>([])
async function fetch() {
const res = await listSimpleBusiness()
treeData.value = handleTree(res, 'id')
}
function handleSelect(keys) {
emit('select', keys[0])
}
onMounted(() => {
fetch()
})
</script>
<template>
<div class="m-4 mr-0 overflow-hidden">
<BasicTree
title="业务线列表"
toolbar
search
tree-wrapper-class-name="h-[calc(100%-35px)] overflow-auto"
:click-row-to-expand="false"
:tree-data="treeData"
:field-names="{ key: 'id', title: 'name' }"
@select="handleSelect"
/>
</div>
</template>

@ -0,0 +1,57 @@
<template>
<BasicModal v-bind="$attrs" @register="registerModal" :title="isUpdate ? t('action.edit') : t('action.create')" @ok="handleSubmit">
<BasicForm @register="registerForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import { ref, unref } from 'vue'
import { useI18n } from '@/hooks/web/useI18n'
import { useMessage } from '@/hooks/web/useMessage'
import { BasicForm, useForm } from '@/components/Form'
import { BasicModal, useModalInner } from '@/components/Modal'
import { createFormSchema, updateFormSchema } from './businessWarehouse.data'
import { createBusinessWarehouse, getBusinessWarehouse, updateBusinessWarehouse } from '@/api/xxjj/businessWarehouse'
defineOptions({ name: 'BusinessWarehouseModal' })
const { t } = useI18n()
const { createMessage } = useMessage()
const emit = defineEmits(['success', 'register'])
const isUpdate = ref(true)
const [registerForm, { setFieldsValue, resetFields, resetSchema, validate }] = useForm({
labelWidth: 120,
baseColProps: { span: 24 },
schemas: createFormSchema,
showActionButtonGroup: false,
actionColOptions: { span: 23 }
})
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields()
setModalProps({ confirmLoading: false })
isUpdate.value = !!data?.isUpdate
if (unref(isUpdate)) {
resetSchema(updateFormSchema)
const res = await getBusinessWarehouse(data.record.id)
setFieldsValue({ ...res })
}
})
async function handleSubmit() {
try {
const values = await validate()
setModalProps({ confirmLoading: true })
if (unref(isUpdate)) {
await updateBusinessWarehouse(values)
} else {
await createBusinessWarehouse(values)
}
closeModal()
emit('success')
createMessage.success(t('common.saveSuccessText'))
} finally {
setModalProps({ confirmLoading: false })
}
}
</script>

@ -0,0 +1,250 @@
import { BasicColumn, FormSchema, useRender } from '@/components/Table'
import { DICT_TYPE, getDictOptions } from '@/utils/dict'
export const columns: BasicColumn[] = [
{
title: '业务线名称',
dataIndex: 'name',
width: 160
},
{
title: '类型',
dataIndex: 'type',
width: 180,
customRender: ({ text }) => {
return useRender.renderDict(text, DICT_TYPE.BUSINESS_TYPE)
}
},
{
title: '状态',
dataIndex: 'type',
width: 180,
customRender: ({ text }) => {
return useRender.renderDict(text, DICT_TYPE.CLASS_STATUS)
}
},
{
title: '关联机构',
dataIndex: 'institutionNum',
width: 160
},
{
title: '成员数量',
dataIndex: 'employeeNum',
width: 160
},
{
title: '主管人员',
dataIndex: 'belongUserId',
width: 160
},
{
title: '介绍',
dataIndex: 'description',
width: 160
},
{
title: '更新时间',
dataIndex: 'updateTime',
width: 180,
customRender: ({ text }) => {
return useRender.renderDate(text)
}
},
]
export const searchFormSchema: FormSchema[] = [
{
label: '业务线名称',
field: 'name',
component: 'Input',
colProps: { span: 8 }
},
// {
// label: '类型',
// field: 'type',
// component: 'Select',
// componentProps: {
// options: getDictOptions(DICT_TYPE.BUSINESS_TYPE)
// },
// colProps: { span: 8 }
// },
// {
// label: '所属行业',
// field: 'industry',
// component: 'Select',
// componentProps: {
// options: getDictOptions(DICT_TYPE.DUTY_TYPE)
// },
// colProps: { span: 8 }
// },
// {
// label: '成立时间',
// field: 'establishDate',
// component: 'RangePicker',
// colProps: { span: 8 }
// },
// {
// label: '归属人员',
// field: 'belongUserId',
// component: 'Input',
// colProps: { span: 8 }
// },
// {
// label: '品牌/业务线/事业群名称',
// field: 'brandName',
// component: 'Input',
// colProps: { span: 8 }
// },
// {
// label: '业务线仓库区分(0业务线,1仓库)',
// field: 'diffFlag',
// component: 'Select',
// componentProps: {
// options: getDictOptions(DICT_TYPE.DIFF_FLAG)
// },
// colProps: { span: 8 }
// },
]
export const createFormSchema: FormSchema[] = [
{
label: '编号',
field: 'id',
show: false,
component: 'Input'
},
{
label: '业务线编号',
field: 'businessCode',
required: true,
component: 'Input'
},
{
label: '业务线名称',
field: 'name',
required: true,
component: 'Input'
},
{
label: '业务线简称',
field: 'businessSimple',
component: 'Input'
},
{
label: '类型',
field: 'type',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.BUSINESS_TYPE, 'number')
}
},
{
label: '所属行业',
field: 'industry',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.DUTY_TYPE, 'number')
}
},
{
label: '所在城市',
field: 'city',
component: 'Input'
},
{
label: '成立时间',
field: 'establishDate',
component: 'DatePicker'
},
{
label: '介绍',
field: 'description',
component: 'InputTextArea'
},
{
label: '归属人员',
field: 'belongUserId',
component: 'Input'
},
{
label: '区分标志',
field: 'diffFlag',
required: true,
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.DIFF_FLAG, 'number')
}
},
]
export const updateFormSchema: FormSchema[] = [
{
label: '编号',
field: 'id',
show: false,
component: 'Input'
},
{
label: '业务线编号',
field: 'businessCode',
required: true,
component: 'Input'
},
{
label: '业务线名称',
field: 'name',
required: true,
component: 'Input'
},
{
label: '业务线简称',
field: 'businessSimple',
component: 'Input'
},
{
label: '类型',
field: 'type',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.BUSINESS_TYPE, 'number')
}
},
{
label: '所属行业',
field: 'industry',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.DUTY_TYPE, 'number')
}
},
{
label: '所在城市',
field: 'city',
component: 'Input'
},
{
label: '成立时间',
field: 'establishDate',
component: 'DatePicker'
},
{
label: '介绍',
field: 'description',
component: 'InputTextArea'
},
{
label: '归属人员',
field: 'belongUserId',
component: 'Input'
},
{
label: '区分标志',
field: 'diffFlag',
required: true,
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.DIFF_FLAG, 'number')
}
},
]

@ -0,0 +1,102 @@
<template>
<div class="flex">
<BusinessTree class="w-1/4 xl:w-1/5" @select="handleSelect" />
<BasicTable class="w-3/4 xl:w-4/5" :search-info="searchInfo" @register="registerTable">
<template #toolbar>
<a-button type="primary" v-auth="['system:business-warehouse:create']" :preIcon="IconEnum.ADD" @click="handleCreate">
{{ t('action.create') }}
</a-button>
<a-button type="warning" v-auth="['system:business-warehouse:export']" :preIcon="IconEnum.EXPORT" @click="handleExport">
{{ t('action.export') }}
</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{ icon: IconEnum.EDIT, label: t('action.edit'), auth: 'system:business-warehouse:update', onClick: handleEdit.bind(null, record) },
{
icon: IconEnum.DELETE,
color: 'error',
label: t('action.delete'),
auth: 'system:business-warehouse:delete',
popConfirm: {
title: t('common.delMessage'),
placement: 'left',
confirm: handleDelete.bind(null, record)
}
}
]"
/>
</template>
</template>
</BasicTable>
<BusinessWarehouseModal @register="registerModal" @success="reload()" />
</div>
</template>
<script lang="ts" setup>
import { reactive } from 'vue'
import { useI18n } from '@/hooks/web/useI18n'
import { useMessage } from '@/hooks/web/useMessage'
import { useModal } from '@/components/Modal'
import BusinessWarehouseModal from './BusinessWarehouseModal.vue'
import { IconEnum } from '@/enums/appEnum'
import { BasicTable, useTable, TableAction } from '@/components/Table'
import { deleteBusinessWarehouse, exportBusinessWarehouse, getBusinessWarehousePage } from '@/api/xxjj/businessWarehouse'
import { columns, searchFormSchema } from './businessWarehouse.data'
import BusinessTree from './BusinessTree.vue'
defineOptions({ name: 'BusinessWarehouse' })
const { t } = useI18n()
const { createConfirm, createMessage } = useMessage()
const [registerModal, { openModal }] = useModal()
const searchInfo = reactive<Recordable>({})
const [registerTable, { getForm, reload }] = useTable({
title: '业务线/仓库列表',
api: getBusinessWarehousePage,
columns,
formConfig: { labelWidth: 120, schemas: searchFormSchema },
useSearchForm: true,
showTableSetting: true,
actionColumn: {
width: 140,
title: t('common.action'),
dataIndex: 'action',
fixed: 'right'
}
})
function handleCreate() {
openModal(true, { isUpdate: false })
}
function handleEdit(record: Recordable) {
openModal(true, { record, isUpdate: true })
}
async function handleExport() {
createConfirm({
title: t('common.exportTitle'),
iconType: 'warning',
content: t('common.exportMessage'),
async onOk() {
await exportBusinessWarehouse(getForm().getFieldsValue())
createMessage.success(t('common.exportSuccessText'))
}
})
}
async function handleDelete(record: Recordable) {
await deleteBusinessWarehouse(record.id)
createMessage.success(t('common.delSuccessText'))
reload()
}
/** 点击部门操作 */
function handleSelect(deptId = '') {
searchInfo.deptId = deptId
reload()
}
</script>

@ -21,7 +21,7 @@ const isUpdate = ref(true)
const [registerForm, { setFieldsValue, resetFields, resetSchema, validate }] = useForm({
labelWidth: 120,
baseColProps: { span: 24 },
baseColProps: { span: 12 },
schemas: createFormSchema,
showActionButtonGroup: false,
actionColOptions: { span: 23 }

@ -120,26 +120,6 @@ export const createFormSchema: FormSchema[] = [
required: true,
component: 'Input'
},
{
label: '业务线简称',
field: 'businessSimple',
component: 'Input'
},
{
label: '传真',
field: 'fax',
component: 'Input'
},
{
label: '网址',
field: 'url',
component: 'Input'
},
{
label: '介绍',
field: 'description',
component: 'InputTextArea'
},
{
label: '业务线名称',
field: 'name',
@ -147,17 +127,8 @@ export const createFormSchema: FormSchema[] = [
component: 'Input'
},
{
label: '业务线LOGO',
field: 'businessLogo',
component: 'FileUpload',
componentProps: {
fileType: 'file',
maxCount: 1
}
},
{
label: '父id',
field: 'parentId',
label: '业务线简称',
field: 'businessSimple',
component: 'Input'
},
{
@ -187,22 +158,17 @@ export const createFormSchema: FormSchema[] = [
component: 'DatePicker'
},
{
label: '归属人员',
field: 'belongUserId',
component: 'Input'
},
{
label: '品牌/业务线/事业群名称',
field: 'brandName',
component: 'Input'
label: '介绍',
field: 'description',
component: 'InputTextArea'
},
{
label: '电话',
field: 'phone',
label: '归属人员',
field: 'belongUserId',
component: 'Input'
},
{
label: '业务线仓库区分(0业务线,1仓库)',
label: '区分标志',
field: 'diffFlag',
required: true,
component: 'Select',
@ -225,11 +191,6 @@ export const updateFormSchema: FormSchema[] = [
required: true,
component: 'Input'
},
{
label: '业务线简称',
field: 'businessSimple',
component: 'Input'
},
{
label: '业务线名称',
field: 'name',
@ -237,13 +198,8 @@ export const updateFormSchema: FormSchema[] = [
component: 'Input'
},
{
label: '业务线LOGO',
field: 'businessLogo',
component: 'Upload'
},
{
label: '父id',
field: 'parentId',
label: '业务线简称',
field: 'businessSimple',
component: 'Input'
},
{
@ -272,38 +228,18 @@ export const updateFormSchema: FormSchema[] = [
field: 'establishDate',
component: 'DatePicker'
},
{
label: '归属人员',
field: 'belongUserId',
component: 'Input'
},
{
label: '品牌/业务线/事业群名称',
field: 'brandName',
component: 'Input'
},
{
label: '电话',
field: 'phone',
component: 'Input'
},
{
label: '传真',
field: 'fax',
component: 'Input'
},
{
label: '网址',
field: 'url',
component: 'Input'
},
{
label: '介绍',
field: 'description',
component: 'InputTextArea'
},
{
label: '业务线仓库区分(0业务线,1仓库)',
label: '归属人员',
field: 'belongUserId',
component: 'Input'
},
{
label: '区分标志',
field: 'diffFlag',
required: true,
component: 'Select',

@ -2,10 +2,10 @@
<div>
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" v-auth="['xxjj:business-warehouse:create']" :preIcon="IconEnum.ADD" @click="handleCreate">
<a-button type="primary" v-auth="['system:business-warehouse:create']" :preIcon="IconEnum.ADD" @click="handleCreate">
{{ t('action.create') }}
</a-button>
<a-button type="warning" v-auth="['xxjj:business-warehouse:export']" :preIcon="IconEnum.EXPORT" @click="handleExport">
<a-button type="warning" v-auth="['system:business-warehouse:export']" :preIcon="IconEnum.EXPORT" @click="handleExport">
{{ t('action.export') }}
</a-button>
</template>
@ -13,12 +13,12 @@
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{ icon: IconEnum.EDIT, label: t('action.edit'), auth: 'xxjj:business-warehouse:update', onClick: handleEdit.bind(null, record) },
{ icon: IconEnum.EDIT, label: t('action.edit'), auth: 'system:business-warehouse:update', onClick: handleEdit.bind(null, record) },
{
icon: IconEnum.DELETE,
color: 'error',
label: t('action.delete'),
auth: 'xxjj:business-warehouse:delete',
auth: 'system:business-warehouse:delete',
popConfirm: {
title: t('common.delMessage'),
placement: 'left',

@ -0,0 +1,18 @@
package com.yunxi.scm.module.system.enums.business;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum BusinessEnum {
ENABLE("0"), // 启用
DISABLE("1"); // 禁用
/**
*
*/
private final String status;
}

@ -1,5 +1,11 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse;
import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
import com.yunxi.scm.module.system.convert.dept.DeptConvert;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import com.yunxi.scm.module.system.enums.business.BusinessEnum;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -99,4 +105,17 @@ public class BusinessWarehouseController {
ExcelUtils.write(response, "业务线表.xls", "数据", BusinessWarehouseExcelVO.class, datas);
}
@GetMapping("/list-all-simple")
@Operation(summary = "获取业务线精简信息列表", description = "只包含被开启的业务线,主要用于前端的下拉选项")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:list-all-simple')")
public CommonResult<List<BusinessSimpleRespVo>> getSimpleBusinessList() {
// 获得业务线列表,只要开启状态的
BusinessWarehousePageReqVO pageReqVO = new BusinessWarehousePageReqVO();
// pageReqVO.setStatus(BusinessEnum.ENABLE.getStatus());
// pageReqVO.setDiffFlag("0");
List<BusinessWarehouseDO> list = businessWarehouseService.getBusinessSimpleList(pageReqVO);
return success(BusinessWarehouseConvert.INSTANCE.convertList03(list));
}
}

@ -0,0 +1,21 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@Schema(description = "管理后台 - 业务线表精简信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BusinessSimpleRespVo {
@Schema(description = "业务线编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long id;
@Schema(description = "业务线名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
private String name;
@Schema(description = "父部门 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long parentId;
}

@ -16,4 +16,7 @@ public class BusinessWarehouseRespVO extends BusinessWarehouseBaseVO {
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
@Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime updateTime;
}

@ -25,8 +25,12 @@ public interface BusinessWarehouseConvert {
BusinessWarehouseRespVO convert(BusinessWarehouseDO bean);
BusinessSimpleRespVo convert03(BusinessWarehouseDO bean);
List<BusinessWarehouseRespVO> convertList(List<BusinessWarehouseDO> list);
List<BusinessSimpleRespVo> convertList03(List<BusinessWarehouseDO> list);
PageResult<BusinessWarehouseRespVO> convertPage(PageResult<BusinessWarehouseDO> page);
List<BusinessWarehouseExcelVO> convertList02(List<BusinessWarehouseDO> list);

@ -5,7 +5,9 @@ import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import org.apache.ibatis.annotations.Mapper;
import com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo.*;
@ -67,4 +69,10 @@ public interface BusinessWarehouseMapper extends BaseMapperX<BusinessWarehouseDO
.orderByDesc(BusinessWarehouseDO::getId));
}
default List<BusinessWarehouseDO> simpleBusiness(BusinessWarehousePageReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<BusinessWarehouseDO>()
.eqIfPresent(BusinessWarehouseDO::getStatus, reqVO.getStatus())
.eqIfPresent(BusinessWarehouseDO::getDiffFlag, reqVO.getDiffFlag()));
}
}

@ -67,4 +67,9 @@ public interface BusinessWarehouseService {
*/
List<BusinessWarehouseDO> getBusinessWarehouseList(BusinessWarehouseExportReqVO exportReqVO);
/**
* 线
* */
List<BusinessWarehouseDO> getBusinessSimpleList(BusinessWarehousePageReqVO pageReqVO);
}

@ -79,4 +79,9 @@ public class BusinessWarehouseServiceImpl implements BusinessWarehouseService {
return businessWarehouseMapper.selectList(exportReqVO);
}
@Override
public List<BusinessWarehouseDO> getBusinessSimpleList(BusinessWarehousePageReqVO pageReqVO) {
return businessWarehouseMapper.simpleBusiness(pageReqVO);
}
}

Loading…
Cancel
Save