|  | @@ -1,35 +1,30 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |    <Dialog title="人才标注" v-model="dialogVisible" class="!w-90%">
 | 
	
		
			
				|  |  | -		<el-row>
 | 
	
		
			
				|  |  | -			<el-col :span="8">
 | 
	
		
			
				|  |  | -				<div>
 | 
	
		
			
				|  |  | -					<p :class="{'cursor-pointer': previewUrl}" :style="{'color': previewUrl ? '#2d8cf0' : ''}">
 | 
	
		
			
				|  |  | -						名片
 | 
	
		
			
				|  |  | -						<Icon v-if="previewUrl" :size="20" icon="ep:zoom-out" />
 | 
	
		
			
				|  |  | -					</p>
 | 
	
		
			
				|  |  | -					<img v-if="previewUrl" width="100%" class="cursor-pointer" :src="previewUrl" />
 | 
	
		
			
				|  |  | +		<el-row :gutter="20">
 | 
	
		
			
				|  |  | +			<el-col :span="9">
 | 
	
		
			
				|  |  | +				<el-card>
 | 
	
		
			
				|  |  | +					<p :style="{'color': previewUrl ? '#2d8cf0' : ''}">名片</p>
 | 
	
		
			
				|  |  | +					<el-image v-if="previewUrl" width="100%" :preview-src-list="[previewUrl]" class="cursor-pointer" :src="previewUrl" />
 | 
	
		
			
				|  |  |  					<p class="mb-3" :class="{'mt-3': !previewUrl}">门墩儿新任命</p>
 | 
	
		
			
				|  |  |  					<p>门墩儿用户简历</p>
 | 
	
		
			
				|  |  | -				</div>
 | 
	
		
			
				|  |  | +				</el-card>
 | 
	
		
			
				|  |  |  			</el-col>
 | 
	
		
			
				|  |  | -			<el-col :span="16">
 | 
	
		
			
				|  |  | -				<div>
 | 
	
		
			
				|  |  | +			<el-col :span="15">
 | 
	
		
			
				|  |  | +				<el-card>
 | 
	
		
			
				|  |  |  					<div class="base-info">
 | 
	
		
			
				|  |  | -						<div class="mb-15px">
 | 
	
		
			
				|  |  | -							{{ talentItem.name_zh }}
 | 
	
		
			
				|  |  | -							<span v-if="talentItem.name_en">({{ talentItem.name_en }})</span>
 | 
	
		
			
				|  |  | -						</div>
 | 
	
		
			
				|  |  | -						<div class="flex align-center">
 | 
	
		
			
				|  |  | -							<div v-for="(val, index) in talentInfoKeys" :key="index" class="common-width info-item">
 | 
	
		
			
				|  |  | -								<p>{{ talentItem[val.key] }}</p>
 | 
	
		
			
				|  |  | -								<p>{{ talentItem[val.value] }}</p>
 | 
	
		
			
				|  |  | -							</div>
 | 
	
		
			
				|  |  | -						</div>
 | 
	
		
			
				|  |  | -						<div class="flex align-center my-24px">
 | 
	
		
			
				|  |  | -							<div class="common-width pr-12px">{{ talentItem.mobile }}</div>
 | 
	
		
			
				|  |  | -							<div class="flex-1">{{ talentItem.email }}</div>
 | 
	
		
			
				|  |  | -						</div>
 | 
	
		
			
				|  |  | -						<div>{{ talentItem.address_zh }}</div>
 | 
	
		
			
				|  |  | +						<el-descriptions :column="1" direction="vertical">
 | 
	
		
			
				|  |  | +							<el-descriptions-item :label="talentItem.name_en ? `${talentItem.name_zh}(${ talentItem.name_en })` : talentItem.name_zh" />
 | 
	
		
			
				|  |  | +						</el-descriptions>
 | 
	
		
			
				|  |  | +						<el-descriptions :column="3" direction="vertical">
 | 
	
		
			
				|  |  | +							<el-descriptions-item width="33.3%" :label="talentItem['title_zh']">{{ talentItem['title_en'] }}</el-descriptions-item>
 | 
	
		
			
				|  |  | +							<el-descriptions-item width="33.3%" :label="talentItem['hotel_zh']">{{ talentItem['hotel_en'] }}</el-descriptions-item>
 | 
	
		
			
				|  |  | +							<el-descriptions-item width="33.3%" :label="talentItem['brand_zh']">{{ talentItem['brand_en'] }}</el-descriptions-item>
 | 
	
		
			
				|  |  | +							<el-descriptions-item label="">{{ talentItem.mobile }}</el-descriptions-item>
 | 
	
		
			
				|  |  | +							<el-descriptions-item label="">{{ talentItem.email }}</el-descriptions-item>
 | 
	
		
			
				|  |  | +						</el-descriptions>
 | 
	
		
			
				|  |  | +						<el-descriptions :column="1" direction="vertical">
 | 
	
		
			
				|  |  | +							<el-descriptions-item label="">{{ talentItem.address_zh }}</el-descriptions-item>
 | 
	
		
			
				|  |  | +						</el-descriptions>
 | 
	
		
			
				|  |  |  					</div>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  					<div class="my-5">
 | 
	
	
		
			
				|  | @@ -61,11 +56,11 @@
 | 
	
		
			
				|  |  |  							</el-tag>
 | 
	
		
			
				|  |  |  						</div>
 | 
	
		
			
				|  |  |  					</div>
 | 
	
		
			
				|  |  | -				</div>
 | 
	
		
			
				|  |  | +				</el-card>
 | 
	
		
			
				|  |  |  			</el-col>
 | 
	
		
			
				|  |  |  		</el-row>
 | 
	
		
			
				|  |  |      <template #footer>
 | 
	
		
			
				|  |  | -      <el-button @click="submitForm" type="primary" :disabled="loading">确 定</el-button>
 | 
	
		
			
				|  |  | +      <el-button @click="submitForm" type="primary" :disabled="loading">更 新</el-button>
 | 
	
		
			
				|  |  |        <el-button @click="dialogVisible = false">取 消</el-button>
 | 
	
		
			
				|  |  |      </template>
 | 
	
		
			
				|  |  |    </Dialog>
 | 
	
	
		
			
				|  | @@ -79,14 +74,9 @@ const message = useMessage() // 消息弹窗
 | 
	
		
			
				|  |  |  const loading = ref(false)
 | 
	
		
			
				|  |  |  const dialogVisible = ref(false) // 弹窗的是否展示
 | 
	
		
			
				|  |  |  const talentItem = ref({})
 | 
	
		
			
				|  |  | -const previewUrl = ref<string>()
 | 
	
		
			
				|  |  | +const previewUrl = ref()
 | 
	
		
			
				|  |  |  const talentSelectedTags = ref([])
 | 
	
		
			
				|  |  |  const tagList = ref([])
 | 
	
		
			
				|  |  | -const talentInfoKeys = [
 | 
	
		
			
				|  |  | -	{ key: 'title_zh', value: 'title_en' },
 | 
	
		
			
				|  |  | -	{ key: 'hotel_zh', value: 'hotel_en' },
 | 
	
		
			
				|  |  | -	{ key: 'brand_zh', value: 'brand_en' },
 | 
	
		
			
				|  |  | -]
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // 获取人才标签
 | 
	
		
			
				|  |  |  const getTagList = async () => {
 | 
	
	
		
			
				|  | @@ -101,6 +91,7 @@ const getTagList = async () => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /** 打开弹窗 */
 | 
	
		
			
				|  |  |  const open = async (data: any) => {
 | 
	
		
			
				|  |  | +	previewUrl.value = null
 | 
	
		
			
				|  |  |    dialogVisible.value = true
 | 
	
		
			
				|  |  |  	talentItem.value = data
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -145,6 +136,7 @@ const submitForm = async () => {
 | 
	
		
			
				|  |  |    // 提交请求
 | 
	
		
			
				|  |  |    try {
 | 
	
		
			
				|  |  |      await talentLabelingApi.updateTalentTags(tags)
 | 
	
		
			
				|  |  | +		message.success('人才标签更新成功')
 | 
	
		
			
				|  |  |      dialogVisible.value = false
 | 
	
		
			
				|  |  |      // 发送操作成功的事件
 | 
	
		
			
				|  |  |      emit('success')
 | 
	
	
		
			
				|  | @@ -160,21 +152,12 @@ const submitForm = async () => {
 | 
	
		
			
				|  |  |  	border-radius: 6px;
 | 
	
		
			
				|  |  |  	padding: 15px;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -.common-width {
 | 
	
		
			
				|  |  | -	width: 33.3%;
 | 
	
		
			
				|  |  | -	max-width: 33.3%;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -.info-item {
 | 
	
		
			
				|  |  | -	padding-right: 12px;
 | 
	
		
			
				|  |  | -	&:nth-child(3n) {
 | 
	
		
			
				|  |  | -		padding-right: 0;
 | 
	
		
			
				|  |  | +:deep {
 | 
	
		
			
				|  |  | +	.el-descriptions__content {
 | 
	
		
			
				|  |  | +		color: #303133;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	p {
 | 
	
		
			
				|  |  | -		height: 24px;
 | 
	
		
			
				|  |  | +	.el-descriptions__body {
 | 
	
		
			
				|  |  | +		background-color: #f7f8fa;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -.active {
 | 
	
		
			
				|  |  | -	color: var(--v-primary-base);
 | 
	
		
			
				|  |  | -	cursor: pointer;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  |  </style>
 |