|
@@ -9,7 +9,23 @@
|
|
|
<!-- 编辑-表单 -->
|
|
|
<div v-if="isEdit" class="educExpItem-edit">
|
|
|
<h4 class="color6 my-3 mx-2"> {{ titleStatus ? $t('common.edit') : $t('common.add') }}{{ $t('resume.workExperience') }}</h4>
|
|
|
- <CtForm ref="CtFormRef" :items="formItems" style="width: 100%;"></CtForm>
|
|
|
+ <CtForm ref="CtFormRef" :items="formItems" style="width: 100%;">
|
|
|
+ <template #endTime="{ item }">
|
|
|
+ <div>
|
|
|
+ <v-checkbox-btn
|
|
|
+ v-model="item.soFar"
|
|
|
+ color="primary"
|
|
|
+ :label="$t('sys.soFar')"
|
|
|
+ class="ml-2"
|
|
|
+ :disabled="false"
|
|
|
+ :style="`line-height: ${item.dense === 'default' ? 56 : item.dense === 'comfortable' ? 48 : 40 }px;`"
|
|
|
+ style="width: 80px;"
|
|
|
+ hide-details
|
|
|
+ @update:modelValue="v => handleSoFarChange(v, item)"
|
|
|
+ ></v-checkbox-btn>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </CtForm>
|
|
|
<div class="text-end mt-3">
|
|
|
<v-btn class="half-button mr-3" variant="tonal" @click="isEdit = false">{{ $t('common.cancel') }}</v-btn>
|
|
|
<v-btn color="primary" class="half-button" @click="handleSave">{{ $t('common.save') }}</v-btn>
|
|
@@ -83,6 +99,17 @@ const positionSearch = (name, init = '') => {
|
|
|
item[item.itemTextName] = name
|
|
|
}
|
|
|
|
|
|
+// 《至今》复选框事件
|
|
|
+const handleSoFarChange = (bool, item) => {
|
|
|
+ const opObj = formItems.value.options.find(e => e.key === item.key)
|
|
|
+ if (opObj) {
|
|
|
+ opObj.value = null
|
|
|
+ opObj.soFar = true
|
|
|
+ opObj.rules = bool ? [] : [v => !!v || '请选择结束时间']
|
|
|
+ opObj.disabled = bool ? true : false
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
const formItems = ref({
|
|
|
options: [
|
|
|
{
|
|
@@ -134,11 +161,11 @@ const formItems = ref({
|
|
|
{
|
|
|
type: 'datePicker',
|
|
|
key: 'endTime',
|
|
|
+ slotName: 'endTime',
|
|
|
dateType: 'month', // 时间类型 year month date time
|
|
|
value: null,
|
|
|
label: '结束时间 *',
|
|
|
col: 6,
|
|
|
- showSoFar: true,
|
|
|
outlined: true,
|
|
|
clearable: true,
|
|
|
rules: [v => !!v || '请选择结束时间']
|
|
@@ -183,12 +210,24 @@ const handle = (item) => {
|
|
|
if (e.canBeInputted) { // 特殊处理可输入下拉框
|
|
|
dealCanBeInputtedValueAndLabel(e, item)
|
|
|
}
|
|
|
+ else if (e.key === 'endTime') {
|
|
|
+ if (item[e.key]) {
|
|
|
+ e.value = item[e.key]; e.soFar = false; e.disabled = false; e.rules = [v => !!v || '请选择结束时间']
|
|
|
+ } else {
|
|
|
+ e.value = null; e.soFar = true; e.disabled = true; e.rules = []
|
|
|
+ }
|
|
|
+ }
|
|
|
else if (e.type === 'datepicker') e.value = timesTampChange(item[e.key], 'Y-M')
|
|
|
else if (item[e.key]) e.value = item[e.key]
|
|
|
})
|
|
|
} else { // 新增
|
|
|
editId.value = null
|
|
|
- formItems.value.options.forEach(e => e.value = e.default || null)
|
|
|
+ formItems.value.options.forEach(e => {
|
|
|
+ e.value = e.default || null
|
|
|
+ e.disabled = false
|
|
|
+ if (e.soFar) e.soFar = false
|
|
|
+ if (e.key === 'endTime') e.rules = [v => !!v || '请选择结束时间']
|
|
|
+ })
|
|
|
}
|
|
|
nextTick(() => {
|
|
|
isEdit.value = true
|
|
@@ -204,7 +243,7 @@ const handleSave = async () => {
|
|
|
if (e.canBeInputted) { // 特殊处理可输入下拉框
|
|
|
dealCanBeInputtedSave(e, obj)
|
|
|
}
|
|
|
- else if (e.type === 'datepicker') obj[e.key] = getTimeStamp(e.value)
|
|
|
+ else if (e.type === 'datepicker' && e.value) obj[e.key] = getTimeStamp(e.value)
|
|
|
else obj[e.key] = e.value
|
|
|
})
|
|
|
if (editId.value) obj.id = editId.value
|