selfEvaluation.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <template>
  2. <div class="resume-box">
  3. <div class="resume-header">
  4. <div class="resume-title">{{ $t('resume.personalAdvantages') }}</div>
  5. <v-btn v-if="!isEdit" variant="text" color="primary" prepend-icon="mdi-square-edit-outline" @click="isEdit = true">{{ $t('common.edit') }}</v-btn>
  6. </div>
  7. <div v-if="isEdit" class="mt-3">
  8. <v-textarea
  9. v-model="advantage"
  10. label="请输入您的个人优势..."
  11. variant="outlined"
  12. counter="200"
  13. bg-color="grey-lighten-5"
  14. color="primary"
  15. validate-on="input"
  16. :rules="advantageRules"
  17. ></v-textarea>
  18. <div class="text-end">
  19. <v-btn class="half-button mr-3" variant="tonal" @click="isEdit = false">{{ $t('common.cancel') }}</v-btn>
  20. <v-btn color="primary" class="half-button" @click="handleSave">{{ $t('common.save') }}</v-btn>
  21. </div>
  22. </div>
  23. <div v-else class="content-list mt-3">
  24. <div class="advantage" v-html="advantage"></div>
  25. </div>
  26. </div>
  27. </template>
  28. <script setup>
  29. defineOptions({ name: 'selfEvaluation'})
  30. import { ref } from 'vue'
  31. import { saveResumeAdvantage } from '@/api/resume'
  32. import Snackbar from '@/plugins/snackbar'
  33. const isEdit = ref(false)
  34. const advantage = ref('1、熟悉 Java 技术平台,并稳定形成生产力,CCF 中国计算机学会会员,获得微软 MCP、MCSA 认证。 2、熟悉通用缓存/DB /搜索引擎/消息队列等中间件。对业内高可用高并发及分布式技术解决方案有充分理解。3、同时具备常用大数据解决方案实践经验,包括实时计算(Storm/Flink )及离线计算(Hive/ETL/Spark)。 4、对搜索推荐/订单交易等业务方向具备多年实践经验。')
  35. const advantageRules = ref([
  36. value => {
  37. if (value) return true
  38. return '请输入您的个人优势'
  39. },
  40. value => {
  41. if (value?.length <= 200) return true
  42. return '请输入2-200个字符'
  43. }
  44. ])
  45. const handleSave = async () => {
  46. if (!advantage.value) return Snackbar.warning('请先输入个人优势!')
  47. await saveResumeAdvantage({ content: advantage.value })
  48. isEdit.value = false
  49. Snackbar.success('编辑成功')
  50. }
  51. </script>
  52. <style scoped lang="scss">
  53. .content-list {
  54. white-space: pre-line;
  55. }
  56. .advantage {
  57. color: #666;
  58. font-size: 14px;
  59. }
  60. </style>