فهرست منبع

假设限制条件

wucl 8 ماه پیش
والد
کامیت
a574c60ae0

+ 6 - 1
src/api/houseGuaranty.js

@@ -16,7 +16,12 @@ const houseGuaranty = {
         return request.get(`/house/guaranty/${params}`)
     },
     getProcesses(params){
-        return request.get(`/house/guaranty/process/${params}`)
+        if (params){
+            return request.get(`/house/guaranty/process?id=${params}`)
+        }else {
+            return request.get(`/house/guaranty/process`)
+        }
+        
     }
 
 }

+ 14 - 0
src/api/tmplHouseParagraph.js

@@ -0,0 +1,14 @@
+import request from '@/utils/request'
+
+const tmplHouseParagraph = {
+
+    getParagraphByMoldAndChapter(params) {
+        return request.post(`/tmplHouseParagraph/get`,params)
+    },
+  
+
+}
+
+export default tmplHouseParagraph
+
+

+ 11 - 28
src/components/SheetView/index.vue

@@ -1,15 +1,15 @@
 <template>
     <div>
       <input type="file" @change="readExcel" id="upload"/>
-      <div v-if="excelData" style="height: 600px; text-align: center;">
+      <div v-if="viewExcelData" style="height: 600px; text-align: center;">
         <el-button type="primary" class="fsbtn" @click="fullScreenDialog = true">全屏预览</el-button>
         <div style="float: left; height: 600px; margin-top: -60px;">
           <h3>估价结果一览表(预览)</h3>
-          <div v-html="excelData"></div>
+          <div v-html="viewExcelData"></div>
         </div>
       </div>
       <el-dialog v-model="fullScreenDialog"  title="估价结果一览表(预览)" width="80%" center align-center>
-        <div v-html="excelData"></div>
+        <div v-html="viewExcelData"></div>
       </el-dialog>
     </div>
   </template>
@@ -17,19 +17,23 @@
   <script>
   import * as XLSX from 'xlsx';
   import {updateHouseGuarntyTargetTable} from '@/api/fileUpload'
