Selaa lähdekoodia

Merge branch 'master' of http://47.108.172.52:3000/dayou/productivity-platform-web

wucl 8 kuukautta sitten
vanhempi
commit
e9f76c1b2a

+ 6 - 0
src/api/assetsCalculate.js

@@ -0,0 +1,6 @@
+import request from '@/utils/request'
+
+// 创建新的测算表
+export function createAssetsCalculate(params){
+    return request.post('/assetsCalculate/save', params)
+}

+ 8 - 0
src/main.js

@@ -8,6 +8,9 @@ import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
 
 import * as ElementPlusIconsVue from '@element-plus/icons-vue'
 
+import ElementPlus from 'element-plus'
+import zhCn from 'element-plus/es/locale/lang/zh-cn'
+
 const pinia = createPinia()
 // pinia数据持久化
 pinia.use(piniaPluginPersistedstate)
@@ -16,4 +19,9 @@ for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
   app.component(key, component)
 }
 
+// element-plus语言设置
+app.use(ElementPlus, {
+  locale: zhCn,
+})
+
 app.use(router).use(pinia).mount('#app')

+ 24 - 0
src/router/index.js

@@ -19,6 +19,8 @@ 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 AssetsCalculateWorkbench from '@/views/assets/workbench/calculate/index.vue'
+import AssetsCalculateBaseInfo from '@/views/assets/workbench/calculate/baseInfo.vue'
 
 const routes = [
   {
@@ -46,6 +48,10 @@ const routes = [
     redirect: '/home/assets/template/mange'
   },
   {
+    path: '/home/assets/workbench/calculate',
+    redirect: '/home/assets/folder'
+  },
+  {
     path: '/home',
     component: Layout,
     name: 'home',
@@ -193,6 +199,24 @@ const routes = [
               }
             ]
           },
+          {
+            path: 'workbench/calculate',
+            component: AssetsCalculateWorkbench,
+            name: 'assetsCalculateWorkbench',
+            meta: {
+              title: '文件夹'
+            },
+            children: [
+              {
+                path: 'baseInfo',
+                component: AssetsCalculateBaseInfo,
+                name: 'assetsCalculateBaseInfo',
+                meta: {
+                  title: '测算表基本信息'
+                },
+              },
+            ]
+          }
         ],
       }
     ],

+ 112 - 96
src/views/assets/folder/child.vue

@@ -1,93 +1,91 @@
 <template>
-      <div class="contrl">
-        <div style="width: 95%;">
-          <div class="title-div">
-            <p>{{folderName}}</p>
-          </div>
-          <div class="createNew-div">
-            <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;" />
-          </div>
-          <div class="createNew-div">
-            <img src="../../../assets/icons/excel.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;" />
+  <div class="contrl">
+    <div style="width: 95%;">
+      <div class="title-div">
+        <p>{{ projectInfo.folderName }}</p>
+      </div>
+      <div class="createNew-div">
+        <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;" />
+      </div>
+      <div class="createNew-div" @click="createNewCalculate()">
+        <img src="../../../assets/icons/excel.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;" />
+      </div>
+    </div>
+    <div class="example-list report-div">
+      <el-card 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">资产债权类报告</span>
+          <span> 一 </span>
+          <span class="report-text-name">遂宁市船山区五彩缤纷路132号134号 136号等船山区慈音路2号南瑞弗莱明戈 10栋2层1商业债权分析报告
+          </span>
+          <div style="margin-top: 5px;">
+            <span>
+              <el-icon>
+                <Avatar />
+              </el-icon>
+              恒丰银行成都分行</span>
+            <span>
+              <el-tag style="margin-left: 5px;">
+                债权
+              </el-tag>
+              <el-tag style="margin-left: 5px;" type="danger">
+                评估
+              </el-tag>
+            </span>
+            <span style="float: right; color:darkgrey">
+              2024-10-16 12:10:09
+            </span>
           </div>
         </div>
