96 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <div class="branch-card">
 | |
|     <p
 | |
|       v-if="content.header || content.title"
 | |
|       class="branch-title"
 | |
|     >
 | |
|       {{ content.header || content.title }}
 | |
|     </p>
 | |
|     <div
 | |
|       v-for="(item, index) in content.items"
 | |
|       :key="index"
 | |
|       class="branch-item"
 | |
|       :style="{ borderWidth: content.header ? '1px 0 0px 0' : '0px 0 1px 0' }"
 | |
|       @click="handleContentListItemClick(item)"
 | |
|     >
 | |
|       {{ item.content }}
 | |
|       <Icon :src="iconRight" />
 | |
|     </div>
 | |
|   </div>
 | |
| </template>
 | |
| 
 | |
| <script lang="ts">
 | |
| import vue from '../adapter-vue';
 | |
| import { customerServicePayloadType } from '../interface';
 | |
| import iconRight from '../assets/iconRight.svg';
 | |
| import Icon from './customer-icon.vue';
 | |
| 
 | |
| const { computed } = vue;
 | |
| 
 | |
| interface Props {
 | |
|   payload: customerServicePayloadType;
 | |
| }
 | |
| 
 | |
| interface branchItem {
 | |
|   content: string;
 | |
|   desc: string;
 | |
| }
 | |
| 
 | |
| export default {
 | |
|   components: {
 | |
|     Icon,
 | |
|   },
 | |
|   props: {
 | |
|     payload: {
 | |
|       type: Object as () => customerServicePayloadType,
 | |
|       default: () => ({}),
 | |
|     },
 | |
|   },
 | |
|   emits: ['sendMessage'],
 | |
|   setup(props: Props, { emit }) {
 | |
|     const content = computed(() => {
 | |
|       return (
 | |
|         props?.payload?.content || {
 | |
|           header: undefined,
 | |
|           items: [],
 | |
|         }
 | |
|       );
 | |
|     });
 | |
| 
 | |
|     const handleContentListItemClick = (branch: branchItem) => {
 | |
|       emit('sendMessage', { text: branch.content });
 | |
|     };
 | |
| 
 | |
|     return {
 | |
|       content,
 | |
|       handleContentListItemClick,
 | |
|       iconRight,
 | |
|     };
 | |
|   },
 | |
| };
 | |
| </script>
 | |
| 
 | |
| <style lang="scss">
 | |
| .branch-card {
 | |
|   min-width: 250px;
 | |
|   max-width: 350px;
 | |
| 
 | |
|   .branch-title {
 | |
|     margin-bottom: 8px;
 | |
|     border-radius: 0 10px 10px;
 | |
|   }
 | |
| 
 | |
|   .branch-item {
 | |
|     display: flex;
 | |
|     justify-content: space-between;
 | |
|     border-style: dotted;
 | |
|     border-color: #d8d8d8;
 | |
|     font-weight: 400;
 | |
|     color: rgba(54, 141, 255, 1);
 | |
|     padding-top: 5px;
 | |
|     cursor: pointer;
 | |
|     padding-bottom: 5px;
 | |
|   }
 | |
| }
 | |
| </style>
 |