This commit is contained in:
2025-11-29 01:14:09 +08:00
parent 44dbcb48a6
commit bfa83f42a8
7 changed files with 153 additions and 180 deletions

View File

@@ -93,7 +93,7 @@ public class BizProjectReport extends DataEntity<BizProjectReport> implements Se
@ExcelFields({
@ExcelField(title = "记录时间", attrName = "createTime", align = Align.CENTER, sort = 10, dataFormat = "yyyy-MM-dd hh:mm"),
@ExcelField(title = "汇报标识", attrName = "reportId", align = Align.CENTER, sort = 20),
@ExcelField(title = "汇报周期", attrName = "reportCycle", align = Align.CENTER, sort = 30),
@ExcelField(title = "汇报周期", attrName = "reportCycle", dictType = "report_cycle", align = Align.CENTER, sort = 30),
@ExcelField(title = "汇报主题", attrName = "workTitle", align = Align.CENTER, sort = 40),
@ExcelField(title = "本期内容", attrName = "workContent", align = Align.CENTER, sort = 50),
@ExcelField(title = "项目进度", attrName = "progressPercent", align = Align.CENTER, sort = 60),
@@ -101,7 +101,7 @@ public class BizProjectReport extends DataEntity<BizProjectReport> implements Se
@ExcelField(title = "解决方案", attrName = "solutionPlan", align = Align.CENTER, sort = 80),
@ExcelField(title = "下期计划", attrName = "nextPlan", align = Align.CENTER, sort = 90),
@ExcelField(title = "提交时间", attrName = "reportTime", align = Align.CENTER, sort = 100, dataFormat = "yyyy-MM-dd hh:mm"),
@ExcelField(title = "汇报状态", attrName = "approvalStatus", align = Align.CENTER, sort = 110),
@ExcelField(title = "汇报状态", attrName = "approvalStatus", dictType = "approval_status", align = Align.CENTER, sort = 110),
@ExcelField(title = "项目编号", attrName = "projectCode", align = Align.CENTER, sort = 120),
@ExcelField(title = "项目名称", attrName = "projectName", align = Align.CENTER, sort = 120),
@ExcelField(title = "人员名称", attrName = "employeeName", align = Align.CENTER, sort = 130),

View File

@@ -10,7 +10,7 @@
:okAuth="'biz:cities:edit'"
@register="registerDrawer"
@ok="handleSubmit"
width="70%"
width="40%"
>
<template #title>
<Icon :icon="getTitle.icon" class="m-1 pr-1" />
@@ -51,6 +51,7 @@
selectType: 'bizProvSelect',
},
required: true,
colProps: { md: 24, lg: 24 },
},
{
label: t('市区编码'),
@@ -60,6 +61,7 @@
maxlength: 24,
},
required: true,
colProps: { md: 24, lg: 24 },
},
{
label: t('市区名称'),
@@ -69,6 +71,7 @@
maxlength: 125,
},
required: true,
colProps: { md: 24, lg: 24 },
},
{
label: t('市区区号'),
@@ -78,6 +81,7 @@
maxlength: 12,
},
required: true,
colProps: { md: 24, lg: 24 },
},
{
label: t('市区级别'),
@@ -88,6 +92,7 @@
allowClear: true,
},
required: true,
colProps: { md: 24, lg: 24 },
},
{
label: t('数据状态'),
@@ -98,6 +103,7 @@
allowClear: true,
},
required: true,
colProps: { md: 24, lg: 24 },
},
];

View File

@@ -18,9 +18,9 @@
<Icon icon="i-fluent:add-12-filled" /> {{ t('新增') }}
</a-button>
</template>
<template #firstColumn="{ record }">
<a @click="handleForm({ reportId: record.reportId })" :title="record.createTime">
{{ record.createTime }}
<template #slotBizKey="{ record }">
<a @click="handleForm({ reportId: record.reportId })" :title="record.workTitle">
{{ record.workTitle }}
</a>
</template>
</BasicTable>
@@ -93,7 +93,7 @@
},
},
{
label: t('项目编号'),
label: t('项目名称'),
field: 'projectId',
fieldLabel: 'projectName',
component: 'ListSelect',
@@ -102,7 +102,7 @@
},
},
{
label: t('所属人员'),
label: t('汇报人员'),
field: 'employeeId',
fieldLabel: 'employeeName',
component: 'ListSelect',
@@ -130,16 +130,6 @@
sorter: true,
width: 180,
align: 'left',
slot: 'firstColumn',
},
{
title: t('汇报周期'),
dataIndex: 'reportCycle',
key: 'a.report_cycle',
sorter: true,
width: 130,
align: 'left',
dictType: 'report_cycle',
},
{
title: t('汇报主题'),
@@ -148,6 +138,7 @@
sorter: true,
width: 200,
align: 'left',
slot: 'slotBizKey',
},
{
title: t('汇报人员'),
@@ -157,6 +148,15 @@
width: 130,
align: 'left',
},
{
title: t('汇报周期'),
dataIndex: 'reportCycle',
key: 'a.report_cycle',
sorter: true,
width: 130,
align: 'left',
dictType: 'report_cycle',
},
{
title: t('项目编码'),
dataIndex: 'projectCode',
@@ -189,30 +189,6 @@
width: 130,
align: 'left',
},
{
title: t('存在问题'),
dataIndex: 'problemDesc',
key: 'a.problem_desc',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('解决方案'),
dataIndex: 'solutionPlan',
key: 'a.solution_plan',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('下期计划'),
dataIndex: 'nextPlan',
key: 'a.next_plan',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('提交时间'),
dataIndex: 'reportTime',
@@ -238,19 +214,20 @@
actions: (record: BizProjectReport) => [
{
icon: 'i-clarity:note-edit-line',
title: t('编辑汇报信息'),
title: t('编辑'),
onClick: handleForm.bind(this, { reportId: record.reportId }),
auth: 'biz:projectReport:edit',
},
{
icon: 'i-ant-design:delete-outlined',
color: 'error',
title: t('删除汇报信息'),
title: t('删除'),
popConfirm: {
title: t('是否确认删除汇报信息'),
title: t('是否确认删除汇报信息?'),
confirm: handleDelete.bind(this, record),
},
auth: 'biz:projectReport:edit',
ifShow: record.approvalStatus == '0'
},
],
};

