浏览代码

1.机器设备作价页面新增增值率
2.新增资产报告模板管理相关页面与功能等

GouGengquan 7 月之前
父节点
当前提交
8b403234a9

+ 6 - 0
src/api/fileUpload.js

@@ -1,9 +1,15 @@
 import request from '@/utils/request'
 
+// 上传资产测算表模板
 export function uploadAssetsCalculateTmpl(params) {
     return request.post('/file/assets/uploadCalculateTmpl',params)
 }
 
+// 上传资产报告模板
+export function uploadAssetsReportTmpl(params) {
+    return request.post('/file/assets/uploadReportTmpl',params)
+}
+
 export function updateHouseGuarntyTargetTable(params) {
     return request.post('/file/house/guaranty/target',params)
 }

+ 26 - 0
src/api/tmplAssetReport.js

@@ -0,0 +1,26 @@
+import request from '@/utils/request'
+
+// 创建资产报告模板
+export function createTmplAssetReport(params) {
+    return request.post('/tmplAssetReport/save',params)
+}
+
+// 获取资产报告的下拉框数据
+export function getDropDownBoxData() {
+    return request.get('/tmplAssetReport/getDropDownBoxData')
+}
+
+// 获取测算表模板列表
+export function getTmplAssetReport(params) {
+    return request.get('/tmplAssetReport/page', {params : params})
+}
+
+// 根据模板id查询详情
+export function getTmplAssetReportDetailById(params) {
+    return request.get(`tmplAssetReport/detail/${params}`)
+}
+
+// 删除测算表模板
+export function deleteReport(params) {
+    return request.delete(`tmplAssetReport/delete/${params}`)
+}

+ 11 - 0
src/api/tmplAssetReportSection.js

@@ -0,0 +1,11 @@
+import request from '@/utils/request'
+
+// 创建资产测算表段落模板
+export function createTmplAssetReportSection(params) {
+    return request.post('/tmplAssetReportSection/save',params);
+}
+
+// 删除测算表段落模板
+export function deleteReportSection(params){
+    return request.delete(`/tmplAssetReportSection/delete/${params}`)
+}

+ 9 - 0
src/router/index.js

@@ -18,6 +18,7 @@ import AssetsFolderChild from '@/views/assets/folder/child.vue'
 import AssetsTmpl from '@/views/assets/template/index.vue'
 import AssetsTmplMange from '@/views/assets/template/mange.vue'
 import AssetsCreateCalculateTmpl from '@/views/assets/template/createCalculate.vue'
+import AssetsCreateReportTmpl from '@/views/assets/template/createReport.vue'
 import AssetsCalculateWorkbench from '@/views/assets/workbench/calculate/index.vue'
 import AssetsCalculateBaseInfo from '@/views/assets/workbench/calculate/baseInfo.vue'
 import AssetsCalculateImportInfo from '@/views/assets/workbench/calculate/importInfo.vue'
@@ -197,6 +198,14 @@ const routes = [
                 meta: {
                   title: '创建测算表模板'
                 },
+              },
+              {
+                path: 'create/report',
+                component: AssetsCreateReportTmpl,
+                name: 'assetsCreateReportTmpl',
+                meta: {
+                  title: '创建报告模板'
+                },
               }
             ]
           },

+ 412 - 0
src/views/assets/template/createReport.vue

