Compare commits
7 Commits
8655c2ed97
...
77b09bec49
Author | SHA1 | Date |
---|---|---|
Your Name | 77b09bec49 | 1 year ago |
Your Name | 3c2ec0a4e4 | 1 year ago |
tengxi | cb79e228f8 | 1 year ago |
tengxi | 13f7735e79 | 1 year ago |
杨世强 | 7c77ddcfa6 | 1 year ago |
tengxi | 505afe30a8 | 1 year ago |
杨世强 | 5e25306bf1 | 1 year ago |
@ -0,0 +1,31 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 查询企业信息列表
|
||||||
|
export function getEnterprisePage(params) {
|
||||||
|
return defHttp.get({ url: '/system/enterprise/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询企业信息详情
|
||||||
|
export function getEnterprise(id: number) {
|
||||||
|
return defHttp.get({ url: '/system/enterprise/get?id=' + id })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增企业信息
|
||||||
|
export function createEnterprise(data) {
|
||||||
|
return defHttp.post({ url: '/system/enterprise/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改企业信息
|
||||||
|
export function updateEnterprise(data) {
|
||||||
|
return defHttp.put({ url: '/system/enterprise/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除企业信息
|
||||||
|
export function deleteEnterprise(id: number) {
|
||||||
|
return defHttp.delete({ url: '/system/enterprise/delete?id=' + id })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出企业信息 Excel
|
||||||
|
export function exportEnterprise(params) {
|
||||||
|
return defHttp.download({ url: '/system/enterprise/export-excel', params }, '企业信息.xls')
|
||||||
|
}
|
@ -0,0 +1,438 @@
|
|||||||
|
<script lang="ts" setup>
|
||||||
|
import { reactive, ref } from 'vue'
|
||||||
|
|
||||||
|
import type { UnwrapRef } from 'vue'
|
||||||
|
import {
|
||||||
|
ManOutlined,
|
||||||
|
UserOutlined,
|
||||||
|
WomanOutlined,
|
||||||
|
} from '@ant-design/icons-vue'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const value1 = ref<string>('a')
|
||||||
|
|
||||||
|
|
||||||
|
interface FormState {
|
||||||
|
name: string
|
||||||
|
delivery: boolean
|
||||||
|
type: string[]
|
||||||
|
resource: string
|
||||||
|
desc: string
|
||||||
|
}
|
||||||
|
const formState: UnwrapRef<FormState> = reactive({
|
||||||
|
name: '',
|
||||||
|
delivery: false,
|
||||||
|
type: [],
|
||||||
|
resource: '',
|
||||||
|
desc: '',
|
||||||
|
})
|
||||||
|
//对话框
|
||||||
|
|
||||||
|
const open = ref<boolean>(false)
|
||||||
|
const confirmLoading = ref<boolean>(false)
|
||||||
|
|
||||||
|
function showModal() {
|
||||||
|
open.value = true
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleOk() {
|
||||||
|
modalText.value = ''
|
||||||
|
confirmLoading.value = true
|
||||||
|
setTimeout(() => {
|
||||||
|
open.value = false
|
||||||
|
confirmLoading.value = false
|
||||||
|
}, 2000)
|
||||||
|
}
|
||||||
|
//覆盖antd样式
|
||||||
|
|
||||||
|
const customButtonStyle = [ {
|
||||||
|
width:'80px',
|
||||||
|
textAlign:'center',
|
||||||
|
borderRadius: '50px',
|
||||||
|
margin:'0 10px',
|
||||||
|
}]
|
||||||
|
const phoneStyle = [{
|
||||||
|
width:'60%',
|
||||||
|
}]
|
||||||
|
const changeStyle = [{
|
||||||
|
border:'none',
|
||||||
|
boxShadow: 'none',
|
||||||
|
color:'#409EFF',
|
||||||
|
}]
|
||||||
|
const labelCol = { style: { width: '100px' } }
|
||||||
|
const wrapperCol = { span: 20 }
|
||||||
|
const activeKey = ref('1')
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<a-card
|
||||||
|
style="width: 80%; padding: 20px;margin: 20px auto;"
|
||||||
|
default-active-tab-key
|
||||||
|
>
|
||||||
|
<a-tabs v-model:activeKey="activeKey" tab-position="left">
|
||||||
|
<a-tab-pane key="1" tab="资料设置">
|
||||||
|
<div class="datum">
|
||||||
|
<div class="datumtop">
|
||||||
|
<p>
|
||||||
|
<span>▋</span>
|
||||||
|
基本资料
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<p class="pleft">
|
||||||
|
基本信息
|
||||||
|
</p>
|
||||||
|
<div class="datumbox">
|
||||||
|
<div class="form">
|
||||||
|
<a-form :model="formState" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
|
<a-form-item label="登录账号:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="姓名:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="所属部门:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="员工职务:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="员工工号:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="手机号码:">
|
||||||
|
<div class="phonecss">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" :style="phoneStyle" />
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a-button :style="changeStyle" @click="showModal">
|
||||||
|
修改手机号
|
||||||
|
</a-button>
|
||||||
|
<a-modal v-model:open="open" title="修改手机号" :confirm-loading="confirmLoading" @ok="handleOk">
|
||||||
|
<div>
|
||||||
|
<a-form :model="formState" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
|
<a-form-item label="原手机号码:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="验证码:">
|
||||||
|
<div class="phonecss">
|
||||||
|
<a-input v-model:value="value" placeholder="输入验证码" :style="phoneStyle" />
|
||||||
|
<a-button :style="changeStyle">
|
||||||
|
获取验证码
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
</a-form-item>
|
||||||
|
|
||||||
|
<a-form-item label="新手机号码:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入新手机号" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="微信账号:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="邮箱地址:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item name="出生日期" label="DatePicker" v-bind="config">
|
||||||
|
<a-date-picker v-model:value="formState['date-picker']" value-format="YYYY-MM-DD" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="性别:">
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<a-radio-group v-model:value="value1">
|
||||||
|
<div>
|
||||||
|
<a-radio-group v-model:value="value1">
|
||||||
|
<a-radio-button :style="customButtonStyle" value="a">
|
||||||
|
男性<ManOutlined />
|
||||||
|
</a-radio-button>
|
||||||
|
<a-radio-button :style="customButtonStyle" value="b">
|
||||||
|
女性<WomanOutlined />
|
||||||
|
</a-radio-button>
|
||||||
|
<a-radio-button :style="customButtonStyle" value="c">
|
||||||
|
保密
|
||||||
|
</a-radio-button>
|
||||||
|
</a-radio-group>
|
||||||
|
</div>
|
||||||
|
</a-radio-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-form-item>
|
||||||
|
|
||||||
|
<p class="pleft">
|
||||||
|
更多信息
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<a-form label-width="100px" :model="formState" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
|
<a-form-item label="籍贯:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="学历:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="专业:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="毕业院校:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item name="毕业时间:" label="DatePicker" v-bind="config">
|
||||||
|
<a-date-picker v-model:value="formState['date-picker']" value-format="YYYY-MM-DD" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="个人简介:" placeholder="输入内容" name="desc">
|
||||||
|
<a-textarea v-model:value="formState.desc" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="">
|
||||||
|
<button class="save">
|
||||||
|
保存
|
||||||
|
</button>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
<div class="usepic">
|
||||||
|
<div class="idpic">
|
||||||
|
<a-avatar :size="{ xs: 24, sm: 32, md: 40, lg: 64, xl: 80, xxl: 100 }">
|
||||||
|
<template #icon>
|
||||||
|
<UserOutlined />
|
||||||
|
</template>
|
||||||
|
</a-avatar>
|
||||||
|
</div>
|
||||||
|
<div class="change">
|
||||||
|
<a-upload
|
||||||
|
v-model:file-list="fileList"
|
||||||
|
list-type="picture"
|
||||||
|
:max-count="1"
|
||||||
|
action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
|
||||||
|
>
|
||||||
|
<a-button>
|
||||||
|
<upload-outlined />
|
||||||
|
修改头像
|
||||||
|
</a-button>
|
||||||
|
</a-upload>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-tab-pane>
|
||||||
|
|
||||||
|
<!-- 修改密码 -->
|
||||||
|
|
||||||
|
<a-tab-pane key="2" tab="修改密码">
|
||||||
|
<div class="datum">
|
||||||
|
<div class="datumtop">
|
||||||
|
<p>
|
||||||
|
<span>▋</span>
|
||||||
|
修改密码
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="datumbox">
|
||||||
|
<div class="form">
|
||||||
|
<a-form :model="formState" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
|
<a-form-item label="验证码:">
|
||||||
|
<div class="phonecss">
|
||||||
|
<a-input v-model:value="value" placeholder="输入内容" :style="phoneStyle" />
|
||||||
|
<a-button :style="changeStyle">
|
||||||
|
获取验证码
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="原密码:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入原密码" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="新密码:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入新密码" />
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="新密码:">
|
||||||
|
<a-input v-model:value="value" placeholder="输入确认新密码" />
|
||||||
|
</a-form-item>
|
||||||
|
<button class="save">
|
||||||
|
保存
|
||||||
|
</button>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane key="3" tab="登录记录">
|
||||||
|
<div class="datum">
|
||||||
|
<div class="datumtop">
|
||||||
|
<p>
|
||||||
|
<span>▋</span>
|
||||||
|
登录记录
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!-- 日期 -->
|
||||||
|
<div class="date">
|
||||||
|
{{ `2023-08-22` }}
|
||||||
|
</div>
|
||||||
|
<div class="recordbox">
|
||||||
|
<div class="recordleft">
|
||||||
|
<div>
|
||||||
|
图标
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
登录人和地点时间
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="recordright">
|
||||||
|
<span>图标</span>{{ `具体时间` }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-tab-pane>
|
||||||
|
|
||||||
|
<a-tab-pane key="4" tab="系统通知">
|
||||||
|
<div class="datum">
|
||||||
|
<div class="datumtop">
|
||||||
|
<p>
|
||||||
|
<span>▋</span>
|
||||||
|
系统通知
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane key="5" tab="信息设置">
|
||||||
|
<div class="datum">
|
||||||
|
<div class="datumtop">
|
||||||
|
<p>
|
||||||
|
<span>▋</span>
|
||||||
|
信息设置
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane key="6" tab="公司列表">
|
||||||
|
<div class="datum">
|
||||||
|
<div class="datumtop">
|
||||||
|
<p>
|
||||||
|
<span>▋</span>
|
||||||
|
公司列表
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-tab-pane>
|
||||||
|
</a-tabs>
|
||||||
|
</a-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.ant-tabs-nav-list{
|
||||||
|
width: 300px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-tabs-tab .ant-tabs-tab-active{
|
||||||
|
padding: 8px 24px;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.datum{
|
||||||
|
//右边内容
|
||||||
|
width: 100%;
|
||||||
|
margin-left: 20px;
|
||||||
|
color: #666;
|
||||||
|
|
||||||
|
.datumtop{
|
||||||
|
p{
|
||||||
|
margin-bottom: 15px;
|
||||||
|
font-size:18px;
|
||||||
|
font-weight:700;
|
||||||
|
|
||||||
|
span{
|
||||||
|
font-size:14px;
|
||||||
|
color:#409EFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.datumbox{
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.form{
|
||||||
|
width: 40%;
|
||||||
|
|
||||||
|
|
||||||
|
.save{
|
||||||
|
width: 160px;
|
||||||
|
height: 40px;
|
||||||
|
margin-left: 100px;
|
||||||
|
color: aliceblue;
|
||||||
|
background-color: #409EFF;
|
||||||
|
border: none;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.phonecss{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.usepic{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 150px;
|
||||||
|
|
||||||
|
.change{
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.pleft{
|
||||||
|
margin: 20px ;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.date{
|
||||||
|
padding: 20px;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recordbox{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
height: 90px;
|
||||||
|
padding: 0 20px;
|
||||||
|
border: 1px solid #a1a0a0;
|
||||||
|
|
||||||
|
.recordleft{
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
:where(.css-dev-only-do-not-override-176pxz6).ant-picker{
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
:where(.css-dev-only-do-not-override-176pxz6).ant-input {
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
:where(.css-dev-only-do-not-override-176pxz6).ant-input .phone{
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
:where(.css-dev-only-do-not-override-176pxz6).ant-radio-button-wrapper:not(:first-child)::before {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -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 './enterprise.data'
|
||||||
|
import { createEnterprise, getEnterprise, updateEnterprise } from '@/api/system/enterprise'
|
||||||
|
|
||||||
|
defineOptions({ name: 'EnterpriseModal' })
|
||||||
|
|
||||||
|
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 getEnterprise(data.record.id)
|
||||||
|
setFieldsValue({ ...res })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
async function handleSubmit() {
|
||||||
|
try {
|
||||||
|
const values = await validate()
|
||||||
|
setModalProps({ confirmLoading: true })
|
||||||
|
if (unref(isUpdate)) {
|
||||||
|
await updateEnterprise(values)
|
||||||
|
} else {
|
||||||
|
await createEnterprise(values)
|
||||||
|
}
|
||||||
|
closeModal()
|
||||||
|
emit('success')
|
||||||
|
createMessage.success(t('common.saveSuccessText'))
|
||||||
|
} finally {
|
||||||
|
setModalProps({ confirmLoading: false })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
@ -0,0 +1,92 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<BasicTable @register="registerTable">
|
||||||
|
<template #toolbar>
|
||||||
|
<a-button type="primary" v-auth="['system:enterprise:create']" :preIcon="IconEnum.ADD" @click="handleCreate">
|
||||||
|
{{ t('action.create') }}
|
||||||
|
</a-button>
|
||||||
|
<a-button type="warning" v-auth="['system:enterprise: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:enterprise:update', onClick: handleEdit.bind(null, record) },
|
||||||
|
{
|
||||||
|
icon: IconEnum.DELETE,
|
||||||
|
color: 'error',
|
||||||
|
label: t('action.delete'),
|
||||||
|
auth: 'system:enterprise:delete',
|
||||||
|
popConfirm: {
|
||||||
|
title: t('common.delMessage'),
|
||||||
|
placement: 'left',
|
||||||
|
confirm: handleDelete.bind(null, record)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</BasicTable>
|
||||||
|
<EnterpriseModal @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 EnterpriseModal from './EnterpriseModal.vue'
|
||||||
|
import { IconEnum } from '@/enums/appEnum'
|
||||||
|
import { BasicTable, useTable, TableAction } from '@/components/Table'
|
||||||
|
import { deleteEnterprise, exportEnterprise, getEnterprisePage } from '@/api/system/enterprise'
|
||||||
|
import { columns, searchFormSchema } from './enterprise.data'
|
||||||
|
|
||||||
|
defineOptions({ name: 'Enterprise' })
|
||||||
|
|
||||||
|
const { t } = useI18n()
|
||||||
|
const { createConfirm, createMessage } = useMessage()
|
||||||
|
const [registerModal, { openModal }] = useModal()
|
||||||
|
|
||||||
|
const [registerTable, { getForm, reload }] = useTable({
|
||||||
|
title: '分支机构',
|
||||||
|
api: getEnterprisePage,
|
||||||
|
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 exportEnterprise(getForm().getFieldsValue())
|
||||||
|
createMessage.success(t('common.exportSuccessText'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
async function handleDelete(record: Recordable) {
|
||||||
|
await deleteEnterprise(record.id)
|
||||||
|
createMessage.success(t('common.delSuccessText'))
|
||||||
|
reload()
|
||||||
|
}
|
||||||
|
</script>
|
44
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/BusinessWarehouseController.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/BusinessWarehouseController.java
44
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/BusinessWarehouseController.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/BusinessWarehouseController.java
33
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehouseBaseVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehouseBaseVO.java
33
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehouseBaseVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehouseBaseVO.java
4
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehouseCreateReqVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehouseCreateReqVO.java
4
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehouseCreateReqVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehouseCreateReqVO.java
@ -1,11 +1,11 @@
|
|||||||
package com.yunxi.scm.module.xxjj.controller.admin.businesswarehouse.vo;
|
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 业务线/仓库创建 Request VO")
|
@Schema(description = "管理后台 - 业务线表创建 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
25
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehouseExcelVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehouseExcelVO.java
25
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehouseExcelVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehouseExcelVO.java
28
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehouseExportReqVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehouseExportReqVO.java
28
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehouseExportReqVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehouseExportReqVO.java
28
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehousePageReqVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehousePageReqVO.java
28
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehousePageReqVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehousePageReqVO.java
6
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehouseRespVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehouseRespVO.java
6
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehouseRespVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehouseRespVO.java
@ -1,16 +1,16 @@
|
|||||||
package com.yunxi.scm.module.xxjj.controller.admin.businesswarehouse.vo;
|
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 业务线/仓库 Response VO")
|
@Schema(description = "管理后台 - 业务线表 Response VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
||||||
public class BusinessWarehouseRespVO extends BusinessWarehouseBaseVO {
|
public class BusinessWarehouseRespVO extends BusinessWarehouseBaseVO {
|
||||||
|
|
||||||
@Schema(description = "业务id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27714")
|
@Schema(description = "业务id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20782")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
6
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehouseUpdateReqVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehouseUpdateReqVO.java
6
yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businesswarehouse/vo/BusinessWarehouseUpdateReqVO.java → yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/businesswarehouse/vo/BusinessWarehouseUpdateReqVO.java
@ -1,17 +1,17 @@
|
|||||||
package com.yunxi.scm.module.xxjj.controller.admin.businesswarehouse.vo;
|
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 业务线/仓库更新 Request VO")
|
@Schema(description = "管理后台 - 业务线表更新 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
||||||
public class BusinessWarehouseUpdateReqVO extends BusinessWarehouseBaseVO {
|
public class BusinessWarehouseUpdateReqVO extends BusinessWarehouseBaseVO {
|
||||||
|
|
||||||
@Schema(description = "业务id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27714")
|
@Schema(description = "业务id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20782")
|
||||||
@NotNull(message = "业务id不能为空")
|
@NotNull(message = "业务id不能为空")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo;
|
package com.yunxi.scm.module.system.controller.admin.enterprise.vo;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
@ -1,4 +1,4 @@
|
|||||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo;
|
package com.yunxi.scm.module.system.controller.admin.enterprise.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.*;
|
@ -1,4 +1,4 @@
|
|||||||
package com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo;
|
package com.yunxi.scm.module.system.controller.admin.enterprise.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.*;
|
@ -1,22 +1,22 @@
|
|||||||
package com.yunxi.scm.module.xxjj.service.businesswarehouse;
|
package com.yunxi.scm.module.system.service.businesswarehouse;
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import com.yunxi.scm.module.xxjj.controller.admin.businesswarehouse.vo.*;
|
import com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo.*;
|
||||||
import com.yunxi.scm.module.xxjj.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
|
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
|
||||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
import com.yunxi.scm.module.xxjj.convert.businesswarehouse.BusinessWarehouseConvert;
|
import com.yunxi.scm.module.system.convert.businesswarehouse.BusinessWarehouseConvert;
|
||||||
import com.yunxi.scm.module.xxjj.dal.mysql.businesswarehouse.BusinessWarehouseMapper;
|
import com.yunxi.scm.module.system.dal.mysql.businesswarehouse.BusinessWarehouseMapper;
|
||||||
|
|
||||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
import static com.yunxi.scm.module.system.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 业务线/仓库 Service 实现类
|
* 业务线表 Service 实现类
|
||||||
*
|
*
|
||||||
* @author 长江云息
|
* @author 长江云息
|
||||||
*/
|
*/
|
@ -1,9 +1,9 @@
|
|||||||
package com.yunxi.scm.module.xxjj.service.enterprise;
|
package com.yunxi.scm.module.system.service.enterprise;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import javax.validation.*;
|
import javax.validation.*;
|
||||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo.*;
|
import com.yunxi.scm.module.system.controller.admin.enterprise.vo.*;
|
||||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprise.EnterpriseDO;
|
import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO;
|
||||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,19 +1,19 @@
|
|||||||
package com.yunxi.scm.module.xxjj.service.enterprise;
|
package com.yunxi.scm.module.system.service.enterprise;
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import com.yunxi.scm.module.xxjj.controller.admin.enterprise.vo.*;
|
import com.yunxi.scm.module.system.controller.admin.enterprise.vo.*;
|
||||||
import com.yunxi.scm.module.xxjj.dal.dataobject.enterprise.EnterpriseDO;
|
import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO;
|
||||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
import com.yunxi.scm.module.xxjj.convert.enterprise.EnterpriseConvert;
|
import com.yunxi.scm.module.system.convert.enterprise.EnterpriseConvert;
|
||||||
import com.yunxi.scm.module.xxjj.dal.mysql.enterprise.EnterpriseMapper;
|
import com.yunxi.scm.module.system.dal.mysql.enterprise.EnterpriseMapper;
|
||||||
|
|
||||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
import static com.yunxi.scm.module.system.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 企业信息 Service 实现类
|
* 企业信息 Service 实现类
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.yunxi.scm.module.xxjj.dal.mysql.businesswarehouse.BusinessWarehouseMapper">
|
<mapper namespace="com.yunxi.scm.module.system.dal.mysql.enterprise.EnterpriseMapper">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
Loading…
Reference in new issue