Browse Source

合并弹窗

Xiao_123 2 weeks ago
parent
commit
aa3239e1f8

+ 87 - 0
src/views/menduner/system/talentMap/store/components/merge.vue

@@ -0,0 +1,87 @@
+<template>
+	<Dialog title="人才对比" v-model="dialogVisible" class="!w-60%">
+		<div class="color-orange-400">
+			提示:查询到当前导入的人才姓名与数据库中的记录重复,请选择处理方式
+			<br />
+			1、在下方数据库中查询出的姓名重复记录选中择一条进行合并
+			<br />
+			2、作为新记录提交
+		</div>
+		<div class="mt-50px font-700 text-17px">姓名重复记录</div>
+		<el-table :data="list" :stripe="true" class="my-10px">
+      <el-table-column label="头像" align="center" prop="avatar" width="70px" fixed="left">
+        <template #default="scope">
+          <el-image
+						class="h-60px w-60px"
+						:src="scope.row.avatar"
+						lazy
+						preview-teleported
+						:preview-src-list="[scope.row.avatar]"
+						fit="contain"
+					/>
+        </template>
+      </el-table-column>
+      <el-table-column label="姓名" align="center" prop="name" fixed="left" />
+      <el-table-column label="联系电话" align="center" prop="phone" />
+      <el-table-column label="邮箱" align="center" prop="email" />
+      <el-table-column label="性别" align="center" prop="sexStr" />
+      <el-table-column label="操作" align="center" fixed="right" min-width="110">
+        <template #default="scope">
+          <el-button link type="success" @click="handleMerge(scope.row.id)">合并</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <template #footer>
+      <el-button @click="submitForm" type="primary" :disabled="newRecordLoading">新记录提交</el-button>
+      <el-button @click="dialogVisible = false">取 消</el-button>
+    </template>
+  </Dialog>
+</template>
+
+<script setup>
+defineOptions({ name: 'TalentMapStoreMerge' })
+
+const { t } = useI18n() // 国际化
+const message = useMessage() // 消息弹窗
+
+const mergeLoading = ref(false)
+const newRecordLoading = ref(false)
+const dialogVisible = ref(false)
+const list = ref([
+	{
+		id: 1,
+		name: '张三',
+		phone: '13800138000',
+		email: 'zhangsan@example.com',
+		sexStr: '男',
+		avatar: 'https://minio.menduner.com/dev/person/1/img/933de4dc9eb28e2bdf79a1da518a8e1a0e14bf4b78358ea9452fb8e8fdd2f7f6.jpeg'
+	},
+	{
+		id: 2,
+		name: '张三',
+		phone: '13800138001',
+		email: 'lisi@example.com',
+		sexStr: '女',
+		avatar: 'https://minio.menduner.com/dev/person/1/img/933de4dc9eb28e2bdf79a1da518a8e1a0e14bf4b78358ea9452fb8e8fdd2f7f6.jpeg'
+	}
+])
+
+const open = async (data) => {
+  dialogVisible.value = true
+}
+defineExpose({ open }) // 提供 open 方法,用于打开弹窗
+
+// 人才合并
+const handleMerge = async (id) => {}
+
+// 新记录提交
+const submitForm = async () => {
+	// newRecordLoading.value = true
+
+	// try {
+	// 	message.success('新记录提交成功')
+	// } finally {
+	// 	newRecordLoading.value = false
+	// }
+}
+</script>

+ 5 - 0
src/views/menduner/system/talentMap/store/resume/index.vue

@@ -41,6 +41,7 @@
         <el-button type="primary" plain @click="handleAdd">
           <Icon icon="ep:plus" class="mr-5px" /> 新增人才
         </el-button>
+        <el-button type="success" plain @click="mergeFormRef.open()">人才合并</el-button>
       </el-form-item>
     </el-form>
   </ContentWrap>
@@ -88,6 +89,8 @@
       @pagination="getList"
     />
   </ContentWrap>
+
+  <MergeForm ref="mergeFormRef" />
 </template>
 
 <script setup>
@@ -95,12 +98,14 @@ import { TalentMap } from '@/api/menduner/system/talentMap'
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { getDict } from '@/hooks/web/useDictionaries'
 import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
+import MergeForm from '../components/merge.vue'
 
 /** 人才地图 列表 */
 defineOptions({ name: 'TalentMap' })
 
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
+const mergeFormRef = ref()
 
 const loading = ref(false) // 列表的加载中
 const list = ref([]) // 列表的数据