@@ -0,0 +1,412 @@
+<template>
+    <div class="contrl">
+        <el-tabs v-model="activeName" class="condtion-tabs" @tab-change="tabChange()">
+            <el-tab-pane label="创建主模板" name="main">
+                <div>
+                    <el-form ref="createReportTmpl" :model="tmplAssetReport" :rules="createRules" label-width="auto"
+                        style="margin-top: 10px;">
+                        <el-row :gutter="10">
+                            <el-col :span="12">
+                                <el-form-item label="报告名字:" class="form-item" prop="reportName">
+                                    <el-input v-model="tmplAssetReport.reportName" clearable />
+                                </el-form-item>
+                                <el-row :gutter="10">
+                                    <el-col :span="24">
+                                        <el-form-item label="报告类型:" class="form-item" prop="reportType">
+                                            <el-select v-model="tmplAssetReport.reportType" placeholder="选择报告类型"
+                                                @change="reportTypeChange">
+                                                <el-option v-for="item in reportType" :key="item.id"
+                                                    :label="item.name" :value="item.name" />
+                                            </el-select>
+                                        </el-form-item>
+                                    </el-col>
+                                </el-row>
+                                <el-row :gutter="10">
+                                    <el-col :span="24">
+                                        <el-form-item label="是否有段落模板:" class="form-item" prop="hasSection">
+                                            <el-radio-group v-model="tmplAssetReport.hasSection">
+                                                <el-radio value="true">有</el-radio>
+                                                <el-radio value="false">无</el-radio>
+                                            </el-radio-group>
+                                        </el-form-item>
+                                    </el-col>
+                                </el-row>
+                                <el-row :gutter="10">
+                                    <el-col :span="24">
+                                        <el-form-item label="模板CODE:" class="form-item" prop="tmplCode">
+                                            <el-select v-model="tmplAssetReport.tmplCode" placeholder="选择模板CODE">
+                                                <el-option v-for="item in tmplCodes" :key="item.value" :label="item.label"
+                                                    :value="item.value" />
+                                            </el-select>
+                                        </el-form-item>
+                                    </el-col>
+                                </el-row>
+                                <el-row :gutter="10">
+                                    <el-col :span="24">
+                                        <el-form-item label="模板文件名字:" class="form-item" prop="fileName">
+                                            <el-input v-model="tmplAssetReport.fileName" clearable disabled />
+                                        </el-form-item>
+                                    </el-col>
+                                </el-row>
+                                <el-row :gutter="10">
+                                    <el-col :span="24">
+                                        <el-form-item label="模板文件存储位置:" class="form-item" prop="fileUrl">
+                                            <el-input v-model="tmplAssetReport.fileUrl" clearable disabled />
+                                        </el-form-item>
+                                    </el-col>
+                                </el-row>
+                            </el-col>
+                            <el-col :span="12">
+                                <el-upload drag action="#" multiple style="width:50%;margin-left:25%;" accept=".doc,.docx"
+                                    :limit="1" :http-request="handleUpload" :file-list="fileList" :on-exceed="handleExceed"
+                                    :before-remove="beforeRemove">
+                                    <el-icon class="el-icon--upload"><upload-filled /></el-icon>
+                                    <div class="el-upload__text">
+                                        拖拽文件 <em>或点击上传</em>
+                                    </div>
+                                    <template #tip>
+                                        <div class="el-upload__tip">
+                                            文件大小限制在100MB及以下
+                                        </div>
+                                    </template>
+                                </el-upload>
+                            </el-col>
+                        </el-row>
+                        <el-row :gutter="10">
+                            <el-col :span="12">
+                                <el-button type="primary" style="float:right;"
+                                    @click="createReportTmpl()">创建模板</el-button>
+                            </el-col>
+                        </el-row>
+                    </el-form>
+                </div>
+            </el-tab-pane>
+            <el-tab-pane label="创建段落模板" name="section">
+                <div>
+                    <el-form ref="createReportSectionTmpl" :model="tmplAssetReportSection" :rules="createSectionRules"
+                        label-width="auto" style="margin-top: 10px;">
+                        <el-row :gutter="10">
+                            <el-col :span="12">
+                                <el-form-item label="段落模板名称:" class="form-item" prop="sectionName">
+                                    <el-input v-model="tmplAssetReportSection.sectionName" clearable />
+                                </el-form-item>
+                                <el-row :gutter="10">
+                                    <el-col :span="24">
+                                        <el-form-item label="主模板id:" class="form-item" prop="tmplCode">
+                                            <el-select v-model="tmplAssetReportSection.templateReportId"
+                                                placeholder="选择主模板">
+                                                <el-option v-for="item in reportDropDownBoxData" :key="item.id"
+                                                    :label="item.name" :value="item.id" />
+                                            </el-select>
+                                        </el-form-item>
+                                    </el-col>
+                                </el-row>
+                                <el-row :gutter="10">
+                                    <el-col :span="24">
+                                        <el-form-item label="报告类型:" class="form-item" prop="reportType">
+                                            <el-select v-model="tmplAssetReportSection.reportType"
+                                                placeholder="选择报告类型" @change="reportTypeChange">
+                                                <el-option v-for="item in reportType" :key="item.id"
+                                                    :label="item.name" :value="item.name" />
+                                            </el-select>
+                                        </el-form-item>
+                                    </el-col>
+                                </el-row>
+                                <el-row :gutter="10">
+                                    <el-col :span="24">
+                                        <el-form-item label="模板CODE:" class="form-item" prop="tmplCode">
+                                            <el-select v-model="tmplAssetReportSection.tmplCode" placeholder="选择模板CODE">
+                                                <el-option v-for="item in tmplCodes" :key="item.value" :label="item.label"
+                                                    :value="item.value" />
+                                            </el-select>
+                                        </el-form-item>
+                                    </el-col>
+                                </el-row>
+                                <el-row :gutter="10">
+                                    <el-col :span="24">
+                                        <el-form-item label="模板文件名字:" class="form-item" prop="sectionFileName">
+                                            <el-input v-model="tmplAssetReportSection.sectionFileName" clearable
+                                                disabled />
+                                        </el-form-item>
+                                    </el-col>
+                                </el-row>
+                                <el-row :gutter="10">
+                                    <el-col :span="24">
+                                        <el-form-item label="模板文件存储位置:" class="form-item" prop="sectionFileUrl">
+                                            <el-input v-model="tmplAssetReportSection.sectionFileUrl" clearable
+                                                disabled />
+                                        </el-form-item>
+                                    </el-col>
+                                </el-row>
+                            </el-col>
+                            <el-col :span="12">
+                                <el-upload drag action="#" multiple style="width:50%;margin-left:25%;" accept=".doc,.docx"
+                                    :limit="1" :http-request="handleSectionUpload" :file-list="sectionFileList"
+                                    :on-exceed="handleExceed" :before-remove="beforeRemove">
+                                    <el-icon class="el-icon--upload"><upload-filled /></el-icon>
+                                    <div class="el-upload__text">
+                                        拖拽文件 <em>或点击上传</em>
+                                    </div>
+                                    <template #tip>
+                                        <div class="el-upload__tip">
+                                            文件大小限制在100MB及以下
+                                        </div>
+                                    </template>
+                                </el-upload>
+                            </el-col>
+                        </el-row>
+                        <el-row :gutter="10">
+                            <el-col :span="12">
+                                <el-button type="primary" style="float:right;"
+                                    @click="createReportSectionTmpl()">创建模板</el-button>
+                            </el-col>
+                        </el-row>
+                    </el-form>
+                </div>
+            </el-tab-pane>
+        </el-tabs>
+    </div>
+</template>
+
+<script>
+
+import { uploadAssetsReportTmpl } from '@/api/fileUpload'
+import { createTmplAssetReport, getDropDownBoxData } from '@/api/tmplAssetReport'
+import { getDropDownBoxDataByCode } from '@/api/dictData'
+import { createTmplAssetReportSection } from '@/api/tmplAssetReportSection'
+
+export default {
+    name: 'assetsCreateReportTmpl',
+    components: {
+
+    },
+    data() {
+        return {
+            activeName: 'main',
+            reportDropDownBoxData: null,
+            equipmentTmplCode: [
+                {
+                    value: 'MAIN',
+                    label: '设备融资项目报告-框架-主模板',
+                },
+                {
+                    value: 'COVER',
+                    label: '设备融资项目报告-封面-段落模板',
+                },
+                {
+                    value: 'CATALOGUE',
+                    label: '设备融资项目报告-目录-段落模板',
+                },
+                {
+                    value: 'DETAIL',
+                    label: '设备融资项目报告-正文-段落模板',
+                },
+                {
+                    value: 'CONSIGNOR',
+                    label: '设备融资项目报告-委托人概况-段落模板',
+                },
+                {
+                    value: 'PROPERTY_OWNER',
+                    label: '设备融资项目报告-产权持有人概况-段落模板',
+                }
+            ],
+            tmplCodes: null,
+            reportType: [],
+            tmplAssetReport: {
+
+            },
+            fileList: [],
+            createRules: {
+                reportName: [
+                    { required: true, message: '请输入报告名字', trigger: 'blur' }
+                ],
+                reportType: [
+                    { required: true, message: '请选择报告类型', trigger: 'change' }
+                ],
+                hasSection: [
+                    { required: true, message: '是否有段落模板', trigger: 'change' }
+                ],
+                tmplCode: [
+                    { required: true, message: '请选择模板CODE', trigger: 'blur' }
+                ],
+                fileName: [
+                    { required: true, message: '请上传模板文件', trigger: 'blur' }
+                ],
+                fileUrl: [
+                    { required: true, message: '请上传模板文件', trigger: 'blur' }
+                ]
+            },
+            tmplAssetReportSection: {
+
+            },
+            createSectionRules: {
+                sectionName: [
+                    { required: true, message: '请输入段落模板名称', trigger: 'blur' }
+                ],
+                templateReportId: [
+                    { required: true, message: '请选择主模板', trigger: 'change' }
+                ],
+                reportType: [
+                    { required: true, message: '请选择报告类型', trigger: 'change' }
+                ],
+                tmplCode: [
+                    { required: true, message: '请选择模板CODE', trigger: 'blur' }
+                ],
+                sectionFileName: [
+                    { required: true, message: '请上传模板文件', trigger: 'blur' }
+                ],
+                sectionFileUrl: [
+                    { required: true, message: '请上传模板文件', trigger: 'blur' }
+                ]
+            },
+            sectionFileList: []
+        }
+    },
+    created() {
+        this.getDictDropDownBoxDataByCode();
+    },
+    methods: {
+        tabChange() {
+            if (this.activeName === "section") {
+                this.getDropDownBoxData();
+            }
+        },
+        // 根据code获取字典数据
+        getDictDropDownBoxDataByCode(){
+            getDropDownBoxDataByCode('ASSET_REPORT_TMPL_TYPE').then(res => {
+                this.reportType = res.data;
+            })
+        },
+        getDropDownBoxData() {
+            getDropDownBoxData().then(res => {
+                this.reportDropDownBoxData = res.data
+            })
+        },
+        // 上传文件
+        handleUpload(item) {
+            let fileData = new FormData();
+            fileData.append("multipartFile", item.file)
+            uploadAssetsReportTmpl(fileData).then(res => {
+                if (res.code == 200) {
+                    this.tmplAssetReport.fileName = res.data.fileName;
+                    this.tmplAssetReport.fileUrl = res.data.filePath;
+                } else {
+                    this.fileList = []
+                }
+            })
+        },
+        // 文件上传数量限制
+        handleExceed() {
+            ElMessage({
+                showClose: true,
+                message: "最多选择一个文件!",
+                type: 'error'
+            })
+        },
+        // 移除文件
+        beforeRemove(file, fileList) {
+            fileList = fileList.filter((o) => {
+                return o.name !== file.name
+            });
+            this.tmplAssetReport.fileName = null;
+            this.tmplAssetReport.fileUrl = null;
+        },
+        reportTypeChange() {
+            if (this.tmplAssetReport.reportType == "机器设备" || this.tmplAssetReportSection.reportType == "机器设备") {
+                this.tmplCodes = this.equipmentTmplCode;
+            }
+            if (this.tmplAssetReport.reportType == "债权" || this.tmplAssetReportSection.reportType == "债权") {
+                this.tmplCodes = null;
+            }
+        },
+        // 创建报告模板
+        createReportTmpl() {
+            this.$refs.createReportTmpl.validate((valid) => {
+                if (valid) {
+                    createTmplAssetReport(this.tmplAssetReport).then(res => {
+                        if (res.code == 200) {
+                            this.$refs.createReportTmpl.resetFields();
+                            this.tmplCodes = null;
+                            this.fileList = [];
+                            ElMessage({
+                                showClose: true,
+                                message: res.message,
+                                type: 'success'
+                            })
+                        }
+                    })
+                }
+            });
+        },
+        // 上传文件
+        handleSectionUpload(item) {
+            let fileData = new FormData();
+            fileData.append("multipartFile", item.file)
+            uploadAssetsReportTmpl(fileData).then(res => {
+                if (res.code == 200) {
+                    this.tmplAssetReportSection.sectionFileName = res.data.fileName;
+                    this.tmplAssetReportSection.sectionFileUrl = res.data.filePath;
+                } else {
+                    this.sectionFileList = []
+                }
+            })
+        },
+        // 文件上传数量限制
+        handleSectionExceed() {
+            ElMessage({
+                showClose: true,
+                message: "最多选择一个文件!",
+                type: 'error'
+            })
+        },
+        // 移除文件
+        beforeSectionRemove(file, fileList) {
+            fileList = fileList.filter((o) => {
+                return o.name !== file.name
+            });
+            this.tmplAssetReport.fileName = null;
+            this.tmplAssetReport.fileUrl = null;
+        },
+        // 创建报告段落模板
+        createReportSectionTmpl() {
+            this.$refs.createReportSectionTmpl.validate((valid) => {
+                if (valid) {
+                    createTmplAssetReportSection(this.tmplAssetReportSection).then(res => {
+                        if (res.code == 200) {
+                            this.$refs.createReportSectionTmpl.resetFields();
+                            this.tmplCodes = null;
+                            this.sectionFileList = [];
+                            ElMessage({
+                                showClose: true,
+                                message: res.message,
+                                type: 'success'
+                            })
+                        }
+                    })
+                }
+            });
+        }
+    }
+}
+</script>
+
+<style scoped>
+.contrl {
+    font-size: 20px;
+    width: 70.9%;
+    border-right: 1.5px #dae1eb solid;
+    padding: 20px 20px 20px 0px;
+    float: left;
+}
+
+:deep(*) {
+    color-scheme: light;
+    --el-color-primary: #ff6154;
+    --el-color-primary-light-3: #ff7154;
+    --el-color-primary-light-5: #ff8154;
+    --el-color-primary-light-7: #ff9154;
+    --el-color-primary-light-8: #ffa999;
+    --el-color-primary-light-9: #ffa854;
+    --el-color-primary-dark-2: #ff8154;
+}
+</style>

