Browse Source

1.资产工作台工程文件结构调整、路由调整以兼容后续新的业务类型

GouGengquan 5 months ago
parent
commit
e0f1dc8c15
26 changed files with 644 additions and 93 deletions
  1. 5 2
      src/api/documentProduction.js
  2. 4 0
      src/api/fileUpload.js
  3. 39 25
      src/router/index.js
  4. 73 61
      src/views/assets/folder/child.vue
  5. 166 0
      src/views/assets/workbench/cr/calculate/baseInfo.vue
  6. 0 0
      src/views/assets/workbench/cr/calculate/components/bench.vue
  7. 0 0
      src/views/assets/workbench/cr/calculate/components/index.js
  8. 3 3
      src/views/assets/workbench/calculate/components/timeline.vue
  9. 52 0
      src/views/assets/workbench/cr/calculate/index.vue
  10. 0 0
      src/views/assets/workbench/cr/report/components/bench.vue
  11. 0 0
      src/views/assets/workbench/cr/report/components/index.js
  12. 0 0
      src/views/assets/workbench/cr/report/components/timeline.vue
  13. 39 0
      src/views/assets/workbench/cr/report/index.vue
  14. 1 1
      src/views/assets/workbench/calculate/baseInfo.vue
  15. 48 0
      src/views/assets/workbench/eqpt/calculate/components/bench.vue
  16. 2 0
      src/views/assets/workbench/eqpt/calculate/components/index.js
  17. 87 0
      src/views/assets/workbench/eqpt/calculate/components/timeline.vue
  18. 1 1
      src/views/assets/workbench/calculate/eqptBaseInfo.vue
  19. 0 0
      src/views/assets/workbench/eqpt/calculate/importInfo.vue
  20. 0 0
      src/views/assets/workbench/eqpt/calculate/index.vue
  21. 0 0
      src/views/assets/workbench/eqpt/report/baseInfo.vue
  22. 48 0
      src/views/assets/workbench/eqpt/report/components/bench.vue
  23. 2 0
      src/views/assets/workbench/eqpt/report/components/index.js
  24. 74 0
      src/views/assets/workbench/eqpt/report/components/timeline.vue
  25. 0 0
      src/views/assets/workbench/eqpt/report/eqptBaseInfo.vue
  26. 0 0
      src/views/assets/workbench/eqpt/report/index.vue

+ 5 - 2
src/api/documentProduction.js

@@ -1,16 +1,19 @@
 import request from '@/utils/request'
 
 