View File

@@ -50,6 +50,7 @@
maxlength: 52,
},
required: true,
colProps: { md: 24, lg: 24 },
},
{
label: t('需求编号'),
@@ -59,21 +60,62 @@
maxlength: 24,
},
},
{
label: t('项目区域'),
field: 'areaCode',
component: 'Input',
componentProps: {
maxlength: 152,
},
required: true,
},
{
label: t('项目区域'),
field: 'areaCode',
fieldLabel: 'provinceName',
component: 'ListSelect',
componentProps: {
selectType: 'bizProvSelect',
},
required: true,
},
{
label: t('项目名称'),
field: 'projectId',
fieldLabel: 'projectName',
component: 'ListSelect',
componentProps: {
selectType: 'bizProjectSelect',
},
required: true,
},
{
label: t('需求人员'),
field: 'employeeId',
fieldLabel: 'employeeName',
component: 'ListSelect',
componentProps: {
selectType: 'bizEmpSelect',
},
required: true,
},
{
label: t('需求描述'),
field: 'requirementDescription',
component: 'Input',
component: 'InputTextArea',
colProps: { md: 24, lg: 24 },
},
{
label: t('优先等级'),
field: 'priority',
component: 'Select',
componentProps: {
dictType: 'priority',
allowClear: true,
},
required: true,
},
{
label: t('需求状态'),
field: 'requirementsStatus',
component: 'Select',
componentProps: {
dictType: 'requirements_status',
allowClear: true,
},
required: true,
},
{
label: t('开始时间'),
field: 'startTime',
@@ -92,55 +134,15 @@
showTime: { format: 'HH:mm' },
},
},
{
label: t('优先级'),
field: 'priority',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
required: true,
},
{
label: t('项目ID'),
field: 'projectId',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
required: true,
},
{
label: t('用户ID'),
field: 'employeeId',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
required: true,
},
{
label: t('需求备注'),
field: 'remark',
component: 'Input',
component: 'InputTextArea',
componentProps: {
maxlength: 100,
},
colProps: { md: 24, lg: 24 },
},
{
label: t('状态'),
field: 'requirementsStatus',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
required: true,
},
];
const [registerForm, { resetFields, setFieldsValue, validate }] = useForm<BizProjectRequirements>({

View File

@@ -14,16 +14,13 @@
<a-button type="default" :loading="loading" @click="handleExport()">
<Icon icon="i-ant-design:download-outlined" /> {{ t('导出') }}
</a-button>
<a-button type="default" @click="handleImport()">
<Icon icon="i-ant-design:import-outlined" /> {{ t('导入') }}
</a-button>
<a-button type="primary" @click="handleForm({})" v-auth="'biz:projectRequirements:edit'">
<Icon icon="i-fluent:add-12-filled" /> {{ t('新增') }}
</a-button>
</template>
<template #firstColumn="{ record }">
<a @click="handleForm({ requirementId: record.requirementId })" :title="record.createTime">
{{ record.createTime }}
<template #slotBizKey="{ record }">
<a @click="handleForm({ requirementId: record.requirementId })" :title="record.requirementName">
{{ record.requirementName }}
</a>
</template>
</BasicTable>
@@ -91,40 +88,44 @@
field: 'requirementCode',
component: 'Input',
},
{
label: t('项目区域'),
field: 'areaCode',
component: 'Input',
},
{
label: t('项目区域'),
field: 'areaCode',
fieldLabel: 'provinceName',
component: 'ListSelect',
componentProps: {
selectType: 'bizProvSelect',
},
},
{
label: t('项目名称'),
field: 'projectId',
fieldLabel: 'projectName',
component: 'ListSelect',
componentProps: {
selectType: 'bizProjectSelect',
},
},
{
label: t('需求人员'),
field: 'employeeId',
fieldLabel: 'employeeName',
component: 'ListSelect',
componentProps: {
selectType: 'bizEmpSelect',
},
},
{
label: t('需求描述'),
field: 'requirementDescription',
component: 'Input',
},
{
label: t('优先级'),
label: t('优先级'),
field: 'priority',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
{
label: t('项目ID'),
field: 'projectId',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
{
label: t('用户ID'),
field: 'employeeId',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'priority',
allowClear: true,
},
},
@@ -134,11 +135,11 @@
component: 'Input',
},
{
label: t('状态'),
label: t('需求状态'),
field: 'requirementsStatus',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'requirements_status',
allowClear: true,
},
},
@@ -151,9 +152,8 @@
dataIndex: 'createTime',
key: 'a.create_time',
sorter: true,
width: 230,
width: 180,
align: 'left',
slot: 'firstColumn',
},
{
title: t('需求名称'),
@@ -162,6 +162,7 @@
sorter: true,
width: 130,
align: 'left',
slot: 'slotBizKey',
},
{
title: t('需求编号'),
@@ -192,7 +193,7 @@
dataIndex: 'startTime',
key: 'a.start_time',
sorter: true,
width: 130,
width: 180,
align: 'center',
},
{
@@ -200,44 +201,26 @@
dataIndex: 'endTime',
key: 'a.end_time',
sorter: true,
width: 130,
width: 180,
align: 'center',
},
{
title: t('优先级'),
title: t('优先级'),
dataIndex: 'priority',
key: 'a.priority',
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'priority',
},
{
title: t('更新时间'),
dataIndex: 'updateTime',
key: 'a.update_time',
sorter: true,
width: 130,
width: 180,
align: 'center',
},
{
title: t('项目ID'),
dataIndex: 'projectId',
key: 'a.project_id',
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
{
title: t('用户ID'),
dataIndex: 'employeeId',
key: 'a.employee_id',
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
{
title: t('需求备注'),
dataIndex: 'remark',
@@ -253,7 +236,7 @@
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'requirements_status',
},
];
@@ -262,16 +245,16 @@
actions: (record: BizProjectRequirements) => [
{
icon: 'i-clarity:note-edit-line',
title: t('编辑需求信息'),
title: t('编辑'),
onClick: handleForm.bind(this, { requirementId: record.requirementId }),
auth: 'biz:projectRequirements:edit',
},
{
icon: 'i-ant-design:delete-outlined',
color: 'error',
title: t('删除需求信息'),
title: t('删除'),
popConfirm: {
title: t('是否确认删除需求信息'),
title: t('是否确认删除需求信息?'),
confirm: handleDelete.bind(this, record),
},
auth: 'biz:projectRequirements:edit',

View File

@@ -10,7 +10,7 @@
:okAuth="'biz:province:edit'"
@register="registerDrawer"
@ok="handleSubmit"
width="70%"
width="40%"
>
<template #title>
<Icon :icon="getTitle.icon" class="m-1 pr-1" />
@@ -50,6 +50,7 @@
maxlength: 52,
},
required: true,
colProps: { md: 24, lg: 24 },
},
{
label: t('省份编码'),
@@ -59,6 +60,7 @@
maxlength: 12,
},
required: true,
colProps: { md: 24, lg: 24 },
},
{
label: t('请求地址'),
@@ -67,6 +69,7 @@
componentProps: {
maxlength: 125,
},
colProps: { md: 24, lg: 24 },
},
{
label: t('省份序号'),
@@ -76,6 +79,7 @@
maxlength: 9,
},
required: true,
colProps: { md: 24, lg: 24 },
},
{
label: t('请求状态'),
@@ -85,6 +89,7 @@
dictType: 'req_code',
allowClear: true,
},
colProps: { md: 24, lg: 24 },
},
{
label: t('数据状态'),
@@ -95,6 +100,7 @@
allowClear: true,
},
required: true,
colProps: { md: 24, lg: 24 },
},
];

View File

@@ -71,7 +71,26 @@
colProps: { md: 24, lg: 24 },
required: true,
},
{
label: t('所属人员'),
field: 'employeeId',
fieldLabel: 'employeeName',
component: 'ListSelect',
componentProps: {
selectType: 'bizEmpSelect',
},
required: true,
},
{
label: t('网站状态'),
field: 'storageStatus',
component: 'Select',
componentProps: {
dictType: 'ustatus ',
allowClear: true,
},
required: true,
},
{
label: t('登录账号'),
field: 'webAccount',
@@ -94,26 +113,6 @@
component: 'InputTextArea',
colProps: { md: 24, lg: 24 },
},
{
label: t('所属人员'),
field: 'employeeId',
fieldLabel: 'employeeName',
component: 'ListSelect',
componentProps: {
selectType: 'bizEmpSelect',
},
required: true,
},
{
label: t('网站状态'),
field: 'storageStatus',
component: 'Select',
componentProps: {
dictType: 'ustatus ',
allowClear: true,
},
required: true,
},
];
const [registerForm, { resetFields, setFieldsValue, validate }] = useForm<BizWebsiteStorage>({