签报接口

This commit is contained in:
‘huanghaiixia’
2025-12-24 17:38:00 +08:00
parent 03c943e4d6
commit 0387c2ca86
21 changed files with 3029 additions and 182 deletions

View File

@ -7,13 +7,18 @@ export const formConfig = {
export const searchFormSchema: FormSchema[] = [
{
field: 'code',
label: '编号',
component: 'Input',
field: 'dateAppro',
label: '拟稿日期',
component: 'RangePicker',
componentProps: {
format: 'YYYY-MM-DD',
style: { width: '100%' },
getPopupContainer: () => document.body,
},
},
{
field: 'title',
label: '标题',
label: '标题/编号',
component: 'Input',
},
{
@ -29,59 +34,6 @@ export const searchFormSchema: FormSchema[] = [
getPopupContainer: () => document.body,
},
},
{
field: 'securityCode',
label: '密级',
component: 'XjrSelect',
componentProps: {
datasourceType: 'dic',
params: { itemId: '2001501242533273602' },
labelField: 'name',
valueField: 'value',
getPopupContainer: () => document.body,
},
},
{
field: 'urgencyCode',
label: '缓级',
component: 'XjrSelect',
componentProps: {
datasourceType: 'dic',
params: { itemId: '2001501562994876418' },
labelField: 'name',
valueField: 'value',
getPopupContainer: () => document.body,
},
},
{
field: 'empId',
label: '拟稿人',
component: 'Input',
},
{
field: 'bDeptId',
label: '拟稿人所属部门',
component: 'Input',
},
{
field: 'dateAppro',
label: '拟稿日期',
component: 'XjrSelect',
componentProps: {
datasourceType: 'api',
apiConfig: {
path: 'CodeGeneration/selection',
method: 'GET',
apiId: '93d735dcb7364a0f8102188ec4d77ac7',
},
labelField: 'label',
valueField: 'value',
getPopupContainer: () => document.body,
},
},
{
field: 'approCode',
label: '审批状态',
@ -95,14 +47,17 @@ export const searchFormSchema: FormSchema[] = [
getPopupContainer: () => document.body,
},
},
{
field: 'content',
label: '内容摘要',
component: 'Input',
},
];
export const columns: BasicColumn[] = [
{
dataIndex: 'title',
title: '标题',
componentType: 'input',
align: 'left',
sorter: true,
},
{
dataIndex: 'code',
title: '编号',
@ -113,16 +68,7 @@ export const columns: BasicColumn[] = [
},
{
dataIndex: 'title',
title: '标题',
componentType: 'input',
align: 'left',
sorter: true,
},
{
dataIndex: 'typeCode',
dataIndex: 'typeName',
title: '签报类型',
componentType: 'select',
align: 'left',
@ -131,7 +77,7 @@ export const columns: BasicColumn[] = [
},
{
dataIndex: 'securityCode',
dataIndex: 'securityName',
title: '密级',
componentType: 'select',
align: 'left',
@ -140,7 +86,7 @@ export const columns: BasicColumn[] = [
},
{
dataIndex: 'urgencyCode',
dataIndex: 'urgencyName',
title: '缓级',
componentType: 'select',
align: 'left',
@ -149,7 +95,7 @@ export const columns: BasicColumn[] = [
},
{
dataIndex: 'empId',
dataIndex: 'empName',
title: '拟稿人',
componentType: 'input',
align: 'left',
@ -158,7 +104,7 @@ export const columns: BasicColumn[] = [
},
{
dataIndex: 'bDeptId',
dataIndex: 'deptName',
title: '拟稿人所属部门',
componentType: 'input',
align: 'left',
@ -176,22 +122,13 @@ export const columns: BasicColumn[] = [
},
{
dataIndex: 'approCode',
dataIndex: 'approName',
title: '审批状态',
componentType: 'select',
align: 'left',
sorter: true,
},
{
dataIndex: 'content',
title: '内容摘要',
componentType: 'textarea',
align: 'left',
sorter: true,
},
];
//表单事件
export const formEventConfigs = {

View File

@ -10,8 +10,8 @@
</a-form-item>
</a-col>
<a-col :span="16">
<a-form-item label="标题" name="title" :label-col="{ span: 5, offset }" :wrapper-col="{ span: 24 }">
<a-input v-model:value="formState.title" placeholder="请输入标题"/>
<a-form-item label="标题" name="title" :label-col="{ span: 4 }" :wrapper-col="{ span: 24 }">
<a-input v-model:value="formState.title" :disabled="isDisable" placeholder="请输入标题"/>
</a-form-item>
</a-col>
<a-col :span="8">
@ -43,12 +43,12 @@
</a-col>
<a-col :span="8">
<a-form-item label="拟稿人" name="empName">
<a-input-search v-model:value="formState.empName" placeholder="请选择拟稿人" readonly @search="onSearchUser"/>
<a-input-search v-model:value="formState.empName" :disabled="isDisable" placeholder="请选择拟稿人" readonly @search="onSearchUser"/>
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="拟稿人所属部门" name="bDeptName">
<a-input-search v-model:value="formState.bDeptName" placeholder="请选择拟稿人部门" readonly @search="onSearch"/>
<a-form-item label="拟稿人所属部门" name="deptName">
<a-input-search v-model:value="formState.deptName" :disabled="isDisable" placeholder="请选择拟稿人部门" readonly @search="onSearch"/>
</a-form-item>
</a-col>
<a-col :span="8">
@ -58,7 +58,7 @@
</a-col>
<a-col :span="8">
<a-form-item label="拟稿日期" name="dateAppro">
<a-date-picker v-model:value="formState.dateAppro" style="width: 100%" placeholder="请选择评价日期" />
<a-date-picker v-model:value="formState.dateAppro" :disabled="isDisable" style="width: 100%" placeholder="请选择评价日期" />
</a-form-item>
</a-col>
<a-col :span="8">
@ -70,12 +70,12 @@
</a-select>
</a-form-item>
</a-col>
<a-col :span="24">
<a-col :span="22">
<a-form-item label="内容摘要" name="content" :label-col="{ span: 3 }" :wrapper-col="{ span: 24 }">
<a-textarea v-model:value="formState.content" :disabled="isDisable" placeholder="请输入备注最多1000字" :maxlength="1000" :auto-size="{ minRows: 4, }"/>
</a-form-item>
</a-col>
<a-col :span="24">
<a-col :span="22">
<a-form-item label="备注" name="note" :label-col="{ span: 3 }" :wrapper-col="{ span: 24 }">
<a-textarea v-model:value="formState.note" :disabled="isDisable" placeholder="请输入备注最多200字" :maxlength="200" :auto-size="{ minRows: 2, maxRows: 5 }"/>
</a-form-item>
@ -156,17 +156,16 @@
securityCode: [{ required: true, message: "该项为必填项", trigger: 'change' }],
urgencyCode: [{ required: true, message: "该项为必填项", trigger: 'change' }],
empName: [{ required: true, message: "该项为必填项", trigger: 'change' }],
bDeptName: [{ required: true, message: "该项为必填项", trigger: 'change' }],
deptName: [{ required: true, message: "该项为必填项", trigger: 'change' }],
comName: [{ required: true, message: "该项为必填项", trigger: 'change' }],
dateAppro: [{ required: true, message: "该项为必填项", trigger: 'change' }],
content: [{ required: true, message: "该项为必填项", trigger: 'change' }],
};
const layout = {
labelCol: { span: 9 },
wrapperCol: { span: 15 },
labelCol: { span: 8 },
wrapperCol: { span: 16 },
}
const dataList= ref([]);
const dataFile = ref([]);
let optionSelect= reactive({
approCodeList: [],
@ -225,12 +224,15 @@
optionSelect.urgencyCodeList = await getDictionary('LNG_URGEN')
optionSelect.approCodeList = await getDictionary('LNG_APPRO')
const res = await getCompDept(userInfo.id)
formState.bDeptName = res?.dept?.name
formState.bDeptId = res?.dept?.id
if (!pageId.value) {
const res = await getCompDept(userInfo.id)
formState.deptName = res?.dept?.name
formState.bDeptId = res?.dept?.id
formState.comName = res?.comp?.name
formState.comId = res?.comp?.id
}
formState.comName = res?.comp?.name
formState.comId = res?.comp?.id
}
const onSearch = (val)=> {
openModalDept(true,{isUpdate: false})
@ -242,9 +244,12 @@
formState.empName = val[0].name
formState.empId = val[0].id
}
const handleSuccessDept = (val) => {
formState.bDeptName = val[0].name
const handleSuccessDept = (val, info) => {
formState.deptName = val[0].name
formState.bDeptId = val[0].id
formState.comName = info.name
formState.comId = info.id
}
function close() {
@ -258,7 +263,6 @@
await formRef.value.validateFields();
let obj = {
...formState,
lngScoreDtlList: dataList.value,
lngFileUploadList: dataFile.value
}