integrated_traffic_vue/src/views/archives_management/enterprise/components/capital.vue

223 lines
6.2 KiB
Vue
Raw Normal View History

2024-03-15 10:01:08 +08:00
<template>
<el-dialog
:title="title"
:model-value="type === 105"
width="1100px"
@close="fnClose"
>
<div class="tr">
2024-03-20 10:02:16 +08:00
<el-button type="primary" @click="list.push({})"></el-button>
<el-button type="danger" @click="fnDelete"></el-button>
2024-03-15 10:01:08 +08:00
<el-button type="primary" @click="fnExport"></el-button>
</div>
<div class="tc">
<h3>{{ year }}年度培训资金提取和使用情况管理台账</h3>
</div>
2024-03-20 10:02:16 +08:00
<p class="mb">单位名称:{{ corpName }}</p>
<layout-table
:data="list"
:show-pagination="false"
:stripe="false"
:highlight-current-row="true"
@row-click="fnRowClick"
@row-dblclick="fnRowDblclick"
>
2024-03-15 10:01:08 +08:00
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="DATE" label="日期" />
<el-table-column label="费用项目">
<el-table-column prop="AMOUNT" label="提取金额" />
<el-table-column prop="ITEM_TYPE" label="项目类型" />
<el-table-column prop="MATERIAL_COST" label="培训教材教具费" />
<el-table-column prop="TEACHER_COST" label="师资费" />
<el-table-column prop="PAPER_COST" label="试卷印制费" />
<el-table-column prop="OUTSIDE_COST" label="外出培训费" />
<el-table-column
prop="EQUIPMENT_COST"
label="教学设备、课桌椅等购置维护费"
/>
<el-table-column prop="TRAIN_COST" label="培训活动费" />
<el-table-column prop="ENTRUST_COST" label="委托培训费" />
<el-table-column prop="OTHER_COST" label="其他与培训有关的直接支出" />
</el-table-column>
<el-table-column prop="BALANCE" label="余额" />
</layout-table>
2024-03-20 10:02:16 +08:00
<table class="print_use dn">
<thead>
<tr>
<td rowspan="2">序号</td>
<td rowspan="2">日期</td>
<td colspan="9">费用项目</td>
<td rowspan="2">余额</td>
</tr>
<tr>
<td>提取金额</td>
<td>培训教材教具费</td>
<td>师资费</td>
<td>试卷印制费</td>
<td>外出培训费</td>
<td>教学设备课桌椅等购置维护费</td>
<td>培训活动费</td>
<td>委托培训费</td>
<td>其他与培训有关的直接支出</td>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in list" :key="index">
<td>{{ index + 1 }}</td>
<td>{{ item.DATE }}</td>
<td>{{ item.AMOUNT }}</td>
<td>{{ item.MATERIAL_COST }}</td>
<td>{{ item.TEACHER_COST }}</td>
<td>{{ item.PAPER_COST }}</td>
<td>{{ item.OUTSIDE_COST }}</td>
<td>{{ item.EQUIPMENT_COST }}</td>
<td>{{ item.TRAIN_COST }}</td>
<td>{{ item.ENTRUST_COST }}</td>
<td>{{ item.OTHER_COST }}</td>
<td>{{ item.BALANCE }}</td>
</tr>
</tbody>
</table>
2024-03-15 10:01:08 +08:00
<div class="flex mt">
<div>制表人:</div>
<div>编制日期:</div>
<div>审核人:</div>
<div>审核日期:</div>
</div>
<div class="mt">
填表说明:1.将实际发生的费用金额记录在费用项目栏内2.培训提取比例按职工工资1.5%可按季或月提取
</div>
<template #footer>
<el-button @click="fnClose"></el-button>
</template>
</el-dialog>
2024-03-20 10:02:16 +08:00
<capital-add
v-model:visible="data.addOrEditDialog.visible"
v-model:form="data.addOrEditDialog.form"
:type="data.addOrEditDialog.type"
:year="year"
@get-data="fnGetData"
/>
2024-03-15 10:01:08 +08:00
</template>
<script setup>
2024-03-20 10:02:16 +08:00
import { nextTick, reactive, watchEffect } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
2024-03-15 10:01:08 +08:00
import { debounce } from "throttle-debounce";
import {
getArchivesCapitalList,
downloadFundmanageword,
2024-03-20 10:02:16 +08:00
setCapitalDelete,
getCapitalView,
2024-03-15 10:01:08 +08:00
} from "@/request/training_archive_management.js";
2024-03-20 10:02:16 +08:00
import useListData from "@/assets/js/useListData.js";
import capitalAdd from "./capital_add.vue";
2024-03-15 10:01:08 +08:00
const props = defineProps({
type: {
type: Number,
required: true,
},
title: {
type: String,
required: true,
},
2024-03-20 10:02:16 +08:00
year: {
2024-03-15 10:01:08 +08:00
type: String,
required: true,
},
2024-03-20 10:02:16 +08:00
corpName: {
2024-03-15 10:01:08 +08:00
type: String,
required: true,
},
});
const data = reactive({
2024-03-20 10:02:16 +08:00
ARCHIVESCAPITAL_ID: "",
addOrEditDialog: {
visible: false,
type: "",
form: {
DATE: "",
AMOUNT: "",
MATERIAL_COST: "",
TEACHER_COST: "",
PAPER_COST: "",
OUTSIDE_COST: "",
EQUIPMENT_COST: "",
TRAIN_COST: "",
ENTRUST_COST: "",
OTHER_COST: "",
BALANCE: "",
},
},
2024-03-15 10:01:08 +08:00
});
const emits = defineEmits(["update:type"]);
2024-03-20 10:02:16 +08:00
const { list, fnGetData } = useListData(getArchivesCapitalList, {
otherParams: {
2024-03-15 10:01:08 +08:00
TYPE: props.type,
YEAR: props.year,
2024-03-20 10:02:16 +08:00
},
usePagination: false,
immediate: false,
});
2024-03-15 10:01:08 +08:00
watchEffect(() => {
if (props.type === 105) fnGetData();
});
const fnExport = debounce(
1000,
async () => {
await ElMessageBox.confirm("确定要导出吗?", { type: "warning" });
await downloadFundmanageword({
YEAR: props.year,
2024-03-20 10:02:16 +08:00
NAME: props.corpName,
2024-03-15 10:01:08 +08:00
});
await ElMessageBox.confirm(
"导出后请前往档案下载中下载该档案!",
"温馨提示",
{ type: "info" }
);
},
{ atBegin: true }
);
2024-03-20 10:02:16 +08:00
const fnRowClick = (row) => {
data.ARCHIVESCAPITAL_ID = row.ARCHIVESCAPITAL_ID;
};
const fnRowDblclick = async (row) => {
data.addOrEditDialog.visible = true;
await nextTick();
if (row.ARCHIVESCAPITAL_ID) {
const resData = await getCapitalView({
ARCHIVESCAPITAL_ID: row.ARCHIVESCAPITAL_ID,
});
data.addOrEditDialog.form = resData.pd;
data.addOrEditDialog.type = "edit";
} else data.addOrEditDialog.type = "add";
};
const fnDelete = debounce(
1000,
async () => {
if (data.ARCHIVESCAPITAL_ID) {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setCapitalDelete({
ARCHIVESCAPITAL_ID: data.ARCHIVESCAPITAL_ID,
});
ElMessage.success("删除成功");
}
data.ARCHIVESCAPITAL_ID = "";
fnGetData();
},
{ atBegin: true }
);
2024-03-15 10:01:08 +08:00
const fnClose = () => {
emits("update:type", 0);
};
</script>
<style scoped lang="scss">
.flex {
width: 80%;
display: flex;
justify-content: space-between;
}
</style>