+ 206 - 10
src/views/assets/template/mange.vue

@@ -4,7 +4,7 @@
       <div class="title-div">
         <p>模板管理</p>
       </div>
-      <div class="createNew-div">
+      <div class="createNew-div" @click="goCreateReportTmpl()">
         <img src="../../../assets/icons/word.png" style="width: 32px; height: 32px; float: left;margin-top: 22px;" />
         <span style="margin-left: 10px;">创建报告模板</span>
         <img src="../../../assets/icons/plus.png" style="width: 32px; height: 32px;float: right;margin-top: 22px;" />
@@ -18,7 +18,7 @@
     <el-tabs v-model="activeName" class="condtion-tabs" @tab-change="tabChange()">
       <el-tab-pane label="测算表模板" name="calculate">
         <div class="example-list report-div">
-          <el-card v-for="item in pageData" class="report-item no-border" shadow="never">
+          <el-card v-for="item in calculatePageData" class="report-item no-border" shadow="never">
             <div class="report-icon">
               <img src="../../../assets/icons/excel.png" style="width: 52px; height: 52px;" />
             </div>
@@ -59,13 +59,54 @@
           </el-card>
         </div>
         <el-pagination background layout="prev, pager, next" style="--el-color-primary: #ff6154"
-          v-model:page-count="listQuery.pages" v-model:current-page="listQuery.current"
+          v-model:page-count="listQuery1.pages" v-model:current-page="listQuery1.current"
           @current-change="getTmplAssetCalculate" />
       </el-tab-pane>
       <el-tab-pane label="报告模板" name="report">
         <div class="example-list report-div">