-          <div class="example-list report-div">
-            <el-card 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">资产债权类报告</span>
-                <span> 一 </span>
-                <span
-                  class="report-text-name">遂宁市船山区五彩缤纷路132号134号 136号等船山区慈音路2号南瑞弗莱明戈 10栋2层1商业债权分析报告
-                </span>
-                <div style="margin-top: 5px;">
-                  <span>
-                    <el-icon>
-                      <Avatar />
-                    </el-icon>
-                    恒丰银行成都分行</span>
-                  <span>
-                    <el-tag style="margin-left: 5px;">
-                      债权
-                    </el-tag>
-                    <el-tag style="margin-left: 5px;" type="danger">
-                      评估
-                    </el-tag>
-                  </span>
-                  <span style="float: right; color:darkgrey">
-                    2024-10-16 12:10:09
-                  </span>
-                </div>
-              </div>
-              <div class="report-button">
-                <el-icon>
-                  <Download />
-                </el-icon>
-              </div>
-            </el-card>
-            <el-card class="report-item no-border" shadow="never">
-              <div class="report-icon">
-                <img src="../../../assets/icons/excel.png" style="width: 52px; height: 52px;"/>
-              </div>
-              <div class="report-text">
-                <span class="report-text-type">资产债权类测算表</span>
-                <span> 一 </span>
-                <span
-                  class="report-text-name">遂宁市船山区五彩缤纷路132号134号 136号等船山区慈音路2号南瑞弗莱明戈 10栋2层1商业债权评估明细表
-                </span>
-                <div style="margin-top: 5px;">
-                  <span>
-                    <el-icon>
-                      <Avatar />
-                    </el-icon>
-                    恒丰银行成都分行</span>
-                  <span>
-                    <el-tag style="margin-left: 5px;">
-                      债权
-                    </el-tag>
-                    <el-tag style="margin-left: 5px;" type="danger">
-                      评估
-                    </el-tag>
-                  </span>
-                  <span style="float: right; color:darkgrey">
-                    2024-10-16 12:10:09
-                  </span>
-                </div>
-              </div>
-              <div class="report-button">
-                <el-icon>
-                  <Download />
-                </el-icon>
-              </div>
-            </el-card>
+        <div class="report-button">
+          <el-icon>
+            <Download />
+          </el-icon>
+        </div>
+      </el-card>
+      <el-card class="report-item no-border" shadow="never">
+        <div class="report-icon">
+          <img src="../../../assets/icons/excel.png" style="width: 52px; height: 52px;" />
+        </div>
+        <div class="report-text">
+          <span class="report-text-type">资产债权类测算表</span>
+          <span> 一 </span>
+          <span class="report-text-name">遂宁市船山区五彩缤纷路132号134号 136号等船山区慈音路2号南瑞弗莱明戈 10栋2层1商业债权评估明细表
+          </span>
+          <div style="margin-top: 5px;">
+            <span>
+              <el-icon>
+                <Avatar />
+              </el-icon>
+              恒丰银行成都分行</span>
+            <span>
+              <el-tag style="margin-left: 5px;">
+                债权
+              </el-tag>
+              <el-tag style="margin-left: 5px;" type="danger">
+                评估
+              </el-tag>
+            </span>
+            <span style="float: right; color:darkgrey">
+              2024-10-16 12:10:09
+            </span>
           </div>
-      </div>
+        </div>
+        <div class="report-button">
+          <el-icon>
+            <Download />
+          </el-icon>
+        </div>
+      </el-card>
+    </div>
+  </div>
 </template>
 
 <script>
