9 changed files with 124 additions and 489 deletions
@ -1,54 +0,0 @@
|
||||
import request from '@/config/axios' |
||||
|
||||
// 企业 VO
|
||||
export interface EnterpriseVO { |
||||
id: number // 企业ID,主键
|
||||
departmentId: number // 所属部门ID
|
||||
userId: number // 管辖人员ID
|
||||
type: string // 企业类型:1.大型、2.中型、3.小型、4.环保重点
|
||||
region: string // 企业所属区域:1.东区、2.西区、3.北区、4.南区
|
||||
enterprisesName: string // 企业名称
|
||||
address: string // 企业地址
|
||||
contactName: string // 环保负责人姓名
|
||||
environmentalContactPhone: string // 企业环保负责人联系电话
|
||||
registrationNumber: string // 企业注册号
|
||||
introduction: string // 企业图文介绍
|
||||
establishmentDate: Date // 企业成立时间
|
||||
gpsLocation: string // 企业经纬度
|
||||
createBy: string // 创建人
|
||||
updateBy: string // 修改人
|
||||
managerDeptId: number // 管理部门
|
||||
} |
||||
|
||||
// 企业 API
|
||||
export const EnterpriseApi = { |
||||
// 查询企业分页
|
||||
getEnterprisePage: async (params: any) => { |
||||
return await request.get({ url: `/system/enterprise/page`, params }) |
||||
}, |
||||
|
||||
// 查询企业详情
|
||||
getEnterprise: async (id: number) => { |
||||
return await request.get({ url: `/system/enterprise/get?id=` + id }) |
||||
}, |
||||
|
||||
// 新增企业
|
||||
createEnterprise: async (data: EnterpriseVO) => { |
||||
return await request.post({ url: `/system/enterprise/create`, data }) |
||||
}, |
||||
|
||||
// 修改企业
|
||||
updateEnterprise: async (data: EnterpriseVO) => { |
||||
return await request.put({ url: `/system/enterprise/update`, data }) |
||||
}, |
||||
|
||||
// 删除企业
|
||||
deleteEnterprise: async (id: number) => { |
||||
return await request.delete({ url: `/system/enterprise/delete?id=` + id }) |
||||
}, |
||||
|
||||
// 导出企业 Excel
|
||||
exportEnterprise: async (params) => { |
||||
return await request.download({ url: `/system/enterprise/export-excel`, params }) |
||||
}, |
||||
} |
@ -0,0 +1,59 @@
|
||||
import request from '@/config/axios' |
||||
|
||||
// 附件信息 VO
|
||||
export interface FileInfoVO { |
||||
id: number // ID
|
||||
attachmentName: string // 文件名
|
||||
attachmentPath: string // 文件路径
|
||||
attachmentMd5: string // 文件MD5
|
||||
unitId: number // 关联ID(日报/案件/行动...)
|
||||
type: number // 类别
|
||||
status: number // 状态
|
||||
deptId: number // 部门ID
|
||||
groupId: number // 文件分组ID
|
||||
level: number // 文件等级
|
||||
permissions: string // 文件权限
|
||||
} |
||||
|
||||
// 附件信息 API
|
||||
export const FileInfoApi = { |
||||
// 查询附件信息分页
|
||||
getFileInfoPage: async (params: any) => { |
||||
return await request.get({ url: `/system/file-info/page`, params }) |
||||
}, |
||||
|
||||
// 查询附件信息详情
|
||||
getFileInfo: async (id: number) => { |
||||
return await request.get({ url: `/system/file-info/get?id=` + id }) |
||||
}, |
||||
|
||||
// 新增附件信息
|
||||
createFileInfo: async (data: any) => { |
||||
return await request.post({ url: `/system/file-info/create`, data }) |
||||
}, |
||||
|
||||
// 新增附件信息
|
||||
createbatchFileInfo: async (data: any) => { |
||||
return await request.post({ url: `/system/file-info/createbatch`, data }) |
||||
}, |
||||
|
||||
// 修改附件信息
|
||||
updateFileInfo: async (data) => { |
||||
return await request.put({ url: `/system/file-info/update`, data }) |
||||
}, |
||||
|
||||
// 删除附件信息
|
||||
deleteFileInfo: async (id: number) => { |
||||
return await request.delete({ url: `/system/file-info/delete?id=` + id }) |
||||
}, |
||||
|
||||
// 导出附件信息 Excel
|
||||
exportFileInfo: async (params) => { |
||||
return await request.download({ url: `/system/file-info/export-excel`, params }) |
||||
}, |
||||
|
||||
// 查询附件信息分页
|
||||
getFileInfoList: async (params: any) => { |
||||
return await request.get({ url: `/system/file-info/list`, params }) |
||||
}, |
||||
} |
@ -0,0 +1,52 @@
|
||||
import request from '@/config/axios' |
||||
|
||||
// 企业 VO
|
||||
export interface EnterprisesVO { |
||||
id: number // 企业ID,主键
|
||||
departmentId: number // 所属部门ID
|
||||
userId: number // 邀请人
|
||||
type: string // 企业类型
|
||||
region: string // 企业所属区域
|
||||
enterprisesName: string // 企业名称
|
||||
address: string // 企业地址
|
||||
contactName: string // 环保负责人姓名
|
||||
environmentalContactPhone: string // 企业环保负责人联系电话
|
||||
registrationNumber: string // 企业注册号
|
||||
introduction: string // 企业图文介绍
|
||||
establishmentDate: Date // 企业成立时间
|
||||
gpsLocation: string // 企业经纬度
|
||||
managerDeptId: number // 管理部门
|
||||
} |
||||
|
||||
// 企业 API
|
||||
export const EnterprisesApi = { |
||||
// 查询企业分页
|
||||
getEnterprisesPage: async (params: any) => { |
||||
return await request.get({ url: `/system/enterprises/page`, params }) |
||||
}, |
||||
|
||||
// 查询企业详情
|
||||
getEnterprises: async (id: number) => { |
||||
return await request.get({ url: `/system/enterprises/get?id=` + id }) |
||||
}, |
||||
|
||||
// 新增企业
|
||||
createEnterprises: async (data: EnterprisesVO) => { |
||||
return await request.post({ url: `/system/enterprises/create`, data }) |
||||
}, |
||||
|
||||
// 修改企业
|
||||
updateEnterprises: async (data: EnterprisesVO) => { |
||||
return await request.put({ url: `/system/enterprises/update`, data }) |
||||
}, |
||||
|
||||
// 删除企业
|
||||
deleteEnterprises: async (id: number) => { |
||||
return await request.delete({ url: `/system/enterprises/delete?id=` + id }) |
||||
}, |
||||
|
||||
// 导出企业 Excel
|
||||
exportEnterprises: async (params) => { |
||||
return await request.download({ url: `/system/enterprises/export-excel`, params }) |
||||
}, |
||||
} |
@ -1,171 +0,0 @@
|
||||
<template> |
||||
<Dialog :title="dialogTitle" v-model="dialogVisible"> |
||||
<el-form |
||||
ref="formRef" |
||||
:model="formData" |
||||
:rules="formRules" |
||||
label-width="100px" |
||||
v-loading="formLoading" |
||||
> |
||||
<el-form-item label="所属部门ID" prop="departmentId"> |
||||
<el-input v-model="formData.departmentId" placeholder="请输入所属部门ID" /> |
||||
</el-form-item> |
||||
<el-form-item label="管辖人员ID" prop="userId"> |
||||
<el-input v-model="formData.userId" placeholder="请输入管辖人员ID" /> |
||||
</el-form-item> |
||||
<el-form-item label="企业类型:1.大型、2.中型、3.小型、4.环保重点" prop="type"> |
||||
<el-select v-model="formData.type" placeholder="请选择企业类型:1.大型、2.中型、3.小型、4.环保重点"> |
||||
<el-option label="请选择字典生成" value="" /> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="企业所属区域:1.东区、2.西区、3.北区、4.南区" prop="region"> |
||||
<el-input v-model="formData.region" placeholder="请输入企业所属区域:1.东区、2.西区、3.北区、4.南区" /> |
||||
</el-form-item> |
||||
<el-form-item label="企业名称" prop="enterprisesName"> |
||||
<el-input v-model="formData.enterprisesName" placeholder="请输入企业名称" /> |
||||
</el-form-item> |
||||
<el-form-item label="企业地址" prop="address"> |
||||
<el-input v-model="formData.address" placeholder="请输入企业地址" /> |
||||
</el-form-item> |
||||
<el-form-item label="环保负责人姓名" prop="contactName"> |
||||
<el-input v-model="formData.contactName" placeholder="请输入环保负责人姓名" /> |
||||
</el-form-item> |
||||
<el-form-item label="企业环保负责人联系电话" prop="environmentalContactPhone"> |
||||
<el-input v-model="formData.environmentalContactPhone" placeholder="请输入企业环保负责人联系电话" /> |
||||
</el-form-item> |
||||
<el-form-item label="企业注册号" prop="registrationNumber"> |
||||
<el-input v-model="formData.registrationNumber" placeholder="请输入企业注册号" /> |
||||
</el-form-item> |
||||
<el-form-item label="企业图文介绍" prop="introduction"> |
||||
<el-input v-model="formData.introduction" placeholder="请输入企业图文介绍" /> |
||||
</el-form-item> |
||||
<el-form-item label="企业成立时间" prop="establishmentDate"> |
||||
<el-date-picker |
||||
v-model="formData.establishmentDate" |
||||
type="date" |
||||
value-format="x" |
||||
placeholder="选择企业成立时间" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="企业经纬度" prop="gpsLocation"> |
||||
<el-input v-model="formData.gpsLocation" placeholder="请输入企业经纬度" /> |
||||
</el-form-item> |
||||
<el-form-item label="创建人" prop="createBy"> |
||||
<el-input v-model="formData.createBy" placeholder="请输入创建人" /> |
||||
</el-form-item> |
||||
<el-form-item label="修改人" prop="updateBy"> |
||||
<el-input v-model="formData.updateBy" placeholder="请输入修改人" /> |
||||
</el-form-item> |
||||
<el-form-item label="管理部门" prop="managerDeptId"> |
||||
<el-input v-model="formData.managerDeptId" placeholder="请输入管理部门" /> |
||||
</el-form-item> |
||||
</el-form> |
||||
<template #footer> |
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> |
||||
<el-button @click="dialogVisible = false">取 消</el-button> |
||||
</template> |
||||
</Dialog> |
||||
</template> |
||||
<script setup lang="ts"> |
||||
import { EnterpriseApi, EnterpriseVO } from '@/api/enterprise' |
||||
|
||||
/** 企业 表单 */ |
||||
defineOptions({ name: 'EnterpriseForm' }) |
||||
|
||||
const { t } = useI18n() // 国际化 |
||||
const message = useMessage() // 消息弹窗 |
||||
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示 |
||||
const dialogTitle = ref('') // 弹窗的标题 |
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改 |
||||
const formData = ref({ |
||||
id: undefined, |
||||
departmentId: undefined, |
||||
userId: undefined, |
||||
type: undefined, |
||||
region: undefined, |
||||
enterprisesName: undefined, |
||||
address: undefined, |
||||
contactName: undefined, |
||||
environmentalContactPhone: undefined, |
||||
registrationNumber: undefined, |
||||
introduction: undefined, |
||||
establishmentDate: undefined, |
||||
gpsLocation: undefined, |
||||
createBy: undefined, |
||||
updateBy: undefined, |
||||
managerDeptId: undefined, |
||||
}) |
||||
const formRules = reactive({ |
||||
type: [{ required: true, message: '企业类型:1.大型、2.中型、3.小型、4.环保重点不能为空', trigger: 'change' }], |
||||
region: [{ required: true, message: '企业所属区域:1.东区、2.西区、3.北区、4.南区不能为空', trigger: 'blur' }], |
||||
enterprisesName: [{ required: true, message: '企业名称不能为空', trigger: 'blur' }], |
||||
}) |
||||
const formRef = ref() // 表单 Ref |
||||
|
||||
/** 打开弹窗 */ |
||||
const open = async (type: string, id?: number) => { |
||||
dialogVisible.value = true |
||||
dialogTitle.value = t('action.' + type) |
||||
formType.value = type |
||||
resetForm() |
||||
// 修改时,设置数据 |
||||
if (id) { |
||||
formLoading.value = true |
||||
try { |
||||
formData.value = await EnterpriseApi.getEnterprise(id) |
||||
} finally { |
||||
formLoading.value = false |
||||
} |
||||
} |
||||
} |
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗 |
||||
|
||||
/** 提交表单 */ |
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 |
||||
const submitForm = async () => { |
||||
// 校验表单 |
||||
await formRef.value.validate() |
||||
// 提交请求 |
||||
formLoading.value = true |
||||
try { |
||||
const data = formData.value as unknown as EnterpriseVO |
||||
if (formType.value === 'create') { |
||||
await EnterpriseApi.createEnterprise(data) |
||||
message.success(t('common.createSuccess')) |
||||
} else { |
||||
await EnterpriseApi.updateEnterprise(data) |
||||
message.success(t('common.updateSuccess')) |
||||
} |
||||
dialogVisible.value = false |
||||
// 发送操作成功的事件 |
||||
emit('success') |
||||
} finally { |
||||
formLoading.value = false |
||||
} |
||||
} |
||||
|
||||
/** 重置表单 */ |
||||
const resetForm = () => { |
||||
formData.value = { |
||||
id: undefined, |
||||
departmentId: undefined, |
||||
userId: undefined, |
||||
type: undefined, |
||||
region: undefined, |
||||
enterprisesName: undefined, |
||||
address: undefined, |
||||
contactName: undefined, |
||||
environmentalContactPhone: undefined, |
||||
registrationNumber: undefined, |
||||
introduction: undefined, |
||||
establishmentDate: undefined, |
||||
gpsLocation: undefined, |
||||
createBy: undefined, |
||||
updateBy: undefined, |
||||
managerDeptId: undefined, |
||||
} |
||||
formRef.value?.resetFields() |
||||
} |
||||
</script> |
@ -1,259 +0,0 @@
|
||||
<template> |
||||
<ContentWrap> |
||||
<!-- 搜索工作栏 --> |
||||
<el-form |
||||
class="-mb-15px" |
||||
:model="queryParams" |
||||
ref="queryFormRef" |
||||
:inline="true" |
||||
label-width="120px" |
||||
style="height: 150px" |
||||
> |
||||
<el-form-item label="企业名称" prop="enterprisesName"> |
||||
<el-input |
||||
v-model="queryParams.enterprisesName" |
||||
placeholder="请输入企业名称" |
||||
clearables |
||||
@keyup.enter="handleQuery" |
||||
class="!w-240px" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="专管员" prop="userId"> |
||||
<el-input |
||||
v-model="queryParams.userId" |
||||
placeholder="请输入专管员" |
||||
clearable |
||||
@keyup.enter="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="企业类型" prop="type"> |
||||
<el-select |
||||
v-model="queryParams.type" |
||||
placeholder="请选择企业类型" |
||||
clearable |
||||
class="!w-240px" |
||||
> |
||||
<el-option label="请选择字典生成" value="" /> |
||||
</el-select> |
||||
</el-form-item> |
||||
|
||||
|
||||
<el-form-item label="企业地址" prop="address"> |
||||
<el-input |
||||
v-model="queryParams.address" |
||||
placeholder="请输入企业地址" |
||||
clearable |
||||
@keyup.enter="handleQuery" |
||||
class="!w-240px" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="环保负责人姓名" prop="contactName"> |
||||
<el-input |
||||
v-model="queryParams.contactName" |
||||
placeholder="请输入环保负责人姓名" |
||||
clearable |
||||
@keyup.enter="handleQuery" |
||||
class="!w-240px" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="负责人联系电话" prop="environmentalContactPhone"> |
||||
<el-input |
||||
v-model="queryParams.environmentalContactPhone" |
||||
placeholder="请输入企业环保负责人联系电话" |
||||
clearable |
||||
@keyup.enter="handleQuery" |
||||
class="!w-240px" |
||||
/> |
||||
</el-form-item> |
||||
|
||||
|
||||
<el-form-item label="企业成立时间" prop="establishmentDate"> |
||||
<el-date-picker |
||||
v-model="queryParams.establishmentDate" |
||||
value-format="YYYY-MM-DD HH:mm:ss" |
||||
type="daterange" |
||||
start-placeholder="开始日期" |
||||
end-placeholder="结束日期" |
||||
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" |
||||
class="!w-220px" |
||||
/> |
||||
</el-form-item> |
||||
|
||||
|
||||
<el-form-item> |
||||
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> |
||||
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> |
||||
<el-button |
||||
type="primary" |
||||
plain |
||||
@click="openForm('create')" |
||||
> |
||||
<Icon icon="ep:plus" class="mr-5px" /> 新增 |
||||
</el-button> |
||||
<el-button |
||||
type="success" |
||||
plain |
||||
@click="handleExport" |
||||
:loading="exportLoading" |
||||
> |
||||
<Icon icon="ep:download" class="mr-5px" /> 导出 |
||||
</el-button> |
||||
</el-form-item> |
||||
</el-form> |
||||
</ContentWrap> |
||||
|
||||
<!-- 列表 --> |
||||
<ContentWrap> |
||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> |
||||
<el-table-column label="企业名称" fixed="left" width="180px" align="center" prop="enterprisesName" /> |
||||
<el-table-column label="企业地址" align="center" width="130px" prop="address" /> |
||||
<el-table-column label="环保负责人姓名" align="center" width="130px" prop="contactName" /> |
||||
<el-table-column label="企业环保负责人联系电话" align="center" width="130px" prop="environmentalContactPhone" /> |
||||
<el-table-column label="企业注册号" align="center" width="130px" prop="registrationNumber" /> |
||||
<el-table-column label="企业图文介绍" align="center" width="130px" prop="introduction" /> |
||||
<el-table-column label="企业成立时间" align="center" width="130px" prop="establishmentDate" /> |
||||
<el-table-column label="企业经纬度" align="center" width="130px" prop="gpsLocation" /> |
||||
<el-table-column label="创建人" align="center" prop="createBy" /> |
||||
|
||||
<el-table-column |
||||
label="创建时间" |
||||
align="center" |
||||
prop="createTime" |
||||
:formatter="dateFormatter" |
||||
width="180px" |
||||
/> |
||||
<el-table-column label="修改人" align="center" prop="updateBy" /> |
||||
<el-table-column label="管理部门" align="center" prop="managerDeptId" /> |
||||
<el-table-column label="操作" align="center" min-width="120px"> |
||||
<template #default="scope"> |
||||
<el-button |
||||
link |
||||
type="primary" |
||||
@click="openForm('update', scope.row.id)" |
||||
> |
||||
编辑 |
||||
</el-button> |
||||
<el-button |
||||
link |
||||
type="danger" |
||||
@click="handleDelete(scope.row.id)" |
||||
> |
||||
删除 |
||||
</el-button> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
<!-- 分页 --> |
||||
<Pagination |
||||
:total="total" |
||||
v-model:page="queryParams.pageNo" |
||||
v-model:limit="queryParams.pageSize" |
||||
@pagination="getList" |
||||
/> |
||||
</ContentWrap> |
||||
|
||||
<!-- 表单弹窗:添加/修改 --> |
||||
<EnterpriseForm ref="formRef" @success="getList" /> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import { dateFormatter } from '@/utils/formatTime' |
||||
import download from '@/utils/download' |
||||
import { EnterpriseApi, EnterpriseVO } from '@/api/enterprise' |
||||
import EnterpriseForm from './EnterpriseForm.vue' |
||||
|
||||
/** 企业 列表 */ |
||||
defineOptions({ name: 'Enterprise' }) |
||||
|
||||
const message = useMessage() // 消息弹窗 |
||||
const { t } = useI18n() // 国际化 |
||||
|
||||
const loading = ref(true) // 列表的加载中 |
||||
const list = ref<EnterpriseVO[]>([]) // 列表的数据 |
||||
const total = ref(0) // 列表的总页数 |
||||
const queryParams = reactive({ |
||||
pageNo: 1, |
||||
pageSize: 10, |
||||
departmentId: undefined, |
||||
userId: undefined, |
||||
type: undefined, |
||||
region: undefined, |
||||
enterprisesName: undefined, |
||||
address: undefined, |
||||
contactName: undefined, |
||||
environmentalContactPhone: undefined, |
||||
registrationNumber: undefined, |
||||
introduction: undefined, |
||||
establishmentDate: [], |
||||
gpsLocation: undefined, |
||||
createBy: undefined, |
||||
createTime: [], |
||||
updateBy: undefined, |
||||
managerDeptId: undefined, |
||||
}) |
||||
const queryFormRef = ref() // 搜索的表单 |
||||
const exportLoading = ref(false) // 导出的加载中 |
||||
|
||||
/** 查询列表 */ |
||||
const getList = async () => { |
||||
loading.value = true |
||||
try { |
||||
const data = await EnterpriseApi.getEnterprisePage(queryParams) |
||||
list.value = data.list |
||||
total.value = data.total |
||||
} finally { |
||||
loading.value = false |
||||
} |
||||
} |
||||
|
||||
/** 搜索按钮操作 */ |
||||
const handleQuery = () => { |
||||
queryParams.pageNo = 1 |
||||
getList() |
||||
} |
||||
|
||||
/** 重置按钮操作 */ |
||||
const resetQuery = () => { |
||||
queryFormRef.value.resetFields() |
||||
handleQuery() |
||||
} |
||||
|
||||
/** 添加/修改操作 */ |
||||
const formRef = ref() |
||||
const openForm = (type: string, id?: number) => { |
||||
formRef.value.open(type, id) |
||||
} |
||||
|
||||
/** 删除按钮操作 */ |
||||
const handleDelete = async (id: number) => { |
||||
try { |
||||
// 删除的二次确认 |
||||
await message.delConfirm() |
||||
// 发起删除 |
||||
await EnterpriseApi.deleteEnterprise(id) |
||||
message.success(t('common.delSuccess')) |
||||
// 刷新列表 |
||||
await getList() |
||||
} catch {} |
||||
} |
||||
|
||||
/** 导出按钮操作 */ |
||||
const handleExport = async () => { |
||||
try { |
||||
// 导出的二次确认 |
||||
await message.exportConfirm() |
||||
// 发起导出 |
||||
exportLoading.value = true |
||||
const data = await EnterpriseApi.exportEnterprise(queryParams) |
||||
download.excel(data, '企业.xls') |
||||
} catch { |
||||
} finally { |
||||
exportLoading.value = false |
||||
} |
||||
} |
||||
|
||||
/** 初始化 **/ |
||||
onMounted(() => { |
||||
getList() |
||||
}) |
||||
</script> |
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<module type="WEB_MODULE" version="4"> |
||||
<component name="NewModuleRootManager" inherit-compiler-output="true"> |
||||
<exclude-output /> |
||||
<content url="file://$MODULE_DIR$" /> |
||||
<orderEntry type="inheritedJdk" /> |
||||
<orderEntry type="sourceFolder" forTests="false" /> |
||||
</component> |
||||
</module> |
Loading…
Reference in new issue