-
+          <el-card v-for="item in reportPageData" class="report-item no-border" shadow="never">
+            <div class="report-icon">
+              <img src="../../../assets/icons/word.png" style="width: 52px; height: 52px;" />
+            </div>
+            <div class="report-text">
+              <span class="report-text-type">{{ item.reportName }}</span><br />
+              <span> 文件名: </span>
+              <span class="report-text-name">{{ item.fileName }}
+              </span><br />
+              <span> 存储位置: </span>
+              <span class="report-text-name">{{ item.fileUrl }}
+              </span><br />
+              <div style="margin-top: 5px;">
+                <span>
+                  <el-tag style="margin-left: 5px;">
+                    {{ item.reportType }}
+                  </el-tag>
+                </span>
+                <span style="float: right; color:darkgrey">
+                  {{ item.updateTime }}
+                </span>
+              </div>
+            </div>
+            <el-popconfirm title="确定要删除当前模板?" confirm-button-text="确定" cancel-button-text="取消"
+              @confirm="deleteReport(item.id)">
+              <template #reference>
+                <div class="report-button" style="margin-left: 20px;">
+                  <el-icon>
+                    <Delete />
+                  </el-icon>
+                </div>
+              </template>
+            </el-popconfirm>
+            <div class="report-button" @click="getTmplAssetReportDetailById(item.id)">
+              <el-icon>
+                <View />
+              </el-icon>
+            </div>
+          </el-card>
         </div>