-const docmentProduction = {
+const documentProduction = {
 
     page(params) {
         return request.get(`/production`,{params : params})
+    },
+    save(params) {
+        return request.post('/production/save', params)
     }
     
 
 }
 
-export default docmentProduction;
+export default documentProduction;
 
 
 

+ 4 - 0
src/api/fileUpload.js

@@ -15,6 +15,10 @@ export function uploadAssetsReportTmpl(params) {
     return request.post('/file/assets/uploadReportTmpl',params)
 }
 
+export function uploadAssetsCRCalculate(params) {
+    return request.post('/file/assets/uploadCRCalculate',params)
+}
+
 export function updateHouseGuarntyTargetTable(params) {
     return request.post('/file/house/guaranty/target',params)
 }

+ 39 - 25
src/router/index.js

@@ -10,20 +10,26 @@ import GuarantyResult from '../views/house/workbench/guarantyResult.vue'
 import FolderChild from '../views/house/folder/child.vue'
 import FolderParent from '../views/house/folder/parent.vue'
 import Folder from '../views/house/folder/index.vue'
+// 资产项目列表
 import AssetsFolder from '@/views/assets/folder/index.vue'
 import AssetsFolderParent from '@/views/assets/folder/parent.vue'
 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'
-import AssetsCalculateEqptBaseInfo from '@/views/assets/workbench/calculate/eqptBaseInfo.vue'
-import AssetsReportWorkbench from '@/views/assets/workbench/report/index.vue'
-import AssetsReportBaseInfo from '@/views/assets/workbench/report/baseInfo.vue'
-import AssetsReportEqptBaseInfo from '@/views/assets/workbench/report/eqptBaseInfo.vue'
+// 资产机器设备
+import AssetsEqptCalculateWorkbench from '@/views/assets/workbench/eqpt/calculate/index.vue'
+import AssetsEqptCalculateBaseInfo from '@/views/assets/workbench/eqpt/calculate/baseInfo.vue'
+import AssetsEqptCalculateImportInfo from '@/views/assets/workbench/eqpt/calculate/importInfo.vue'
+import AssetsEqptCalculateEqptBaseInfo from '@/views/assets/workbench/eqpt/calculate/eqptBaseInfo.vue'
+import AssetsEqptReportWorkbench from '@/views/assets/workbench/eqpt/report/index.vue'
+import AssetsEqptReportBaseInfo from '@/views/assets/workbench/eqpt/report/baseInfo.vue'
+import AssetsEqptReportEqptBaseInfo from '@/views/assets/workbench/eqpt/report/eqptBaseInfo.vue'
+// 资产债权
+import AssetsCRCalculateWorkbench from '@/views/assets/workbench/cr/calculate/index.vue'
+import AssetsCRCalculateBaseInfo from '@/views/assets/workbench/cr/calculate/baseInfo.vue'
 
 const routes = [
   {
@@ -51,11 +57,19 @@ const routes = [
     redirect: '/home/assets/template/mange'
   },
   {
-    path: '/home/assets/workbench/calculate',
+    path: '/home/assets/workbench/eqpt/calculate',
     redirect: '/home/assets/folder'
   },
   {
-    path: '/home/assets/workbench/report',
+    path: '/home/assets/workbench/eqpt/report',
+    redirect: '/home/assets/folder'
+  },
+  {
+    path: '/home/assets/workbench/cr/calculate',
+    redirect: '/home/assets/folder'
+  },
+  {
+    path: '/home/assets/workbench/cr/report',
     redirect: '/home/assets/folder'
   },
   {
@@ -200,33 +214,33 @@ const routes = [
             ]
           },
           {
-            path: 'workbench/calculate',
-            component: AssetsCalculateWorkbench,
-            name: 'assetsCalculateWorkbench',
+            path: 'workbench/eqpt/calculate',
+            component: AssetsEqptCalculateWorkbench,
+            name: 'assetsEqptCalculateWorkbench',
             meta: {
               title: '文件夹'
             },
             children: [
               {
                 path: 'baseInfo',
-                component: AssetsCalculateBaseInfo,
-                name: 'assetsCalculateBaseInfo',
+                component: AssetsEqptCalculateBaseInfo,
+                name: 'assetsEqptCalculateBaseInfo',
                 meta: {
                   title: '测算表基本信息'
                 },
               },
               {
                 path: 'importInfo',
-                component: AssetsCalculateImportInfo,
-                name: 'assetsCalculateimportInfo',
+                component: AssetsEqptCalculateImportInfo,
+                name: 'assetsEqptCalculateimportInfo',
                 meta: {
                   title: '完善测算表信息'
                 },
               },
               {
                 path: 'eqptBaseInfo',
-                component: AssetsCalculateEqptBaseInfo,
-                name: 'assetsCalculateEqptBaseInfo',
+                component: AssetsEqptCalculateEqptBaseInfo,
+                name: 'assetsEqptCalculateEqptBaseInfo',
                 meta: {
                   title: '生成测算表'
                 },
@@ -234,25 +248,25 @@ const routes = [
             ]
           },
           {
-            path: 'workbench/report',
-            component: AssetsReportWorkbench,
-            name: 'assetsReportWorkbench',
+            path: 'workbench/eqpt/report',
+            component: AssetsEqptReportWorkbench,
+            name: 'assetsEqptReportWorkbench',
             meta: {
               title: '文件夹'
             },
             children: [
               {
                 path: 'baseInfo',
-                component: AssetsReportBaseInfo,
-                name: 'assetsReportBaseInfo',
+                component: AssetsEqptReportBaseInfo,
+                name: 'assetsEqptReportBaseInfo',
                 meta: {
                   title: '报告基本信息'
                 },
               },
               {
                 path: 'eqptBaseInfo',
-                component: AssetsReportEqptBaseInfo,
-                name: 'assetsReportEqptBaseInfo',
+                component: AssetsEqptReportEqptBaseInfo,
+                name: 'assetsEqptReportEqptBaseInfo',
                 meta: {
                   title: '生成报告'
                 },

+ 73 - 61
src/views/assets/folder/child.vue

@@ -22,23 +22,21 @@
         </div>
         <div class="report-text">
           <span class="report-text-type">{{ item.projectTypeName }}测算表</span>
-          <span> 一 </span>
-          <span class="report-text-name">{{ item.calculateName }}
-          </span>
+          <span>一</span>
+          <span class="report-text-name">{{ item.calculateName }}</span>
           <div style="margin-top: 5px;">
             <span>
               <el-icon>
                 <Avatar />
               </el-icon>
-              {{ item.principal }}</span>
+              {{ item.principal }}
+            </span>
             <!-- <span>
               <el-tag style="margin-left: 5px;">
                 {{ item.projectTypeName }}
               </el-tag>
-            </span> -->
-            <span style="float: right; color:darkgrey">
-              {{ item.createTime }}
-            </span>
+            </span>-->
+            <span style="float: right; color:darkgrey">{{ item.createTime }}</span>
           </div>
         </div>
         <div class="report-button" @click.stop="downloadFile(item.docUrl, item.docName)">
@@ -53,18 +51,16 @@
         </div>
         <div class="report-text">
           <span class="report-text-type">{{ item.projectTypeName }}报告</span>
-          <span> 一 </span>
-          <span class="report-text-name">{{ item.reportName }}
-          </span>
+          <span>一</span>
+          <span class="report-text-name">{{ item.reportName }}</span>
           <div style="margin-top: 5px;">
             <span>
               <el-icon>
                 <Avatar />
               </el-icon>
-              {{ item.principal }}</span>
-            <span style="float: right; color:darkgrey">
-              {{ item.createTime }}
+              {{ item.principal }}
             </span>
+            <span style="float: right; color:darkgrey">{{ item.createTime }}</span>
           </div>
         </div>
         <div class="report-button" @click.stop="downloadFile(item.docUrl, item.docName)">
@@ -79,9 +75,9 @@
 
 <script>
 import { mapStores } from 'pinia'
-import { assetsProjectInfo } from '@/stores/assetsProjectStore';
-import { getUnFinishedCalculateProgress, listAllCalculateByProjectId } from '@/api/assetsCalculate';
-import { getUnFinishedReportProgress, listAllReportByProjectId } from '@/api/assetsReport';
+import { assetsProjectInfo } from '@/stores/assetsProjectStore'
+import { getUnFinishedCalculateProgress, listAllCalculateByProjectId } from '@/api/assetsCalculate'
+import { getUnFinishedReportProgress, listAllReportByProjectId } from '@/api/assetsReport'
 import fileUtil from '@/utils/file'
 
 export default {
@@ -92,92 +88,112 @@ export default {
       projectInfo: {},
       folderName: null,
       calculateList: [],
-      reportList: []
+      reportList: [],
     }
   },
   computed: {
     ...mapStores(assetsProjectInfo),
   },
   created() {
-    this.projectInfo = this.$route.query;
-    this.getCalculateList();
-    this.getReportList();
+    this.projectInfo = this.$route.query
+    this.getCalculateList()
+    this.getReportList()
   },
   methods: {
     createNewCalculate() {
-      this.$router.push({ path: '/home/assets/workbench/calculate/baseInfo', query: { 'projectId': this.projectInfo.projectId } })
+      if (this.projectStore.projectInfo.projectTypeName === '机器设备') {
+        this.$router.push({ path: '/home/assets/workbench/eqpt/calculate/baseInfo', query: { projectId: this.projectInfo.projectId } })
+      } else if (this.projectStore.projectInfo.projectTypeName === '债权') {
+        this.$router.push('/home/assets/workbench/cr/calculate/baseInfo')
+      }
     },
     createNewReport() {
-      this.$router.push({ path: '/home/assets/workbench/report/baseInfo', query: { 'projectId': this.projectInfo.projectId } })
-    },
-    nextFolder() {
-
+      if (this.projectStore.projectInfo.projectTypeName === '机器设备') {
+        this.$router.push({ path: '/home/assets/workbench/eqpt/report/baseInfo', query: { projectId: this.projectInfo.projectId } })
+      } else if (this.projectStore.projectInfo.projectTypeName === '债权') {
+        console.log('跳转债权')
+      }
     },
+    nextFolder() {},
     // 获取未完成测算表的进度信息并保存到缓存
     getCalculateProgress() {
-      getUnFinishedCalculateProgress(this.projectStore.projectInfo.id).then(res => {
+      getUnFinishedCalculateProgress(this.projectStore.projectInfo.id).then((res) => {
         if (res.data) {
-          // 根据不同进度跳转到不同步骤页面
-          if (res.data.progress === 'IMPORT' || res.data.progress === 'GENERATE' || res.data.progress === 'FINISHED') {
-            this.$router.push('/home/assets/workbench/calculate/importInfo')
-          } else if (res.data.progress === 'BASE') {
-            this.$router.push('/home/assets/workbench/calculate/eqptBaseInfo')
+          // 项目类型也需要判断,不同项目类型页面不同
+          if (this.projectStore.projectInfo.projectTypeName === '机器设备') {
+            // 根据不同进度跳转到不同步骤页面
+            if (res.data.progress === 'IMPORT' || res.data.progress === 'GENERATE' || res.data.progress === 'FINISHED') {
+              this.$router.push('/home/assets/workbench/eqpt/calculate/importInfo')
+            } else if (res.data.progress === 'BASE') {
+              this.$router.push('/home/assets/workbench/eqpt/calculate/eqptBaseInfo')
+            }
+          } else if (this.projectStore.projectInfo.projectTypeName === '债权') {
+            this.$router.push('/home/assets/workbench/cr/calculate/baseInfo')
           }
-          this.projectStore.setCalculateProgress(res.data);
+          this.projectStore.setCalculateProgress(res.data)
         } else {
           // 为空说明没有未完成的测算,从头开始新建
-          this.createNewCalculate();
-          this.projectStore.removeCalculateProgress();
+          this.createNewCalculate()
+          this.projectStore.removeCalculateProgress()
         }
       })
     },
     // 获取未完成报告的进度信息并保存到缓存
     getReportProgress() {
-      getUnFinishedReportProgress(this.projectStore.projectInfo.id).then(res => {
+      getUnFinishedReportProgress(this.projectStore.projectInfo.id).then((res) => {
         if (res.data) {
           // 根据不同进度跳转到不同步骤页面
           if (res.data.progress === 'BASE' || res.data.progress === 'GENERATE') {
-            this.$router.push('/home/assets/workbench/report/eqptBaseInfo')
+            this.$router.push('/home/assets/workbench/eqpt/report/eqptBaseInfo')
           }
-          this.projectStore.setReportProgress(res.data);
+          this.projectStore.setReportProgress(res.data)
         } else {
           // 为空说明没有未完成的报告,从头开始新建
-          this.createNewReport();
-          this.projectStore.removeReportProgress();
+          this.createNewReport()
+          this.projectStore.removeReportProgress()
         }
       })
     },
     // 前往测算表详情
     goCalculateBench(item) {
-      this.projectStore.setCalculateProgress(item);
-      // 根据不同进度跳转到不同步骤页面
-      if (item.progress === 'IMPORT' || item.progress === 'GENERATE' || item.progress === 'FINISHED') {
-        this.$router.push('/home/assets/workbench/calculate/importInfo')
-      } else if (item.progress === 'BASE') {
-        this.$router.push('/home/assets/workbench/calculate/eqptBaseInfo')
+      this.projectStore.setCalculateProgress(item)
+      if (this.projectStore.projectInfo.projectTypeName === '机器设备') {
+        // 根据不同进度跳转到不同步骤页面
+        if (item.progress === 'IMPORT' || item.progress === 'GENERATE' || item.progress === 'FINISHED') {
+          this.$router.push('/home/assets/workbench/eqpt/calculate/importInfo')
+        } else if (item.progress === 'BASE') {
+          this.$router.push('/home/assets/workbench/eqpt/calculate/eqptBaseInfo')
+        }
+      } else if (this.projectStore.projectInfo.projectTypeName === '债权') {
+        console.log('跳转债权')
       }
     },
     // 前往报告详情
     goReportBench(item) {
-      this.projectStore.setReportProgress(item);
-      // 根据不同进度跳转到不同步骤页面
-      if (item.progress === 'BASE' || item.progress === 'GENERATE' || item.progress === 'FINISHED') {
-        this.$router.push('/home/assets/workbench/report/eqptBaseInfo')
+      this.projectStore.setReportProgress(item)
+      // 项目类型也需要判断,不同项目类型页面不同
+      if (this.projectStore.projectInfo.projectTypeName === '机器设备') {
+        // 根据不同进度跳转到不同步骤页面
+        if (item.progress === 'BASE' || item.progress === 'GENERATE' || item.progress === 'FINISHED') {
+          this.$router.push('/home/assets/workbench/eqpt/report/eqptBaseInfo')
+        }
+      } else if (this.projectStore.projectInfo.projectTypeName === '债权') {
+        console.log('跳转债权')
       }
     },
     // 获取测算表list
     getCalculateList() {
-      listAllCalculateByProjectId(this.projectStore.projectInfo.id).then(res => {
+      listAllCalculateByProjectId(this.projectStore.projectInfo.id).then((res) => {
         if (res.data) {
-          this.calculateList = res.data;
+          this.calculateList = res.data
         }
       })
     },
     // 获取报告list
     getReportList() {
-      listAllReportByProjectId(this.projectStore.projectInfo.id).then(res => {
+      listAllReportByProjectId(this.projectStore.projectInfo.id).then((res) => {
         if (res.data) {
-          this.reportList = res.data;
+          this.reportList = res.data
         }
       })
     },
@@ -185,18 +201,17 @@ export default {
     downloadFile(docUrl, docName) {
       if (docUrl && docName) {
         let downloadUrl = '/file/download?fileDiskPath=' + docUrl + '&fileName=' + docName
-        fileUtil.download(downloadUrl);
+        fileUtil.download(downloadUrl)
       } else {
         ElMessage({
           showClose: true,
           message: '文档还未生成,请完成生成步骤!',
-          type: 'warning'
+          type: 'warning',
         })
       }
-    }
+    },
   },
 }
-
 </script>
 
 <style scoped>
@@ -209,7 +224,6 @@ export default {
   margin-left: 160px;
   margin-right: 160px;
   padding: 50px 20px 20px 20px;
-
 }
 
 .contrl {
@@ -217,7 +231,6 @@ export default {
   border-right: 1.5px #dae1eb solid;
   padding: 0px 20px 20px 0px;
   float: left;
-
 }
 
 .report-div {
@@ -254,7 +267,6 @@ export default {
   padding-left: 10px;
   padding-right: 10px;
   margin-left: 20px;
-
 }
 
 .createNew-div:hover {

+ 166 - 0
src/views/assets/workbench/cr/calculate/baseInfo.vue

@@ -0,0 +1,166 @@
+<template>
+  <div id="contrl" class="contrl">
+    <el-form ref="baseInfo" :model="baseInfo" label-width="auto" style="margin-top: 10px;" :rules="baseInfoRules">
+      <el-divider content-position="left">
+        <span style="color:#ff6154;">基本信息</span>
+      </el-divider>
+      <el-row :gutter="10">
+        <el-col :span="12">
+          <el-form-item label="测算名:" class="form-item" prop="calculateName">
+            <el-input v-model="baseInfo.calculateName" clearable style="width: 100%;" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="10">
+        <el-col :span="12">
+          <el-form-item label="评估基准日:" class="form-item" prop="valuationBasisDate">
+            <el-date-picker v-model="baseInfo.valuationBasisDate" type="date" placeholder="选择评估基准日" style="width: 100%;" value-format="YYYY-MM-DD" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="10">
+        <el-col :span="12">
+          <el-form-item label="上传测算表:" class="form-item" prop="calculateFile">
+            <el-upload
+              ref="uploadCRCalculateExcel"
+              drag
+              action="#"
+              multiple
+              style="width:100%;"
+              accept=".xls, .xlsx"
+              :limit="1"
+              :file-list="fileList"
+              :on-exceed="handleExceed"
+              :before-remove="beforeRemove"
+              :auto-upload="true"
+              :http-request="uploadCRCalculateExcel"
+            >
+              <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-form-item>
+        </el-col>
+      </el-row>
+      <el-button plain type="danger" style="float: right;" @click="createCalculate()">完成</el-button>
+    </el-form>
+  </div>
+</template>
+
+<script>
+import { mapStores } from 'pinia'
+import { assetsProjectInfo } from '@/stores/assetsProjectStore'
+import { createAssetsCalculate, getUnFinishedCalculateProgress } from '@/api/assetsCalculate'
+import { uploadAssetsCRCalculate } from '@/api/fileUpload'
+import documentProduction from '@/api/documentProduction'
+export default {
+  data() {
+    var calculateFile = (rule, value, callback) => {
+      if (this.fileList < 1) {
+        return callback(new Error('请上传债权测算表'))
+      }
+    }
+    return {
+      baseInfo: {},
+      baseInfoRules: {
+        calculateName: [{ required: true, message: '请输入测算表名', trigger: 'blur' }],
+        valuationBasisDate: [{ required: true, message: '请选择评估基准日', trigger: 'blur' }],
+        calculateFile: [{ required: true, validator: calculateFile, trigger: 'change' }],
+      },
+      fileList: [],
+    }
+  },
+  computed: {
+    ...mapStores(assetsProjectInfo),
+  },
+  created() {
+    if (this.projectStore.calculateProgress) {
+      this.baseInfo.id = this.projectStore.calculateProgress.id
+      this.baseInfo.projectId = this.projectStore.projectInfo.id
+      this.baseInfo.calculateName = this.projectStore.calculateProgress.calculateName
+      this.baseInfo.valuationBasisDate = this.projectStore.calculateProgress.valuationBasisDate
+    }
+  },
+  methods: {
+    // 获取未完成测算表的进度信息并保存到缓存
+    getCalculateProgress() {
+      getUnFinishedCalculateProgress(this.projectStore.projectInfo.id).then((res) => {
+        if (res.data) {
+          this.projectStore.setCalculateProgress(res.data)
+        }
+      })
+    },
+    // 文件上传数量限制
+    handleExceed() {
+      ElMessage({
+        showClose: true,
+        message: '最多选择一个文件!',
+        type: 'error',
+      })
+    },
+    // 移除文件
+    beforeRemove(file, fileList) {
+      fileList = fileList.filter((o) => {
+        return o.name !== file.name
+      })
+      this.fileList = []
+      this.tmplAssetCalculate.fileName = null
+      this.tmplAssetCalculate.fileUrl = null
+    },
+    // 上传债权测算表
+    uploadCRCalculateExcel(item) {
+      let crCalculateExcel = new FormData()
+      crCalculateExcel.append('multipartFile', item.file)
+      uploadAssetsCRCalculate(crCalculateExcel).then((res) => {
+        if (res.code == 200) {
+          ElMessage({
+            showClose: true,
+            message: res.message,
+            type: 'success',
+          })
+        }
+      })
+    },
+    // 创建测算表,填写测算表基础信息
+    createCalculate() {
+      this.$refs.baseInfo.validate((valid) => {
+        if (valid) {
+          // 债权目前没有在线测算的需求,直接完成进度
+          this.baseInfo.progress = 'FINISHED'
+          this.baseInfo.projectId = this.projectStore.projectInfo.id
+          createAssetsCalculate(this.baseInfo).then((res) => {
+            if (res.code == 200) {
+              ElMessage({
+                showClose: true,
+                message: res.message,
+                type: 'success',
+              })
+              this.$router.push('/home/assets/workbench/calculate/eqptBaseInfo')
+            }
+          })
+        }
+      })
+    },
+  },
+}
+</script>
+
+<style scoped>
+: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>

src/views/assets/workbench/calculate/components/bench.vue → src/views/assets/workbench/cr/calculate/components/bench.vue


src/views/assets/workbench/calculate/components/index.js → src/views/assets/workbench/cr/calculate/components/index.js


+ 3 - 3
src/views/assets/workbench/calculate/components/timeline.vue

@@ -5,7 +5,7 @@
         :timestamp="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'BASE' || projectStore.calculateProgress.progress === 'IMPORT' || projectStore.calculateProgress.progress === 'GENERATE' || projectStore.calculateProgress.progress === 'FINISHED') ? '已完成' : '未完成'"
         placement="top"
         :color="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'BASE' || projectStore.calculateProgress.progress === 'IMPORT' || projectStore.calculateProgress.progress === 'GENERATE' || projectStore.calculateProgress.progress === 'FINISHED') ? '#ff6154' : '#dae1eb'"
-        @click="goBench('/home/assets/workbench/calculate/baseInfo', ['BASE', 'IMPORT', 'GENERATE', 'FINISHED'])">
+        @click="goBench('/home/assets/workbench/eqpt/calculate/baseInfo', ['BASE', 'IMPORT', 'GENERATE', 'FINISHED'])">
         <el-card shadow="never" class="timeline-card report-item">
           <h4>创建测算表</h4>
           <!-- <p>更新时间: 2018/4/12 20:46</p> -->
@@ -15,7 +15,7 @@
         :timestamp="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'IMPORT' || projectStore.calculateProgress.progress === 'GENERATE' || projectStore.calculateProgress.progress === 'FINISHED') ? '已完成' : '未完成'"
         placement="top"
         :color="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'IMPORT' || projectStore.calculateProgress.progress === 'GENERATE' || projectStore.calculateProgress.progress === 'FINISHED') ? '#ff6154' : '#dae1eb'"
-        @click="goBench('/home/assets/workbench/calculate/eqptBaseInfo', ['BASE', 'IMPORT', 'GENERATE', 'FINISHED'])">
+        @click="goBench('/home/assets/workbench/eqpt/calculate/eqptBaseInfo', ['BASE', 'IMPORT', 'GENERATE', 'FINISHED'])">
         <el-card shadow="never" class="timeline-card report-item">
           <h4>填写基本信息</h4>
           <!-- <p>更新时间: 2018/4/12 20:46</p> -->
@@ -25,7 +25,7 @@
         :timestamp="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'GENERATE' || projectStore.calculateProgress.progress === 'FINISHED') ? '已完成' : '未完成'"
         placement="top"
         :color="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'GENERATE' || projectStore.calculateProgress.progress === 'FINISHED') ? '#ff6154' : '#dae1eb'"
-        @click="goBench('/home/assets/workbench/calculate/importInfo', ['IMPORT', 'GENERATE', 'FINISHED'])">
+        @click="goBench('/home/assets/workbench/eqpt/calculate/importInfo', ['IMPORT', 'GENERATE', 'FINISHED'])">
         <el-card shadow="never" class="timeline-card report-item">
           <h4>测算</h4>
           <!-- <p>更新时间: 2018/4/12 20:46</p> -->

+ 52 - 0
src/views/assets/workbench/cr/calculate/index.vue

@@ -0,0 +1,52 @@
+<template>
+  <div>
+    <Bench></Bench>
+    <!-- <Timeline :baseInfo="true"></Timeline> -->
+  </div>
+</template>
+  
+<script>
+import { Timeline, Bench } from "./components";
+
+export default {
+  name: 'assetsCRCalculateWorkBench',
+  components: {
+    Bench,
+    Timeline,
+  },
+  data() {
+    return {
+      
+    }
+  },
+  methods: {
+    
+  }
+}
+</script>
+  
+<style scoped>
+.base {
+  min-height: calc(100vh - 80px);
+  width: 100%;
+}
+
+.content {
+  margin-left: 160px;
+  margin-right: 160px;
+  padding: 50px 20px 20px 20px;
+
+}
+</style>
+
+<style>
+.contrl {
+  /* font-size: 20px; */
+  width: 85%;
+  border-right: 1.5px #dae1eb solid;
+  padding: 0px 20px 20px 0px;
+  float: left;
+}
+</style>
+  
+  

src/views/assets/workbench/report/components/bench.vue → src/views/assets/workbench/cr/report/components/bench.vue


src/views/assets/workbench/report/components/index.js → src/views/assets/workbench/cr/report/components/index.js


src/views/assets/workbench/report/components/timeline.vue → src/views/assets/workbench/cr/report/components/timeline.vue


+ 39 - 0
src/views/assets/workbench/cr/report/index.vue

@@ -0,0 +1,39 @@
+<template>
+  <div>
+      <Bench></Bench>
+      <Timeline :baseInfo="true"></Timeline>
+  </div>
+</template>
+  
+<script>
+import { Timeline, Bench } from "./components";
+
+export default {
+  name: 'assetsCRReportWorkBench',
+  components: {
+    Bench,
+    Timeline,
+  },
+  data() {
+    return {
+      
+    }
+  }
+}
+</script>
+  
+<style scoped>
+.base {
+  min-height: calc(100vh - 80px);
+  width: 100%;
+}
+
+.content {
+  margin-left: 160px;
+  margin-right: 160px;
+  padding: 50px 20px 20px 20px;
+
+}
+</style>
+  
+  

+ 1 - 1
src/views/assets/workbench/calculate/baseInfo.vue

@@ -74,7 +74,7 @@ export default {
                                 message: res.message,
                                 type: 'success'
                             })
-                            this.$router.push('/home/assets/workbench/calculate/eqptBaseInfo')
+                            this.$router.push('/home/assets/workbench/eqpt/calculate/eqptBaseInfo')
                             this.getCalculateProgress();
                         }
                     })

+ 48 - 0
src/views/assets/workbench/eqpt/calculate/components/bench.vue

@@ -0,0 +1,48 @@
+<template>
+  <section class="bench-main">
+    <router-view v-slot="{ Component }">
+      <transition>
+        <component :is="Component" />
+      </transition>
+    </router-view>
+  </section>
+</template>
+  
+<script>
+export default {
+  name: 'Bench',
+
+  watch: {
+    $route: {
+      deep: true,
+      immediate: true,
+      handler() {
+      },
+    },
+  },
+
+  data() {
+    return {
+    }
+  },
+  created() {
+  },
+  computed: {
+
+  },
+
+
+  methods: {
+
+
+  }
+}
+</script>
+  
+<style  scoped>
+.bench-main {
+  width: 100%;
+}
+</style>
+  
+  

+ 2 - 0
src/views/assets/workbench/eqpt/calculate/components/index.js

@@ -0,0 +1,2 @@
+export { default as Bench } from './bench.vue'
+export { default as Timeline } from './timeline.vue'

+ 87 - 0
src/views/assets/workbench/eqpt/calculate/components/timeline.vue

@@ -0,0 +1,87 @@
+<template>
+  <div class="contrl-bar">
+    <el-timeline style="max-width: 400px">
+      <el-timeline-item
+        :timestamp="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'BASE' || projectStore.calculateProgress.progress === 'IMPORT' || projectStore.calculateProgress.progress === 'GENERATE' || projectStore.calculateProgress.progress === 'FINISHED') ? '已完成' : '未完成'"
+        placement="top"
+        :color="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'BASE' || projectStore.calculateProgress.progress === 'IMPORT' || projectStore.calculateProgress.progress === 'GENERATE' || projectStore.calculateProgress.progress === 'FINISHED') ? '#ff6154' : '#dae1eb'"
+        @click="goBench('/home/assets/workbench/eqpt/calculate/baseInfo', ['BASE', 'IMPORT', 'GENERATE', 'FINISHED'])">
+        <el-card shadow="never" class="timeline-card report-item">
+          <h4>创建测算表</h4>
+          <!-- <p>更新时间: 2018/4/12 20:46</p> -->
+        </el-card>
+      </el-timeline-item>
+      <el-timeline-item
+        :timestamp="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'IMPORT' || projectStore.calculateProgress.progress === 'GENERATE' || projectStore.calculateProgress.progress === 'FINISHED') ? '已完成' : '未完成'"
+        placement="top"
+        :color="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'IMPORT' || projectStore.calculateProgress.progress === 'GENERATE' || projectStore.calculateProgress.progress === 'FINISHED') ? '#ff6154' : '#dae1eb'"
+        @click="goBench('/home/assets/workbench/eqpt/calculate/eqptBaseInfo', ['BASE', 'IMPORT', 'GENERATE', 'FINISHED'])">
+        <el-card shadow="never" class="timeline-card report-item">
+          <h4>填写基本信息</h4>
+          <!-- <p>更新时间: 2018/4/12 20:46</p> -->
+        </el-card>
+      </el-timeline-item>
+      <el-timeline-item
+        :timestamp="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'GENERATE' || projectStore.calculateProgress.progress === 'FINISHED') ? '已完成' : '未完成'"
+        placement="top"
+        :color="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'GENERATE' || projectStore.calculateProgress.progress === 'FINISHED') ? '#ff6154' : '#dae1eb'"
+        @click="goBench('/home/assets/workbench/eqpt/calculate/importInfo', ['IMPORT', 'GENERATE', 'FINISHED'])">
+        <el-card shadow="never" class="timeline-card report-item">
+          <h4>测算</h4>
+          <!-- <p>更新时间: 2018/4/12 20:46</p> -->
+        </el-card>
+      </el-timeline-item>
+      <el-timeline-item
+        :timestamp="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'FINISHED') ? '已完成' : '未完成'"
+        placement="top"
+        :color="projectStore.calculateProgress && (projectStore.calculateProgress.progress === 'FINISHED') ? '#ff6154' : '#dae1eb'">
+        <el-card shadow="never" class="timeline-card report-item">
+          <h4>生成测算表</h4>
+          <!-- <p>更新时间: 2018/4/12 20:46</p> -->
+        </el-card>
+      </el-timeline-item>
+    </el-timeline>
+  </div>
+</template>
+
+<script>
+import { mapStores } from 'pinia'
+import { assetsProjectInfo } from '@/stores/assetsProjectStore';
+
+export default {
+  data() {
+    return {
+
+    }
+  },
+  computed: {
+    ...mapStores(assetsProjectInfo),
+  },
+  created() {
+
+  },
+  methods: {
+    goBench(route, progress) {
+      if(this.projectStore.calculateProgress && this.projectStore.calculateProgress.progress && progress.includes(this.projectStore.calculateProgress.progress)) {
+        this.$router.push(route)
+      }
+    }
+  }
+}
+
+</script>
+
+<style scoped>
+.contrl-bar {
+  height: 600px;
+  width: 15%;
+  /* position: absolute;
+  top: 160px;
+  right: 150px; */
+  display: inline-block;
+}
+
+.timeline-card:hover {
+  cursor: pointer;
+}
+</style>

+ 1 - 1
src/views/assets/workbench/calculate/eqptBaseInfo.vue

@@ -100,7 +100,7 @@ export default {
                             if (this.needUpdateStore) {
                                 this.projectStore.calculateProgress.progress = 'IMPORT';
                             }
-                            this.$router.push('/home/assets/workbench/calculate/importInfo');
+                            this.$router.push('/home/assets/workbench/eqpt/calculate/importInfo');
                         }
                     })
                 }

src/views/assets/workbench/calculate/importInfo.vue → src/views/assets/workbench/eqpt/calculate/importInfo.vue


src/views/assets/workbench/calculate/index.vue → src/views/assets/workbench/eqpt/calculate/index.vue


src/views/assets/workbench/report/baseInfo.vue → src/views/assets/workbench/eqpt/report/baseInfo.vue


+ 48 - 0
src/views/assets/workbench/eqpt/report/components/bench.vue

@@ -0,0 +1,48 @@
+<template>
+  <section class="bench-main">
+    <router-view v-slot="{ Component }">
+      <transition>
+        <component :is="Component" />
+      </transition>
+    </router-view>
+  </section>
+</template>
+  
+<script>
+export default {
+  name: 'Bench',
+
+  watch: {
+    $route: {
+      deep: true,
+      immediate: true,
+      handler() {
+      },
+    },
+  },
+
+  data() {
+    return {
+    }
+  },
+  created() {
+  },
+  computed: {
+
+  },
+
+
+  methods: {
+
+
+  }
+}
+</script>
+  
+<style  scoped>
+.bench-main {
+  width: 100%;
+}
+</style>
+  
+  

+ 2 - 0
src/views/assets/workbench/eqpt/report/components/index.js

@@ -0,0 +1,2 @@
+export { default as Bench } from './bench.vue'
+export { default as Timeline } from './timeline.vue'

+ 74 - 0
src/views/assets/workbench/eqpt/report/components/timeline.vue

@@ -0,0 +1,74 @@
+<template>
+  <div class="contrl-bar">
+    <el-timeline style="max-width: 600px">
+      <el-timeline-item
+        :timestamp="projectStore.reportProgress && (projectStore.reportProgress.progress === 'BASE' || projectStore.reportProgress.progress === 'GENERATE' || projectStore.reportProgress.progress === 'FINISHED') ? '已完成' : '未完成'"
+        placement="top"
+        :color="projectStore.reportProgress && (projectStore.reportProgress.progress === 'BASE' || projectStore.reportProgress.progress === 'GENERATE' || projectStore.reportProgress.progress === 'FINISHED') ? '#ff6154' : '#dae1eb'"
+        @click="goBench('/home/assets/workbench/report/baseInfo', ['BASE', 'GENERATE', 'FINISHED'])">
+        <el-card shadow="never" class="timeline-card report-item">
+          <h4>创建报告</h4>
+        </el-card>
+      </el-timeline-item>
+      <el-timeline-item
+        :timestamp="projectStore.reportProgress && (projectStore.reportProgress.progress === 'GENERATE' || projectStore.reportProgress.progress === 'FINISHED') ? '已完成' : '未完成'"
+        placement="top"
+        :color="projectStore.reportProgress && (projectStore.reportProgress.progress === 'GENERATE' || projectStore.reportProgress.progress === 'FINISHED') ? '#ff6154' : '#dae1eb'"
+        @click="goBench('/home/assets/workbench/report/eqptBaseInfo', ['BASE', 'GENERATE', 'FINISHED'])">
+        <el-card shadow="never" class="timeline-card report-item">
+          <h4>填写基本信息</h4>
+        </el-card>
+      </el-timeline-item>
+      <el-timeline-item
+        :timestamp="projectStore.reportProgress && (projectStore.reportProgress.progress === 'FINISHED') ? '已完成' : '未完成'"
+        placement="top"
+        :color="projectStore.reportProgress && (projectStore.reportProgress.progress === 'FINISHED') ? '#ff6154' : '#dae1eb'">
+        <el-card shadow="never" class="timeline-card report-item">
+          <h4>生成报告</h4>
+        </el-card>
+      </el-timeline-item>
+    </el-timeline>
+  </div>
+</template>
+
+<script>
+import { mapStores } from 'pinia'
+import { assetsProjectInfo } from '@/stores/assetsProjectStore';
+
+export default {
+  data() {
+    return {
+
+    }
+  },
+  computed: {
+    ...mapStores(assetsProjectInfo),
+  },
+  created() {
+
+  },
+  methods: {
+    goBench(route, progress) {
+      if(this.projectStore.reportProgress && this.projectStore.reportProgress.progress && progress.includes(this.projectStore.reportProgress.progress)) {
+        this.$router.push(route)
+      }
+    }
+  }
+}
+
+</script>
+
+<style scoped>
+.contrl-bar {
+  height: 600px;
+  width: 20%;
+  position: fixed;
+  top: 160px;
+  right: 150px;
+
+}
+
+.timeline-card:hover {
+  cursor: pointer;
+}
+</style>

src/views/assets/workbench/report/eqptBaseInfo.vue → src/views/assets/workbench/eqpt/report/eqptBaseInfo.vue


src/views/assets/workbench/report/index.vue → src/views/assets/workbench/eqpt/report/index.vue