This commit is contained in:
2025-11-29 00:08:49 +08:00
parent 489b2314ab
commit 44dbcb48a6
26 changed files with 859 additions and 1080 deletions

View File

@@ -30,6 +30,9 @@ export interface BizCities extends BasicModel<BizCities> {
export const bizCitiesList = (params?: BizCities | any) =>
defHttp.get<BizCities>({ url: adminPath + '/biz/cities/list', params });
export const bizCitiesListAll = (params?: BizCities | any) =>
defHttp.get<BizCities[]>({ url: adminPath + '/biz/cities/listAll', params });
export const bizCitiesListData = (params?: BizCities | any) =>
defHttp.post<Page<BizCities>>({ url: adminPath + '/biz/cities/listData', params });

View File

@@ -28,6 +28,9 @@ export interface BizProvince extends BasicModel<BizProvince> {
export const bizProvinceList = (params?: BizProvince | any) =>
defHttp.get<BizProvince>({ url: adminPath + '/biz/province/list', params });
export const bizProvinceListAll = (params?: BizProvince | any) =>
defHttp.get<BizProvince[]>({ url: adminPath + '/biz/province/listAll', params });
export const bizProvinceListData = (params?: BizProvince | any) =>
defHttp.post<Page<BizProvince>>({ url: adminPath + '/biz/province/listData', params });

View File

@@ -42,15 +42,16 @@
}));
const inputFormSchemas: FormSchema<BizCities>[] = [
{
label: t('省份编码'),
field: 'provinceCode',
component: 'Input',
componentProps: {
maxlength: 24,
},
required: true,
},
{
label: t('省份名称'),
field: 'provinceCode',
fieldLabel: 'provinceName',
component: 'ListSelect',
componentProps: {
selectType: 'bizProvSelect',
},
required: true,
},
{
label: t('市区编码'),
field: 'cityCode',
@@ -83,7 +84,7 @@
field: 'areaType',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'area_type',
allowClear: true,
},
required: true,
@@ -93,7 +94,7 @@
field: 'dataStatus',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'ustatus',
allowClear: true,
},
required: true,

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:cities:edit'">
<Icon icon="i-fluent:add-12-filled" /> {{ t('新增') }}
</a-button>
</template>
<template #firstColumn="{ record }">
<a @click="handleForm({ id: record.id })" :title="record.createTime">
{{ record.createTime }}
<template #slotBizKey="{ record }">
<a @click="handleForm({ id: record.id })" :title="record.cityName">
{{ record.cityName }}
</a>
</template>
</BasicTable>
@@ -80,12 +77,16 @@
format: 'YYYY-MM-DD HH:mm',
showTime: { format: 'HH:mm' },
},
},
{
label: t('省份编码'),
field: 'provinceCode',
component: 'Input',
},
},
{
label: t('省份名称'),
field: 'provinceCode',
fieldLabel: 'provinceName',
component: 'ListSelect',
componentProps: {
selectType: 'bizProvSelect',
},
},
{
label: t('市区编码'),
field: 'cityCode',
@@ -101,7 +102,7 @@
field: 'areaType',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'area_type',
allowClear: true,
},
},
@@ -110,7 +111,7 @@
field: 'dataStatus',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'ustatus',
allowClear: true,
},
},
@@ -123,9 +124,8 @@
dataIndex: 'createTime',
key: 'a.create_time',
sorter: true,
width: 230,
width: 180,
align: 'left',
slot: 'firstColumn',
},
{
title: t('省份编码'),
@@ -135,6 +135,14 @@
width: 130,
align: 'left',
},
{
title: t('省份名称'),
dataIndex: 'provinceName',
key: 'b.province_name',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('市区编码'),
dataIndex: 'cityCode',
@@ -150,6 +158,7 @@
sorter: true,
width: 130,
align: 'left',
slot: 'slotBizKey',
},
{
title: t('市区区号'),
@@ -166,14 +175,14 @@
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'area_type',
},
{
title: t('更新时间'),
dataIndex: 'updateTime',
key: 'a.update_time',
sorter: true,
width: 130,
width: 180,
align: 'center',
},
{
@@ -183,28 +192,30 @@
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'ustatus',
},
];
const actionColumn: BasicColumn<BizCities> = {
width: 160,
align: 'center',
actions: (record: BizCities) => [
{
icon: 'i-clarity:note-edit-line',
title: t('编辑市区信息'),
title: t('编辑'),
onClick: handleForm.bind(this, { id: record.id }),
auth: 'biz:cities: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:cities:edit',
ifShow: record.dataStatus == '0'
},
],
};

