| 
					
				 | 
			
			
				@@ -0,0 +1,220 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-dialog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :show-close="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :close-on-click-modal="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :visible.sync="isShow" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :title="`${curObj.name}的报备详情`" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :fullscreen="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      width="800px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      custom-class="xl-dialog" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      center 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div class="scoped-info"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="si-row"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="si-col">客户:{{dtlObj.name}}-{{sexObj[dtlObj.sex]}}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="si-col">手机号:{{dtlObj.phone}}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="si-col">创建日期:{{dtlObj.create_at}}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="si-row"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="si-col">报备楼盘:{{dtlObj.estate_name}}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="si-col">客户状态:{{reportStateStr}}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="si-col">报备进度:{{reportStepStr}}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="si-row"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="si-col">报备日期:{{dtlObj.report_at}}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="si-col">保护期止:{{dtlObj.lock_at}}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="si-col">到访日期:{{dtlObj.visit_at}}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div class="scoped-table"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <table-list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :list-loading="listLoading" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :data="reportFlow" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :columns="listConfig" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :current-page="currentPage" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :page-size="-1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </table-list> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div class="xl-form" style="padding-top: 20px;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="xl-form-footer"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class="scoped-btn-more" v-if="curRoles !== '6'"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-button type="small" icon="el-icon-plus" class="xl-form-btn bgc2" @click="openPopup">更新报备进度</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-button type="small" icon="el-icon-warning" class="xl-form-btn bgc4" @click="openStatePopup">修改状态</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button class="xl-form-btn t2" @click="close">关闭弹窗</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </el-dialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <record-edit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :isShow="isDtlShow" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :pObj="dtlObj" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :curObj="subObj" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @close="closePopup" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <state-edit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :isShow="isStateShow" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :pObj="dtlObj" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :curObj="subObj" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @close="closeStatePopup" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import RecordEdit from './RecordEdit' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import StateEdit from './StateEdit' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import baseTable from '_m/baseTable.js' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { arrToObj } from '@/utils' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  components: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RecordEdit, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    StateEdit, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  mixins: [...mixins, baseTable], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  props: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    isShow: Boolean, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    curObj: Object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  inject: ['parentData'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      apiStr: 'cust.admreportdetail', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      noCreated: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      searchForm: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      aList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      subObj: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      isDtlShow: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      reportFlow: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      dtlObj: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      isStateShow: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      sexObj: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      curRoles: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  mounted() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const uObj = JSON.parse(this.$storage('fp_user')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.curRoles = uObj.roles 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.sexObj = arrToObj(this.$dictData.sex) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.listConfig = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      rows: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { label: '客户状态', prop: 'report_state', type: 'tag', tags: arrToObj(this.$dictData.report_state	), tagTypeObj: {'1': 'success', '2': 'warning', '3': 'danger'}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { label: '报备进度', prop: 'report_step', type: 'flag', flags: arrToObj(this.$dictData.report_step	) }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { label: '更新人', prop: 'operator_nickname' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { label: '更新时间', prop: 'create_at' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { label: '备注', prop: 'describe', fullShow: true, minWidth: 200, align: 'left' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // { label: '操作', width: 120, type: 'handle2', operations: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     { label: '编辑', func: this.openPopup, btnType: 'primary' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     { label: '删除', func: this.delHandle, btnType: 'danger' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  computed: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tableData2 () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let arr = [...this.tableData] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      arr.map(item => {}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return arr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    reportStepStr () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return arrToObj(this.$dictData.report_step)[this.dtlObj.report_step] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    reportStateStr () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return arrToObj(this.$dictData.report_state)[this.dtlObj.report_state] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  watch: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    isShow: function(val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.getData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getData () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$api.cust.admreportdetail({id: this.curObj.id}).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.dtlObj = res || {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.reportFlow = res.report_flow || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    delHandle(row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$msg(`您确定要删除该跟进记录吗?`, 'confirm', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$api.user.admcustomerrecorddel({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          id: row.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }).then(data => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.$msgs(`已删除!`) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.getData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, null, true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    close(str) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$emit('close') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    openPopup(row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (row && row.id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.subObj = row 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.subObj = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.isDtlShow = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    closePopup(obj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.isDtlShow = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (obj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.getData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    openStatePopup(row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (row && row.id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.subObj = row 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.subObj = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.isStateShow = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    closeStatePopup(obj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.isStateShow = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (obj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.getData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style lang="scss" scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.scoped-info { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  border-left: 1px solid #dcdcdc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  border-top: 1px solid #dcdcdc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  margin-bottom: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .si-row { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    border-bottom: 1px solid #dcdcdc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .si-col { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    width: 33.33%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    box-sizing: border-box; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    padding: 10px 20px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    border-right: 1px solid #dcdcdc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.scoped-table { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  max-height: 300px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  overflow-y: auto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  box-shadow: 0 0 2px #ccc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // border-top: 1px solid #dcdcdc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // border-bottom: 1px solid #dcdcdc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ::v-deep .xl-pagination { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.scoped-btn-more { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  left: 25px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |