|
|
@@ -0,0 +1,114 @@
|
|
|
+<template>
|
|
|
+ <avue-crud
|
|
|
+ v-bind="bindVal"
|
|
|
+ v-on="onEvent"
|
|
|
+ v-model="form"
|
|
|
+ :page.sync="page"
|
|
|
+ >
|
|
|
+ <template slot="menuLeft">
|
|
|
+ <el-button type="primary" size="small" @click="handleReadMonthProject">引入当月项目</el-button>
|
|
|
+ <el-button
|
|
|
+ type="danger"
|
|
|
+ size="small"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ plain
|
|
|
+ @click="handleDelete"
|
|
|
+ >
|
|
|
+ 删 除
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ type="warning"
|
|
|
+ size="small"
|
|
|
+ plain
|
|
|
+ icon="el-icon-download"
|
|
|
+ @click="handleExport"
|
|
|
+ >
|
|
|
+ 导出
|
|
|
+ </el-button>
|
|
|
+ <print-table-btn @click="printTable" />
|
|
|
+
|
|
|
+ <div style="display: flex; align-items: center;">
|
|
|
+ <year-month-select v-model="params.yearAndMonth" :showMonth="false"></year-month-select>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ </avue-crud>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import YearMonthSelect from "@/components/year-month-select";
|
|
|
+import { readMonthProject } from "@/api/externalReports/kyProjectList";
|
|
|
+import {exportBlob} from "@/api/common";
|
|
|
+import {getToken} from "@/util/auth";
|
|
|
+import {downloadXls} from "@/util/util";
|
|
|
+import moment from "moment";
|
|
|
+import Decimal from "decimal.js";
|
|
|
+
|
|
|
+
|
|
|
+export default window.$crudCommon({
|
|
|
+ props: {
|
|
|
+ type: [String, Number]
|
|
|
+ },
|
|
|
+ components: {
|
|
|
+ YearMonthSelect,
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ params: {
|
|
|
+ yearAndMonth: moment(new Date()).format('YYYY'),
|
|
|
+ },
|
|
|
+ defaultColumns: [],
|
|
|
+
|
|
|
+ wideTableColumns: [],
|
|
|
+ printTitle: "",
|
|
|
+ };
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ 'params.yearAndMonth'(newVal) {
|
|
|
+ this.page.currentPage = 1;
|
|
|
+ this.getList(this.page);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getSearchParams() {
|
|
|
+ return { ...this.params, type: this.type };
|
|
|
+ },
|
|
|
+ handleExport() {
|
|
|
+ exportBlob(`/api/kd-scientific/asset/kyyqsbzjfyfpb?${this.website.tokenHeader}=${getToken()}`, this.params).then(res => {
|
|
|
+ downloadXls(res.data, `${this.params.yearAndMonth}科研仪器设备折旧费用分配表.xlsx`);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 打印表格
|
|
|
+ * @param isLandscape 是否横向打印
|
|
|
+ */
|
|
|
+ printTable(isLandscape) {
|
|
|
+ this.wideTableColumns = this.$refs.crud.columnOption;
|
|
|
+ this.printTitle = `${this.params.yearAndMonth}科研仪器设备折旧费用分配表`;
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.printWideTable.printTable(isLandscape);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleReadMonthProject() {
|
|
|
+ readMonthProject({ yearAndMonth: this.params.yearAndMonth, type: this.type })
|
|
|
+ },
|
|
|
+ },
|
|
|
+}, {
|
|
|
+ // 模块路径
|
|
|
+ name: 'externalReports/kyProjectList',
|
|
|
+ res: ({ data }) => {
|
|
|
+ data.records = data.records.map(item => {
|
|
|
+ item.zcbm = item.asset ? item.asset.zcbm : '';
|
|
|
+ item.zcmc = item.asset ? item.asset.zcmc : '';
|
|
|
+ item.zclb = item.asset ? item.asset.zclb : '';
|
|
|
+ item.yt = item.asset ? item.asset.yt : '';
|
|
|
+ item.zcyz = item.asset ? item.asset.zcyz : '';
|
|
|
+ item.jcz = item.asset ? item.asset.jcz : '';
|
|
|
+ item.yzje = item.asset ? item.asset.yzje : '';
|
|
|
+ item.yanfaTanXiao = Number(new Decimal(item.yzje || 0).mul(item.yanfaFenTanLv || 0)).toFixed(2);
|
|
|
+ return item;
|
|
|
+ });
|
|
|
+ return data;
|
|
|
+ },
|
|
|
+});
|
|
|
+</script>
|