+        <el-pagination background layout="prev, pager, next" style="--el-color-primary: #ff6154"
+          v-model:page-count="listQuery2.pages" v-model:current-page="listQuery2.current"
+          @current-change="getTmplAssetReport" />
       </el-tab-pane>
     </el-tabs>
     <el-dialog v-model="calculateDetailVisible" title="模板详情" width="800">
@@ -155,12 +196,101 @@
         </el-row>
       </el-form>
     </el-dialog>
+    <el-dialog v-model="reportDetailVisible" title="模板详情" width="800">
+      <el-form ref="createReportTmpl" :model="reportDetail" label-width="auto" style="margin-top: 10px;">
+        <el-row :gutter="10">
+          <el-col :span="24">
+            <el-form-item label="测算表名字:" class="form-item" prop="calculateName">
+              <el-input v-model="reportDetail.reportName" clearable disabled />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="24">
+            <el-form-item label="模板文件名字:" class="form-item" prop="fileName">
+              <el-input v-model="reportDetail.fileName" clearable disabled />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="24">
+            <el-form-item label="模板文件存储位置:" class="form-item" prop="fileUrl">
+              <el-input v-model="reportDetail.fileUrl" clearable disabled />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="24">
+            <el-form-item label="测算类型:" class="form-item" prop="fileUrl">
+              <el-input v-model="reportDetail.reportType" clearable disabled />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="24">
+            <el-form-item label="模板code:" class="form-item" prop="fileUrl">
+              <el-input v-model="reportDetail.tmplCode" clearable disabled />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="24">
+            <el-form-item label="最后更新时间:" class="form-item" prop="fileUrl">
+              <el-input v-model="reportDetail.updateTime" clearable disabled />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10" v-if="reportDetail.hasSection">
+          <el-col :span="24">
+            <el-form-item label="是否有段落模板:" class="form-item" prop="hasSection">
+              <el-radio-group v-model="reportDetail.hasSection" disabled>
+                <el-radio :value="true">有</el-radio>
+                <el-radio :value="false">无</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="24">
+            <div class="dialog-section-tmpl">
+              <el-card v-for="item in reportDetail.sectionList" class="report-item no-border" shadow="never">
+                <div>
+                  <span> 测算表段落模板名称: </span>
+                  <span class="report-text-type">{{ item.sectionName }}</span><br />
+                  <span> 段落模板文件名字: </span>
+                  <span class="report-text-name">{{ item.sectionFileName }}
+                  </span><br />
+                  <span> 段落模板文件存储位置: </span>
+                  <span class="report-text-name">{{ item.sectionFileUrl }}
+                  </span><br />
+                  <span> 模板code: </span>
+                  <span class="report-text-name">{{ item.tmplCode }}
+                  </span><br />
+                </div>
+                <el-popconfirm title="确定要删除当前模板?" confirm-button-text="确定" cancel-button-text="取消"
+                  @confirm="deleteReportSection(item.id)">
+                  <template #reference>
+                    <div class="report-button" style="margin-left: 20px;">
+                      <el-icon>
+                        <Delete />
+                      </el-icon>
+                    </div>
+                  </template>
+                </el-popconfirm>
+              </el-card>
+            </div>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-dialog>
   </div>
 </template>
 
 <script>
 import { getTmplAssetCalculate, getTmplAssetCalculateDetailById, deleteCalculate } from '@/api/tmplAssetCalculate';
 import { deleteCalculateSection } from '@/api/tmplAssetCalculateSection';
