|
@@ -6,7 +6,46 @@
|
|
|
</div>
|
|
|
<p class="font-size-14 color-999">最多只能上传5份附件简历</p>
|
|
|
<div v-if="attachmentList.length" class="mt-5">
|
|
|
- <div
|
|
|
+ <table style="width: 100%;">
|
|
|
+ <tr>
|
|
|
+ <th>名称</th>
|
|
|
+ <th>文件类型</th>
|
|
|
+ <th>上传时间</th>
|
|
|
+ <th>操作</th>
|
|
|
+ </tr>
|
|
|
+ <tr
|
|
|
+ v-for="(k, i) in attachmentList" :key="i"
|
|
|
+ :class="['mx-n2', 'px-2']"
|
|
|
+ @click.self="checkboxClick(i, !k.choose)"
|
|
|
+ >
|
|
|
+ <td>
|
|
|
+ <div class="d-flex flex" style="max-width: 250px;">
|
|
|
+ <v-checkbox-btn
|
|
|
+ v-if="props.analysis"
|
|
|
+ v-model="k.choose"
|
|
|
+ :label="k.title"
|
|
|
+ color="primary"
|
|
|
+ class="pe-2"
|
|
|
+ style="color: #333;"
|
|
|
+ @update:modelValue="bool => checkboxClick(i, bool)"
|
|
|
+ ></v-checkbox-btn>
|
|
|
+ <!-- <span @click="checkboxClick(i, !k.choose)">{{ k.title }}</span> -->
|
|
|
+ <span v-else>{{ k.title }}</span>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td style="text-align: center;">.{{ k.fileType }}</td>
|
|
|
+ <td style="text-align: center;">{{ timesTampChange(k.createTime, 'Y-M-D h:m') }}</td>
|
|
|
+ <td style="text-align: center; width: 268px;">
|
|
|
+ <div>
|
|
|
+ <v-btn variant="text" color="primary" prepend-icon="mdi-eye-outline" @click="previewFile(k.url)">预览</v-btn>
|
|
|
+ <v-btn variant="text" color="primary" prepend-icon="mdi-arrow-down-bold-outline" @click="handleDownload(k)">下载</v-btn>
|
|
|
+ <v-btn variant="text" color="primary" prepend-icon="mdi-trash-can-outline" @click="handleDelete(k)">{{ $t('common.delete') }}</v-btn>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
+
|
|
|
+ <!-- <div
|
|
|
:class="['position-item', 'mx-n2', 'px-2']"
|
|
|
v-for="(k, i) in attachmentList"
|
|
|
:key="i"
|
|
@@ -23,7 +62,8 @@
|
|
|
<v-btn variant="text" color="primary" prepend-icon="mdi-arrow-down-bold-outline" @click="handleDownload(k)">下载</v-btn>
|
|
|
<v-btn variant="text" color="primary" prepend-icon="mdi-trash-can-outline" @click="handleDelete(k)">{{ $t('common.delete') }}</v-btn>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
+
|
|
|
<div v-if="props.analysis" class="d-flex flex-column align-center mt-15">
|
|
|
<v-btn class="buttons" color="primary" @click="handleAnalysis">开始解析</v-btn>
|
|
|
<v-btn class="mt-2" variant="text" color="primary" to="/recruit/personal/personalCenter/resume/online">返回在线简历</v-btn>
|
|
@@ -59,6 +99,7 @@ import Confirm from '@/plugins/confirm'
|
|
|
import { useI18n } from '@/hooks/web/useI18n'
|
|
|
import { getPersonResumeCv, deletePersonResumeCv, savePersonResumeCv } from '@/api/recruit/personal/resume'
|
|
|
import { getBlob, saveAs, previewFile } from '@/utils'
|
|
|
+import { timesTampChange } from '@/utils/date'
|
|
|
|
|
|
const emit = defineEmits(['analysis'])
|
|
|
const props = defineProps({
|
|
@@ -98,7 +139,14 @@ const formItems = ref({
|
|
|
const attachmentList = ref([])
|
|
|
const getList = async () => {
|
|
|
const data = await getPersonResumeCv()
|
|
|
- attachmentList.value = data
|
|
|
+ attachmentList.value = data.map(item => {
|
|
|
+ const list = item.url.split('.')
|
|
|
+ const fileType = list?.length ? list[list.length-1] : null
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ fileType
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
getList()
|
|
|
|
|
@@ -198,4 +246,12 @@ const handleAnalysis = () => {
|
|
|
left: 50%;
|
|
|
transform: translate(-50%, -50%);
|
|
|
}
|
|
|
+th {
|
|
|
+ height: 40px;
|
|
|
+ color: grey;
|
|
|
+}
|
|
|
+:deep(.v-label) {
|
|
|
+ // color: #333 !important;
|
|
|
+ opacity: 1;
|
|
|
+}
|
|
|
</style>
|