View File

@@ -27,6 +27,8 @@
import { Icon } from '@jeesite/core/components/Icon';
import { BasicForm, FormSchema, useForm } from '@jeesite/core/components/Form';
import { BasicDrawer, useDrawerInner } from '@jeesite/core/components/Drawer';
import { bizCitiesListAll } from '@jeesite/biz/api/biz/cities';
import { bizProvinceListAll } from '@jeesite/biz/api/biz/province';
import { BizMunicipalities, bizMunicipalitiesSave, bizMunicipalitiesForm } from '@jeesite/biz/api/biz/municipalities';
const emit = defineEmits(['success', 'register']);
@@ -35,6 +37,8 @@
const { showMessage } = useMessage();
const { meta } = unref(router.currentRoute);
const record = ref<BizMunicipalities>({} as BizMunicipalities);
const provListParams = ref<Recordable>({ provinceCode: '' });
const getTitle = computed(() => ({
icon: meta.icon || 'i-ant-design:book-outlined',
@@ -42,35 +46,54 @@
}));
const inputFormSchemas: FormSchema<BizMunicipalities>[] = [
{
label: t('省份名称'),
field: 'provinceCode',
component: 'Select',
componentProps: {
api: bizProvinceListAll,
params: {},
fieldNames: { label: 'provinceName', value: 'provinceCode' },
immediate: true,
allowClear: true,
onChange: (value: string) => {
provListParams.value.provinceCode = value;
},
required: true,
},
colProps: { md: 24, lg: 24 },
},
{
label: t('区名称'),
field: 'countyName',
component: 'Input',
componentProps: {
maxlength: 65,
},
required: true,
},
{
label: t('省份编码'),
field: 'provinceCode',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
required: true,
},
{
label: t('市区编码'),
field: 'cityCode',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
required: true,
},
label: t('区名称'),
field: 'cityCode',
component: 'Select',
componentProps: {
api: bizCitiesListAll,
params: provListParams.value,
fieldNames: { label: 'cityName', value: 'cityCode' },
allowClear: true,
},
required: true,
},
{
label: t('数据状态'),
field: 'dataStatus',
component: 'Select',
componentProps: {
dictType: 'ustatus',
allowClear: true,
},
required: true,
},
{
label: t('县区名称'),
field: 'countyName',
component: 'Input',
componentProps: {
maxlength: 65,
},
required: true,
},
{
label: t('县区编码'),
field: 'countyCode',
@@ -116,16 +139,6 @@
},
required: true,
},
{
label: t('数据状态'),
field: 'dataStatus',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
required: true,
},
];
const [registerForm, { resetFields, setFieldsValue, validate }] = useForm<BizMunicipalities>({

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:municipalities:edit'">
<Icon icon="i-fluent:add-12-filled" /> {{ t('新增') }}
</a-button>
</template>
<template #firstColumn="{ record }">
<a @click="handleForm({ id: record.id })" :title="record.createTime">
{{ record.createTime }}
<template #slotBizKey="{ record }">
<a @click="handleForm({ id: record.id })" :title="record.villageName">
{{ record.villageName }}
</a>
</template>
</BasicTable>
@@ -42,6 +39,8 @@
import { BasicTable, BasicColumn, useTable } from '@jeesite/core/components/Table';
import { BizMunicipalities, bizMunicipalitiesList } from '@jeesite/biz/api/biz/municipalities';
import { bizMunicipalitiesDelete, bizMunicipalitiesListData } from '@jeesite/biz/api/biz/municipalities';
import { bizCitiesListAll } from '@jeesite/biz/api/biz/cities';
import { bizProvinceListAll } from '@jeesite/biz/api/biz/province';
import { useDrawer } from '@jeesite/core/components/Drawer';
import { useModal } from '@jeesite/core/components/Modal';
import { FormProps } from '@jeesite/core/components/Form';
@@ -52,6 +51,8 @@
const { showMessage } = useMessage();
const { meta } = unref(router.currentRoute);
const record = ref<BizMunicipalities>({} as BizMunicipalities);
const provListParams = ref<Recordable>({ provinceCode: '' });
const getTitle = {
icon: meta.icon || 'i-ant-design:book-outlined',
@@ -81,18 +82,19 @@
showTime: { format: 'HH:mm' },
},
},
{
label: t('县区名称'),
field: 'countyName',
component: 'Input',
},
{
label: t('省份编码'),
field: 'provinceCode',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
api: bizProvinceListAll,
params: {},
fieldNames: { label: 'provinceName', value: 'provinceCode' },
immediate: true,
allowClear: true,
onChange: (value: string) => {
provListParams.value.provinceCode = value;
},
},
},
{
@@ -100,10 +102,17 @@
field: 'cityCode',
component: 'Select',
componentProps: {
dictType: '',
api: bizCitiesListAll,
params: provListParams.value,
fieldNames: { label: 'cityName', value: 'cityCode' },
allowClear: true,
},
},
{
label: t('县区名称'),
field: 'countyName',
component: 'Input',
},
{
label: t('县区编码'),
field: 'countyCode',
@@ -134,7 +143,7 @@
field: 'dataStatus',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'ustatus',
allowClear: true,
},
},
@@ -147,27 +156,33 @@
dataIndex: 'createTime',
key: 'a.create_time',
sorter: true,
width: 230,
align: 'left',
slot: 'firstColumn',
},
{
title: t('县区名称'),
dataIndex: 'countyName',
key: 'a.county_name',
sorter: true,
width: 130,
width: 180,
align: 'left',
},
{
title: t('省份编码'),
dataIndex: 'provinceCode',
key: 'a.province_code',
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
{
title: t('省份名称'),
dataIndex: 'provinceName',
key: 'b.province_name',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('省份编码'),
dataIndex: 'provinceCode',
key: 'a.province_code',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('市区名称'),
dataIndex: 'cityName',
key: 'c.city_name',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('市区编码'),
dataIndex: 'cityCode',
@@ -175,8 +190,15 @@
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
{
title: t('县区名称'),
dataIndex: 'countyName',
key: 'a.county_name',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('县区编码'),
dataIndex: 'countyCode',
@@ -208,6 +230,7 @@
sorter: true,
width: 130,
align: 'left',
slot: 'slotBizKey',
},
{
title: t('社区编号'),
@@ -222,7 +245,7 @@
dataIndex: 'updateTime',
key: 'a.update_time',
sorter: true,
width: 130,
width: 180,
align: 'center',
},
{
@@ -232,28 +255,30 @@
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'ustatus',
},
];
const actionColumn: BasicColumn<BizMunicipalities> = {
width: 160,
align: 'center',
actions: (record: BizMunicipalities) => [
{
icon: 'i-clarity:note-edit-line',
title: t('编辑地市信息'),
title: t('编辑'),
onClick: handleForm.bind(this, { id: record.id }),
auth: 'biz:municipalities: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:municipalities:edit',
ifShow: record.dataStatus == '0'
},
],
};

View File

@@ -1,205 +0,0 @@
import { useI18n } from '@jeesite/core/hooks/web/useI18n';
import { BasicColumn, BasicTableProps, FormProps } from '@jeesite/core/components/Table';
import { BizMunicipalities, bizMunicipalitiesListData } from '@jeesite/biz/api/biz/municipalities';
const { t } = useI18n('biz.municipalities');
const modalProps = {
title: t('地市信息选择'),
};
const searchForm: FormProps<BizMunicipalities> = {
baseColProps: { md: 8, lg: 6 },
labelWidth: 90,
schemas: [
{
label: t('记录时间起'),
field: 'createTime_gte',
component: 'DatePicker',
componentProps: {
format: 'YYYY-MM-DD HH:mm',
showTime: { format: 'HH:mm' },
},
},
{
label: t('记录时间止'),
field: 'createTime_lte',
component: 'DatePicker',
componentProps: {
format: 'YYYY-MM-DD HH:mm',
showTime: { format: 'HH:mm' },
},
},
{
label: t('县区名称'),
field: 'countyName',
component: 'Input',
},
{
label: t('省份编码'),
field: 'provinceCode',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
{
label: t('市区编码'),
field: 'cityCode',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
{
label: t('县区编码'),
field: 'countyCode',
component: 'Input',
},
{
label: t('街道名称'),
field: 'townName',
component: 'Input',
},
{
label: t('街道编号'),
field: 'townCode',
component: 'Input',
},
{
label: t('社区名称'),
field: 'villageName',
component: 'Input',
},
{
label: t('社区编号'),
field: 'villageCode',
component: 'Input',
},
{
label: t('数据状态'),
field: 'dataStatus',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
],
};
const tableColumns: BasicColumn<BizMunicipalities>[] = [
{
title: t('记录时间'),
dataIndex: 'createTime',
key: 'a.create_time',
sorter: true,
width: 230,
align: 'left',
slot: 'firstColumn',
},
{
title: t('县区名称'),
dataIndex: 'countyName',
key: 'a.county_name',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('省份编码'),
dataIndex: 'provinceCode',
key: 'a.province_code',
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
{
title: t('市区编码'),
dataIndex: 'cityCode',
key: 'a.city_code',
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
{
title: t('县区编码'),
dataIndex: 'countyCode',
key: 'a.county_code',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('街道名称'),
dataIndex: 'townName',
key: 'a.town_name',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('街道编号'),
dataIndex: 'townCode',
key: 'a.town_code',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('社区名称'),
dataIndex: 'villageName',
key: 'a.village_name',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('社区编号'),
dataIndex: 'villageCode',
key: 'a.village_code',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('更新时间'),
dataIndex: 'updateTime',
key: 'a.update_time',
sorter: true,
width: 130,
align: 'center',
},
{
title: t('数据状态'),
dataIndex: 'dataStatus',
key: 'a.data_status',
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
];
const tableProps: BasicTableProps = {
api: bizMunicipalitiesListData,
beforeFetch: (params) => {
params['isAll'] = true;
return params;
},
columns: tableColumns,
formConfig: searchForm,
rowKey: 'id',
};
export default {
modalProps,
tableProps,
itemCode: 'id',
itemName: 'id',
isShowCode: false,
};

View File

@@ -12,24 +12,6 @@ const searchForm: FormProps<BizProjectInfo> = {
baseColProps: { md: 8, lg: 6 },
labelWidth: 90,
schemas: [
{
label: t('记录时间起'),
field: 'createTime_gte',
component: 'DatePicker',
componentProps: {
format: 'YYYY-MM-DD HH:mm',
showTime: { format: 'HH:mm' },
},
},
{
label: t('记录时间止'),
field: 'createTime_lte',
component: 'DatePicker',
componentProps: {
format: 'YYYY-MM-DD HH:mm',
showTime: { format: 'HH:mm' },
},
},
{
label: t('项目编码'),
field: 'projectCode',
@@ -40,30 +22,12 @@ const searchForm: FormProps<BizProjectInfo> = {
field: 'projectName',
component: 'Input',
},
{
label: t('员工列表'),
field: 'employeeId',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
{
label: t('项目类型'),
field: 'projectType',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
{
label: t('项目状态'),
field: 'projectStatus',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'project_status',
allowClear: true,
},
},
@@ -76,7 +40,7 @@ const tableColumns: BasicColumn<BizProjectInfo>[] = [
dataIndex: 'createTime',
key: 'a.create_time',
sorter: true,
width: 230,
width: 180,
align: 'left',
slot: 'firstColumn',
},
@@ -128,15 +92,6 @@ const tableColumns: BasicColumn<BizProjectInfo>[] = [
width: 130,
align: 'center',
},
{
title: t('员工列表'),
dataIndex: 'employeeId',
key: 'a.employee_id',
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
{
title: t('项目类型'),
dataIndex: 'projectType',
@@ -144,7 +99,7 @@ const tableColumns: BasicColumn<BizProjectInfo>[] = [
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'project_type',
},
{
title: t('项目状态'),
@@ -153,7 +108,7 @@ const tableColumns: BasicColumn<BizProjectInfo>[] = [
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'project_status',
},
];
@@ -172,6 +127,6 @@ export default {
modalProps,
tableProps,
itemCode: 'projectId',
itemName: 'projectId',
isShowCode: false,
itemName: 'projectName',
isShowCode: true,
};

View File

@@ -42,16 +42,6 @@
}));
const inputFormSchemas: FormSchema<BizProjectReport>[] = [
{
label: t('汇报周期'),
field: 'reportCycle',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
required: true,
},
{
label: t('汇报主题'),
field: 'workTitle',
@@ -60,80 +50,91 @@
maxlength: 52,
},
required: true,
colProps: { md: 24, lg: 24 },
},
{
label: t('汇报周期'),
field: 'reportCycle',
component: 'Select',
componentProps: {
dictType: 'report_cycle',
allowClear: true,
},
required: true,
},
{
label: t('提交时间'),
field: 'reportTime',
component: 'DatePicker',
componentProps: {
format: 'YYYY-MM-DD HH:mm',
showTime: { format: 'HH:mm' },
},
},
{
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: 'workContent',
component: 'Input',
component: 'InputTextArea',
required: true,
colProps: { md: 24, lg: 24 },
},
{
label: t('项目进度'),
field: 'progressPercent',
component: 'Input',
component: 'InputNumber',
componentProps: {
maxlength: 12,
},
required: true,
},
{
label: t('汇报状态'),
field: 'approvalStatus',
component: 'Select',
componentProps: {
dictType: 'approval_status',
allowClear: true,
},
required: true,
},
{
label: t('存在问题'),
field: 'problemDesc',
component: 'Input',
component: 'InputTextArea',
colProps: { md: 24, lg: 24 },
},
{
label: t('解决方案'),
field: 'solutionPlan',
component: 'Input',
component: 'InputTextArea',
colProps: { md: 24, lg: 24 },
},
{
label: t('下期计划'),
field: 'nextPlan',
component: 'Input',
component: 'InputTextArea',
colProps: { md: 24, lg: 24 },
},
{
label: t('提交时间'),
field: 'reportTime',
component: 'DatePicker',
componentProps: {
format: 'YYYY-MM-DD HH:mm',
showTime: { format: 'HH:mm' },
},
},
{
label: t('汇报状态'),
field: 'approvalStatus',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
required: true,
},
{
label: t('项目编号'),
field: 'projectId',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
required: true,
},
{
label: t('人员编号'),
field: 'employeeId',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
required: true,
},
{
label: t('附件上传'),
field: 'dataMap',

View File

@@ -78,47 +78,47 @@
showTime: { format: 'HH:mm' },
},
},
{
label: t('汇报主题'),
field: 'workTitle',
component: 'Input',
},
{
label: t('汇报周期'),
field: 'reportCycle',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
{
label: t('汇报主题'),
field: 'workTitle',
component: 'Input',
},
{
label: t('汇报状态'),
field: 'approvalStatus',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'report_cycle',
allowClear: true,
},
},
{
label: t('项目编号'),
field: 'projectId',
component: 'Select',
fieldLabel: 'projectName',
component: 'ListSelect',
componentProps: {
dictType: '',
allowClear: true,
},
},
{
label: t('人员编号'),
field: 'employeeId',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
selectType: 'bizProjectSelect',
},
},
{
label: t('所属人员'),
field: 'employeeId',
fieldLabel: 'employeeName',
component: 'ListSelect',
componentProps: {
selectType: 'bizEmpSelect',
},
},
{
label: t('汇报状态'),
field: 'approvalStatus',
component: 'Select',
componentProps: {
dictType: 'approval_status',
allowClear: true,
},
},
],
};
@@ -128,7 +128,7 @@
dataIndex: 'createTime',
key: 'a.create_time',
sorter: true,
width: 230,
width: 180,
align: 'left',
slot: 'firstColumn',
},
@@ -139,16 +139,40 @@
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'report_cycle',
},
{
title: t('汇报主题'),
dataIndex: 'workTitle',
key: 'a.work_title',
sorter: true,
width: 130,
width: 200,
align: 'left',
},
{
title: t('汇报人员'),
dataIndex: 'employeeName',
key: 'b.employee_name',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('项目编码'),
dataIndex: 'projectCode',
key: 'c.project_code',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('项目名称'),
dataIndex: 'projectName',
key: 'c.project_name',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('本期内容'),
dataIndex: 'workContent',
@@ -194,7 +218,7 @@
dataIndex: 'reportTime',
key: 'a.report_time',
sorter: true,
width: 130,
width: 180,
align: 'center',
},
{
@@ -204,30 +228,13 @@
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
{
title: t('项目编号'),
dataIndex: 'projectId',
key: 'a.project_id',
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
{
title: t('人员编号'),
dataIndex: 'employeeId',
key: 'a.employee_id',
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'approval_status',
},
];
const actionColumn: BasicColumn<BizProjectReport> = {
width: 160,
align: 'center',
actions: (record: BizProjectReport) => [
{
icon: 'i-clarity:note-edit-line',

View File

@@ -1,198 +0,0 @@
import { useI18n } from '@jeesite/core/hooks/web/useI18n';
import { BasicColumn, BasicTableProps, FormProps } from '@jeesite/core/components/Table';
import { BizProjectReport, bizProjectReportListData } from '@jeesite/biz/api/biz/projectReport';
const { t } = useI18n('biz.projectReport');
const modalProps = {
title: t('汇报信息选择'),
};
const searchForm: FormProps<BizProjectReport> = {
baseColProps: { md: 8, lg: 6 },
labelWidth: 90,
schemas: [
{
label: t('记录时间起'),
field: 'createTime_gte',
component: 'DatePicker',
componentProps: {
format: 'YYYY-MM-DD HH:mm',
showTime: { format: 'HH:mm' },
},
},
{
label: t('记录时间止'),
field: 'createTime_lte',
component: 'DatePicker',
componentProps: {
format: 'YYYY-MM-DD HH:mm',
showTime: { format: 'HH:mm' },
},
},
{
label: t('汇报周期'),
field: 'reportCycle',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
{
label: t('汇报主题'),
field: 'workTitle',
component: 'Input',
},
{
label: t('汇报状态'),
field: 'approvalStatus',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
{
label: t('项目编号'),
field: 'projectId',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
{
label: t('人员编号'),
field: 'employeeId',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
],
};
const tableColumns: BasicColumn<BizProjectReport>[] = [
{
title: t('记录时间'),
dataIndex: 'createTime',
key: 'a.create_time',
sorter: true,
width: 230,
align: 'left',
slot: 'firstColumn',
},
{
title: t('汇报周期'),
dataIndex: 'reportCycle',
key: 'a.report_cycle',
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
{
title: t('汇报主题'),
dataIndex: 'workTitle',
key: 'a.work_title',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('本期内容'),
dataIndex: 'workContent',
key: 'a.work_content',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('项目进度'),
dataIndex: 'progressPercent',
key: 'a.progress_percent',
sorter: true,
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',
key: 'a.report_time',
sorter: true,
width: 130,
align: 'center',
},
{
title: t('汇报状态'),
dataIndex: 'approvalStatus',
key: 'a.approval_status',
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
{
title: t('项目编号'),
dataIndex: 'projectId',
key: 'a.project_id',
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
{
title: t('人员编号'),
dataIndex: 'employeeId',
key: 'a.employee_id',
sorter: true,
width: 130,
align: 'left',
dictType: '',
},
];
const tableProps: BasicTableProps = {
api: bizProjectReportListData,
beforeFetch: (params) => {
params['isAll'] = true;
return params;
},
columns: tableColumns,
formConfig: searchForm,
rowKey: 'reportId',
};
export default {
modalProps,
tableProps,
itemCode: 'reportId',
itemName: 'reportId',
isShowCode: false,
};

View File

@@ -71,7 +71,7 @@
{
label: t('省份序号'),
field: 'sorting',
component: 'Input',
component: 'InputNumber',
componentProps: {
maxlength: 9,
},
@@ -82,7 +82,7 @@
field: 'reqCode',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'req_code',
allowClear: true,
},
},
@@ -91,7 +91,7 @@
field: 'dataStatus',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'ustatus',
allowClear: true,
},
required: true,

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:province:edit'">
<Icon icon="i-fluent:add-12-filled" /> {{ t('新增') }}
</a-button>
</template>
<template #firstColumn="{ record }">
<a @click="handleForm({ id: record.id })" :title="record.createTime">
{{ record.createTime }}
<template #slotBizKey="{ record }">
<a @click="handleForm({ id: record.id })" :title="record.provinceName">
{{ record.provinceName }}
</a>
</template>
</BasicTable>
@@ -101,7 +98,7 @@
field: 'reqCode',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'req_code',
allowClear: true,
},
},
@@ -110,7 +107,7 @@
field: 'dataStatus',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'ustatus',
allowClear: true,
},
},
@@ -123,17 +120,17 @@
dataIndex: 'createTime',
key: 'a.create_time',
sorter: true,
width: 230,
width: 180,
align: 'left',
slot: 'firstColumn',
},
{
title: t('省份名称'),
dataIndex: 'provinceName',
key: 'a.province_name',
sorter: true,
width: 130,
width: 200,
align: 'left',
slot: 'slotBizKey',
},
{
title: t('省份编码'),
@@ -166,7 +163,7 @@
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'req_code',
},
{
title: t('数据状态'),
@@ -175,28 +172,30 @@
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'ustatus',
},
];
const actionColumn: BasicColumn<BizProvince> = {
width: 160,
align: 'center',
actions: (record: BizProvince) => [
{
icon: 'i-clarity:note-edit-line',
title: t('编辑省份信息'),
title: t('编辑'),
onClick: handleForm.bind(this, { id: record.id }),
auth: 'biz:province: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:province:edit',
ifShow: record.dataStatus == '0'
},
],
};

View File

@@ -0,0 +1,132 @@
import { useI18n } from '@jeesite/core/hooks/web/useI18n';
import { BasicColumn, BasicTableProps, FormProps } from '@jeesite/core/components/Table';
import { BizProjectInfo, bizProjectInfoListData } from '@jeesite/biz/api/biz/projectInfo';
const { t } = useI18n('biz.projectInfo');
const modalProps = {
title: t('项目信息选择'),
};
const searchForm: FormProps<BizProjectInfo> = {
baseColProps: { md: 8, lg: 6 },
labelWidth: 90,
schemas: [
{
label: t('项目编码'),
field: 'projectCode',
component: 'Input',
},
{
label: t('项目名称'),
field: 'projectName',
component: 'Input',
},
{
label: t('项目状态'),
field: 'projectStatus',
component: 'Select',
componentProps: {
dictType: 'project_status',
allowClear: true,
},
},
],
};
const tableColumns: BasicColumn<BizProjectInfo>[] = [
{
title: t('记录时间'),
dataIndex: 'createTime',
key: 'a.create_time',
sorter: true,
width: 180,
align: 'left',
slot: 'firstColumn',
},
{
title: t('项目编码'),
dataIndex: 'projectCode',
key: 'a.project_code',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('项目名称'),
dataIndex: 'projectName',
key: 'a.project_name',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('项目描述'),
dataIndex: 'projectDesc',
key: 'a.project_desc',
sorter: true,
width: 130,
align: 'left',
},
{
title: t('开始日期'),
dataIndex: 'startDate',
key: 'a.start_date',
sorter: true,
width: 130,
align: 'center',
},
{
title: t('预计结束日期'),
dataIndex: 'endDate',
key: 'a.end_date',
sorter: true,
width: 130,
align: 'center',
},
{
title: t('实际结束日期'),
dataIndex: 'actualEndDate',
key: 'a.actual_end_date',
sorter: true,
width: 130,
align: 'center',
},
{
title: t('项目类型'),
dataIndex: 'projectType',
key: 'a.project_type',
sorter: true,
width: 130,
align: 'left',
dictType: 'project_type',
},
{
title: t('项目状态'),
dataIndex: 'projectStatus',
key: 'a.project_status',
sorter: true,
width: 130,
align: 'left',
dictType: 'project_status',
},
];
const tableProps: BasicTableProps = {
api: bizProjectInfoListData,
beforeFetch: (params) => {
params['isAll'] = true;
return params;
},
columns: tableColumns,
formConfig: searchForm,
rowKey: 'projectId',
};
export default {
modalProps,
tableProps,
itemCode: 'projectId',
itemName: 'projectName',
isShowCode: true,
};

View File

@@ -12,24 +12,6 @@ const searchForm: FormProps<BizProvince> = {
baseColProps: { md: 8, lg: 6 },
labelWidth: 90,
schemas: [
{
label: t('记录时间起'),
field: 'createTime_gte',
component: 'DatePicker',
componentProps: {
format: 'YYYY-MM-DD HH:mm',
showTime: { format: 'HH:mm' },
},
},
{
label: t('记录时间止'),
field: 'createTime_lte',
component: 'DatePicker',
componentProps: {
format: 'YYYY-MM-DD HH:mm',
showTime: { format: 'HH:mm' },
},
},
{
label: t('省份名称'),
field: 'provinceName',
@@ -40,26 +22,12 @@ const searchForm: FormProps<BizProvince> = {
field: 'provinceCode',
component: 'Input',
},
{
label: t('请求地址'),
field: 'urlAddr',
component: 'Input',
},
{
label: t('请求状态'),
field: 'reqCode',
component: 'Select',
componentProps: {
dictType: '',
allowClear: true,
},
},
{
label: t('数据状态'),
field: 'dataStatus',
component: 'Select',
componentProps: {
dictType: '',
dictType: 'ustatus',
allowClear: true,
},
},
@@ -72,9 +40,8 @@ const tableColumns: BasicColumn<BizProvince>[] = [
dataIndex: 'createTime',
key: 'a.create_time',
sorter: true,
width: 230,
width: 180,
align: 'left',
slot: 'firstColumn',
},
{
title: t('省份名称'),
@@ -115,7 +82,7 @@ const tableColumns: BasicColumn<BizProvince>[] = [
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'req_code',
},
{
title: t('数据状态'),
@@ -124,7 +91,7 @@ const tableColumns: BasicColumn<BizProvince>[] = [
sorter: true,
width: 130,
align: 'left',
dictType: '',
dictType: 'ustatus',
},
];
@@ -142,7 +109,7 @@ const tableProps: BasicTableProps = {
export default {
modalProps,
tableProps,
itemCode: 'id',
itemName: 'id',
isShowCode: false,
itemCode: 'provinceCode',
itemName: 'provinceName',
isShowCode: true,
};