+import { getTmplAssetReport, getTmplAssetReportDetailById, deleteReport } from '@/api/tmplAssetReport';
+import { deleteReportSection } from '@/api/tmplAssetReportSection';
 export default {
   name: 'assetsTmplMange',
   data() {
@@ -168,16 +298,26 @@ export default {
       msg: 0,
       folderName: null,
       activeName: 'calculate',
-      listQuery: {
+      listQuery1: {
+        current: 1,
+        size: 5,
+        pages: 1
+      },
+      listQuery2: {
         current: 1,
         size: 5,
         pages: 1
       },
-      pageData: {
+      calculatePageData: {
+
+      },
+      reportPageData: {
 
       },
       calculateDetail: null,
-      calculateDetailVisible: false
+      calculateDetailVisible: false,
+      reportDetail: null,
+      reportDetailVisible: false
     }
   },
 
@@ -189,15 +329,23 @@ export default {
       if (this.activeName === "calculate") {
         this.getTmplAssetCalculate();
       }
+      if (this.activeName === "report") {
+        this.getTmplAssetReport();
+      }
     },
     goCreateCalculateTmpl() {
       this.$router.push('/home/assets/template/create/calculate')
     },
+    goCreateReportTmpl() {
+      this.$router.push('/home/assets/template/create/report')
+    },
     // 获取模板列表
     getTmplAssetCalculate() {
-      getTmplAssetCalculate(this.listQuery).then(res => {
-        this.listQuery.pages = res.data.pages
-        this.pageData = res.data.records;
+      getTmplAssetCalculate(this.listQuery1).then(res => {
+        if (res.data.records && res.data.records.length > 0) {
+          this.listQuery1.pages = res.data.pages;
+          this.calculatePageData = res.data.records;
+        }
       })
     },
     // 打开模板详情dialog
@@ -238,6 +386,54 @@ export default {
           })
         }
       })
+    },
+    // 获取报告模板列表
+    getTmplAssetReport() {
+      getTmplAssetReport(this.listQuery2).then(res => {
+        if (res.data.records && res.data.records.length > 0) {
+          this.listQuery2.pages = res.data.pages;
+          this.reportPageData = res.data.records;
+        }
+      })
+    },
+    // 打开报告模板详情dialog
+    openReportDetail(id) {
+      this.getTmplAssetReportDetailById(id);
+    },
+    // 获取报告列表详细信息
+    getTmplAssetReportDetailById(id) {
+      getTmplAssetReportDetailById(id).then(res => {
+        if (res.code == 200) {
+          this.reportDetailVisible = true;
+          this.reportDetail = res.data;
+        }
+      })
+    },
+    // 删除报告模板
+    deleteReport(id) {
+      deleteReport(id).then(res => {
+        if (res.code == 200) {
+          this.getTmplAssetReport();
+          ElMessage({
+            showClose: true,
+            message: res.message,
+            type: 'success'
+          })
+        }
+      })
+    },
+    // 删除报告段落模板
+    deleteReportSection(id) {
+      deleteReportSection(id).then(res => {
+        if (res.code == 200) {
+          this.getTmplAssetReportDetailById(this.reportDetail.id);
+          ElMessage({
+            showClose: true,
+            message: res.message,
+            type: 'success'
+          })
+        }
+      })
     }
   }
 }

+ 9 - 0
src/views/assets/workbench/calculate/importInfo.vue

@@ -205,6 +205,15 @@
                             }}</span>
                         </template>
                     </el-table-column>
+                    <el-table-column prop="valueAddedRate" label="增值率" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="valueAddedRate">
+                            <el-form :model="row" @submit.native.prevent>
+                                <span>{{ row.valueAddedRate = ((row.originalValue * 1 - row.bookNetValue * 1) / row.bookNetValue).toFixed(2) }}</span>
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
                 </el-table-column>
                 <el-table-column label="年限成新率" width="300">
                     <el-table-column prop="economicServiceLife" label="经济使用年数" width="120">