@@ -96,21 +94,38 @@ export default {
   data() {
     return {
       msg: 0,
-      folderName:null
+      projectInfo: {},
+      folderName: null
     }
   },
-
-  created(){
-      this.folderName = this.$route.query.folderName;
+  // watch: {
+  //   '$route': {
+  //     handler(newRoute) {
+  //       if (newRoute.name === 'assetsFolderChild') {
+  //         if (Object.keys(newRoute.query).length > 0) {
+  //           this.projectInfo = this.$route.query;
+  //         } else {
+  //           if (this.projectInfo) {
+  //             this.$router.push({ path: '/home/assets/folder', query: { 'projectId': this.projectInfo.projectId, 'folderName': this.projectInfo.folderName } })
+  //           }
+  //         }
+  //       }
+  //     },
+  //     immediate: true
+  //   }
+  // },
+  created() {
+    this.projectInfo = this.$route.query;
   },
   methods: {
-    createNew() {
-      this.$router.push('/home/assetsWorkbench/consignor')
+    createNewCalculate() {
+      // this.$router.push('/home/assets/workbench/calculate/baseInfo')
+      this.$router.push({ path: '/home/assets/workbench/calculate/baseInfo', query: { 'projectId': this.projectInfo.projectId } })
     },
-    nextFolder(){
-      
+    nextFolder() {
+
     }
-  }
+  },
 }
 
 </script>
@@ -191,11 +206,12 @@ export default {
   margin-top: 20%;
   color: var(--vt-c-text-light-2);
 }
+
 .no-border {
   border: none;
 }
+
 .no-border:hover {
   cursor: pointer;
 }
-
 </style>

+ 8 - 6
src/views/assets/folder/index.vue

@@ -18,13 +18,13 @@
 </template>
 
 <script>
-  import Breadcrumb from '../../../components/Breadcrumb/index.vue'
-  import Folder from './child.vue'
+import Breadcrumb from '../../../components/Breadcrumb/index.vue'
+import Folder from './child.vue'
 export default {
   name: 'assetsHome',
-  components:{
-      Breadcrumb,
-      Folder
+  components: {
+    Breadcrumb,
+    Folder
   },
   data() {
     return {
@@ -37,7 +37,7 @@ export default {
     createNew() {
       this.$router.push('/home/houseWorkbench/consignor')
     },
-    nextFolder(){
+    nextFolder() {
       this.$router.push('/home/assets/folder')
     }
   }
@@ -122,9 +122,11 @@ export default {
   margin-top: 20%;
   color: var(--vt-c-text-light-2);
 }
+
 .no-border {
   border: none;
 }
+
 .no-border:hover {
   cursor: pointer;
 }

+ 3 - 3
src/views/assets/folder/parent.vue

@@ -29,7 +29,7 @@
       <el-tab-pane label="全部项目" name="all">
         <div class="example-list project-list">
           <el-card class="report-item no-border" shadow="never" v-for="item in pageData">
-            <div @click="nextFolder(item.projectName)">
+            <div @click="nextFolder(item.id,item.projectName)">
               <div class="report-icon">
                 <img src="../../../assets/icons/folder.png" style="width: 52px; height: 52px;" />
               </div>
@@ -187,8 +187,8 @@ export default {
       this.$router.push('/home/assetsWorkbench/consignor')
     },
     // 跳转文件夹内页面
-    nextFolder(folderName) {
-      this.$router.push({ path: '/home/assets/folder', query: { 'folderName': folderName } })
+    nextFolder(projectId,folderName) {
+      this.$router.push({ path: '/home/assets/folder', query: { 'projectId': projectId,'folderName': folderName } })
     },
     // 打开创建项目dialog
     openProjectDialog() {

+ 9 - 11
src/views/assets/template/index.vue

@@ -1,21 +1,19 @@
 <template>
-      <section class="bench-main">
-        <router-view v-slot="{ Component }">
-          <transition>
-            <keep-alive>
-              <component :is="Component" />
-            </keep-alive>
-          </transition>
-        </router-view>
-      </section>
+  <section class="bench-main">
+    <router-view v-slot="{ Component }">
+      <transition>
+        <component :is="Component" />
+      </transition>
+    </router-view>
+  </section>
 </template>
 
 <script>
-import Breadcrumb from '../../../components/Breadcrumb/index.vue'
+
 export default {
   name: 'assetsTemplate',
   components: {
-    Breadcrumb
+
   },
   data() {
     return {

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

@@ -0,0 +1,94 @@
+<template>
+    <div 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%;" />
+                    </el-form-item>
+                </el-col>
+            </el-row>
+            <el-button plain type="danger" style="float: right;" @click="createCalculate()">
+                下一步
+                <el-icon style="vertical-align: -20%;">
+                    <ArrowRightBold />
+                </el-icon>
+            </el-button>
+        </el-form>
+    </div>
+</template>
+
+<script>
+import { createAssetsCalculate } from '@/api/assetsCalculate';
+export default {
+
+    components: {
+
+    },
+    created() {
+
+    },
+    data() {
+        return {
+            baseInfo: {
+
+            },
+            baseInfoRules: {
+                calculateName: [
+                    { required: true, message: '请输入测算表名', trigger: 'blur' }
+                ],
+                valuationBasisDate: [
+                    { required: true, message: '请选择评估基准日', trigger: 'blur' }
+                ]
+            }
+        }
+    },
+    methods: {
+        // 创建测算表,填写测算表基础信息
+        createCalculate() {
+            this.$refs.baseInfo.validate((valid) => {
+                if (valid) {
+                    createAssetsCalculate(this.baseInfo).then(res => {
+                        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>

+ 48 - 0
src/views/assets/workbench/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/calculate/components/index.js

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

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

@@ -0,0 +1,70 @@
+<template>
+  <div class="contrl-bar">
+    <el-timeline style="max-width: 600px">
+      <el-timeline-item :timestamp="baseInfo ? '已完成' : '未完成'" placement="top" :color="baseInfo ? '#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-item :timestamp="dataImport ? '已完成' : '未完成'" placement="top" :color="dataImport ? '#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-item :timestamp="generate ? '已完成' : '未完成'" placement="top" :color="generate ? '#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>
+export default {
+
+  props: {
+    baseInfo: {
+      type: Boolean,
+      required: false
+    },
+    dataImport: {
+      type: Boolean,
+      required: false
+    },
+    generate: {
+      type: Boolean,
+      required: false
+    },
+
+  },
+
+  data() {
+    return {
+
+    }
+  },
+  methods: {
+
+  }
+}
+
+</script>
+
+<style scoped>
+.contrl-bar {
+  height: 600px;
+  width: 20%;
+  position: fixed;
+  top: 160px;
+  right: 150px;
+
+}
+
+.timeline-card:hover {
+  cursor: pointer;
+}
+</style>

+ 39 - 0
src/views/assets/workbench/calculate/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: 'assetsCalculateWorkBench',
+  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>
+  
+