You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

183 lines
4.5 KiB

<template>
<slide-view
:listener-ids="listenerIDs"
:no-listener-ids="noListenerIDs"
:no-listener-class="noListenerClass"
:body-style="{padding: 0, height: '100%'}"
xs-empty-icon="nopermission"
xs-empty-text="暂无权限"
@side-close="hideView">
<flexbox
v-loading="loading"
direction="column"
align="stretch"
class="d-container">
<c-r-m-detail-head
:detail="detailData"
:id="id"
:crm-type="crmType"
@handle="detailHeadHandle"
@close="hideView"/>
<div class="tabs">
<el-tabs
v-model="tabCurrentName"
@tab-click="handleClick">
<el-tab-pane
v-for="(item, index) in tabnames"
:key="index"
:label="item.label"
:name="item.name"/>
</el-tabs>
</div>
<div
id="follow-log-content"
class="t-loading-content">
<keep-alive>
<component
:is="tabName"
:detail="detailData"
:id="id"
:crm-type="crmType"/>
</keep-alive>
</div>
</flexbox>
<c-r-m-create-view
v-if="isCreate"
:action="{type: 'update', id: id, batchId: detailData.batchId}"
:crm-type="crmType"
@save-success="editSaveSuccess"
@hiden-view="isCreate=false"/>
</slide-view>
</template>
<script>
import { crmDictsRead } from '@/api/dict/dict'
import SlideView from '@/components/SlideView'
import CRMDetailHead from '../components/CRMDetailHead'
import ClueFollow from './components/ClueFollow'
import DictSubtable from './components/DictSubtable' // 子表信息
import CRMBaseInfo from '../components/CRMBaseInfo' // 基本信息
import RelativeFiles from '../components/RelativeFiles' // 相关附件
import CRMCreateView from '../components/CRMCreateView' // 新建页面
import detail from '../mixins/detail'
export default {
/** 线索管理 的 线索详情 */
name: 'DictDetail',
components: {
SlideView,
CRMDetailHead,
ClueFollow,
CRMBaseInfo,
RelativeFiles,
CRMCreateView,
DictSubtable
},
mixins: [detail],
props: {
// 详情信息id
id: [String, Number],
// 监听的dom 进行隐藏详情
listenerIDs: {
type: Array,
default: () => {
return ['crm-main-container']
}
},
// 不监听
noListenerIDs: {
type: Array,
default: () => {
return []
}
},
noListenerClass: {
type: Array,
default: () => {
return ['el-table__body']
}
}
},
data() {
return {
loading: false, // 展示加载loading
crmType: 'dicts',
detailData: {}, // read 详情
// headDetails: [
// { title: '字典编码', value: '' },
// { title: '字典名称', value: '' },
// { title: '字典描述', value: '' },
// // { title: '是否可用', value: '' },
// ],
tabnames: [
{ label: '基本信息', name: 'basicinfo' },
// //{ label: '跟进记录', name: 'followlog' },
// //{ label: '附件', name: 'file' },
{ label: '子表信息', name: 'subtable' },
],
tabCurrentName: 'basicinfo',
isCreate: false // 编辑操作
}
},
computed: {
tabName() {
// if (this.tabCurrentName == 'followlog') {
// return 'clue-follow'
if (this.tabCurrentName == 'basicinfo') {
return 'c-r-m-base-info'
}
// else if (this.tabCurrentName == 'file') {
// return 'relative-files'
else if(this.tabCurrentName=='subtable'){
return 'dict-subtable'
}
return ''
}
},
created(){
},
mounted() {
},
methods: {
getDetial() {
this.loading = true
crmDictsRead(this.id)
.then(res => {
this.detailData=res;
// //this.headDetails[0].value = res.Code
// //this.headDetails[1].value = res.Name
// //this.headDetails[2].value = res.Description
// //this.headDetails[3].value = res.Enabled
this.loading = false
})
.catch(() => {
this.loading = false
})
},
//* * 点击关闭按钮隐藏视图 */
hideView() {
this.$emit('hide-view')
},
//* * tab标签点击 */
handleClick(tab, event) {},
editSaveSuccess() {
this.$emit('handle', { type: 'save-success' })
this.getDetial()
}
},
watch: {
id: {
handler(newVal) {
},
immediate: true
}
},
}
</script>
<style lang="scss" scoped>
@import '../styles/crmdetail.scss';
</style>