预算书-财政拨款、年度预算表 功能添加 10.31

master
zhc077 3 weeks ago
parent 3d2ad7ee3d
commit b2dacb1a2a
  1. 38
      jeecgboot-vue3/src/views/depfile/Depfile.data.ts
  2. 92
      jeecgboot-vue3/src/views/projectApplication/kejigongguan/xiangmushu/FuJianDemo.vue
  3. 48
      jeecgboot-vue3/src/views/projectApplication/kejigongguan/yusuanshu/DepartBaseInfoDemo.vue
  4. 2
      jeecgboot-vue3/src/views/projectApplication/kejigongguan/yusuanshu/index.vue

@ -80,6 +80,44 @@ export const columns2: BasicColumn[] = [
},*/
];
export const columns3: BasicColumn[] = [
/*{
title: '部门名称',
align: "center",
dataIndex: 'depid_dictText'
},*/
{
title: '名称',
align: "center",
dataIndex: 'filename'
},
{
title: '认定部门及批号',
align: "center",
dataIndex: 'depnumber'
},
{
title: '认定时间',
align: "center",
dataIndex: 'rdtime'
},
/*{
title: '文件',
align: "center",
dataIndex: 'upfile',
},*/
/*{
title: '文件后缀',
align: "center",
dataIndex: 'filehz'
},
{
title: '文件类型',
align: "center",
dataIndex: 'filelx_dictText'
},*/
];
//
export const superQuerySchema = {
depid: {title: '部门名称',order: 0,view: 'sel_search', type: 'string',dictTable: "sys_depart", dictCode: 'id', dictText: 'depart_name',},

@ -4,18 +4,22 @@
<BasicTable @register="registerTable" :rowSelection="rowSelection">
<!--插槽:table标题-->
<template #tableTitle>
<a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 上传附件</a-button>
</template>
<a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 上传附件
</a-button>
</template>
<!--操作栏-->
<template #action="{ record }">
<TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
<TableAction :actions="getTableAction(record)"
:dropDownActions="getDropDownAction(record)"/>
</template>
<!--字段回显插槽-->
<template v-slot:bodyCell="{ column, record, index, text }">
<template v-if="column.dataIndex==='fileUrl'">
<!--文件字段回显插槽-->
<span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
<a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
<a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined"
size="small" @click="downloadFile(text)">下载
</a-button>
</template>
</template>
</BasicTable>
@ -23,7 +27,17 @@
<ProjectFileModal @register="registerModal" @success="handleSuccess"></ProjectFileModal>
</div>
<div>
<BasicTable title="单位管理员上传附件" @register="depfileTable" />
<BasicTable title="单位管理员上传附件" @register="depfileTable">
<template v-slot:bodyCell="{ column, record, index, text }">
<template v-if="column.dataIndex==='upfile'">
<!--文件字段回显插槽-->
<span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
<a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined"
size="small" @click="downloadFile(text)">下载
</a-button>
</template>
</template>
</BasicTable>
</div>
<div class="button-container">
<a-button type="primary" @click="goBack">返回</a-button>
@ -31,18 +45,25 @@
</template>
<script lang="ts" name="projectFile-projectFile" setup>
import {ref, reactive, computed, unref} from 'vue';
import {BasicTable, useTable, TableAction} from '/@/components/Table';
import {reactive, ref} from 'vue';
import {BasicTable, TableAction, useTable} from '/@/components/Table';
import {useModal} from '/@/components/Modal';
import { useListPage } from '/@/hooks/system/useListPage'
import {useListPage} from '/@/hooks/system/useListPage'
import ProjectFileModal from '/@/views/projectFile/components/ProjectFileModal.vue'
import {columns, searchFormSchema, superQuerySchema} from '/@/views/projectFile/ProjectFile.data';
import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from '/@/views/projectFile/ProjectFile.api';
import { downloadFile } from '/@/utils/common/renderUtils';
import { useUserStore } from '/@/store/modules/user';
import {
batchDelete,
deleteOne,
getExportUrl,
getImportUrl,
list
} from '/@/views/projectFile/ProjectFile.api';
import {downloadFile} from '/@/utils/common/renderUtils';
import {useUserStore} from '/@/store/modules/user';
import {useRoute, useRouter} from "vue-router";
import {listDepFile} from "@/views/depfile/Depfile.api";
import {columns2} from "@/views/depfile/Depfile.data";
const queryParam = reactive<any>({});
const checkedKeys = ref<Array<string | number>>([]);
const userStore = useUserStore();
@ -51,33 +72,31 @@ const route = useRoute();
//model
const [registerModal, {openModal}] = useModal();
//table
const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
tableProps:{
const {prefixCls, tableContext, onExportXls, onImportXls} = useListPage({
tableProps: {
title: '项目书附件',
api: listByProjectId,
// api: list,
columns,
canResize:false,
canResize: false,
formConfig: {
//labelWidth: 120,
schemas: searchFormSchema,
autoSubmitOnEnter:true,
showAdvancedButton:true,
fieldMapToNumber: [
],
fieldMapToTime: [
],
autoSubmitOnEnter: true,
showAdvancedButton: true,
fieldMapToNumber: [],
fieldMapToTime: [],
},
actionColumn: {
width: 120,
fixed:'right'
fixed: 'right'
},
beforeFetch: (params) => {
return Object.assign(params, queryParam);
},
},
exportConfig: {
name:"项目书附件",
name: "项目书附件",
url: getExportUrl,
params: queryParam,
},
@ -87,7 +106,7 @@ const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
},
})
const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
const [registerTable, {reload}, {rowSelection, selectedRowKeys}] = tableContext
//
const superQueryConfig = reactive(superQuerySchema);
@ -135,6 +154,7 @@ function handleSuperQuery(params) {
});
reload();
}
/**
* 新增事件
*/
@ -144,6 +164,7 @@ function handleAdd() {
showFooter: true,
});
}
/**
* 编辑事件
*/
@ -154,6 +175,7 @@ function handleEdit(record: Recordable) {
showFooter: true,
});
}
/**
* 详情
*/
@ -164,28 +186,32 @@ function handleDetail(record: Recordable) {
showFooter: false,
});
}
/**
* 删除事件
*/
async function handleDelete(record) {
await deleteOne({id: record.id}, handleSuccess);
}
/**
* 批量删除事件
*/
async function batchHandleDelete() {
await batchDelete({ids: selectedRowKeys.value}, handleSuccess);
}
/**
* 成功回调
*/
function handleSuccess() {
(selectedRowKeys.value = []) && reload();
}
/**
* 操作栏
*/
function getTableAction(record){
function getTableAction(record) {
return [
{
label: '编辑',
@ -194,10 +220,11 @@ function getTableAction(record){
}
]
}
/**
* 下拉操作栏
*/
function getDropDownAction(record){
function getDropDownAction(record) {
return [
{
label: '详情',
@ -218,11 +245,12 @@ function getDropDownAction(record){
</script>
<style lang="less" scoped>
:deep(.ant-picker),
:deep(.ant-input-number){
width: 100%;
}
.button-container {
text-align: center;
}
:deep(.ant-picker),
:deep(.ant-input-number) {
width: 100%;
}
.button-container {
text-align: center;
}
</style>

@ -9,8 +9,20 @@
:schema="schema"
/>
</PageWrapper>
<BasicTable @register="registerTimeTable"/>
<BasicTable @register="depsbnczTable"/>
<div>
<BasicTable title="单位技术研究资质情况" @register="depfileTable">
<template v-slot:bodyCell="{ column, record, index, text }">
<template v-if="column.dataIndex==='upfile'">
<!--文件字段回显插槽-->
<span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
<a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined"
size="small" @click="downloadFile(text)">下载
</a-button>
</template>
</template>
</BasicTable>
</div>
<BasicTable title="上年度(末)主要财务数据" @register="depsbnczTable" />
</div>
<!-- <div>
&lt;!&ndash;引用表格&ndash;&gt;
@ -33,11 +45,12 @@ import { useUserStore } from '/@/store/modules/user';
const { userInfo } = useUserStore();
import {getDepartDtoByProjectId} from '/@/views/projectApplication/project/Project.api';
import {columns2} from "@/views/cooperationDepart/CooperationDepart.data";
// import {columns2} from "@/views/cooperationDepart/CooperationDepart.data";
import {list2} from "@/views/cooperationDepart/CooperationDepart.api";
import {depsbnczColumns2} from "@/views/depsbncz/Depsbncz.data";
import {listDepsbncz} from "@/views/depsbncz/Depsbncz.api";
import {listDepFile} from "@/views/depfile/Depfile.api";
import {columns3} from "@/views/depfile/Depfile.data";
const route = useRoute();
const router = useRouter();
const falg = ref(false)
@ -51,9 +64,9 @@ const DepartBaseInfoData: any = {
label: '',
};
const [registerTimeTable] = useTable({
/*const [registerTimeTable] = useTable({
label: '单位技术研究资质情况:',
columns: columns2,
columns: columns3,
pagination: false,
// dataSource: null,
api: listCooperationByProjectId,
@ -67,7 +80,7 @@ async function listCooperationByProjectId() {
};
console.log(JSON.stringify(params));
return await list2(params);
};
};*/
const [depsbnczTable] = useTable({
@ -104,6 +117,27 @@ const schema2: any = [
},
];
const [depfileTable] = useTable({
label: '单位技术研究资质情况',
columns: columns3,
pagination: false,
// dataSource: null,
api: listdepfileByDepId,
showIndexColumn: false,
scroll: {y: 300},
});
async function listdepfileByDepId() {
let params = {
depid: userInfo.orgCode,
filelx: '2',
};
console.log(JSON.stringify(params));
return await listDepFile(params);
};
const schema: any = [
{
field: 'annualName',

@ -5,7 +5,7 @@
<a-tab-pane key="FengMianDemo" tab="封面" force-render></a-tab-pane>
<a-tab-pane key="TianBaoShuMingDemo" tab="填报说明" force-render></a-tab-pane>
<a-tab-pane key="ProjectBaseInfoDemo" tab="项目基本情况表"></a-tab-pane>
<a-tab-pane key="DepartBaseInfoDemo" tab="部门基本情况表"></a-tab-pane>
<a-tab-pane key="DepartBaseInfoDemo" tab="单位基本情况表"></a-tab-pane>
<a-tab-pane key="ProjectFeeBudgetDemo" tab="项目经费预算表"></a-tab-pane>
<a-tab-pane key="NianDuYuSuanDemo" tab="财政拨款、年度预算表"></a-tab-pane>
<!-- <a-tab-pane key="ZhengWenDemo" tab="正文"></a-tab-pane>-->

Loading…
Cancel
Save