فهرست منبع

回显中文,因为下拉框无内容,显示id无用

lifanagju_citu 11 ماه پیش
والد
کامیت
00a95f960e
1فایلهای تغییر یافته به همراه24 افزوده شده و 24 حذف شده
  1. 24 24
      src/views/resume/components/educationExp.vue

+ 24 - 24
src/views/resume/components/educationExp.vue

@@ -16,7 +16,7 @@
     <!-- 展示 -->
     <div
       v-else
-      v-for="(item, index) in projectExp" :key="'educationExp' + index"
+      v-for="(item, index) in dataList" :key="'educationExp' + index"
       :class="[' mx-n2', {'mt-5': index }]"
     >
       <div class="educExpItem" @mouseenter="item.active = true" @mouseleave="item.active = false">
@@ -59,6 +59,7 @@ import Confirm from '@/plugins/confirm'
 import { getText } from '@/utils/getText'
 import { debounce } from 'lodash'
 import { nextTick, shallowRef, reactive, ref } from 'vue'
+const editId = ref(null)
 const CtFormRef = ref()
 const dictItemsObj = reactive({})
 dictItemsObj.educationSystemType = [{ label: '全日制', value: '0' }, { label: '非全日制', value: '1' }]
@@ -89,6 +90,9 @@ const debouncedCallbackMajor = debounce(newValue => {
   getMajorListData(newValue)
 }, 500)
 
+// const handleChangeSchool = () => {}
+// const handleChangeMajor = () => {}
+
 const formItems = ref({
   options: [
     {
@@ -100,6 +104,7 @@ const formItems = ref({
       col: 6,
       outlined: true,
       clearable: true,
+      itemTextName: 'schoolName',
       itemText: 'value',
       itemValue: 'key',
       rules: [v => !!v || '请选择学校名称'],
@@ -115,6 +120,7 @@ const formItems = ref({
       col: 6,
       outlined: true,
       clearable: true,
+      itemTextName: 'major',
       itemText: 'nameCn',
       itemValue: 'id',
       rules: [v => !!v || '请选择所学专业'],
@@ -175,62 +181,56 @@ const formItems = ref({
     },
   ]
 })
+// 左侧加mr
+formItems.value.options.forEach((e, index) => {
+  if (((index + 2) % 2 === 0) && Boolean(e.col) && e.col !== 12) e.flexStyle = 'mr-3'
+})
 
 console.log('dictItemsObj', dictItemsObj)
 // 获取数据
-const projectExp = ref([])
+const dataList = ref([])
 const getData = async () => {
   const data = await getResumeEduExp()
-  projectExp.value = data
+  dataList.value = data
 }
 getData()
 
 // 新增 或 编辑
 const isEdit = ref(false)
 const titleStatus = ref(0)
-const rowObj = ref({})
 const handle = (item) => {
   titleStatus.value = item ? 1 : 0
   if (item) { // 编辑
-    rowObj.value = item
-    formItems.value.options.forEach(_i => { if (item[_i.key]) _i.value = item[_i.key] })
+    editId.value = item.id
+    formItems.value.options.forEach(e => { // 回显
+      if (item[e.key]) e.value = item[e.key]
+      if (e.type === 'datepicker') e.value = timesTampChange(item[e.key]).slice(0, 10)
+      if (e.type === 'combobox') e.value = item[e.itemTextName] // 回显中文,因为下拉框无内容,显示id无用
+    })
   } else { // 新增
-    formItems.value.options.forEach(_i => _i.value = _i.default || null)
+    editId.value = null
+    formItems.value.options.forEach(e => e.value = e.default || null)
   }
   nextTick(() => {
     isEdit.value = true
   })
 }
 
-// const transformItems = ['educationType', 'educationSystemType']
-formItems.value.options.forEach((e, index) => {
-  if (((index + 2) % 2 === 0) && Boolean(e.col) && e.col !== 12) e.flexStyle = 'mr-3' // 左侧加mr
-  // 回显
-  if (rowObj.value[e.key]) e.value = rowObj.value[e.key]
-  // // 数字转为字符串
-  // if (transformItems.includes(e.key) && e.value && e.value !== 0) e.value = e.value.toString()
-  // 日期相关
-  if (e.type === 'datepicker') e.value = timesTampChange(e.value).slice(0, 10)
-})
-
-
 // 保存-基础信息
 const handleSave = async () => {
   const { valid } = await CtFormRef.value.formRef.validate()
   if (!valid) return
   const obj = {}
   formItems.value.options.forEach(e => {
-    if (e.noReturn) return
-    else if (e.type === 'datepicker') obj[e.key] = getTimeStamp(e.value)
+    if (e.type === 'datepicker') obj[e.key] = getTimeStamp(e.value)
     else obj[e.key] = e.value
   })
   obj.schoolName = schoolName.value
   obj.major = major.value
-  if (rowObj.value?.id) obj.id = rowObj.value.id
+  if (editId.value) obj.id = editId.value
   await saveResumeEduExp(obj)
   Snackbar.success('保存成功!')
   isEdit.value = false
-  // 获取当前登录账户信息
   await getData()
 }
 
@@ -238,8 +238,8 @@ const handleSave = async () => {
 const handleDelete = ({ id }) => {
   Confirm('系统提示', '是否确认删除此教育经历?').then(async () => {
     await deleteResumeEduExp(id)
+    getData(id)
     Snackbar.success('删除成功!')
-    getData()
   })
 }