-   
+  const viewTableCss = '<style scoped>table {border-collapse: collapse;font-size: 15px;width: 100%;}table,table tr th,table tr td {border: 1px solid #ddd;text-align: center;padding: 5px;}table tbody tr:nth-child(odd) {background-color: #EFF3F5;}table tbody tr:nth-child(even) {background-color: #FFFFFF;}</style>';
   export default {
     data() {
       return {
         fullScreenDialog:false,
-        excelData:null
+        excelData:null,
+        viewExcelData:null,
       };
     },
 
     watch:{
       targetsHtml:{
         handler(nv){
-          this.excelData = nv;
+          if (nv){
+            this.viewExcelData = nv+viewTableCss;
+          }
+          
         },
         immediate: true
       }
@@ -63,6 +67,7 @@
             const wsname = wb.SheetNames[0];
             const ws = wb.Sheets[wsname];
             this.excelData = XLSX.utils.sheet_to_html(ws);
+            this.viewExcelData = this.excelData  + viewTableCss;
             this.sendExcelDate();
             setTimeout(()=>{
               this.removeActAddress();
@@ -102,28 +107,6 @@
   </script>
 
   <style scoped>
-    table {
-            border-collapse: collapse;
-            font-size: 15px;
-            width: 100%;
-        }
- 
-        table,table tr th,table tr td {
-            border: 1px solid #ddd;
-            text-align: center;
-            padding: 5px;
-        }
- 
-        /* 奇数行的颜色 */
-        table tbody tr:nth-child(odd) {
-            background-color: #EFF3F5;
-        }
- 
-        /* 偶数行的颜色 */
-        table tbody tr:nth-child(even) {
-            background-color: #FFFFFF;
-        }
-
         .fsbtn{
           position:relative;
           top: -30px;

+ 5 - 6
src/router/index.js

@@ -3,12 +3,11 @@ import { createWebHistory , createRouter } from 'vue-router'
 import Layout from '../layout/index.vue'
 import HomeView from '../views/home/index.vue'
 import PlanningHome from '../views/planning/home.vue'
-import PersonalHome from '../views/personal/home.vue'
 import HouseWorkbench from '../views/house/workbench/index.vue'
 import Consignor from '../views/house/workbench/consignor.vue'
 import Certificate from '../views/house/workbench/certificate.vue'
 import BaseInfo from '../views/house/workbench/baseInfo.vue'
-import Assumption from '../views/house/workbench/assumption.vue'
+import Conditions from '../views/house/workbench/conditions.vue'
 import EntityInfo from '../views/house/workbench/entityInfo.vue'
 import FolderChild from '../views/house/folder/child.vue'
 import FolderParent from '../views/house/folder/parent.vue'
@@ -134,11 +133,11 @@ const routes = [
             },
           },
           {
-            path: 'assumption',
-            component: Assumption,
-            name: 'assumption',
+            path: 'conditions',
+            component: Conditions,
+            name: 'conditions',
             meta: {
-              title: '假设条件'
+              title: '假设限制条件及使用说明'
             },
           },
           {

+ 0 - 246
src/views/house/workbench/assumption.vue

@@ -1,246 +0,0 @@
-<template>
-    <div class="contrl">
-        <el-form :model="assumption" label-width="auto" style="margin-top: 10px;">
-            <el-divider content-position="left"><span style="color:#ff6154;">一般假设</span></el-divider>
-            <el-row :gutter="20">
-                <el-col :span="12">
-                    <el-form-item label="是否核对权属原件:" class="form-item" >
-                        <el-radio-group v-model="assumption.ewe">
-                            <el-radio :value="true">是</el-radio>
-                            <el-radio :value="false" >否</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="是否建筑物部分:" class="form-item" >
-                        <el-select v-model="assumption.valueTimeMethod" clearable placeholder="请选择">
-                            <el-option   label="是" value="是" />
-                            <el-option   label="否" value="否" />
-                            <el-option   label="酒店部分" value="酒店部分" />
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-            <el-divider content-position="left"><span style="color:#ff6154;">未定事项假设</span></el-divider>
-            <el-row :gutter="20">
-                <el-col :span="12">
-                    <el-form-item label="登记竣工年代:" class="form-item" >
-                        <el-radio-group v-model="assumption.ewe">
-                            <el-radio :value="true">是</el-radio>
-                            <el-radio :value="false" >否</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="其它未定事项假设:" class="form-item" >
-                        <el-radio-group v-model="assumption.ewe">
-                            <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="20">
-                <el-col :span="12">
-                    <el-form-item label="土地、房屋用途一致性:" class="form-item" >
-                        <el-radio-group v-model="assumption.ewe">
-                            <el-radio :value="true">是</el-radio>
-                            <el-radio :value="false" >否</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="土地分户手续:" class="form-item" >
-                        <el-radio-group v-model="assumption.ewe">
-                            <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="20">
-                <el-col :span="12">
-                    <el-form-item label="分层面积处理(有图):" class="form-item" >
-                        <el-radio-group v-model="assumption.ewe">
-                            <el-radio :value="true">是</el-radio>
-                            <el-radio :value="false" >否</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="分层面积处理(无图):" class="form-item" >
-                        <el-radio-group v-model="assumption.ewe">
-                            <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="20">
-                <el-col :span="12">
-                    <el-form-item label="土地无分户产权时分摊面积:" class="form-item" >
-                        <el-input v-model="assumption.valueTimeMethod" clearable>
-                            <template #append>
-                                平方
-                            </template>
-                        </el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="总建筑面积:" class="form-item" >
-                        <el-input v-model="assumption.valueTimeMethod" clearable>
-                            <template #append>
-                                平方
-                            </template>
-                        </el-input>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-            <el-row :gutter="20">
-                <el-col :span="12">
-                    <el-form-item label="一层面积:" class="form-item" >
-                        <el-input v-model="assumption.valueTimeMethod" clearable>
-                            <template #append>
-                                平方
-                            </template>
-                        </el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="二层面积:" class="form-item" >
-                        <el-input v-model="assumption.valueTimeMethod" clearable>
-                            <template #append>
-                                平方
-                            </template>
-                        </el-input>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-              <el-row :gutter="20">
-                <el-col :span="12">
-                    <el-form-item label="三层面积:" class="form-item" >
-                        <el-input v-model="assumption.valueTimeMethod" clearable>
-                            <template #append>
-                                平方
-                            </template>
-                        </el-input>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-            <el-divider content-position="left"><span style="color:#ff6154;">不相一致假设</span></el-divider>
-            <el-row :gutter="20">
-                <el-col :span="12">
-                    <el-form-item label="查勘地址与登记地址一致:" class="form-item" >
-                        <el-radio-group v-model="assumption.ewe">
-                            <el-radio :value="true">是</el-radio>
-                            <el-radio :value="false" >否</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="价值时点与查勘之日相差天数:" class="form-item" >
-                        <el-input v-model="assumption.valueTimeMethod" clearable>
-                            <template #append>
-                                天
-                            </template>
-                        </el-input>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-            <el-row :gutter="20">
-                <el-col :span="12">
-                    <el-form-item label="开具地址证明:" class="form-item" >
-                        <el-radio-group v-model="assumption.ewe">
-                            <el-radio :value="true">是</el-radio>
-                            <el-radio :value="false" >否</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-            <el-divider content-position="left"><span style="color:#ff6154;">依据不足假设</span></el-divider>
-            <el-row :gutter="20">
-                <el-col :span="12">
-                    <el-form-item label="住宅获取土地信息:" class="form-item" >
-                        <el-radio-group v-model="assumption.ewe">
-                            <el-radio :value="true">是</el-radio>
-                            <el-radio :value="false" >否</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="收益法考虑建筑残值:" class="form-item" >
-                        <el-radio-group v-model="assumption.ewe">
-                            <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="20">
-                <el-col :span="12">
-                    <el-form-item label="成本法考虑建筑残值:" class="form-item" >
-                        <el-radio-group v-model="assumption.ewe">
-                            <el-radio :value="true">是</el-radio>
-                            <el-radio :value="false" >否</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-        </el-form>
-        <SwitchButton :nextPath="nextPath" :lastPath="lastPath"></SwitchButton>
-    </div>
-</template>
-
-
-<script>
-import  SwitchButton from '../../../components/SwichButton/index.vue'
-
-export default {
-
-    components:{
-        SwitchButton
-    },
-
-    data(){
-        return{
-            nextPath:'/home/houseWorkbench/entityInfo',
-            lastPath:'/home/houseWorkbench/baseInfo',
-            assumption:{
-
-            }
-        }
-    }
-}
-</script>
-
-<style scoped>
-.contrl {
-    font-size: 20px;
-    width: 70.9%;
-    border-right: 1.5px #dae1eb solid;
-    padding: 20px 20px 20px 0px;
-    float: left;
-
-}
-:deep(.el-input__wrapper.is-focus) {
-  --el-input-focus-border: #ff6154;
-  --el-input-focus-border-color:#ff6154;
-}
-
-:deep(.el-select__wrapper.is-focused){
-    box-shadow: #ff6154;
-    --el-select-input-focus-border-color:#ff6154;
-    --el-color-primary:#ff6154;
-}
-:deep(.el-radio__input.is-checked .el-radio__inner) {
-    background:#ff6154;
-    border-color:#ff6154;
-}
-:deep(.el-radio__inner:hover){
-    border-color:#ff6154;
-}
-:deep(.el-radio__input.is-checked+.el-radio__label){
-    color: #ff6154;
-}
-
-</style>

+ 7 - 10
src/views/house/workbench/components/timeline.vue

@@ -3,7 +3,7 @@
         <el-timeline style="max-width: 600px">
           <el-timeline-item :timestamp="p.state?'已完成':'未完成'" placement="top" :color="p.state?'#ff6154':'#dae1eb'"
             v-for="(p , index) in processes">
-            <el-card shadow="never"  @click="goto('consignor')" class="timeline-card report-item">
+            <el-card shadow="never"  @click="goto(p.router)" class="timeline-card report-item">
               <h4>{{ p.name }}</h4>
               <p v-if="p.state" >更新时间:{{ p.updateDate }}</p>
               <el-button v-if="p.state" @click="openPageoffice(p.docUrl)">{{ p.name }}.docx 预览</el-button>
@@ -37,7 +37,6 @@ export default {
 
 
   created(){
-    
     this.getProcesses();
   },
 
@@ -51,20 +50,18 @@ export default {
         this.$router.push(`/home/houseWorkbench/${path}`)
       },
       getProcesses(){
-        if (this.processParentId){
-          houseGuaranty.getProcesses(this.processParentId).then(res=>{
-          if (res.code === 200){
-              this.processes = res.data;
-            }
-          })
-        }
+        houseGuaranty.getProcesses(this.processParentId).then(res=>{
+        if (res.code === 200){
+            this.processes = res.data;
+          }
+        })
       },
       openPageoffice(fileUrl) {
             let paramJson={};
             paramJson.fileName="";
             paramJson.fileUrl=fileUrl;
             let paramString=JSON.stringify(paramJson);
-            POBrowser.openWindow('/pord/showDoc', 'width=1150px;height=900px;',paramString);
+            POBrowser.openWindow('/prod/showDoc', 'width=1150px;height=900px;',paramString);
         },
     }
  }

+ 140 - 0
src/views/house/workbench/conditions.vue

@@ -0,0 +1,140 @@
+<template>
+    <div class="contrl">
+        <div style="width: 95%;">
+            <div class="title-div">
+                <span>1.一般假设</span>
+            </div>
+        </div>
+        <div class="ordinaryAssumption">
+            <el-card v-for="(p ,index) in ordinaryAssumptionTmpls" shadow="never"  
+            :class="['report-item',p.soltMark?'solt-conflict':'']">
+                <div style="display: flex;">
+                    <p v-show="!p.isEdit">
+                    {{ (index+1) +'、'+ p.paragraph }}
+                    </p>
+                    <el-input style="height: 100%; width: 100%; font-size: 18px;" v-show="p.isEdit" type="textarea" :rows="3"
+                     v-model="p.paragraph" />
+                    <div style="float: right;">
+                        <div  class="operation" @click="removeParagraph(index)">
+                        <el-icon>
+                            <Delete />
+                        </el-icon>
+                        </div>
+                        <div  class="operation" @click="editParagraph(p)">
+                        <el-icon>
+                            <Edit />
+                        </el-icon>
+                        </div>
+                    </div>
+                   
+                </div>
+            </el-card>
+        </div>
+    </div>
+</template>
+
+
+<script>
+import tempHouseParagraph from '@/api/tmplHouseParagraph'
+export default {
+
+    components:{
+    },
+
+    created(){
+        this.getOrdinaryAssumption();
+    },
+
+    data(){
+        return{
+            nextPath:'/home/houseWorkbench/entityInfo',
+            lastPath:'/home/houseWorkbench/baseInfo',
+            ordinaryAssumptionTmpls:[],
+            isEdit:false
+           
+        }
+    },
+
+    methods:{
+        /**
+         * 获取一般假设模版
+         */
+        getOrdinaryAssumption(){
+            const param = new Object();
+            param.docMold = "GUARANTY";
+            param.chapter = "ORDINARY_ASSUMPTION";
+            tempHouseParagraph.getParagraphByMoldAndChapter(param).then(res => {
+                if (res.code === 200){
+                    this.ordinaryAssumptionTmpls = res.data;
+                }
+            })
+        },
+        removeParagraph(index){
+            this.ordinaryAssumptionTmpls.splice(index,1)
+        },
+        editParagraph(p){
+            p.isEdit = !p.isEdit 
+        }
+
+    }
+}
+</script>
+
+<style scoped>
+.contrl {
+    font-size: 20px;
+    width: 70.9%;
+    border-right: 1.5px #dae1eb solid;
+    padding: 0px 20px 20px 0px;
+    float: left;
+
+}
+.title-div {
+    height: 80px;
+    line-height: 80px;
+    width: 300px;
+    float: left;
+    font-size: 20px;
+    font-weight: 900;
+}
+
+.solt-conflict{
+    border-color: #ff6154;
+}
+.operation {
+  width: 30px;
+  height: 30px;
+  margin-top: 0px;
+  font-size: 20px;
+  text-align: center;
+  border: 1.5px solid #dae1eb ;
+  border-radius: 0.3em;
+  color: #dae1eb;
+}
+.operation:hover {
+  color: #ff6154;
+  border: 1.5px solid #ff6154;
+  cursor: pointer;
+}
+:deep(.el-input__wrapper.is-focus) {
+  --el-input-focus-border: #ff6154;
+  --el-input-focus-border-color:#ff6154;
+}
+
+:deep(.el-select__wrapper.is-focused){
+    box-shadow: #ff6154;
+    --el-select-input-focus-border-color:#ff6154;
+    --el-color-primary:#ff6154;
+}
+:deep(.el-radio__input.is-checked .el-radio__inner) {
+    background:#ff6154;
+    border-color:#ff6154;
+}
+:deep(.el-radio__inner:hover){
+    border-color:#ff6154;
+}
+:deep(.el-radio__input.is-checked+.el-radio__label){
+    color: #ff6154;
+}
+
+</style>

+ 6 - 3
src/views/house/workbench/consignor.vue

@@ -17,13 +17,17 @@
             <SheetView :uploadUrl="'/api/file/house/guaranty/target'" @getExcelDate="excelDate"
                 @getUploadReture="uploadReture" v-model:targetsHtml="process.targetsHtml"></SheetView>
         </div>
-        <SwitchButton :nextPath="nextPath" :nextDo="genarate"></SwitchButton>
+        <el-button style="float: right;" v-if="excelHtml" plain type="danger" @click="genarate()">
+                生成致委托人函
+                <el-icon style="vertical-align: -20%;">
+                    <ArrowRightBold />
+                </el-icon>
+            </el-button>
         <Steps :stepArray="stepArray" ref="steps" :stepsDialogVisible="stepDialog"></Steps>
     </div>
 </template>
 
 <script>
-import SwitchButton from '../../../components/SwichButton/index.vue'
 import SheetView from '../../../components/SheetView/index.vue'
 import houseGuaranty from '@/api/houseGuaranty';
 import { downloadCollect1 } from '@/api/fileUpload'
@@ -32,7 +36,6 @@ import Steps from '../../../components/Steps/index.vue'
 
 export default {
     components: {
-        SwitchButton,
         SheetView,
         Steps,
     },

+ 1 - 1
vite.config.js

@@ -37,7 +37,7 @@ export default defineConfig({
         },
     }
   },
-  base: './',
+  base: '/prod/',
   build: {
     chunkSizeWarningLimit: 1000,
     outDir: "dist",