|
@@ -10,7 +10,8 @@
|
|
|
placeholder="请围绕管理或技术维度填写,字数不少于120字"
|
|
placeholder="请围绕管理或技术维度填写,字数不少于120字"
|
|
|
:rules="[{ required: true, message: '请输入个人专长' }, { validator: (val) => val.length >= 120, message: '内容长度不能少于120个字符' }]"
|
|
:rules="[{ required: true, message: '请输入个人专长' }, { validator: (val) => val.length >= 120, message: '内容长度不能少于120个字符' }]"
|
|
|
required />
|
|
required />
|
|
|
- <van-field label="负责项目情况" class="addBox" name="chargeProjectDTOList" label-width="7em" required>
|
|
|
|
|
|
|
+ <van-field label="负责项目情况" class="addBox" name="chargeProjectDTOList"
|
|
|
|
|
+ :rules="[{ validator: validateProject }]" label-width="7em" required>
|
|
|
<template #input>
|
|
<template #input>
|
|
|
<van-button type="primary" size="small" @click="add">新增</van-button>
|
|
<van-button type="primary" size="small" @click="add">新增</van-button>
|
|
|
</template>
|
|
</template>
|
|
@@ -25,11 +26,9 @@
|
|
|
:rules="[{ required: true, message: '请选择项目开始和结束时间' }]" @click="showCalendar = true" />
|
|
:rules="[{ required: true, message: '请选择项目开始和结束时间' }]" @click="showCalendar = true" />
|
|
|
<van-popup v-model:show="showCalendar" position="bottom">
|
|
<van-popup v-model:show="showCalendar" position="bottom">
|
|
|
<van-picker-group title="项目周期" :tabs="['开始日期', '结束日期']" next-step-text="下一步"
|
|
<van-picker-group title="项目周期" :tabs="['开始日期', '结束日期']" next-step-text="下一步"
|
|
|
- @confirm="(date) => onConfirm(date, index)" @cancel="showCalendar =false">
|
|
|
|
|
|
|
+ @confirm="(date) => onConfirm(date, index)" @cancel="showCalendar = false">
|
|
|
|
|
+ <van-date-picker :min-date="new Date(1994, 0, 1)" :max-date="new Date()" />
|
|
|
<van-date-picker :min-date="new Date(1994, 0, 1)" :max-date="new Date()" />
|
|
<van-date-picker :min-date="new Date(1994, 0, 1)" :max-date="new Date()" />
|
|
|
- <van-date-picker
|
|
|
|
|
- :min-date="new Date(1994, 0, 1)"
|
|
|
|
|
- :max-date="new Date()" />
|
|
|
|
|
</van-picker-group>
|
|
</van-picker-group>
|
|
|
</van-popup>
|
|
</van-popup>
|
|
|
<van-field v-model="formDataTwoStep.chargeProjectDTOList[index].projectAppointment" label="项目任职"
|
|
<van-field v-model="formDataTwoStep.chargeProjectDTOList[index].projectAppointment" label="项目任职"
|
|
@@ -40,9 +39,8 @@
|
|
|
</van-form>
|
|
</van-form>
|
|
|
</template>
|
|
</template>
|
|
|
<script setup>
|
|
<script setup>
|
|
|
-import dayjs from "dayjs"
|
|
|
|
|
-import { showFailToast } from "vant"
|
|
|
|
|
-import { ref, reactive } from "vue"
|
|
|
|
|
|
|
+import { showConfirmDialog, showFailToast } from "vant"
|
|
|
|
|
+import { ref } from "vue"
|
|
|
const twoStepFormRef = ref(null)
|
|
const twoStepFormRef = ref(null)
|
|
|
const formDataTwoStep = defineModel('formDataTwoStep')
|
|
const formDataTwoStep = defineModel('formDataTwoStep')
|
|
|
const showCalendar = ref(false)
|
|
const showCalendar = ref(false)
|
|
@@ -60,7 +58,14 @@ function add() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function remove(index) {
|
|
function remove(index) {
|
|
|
- formDataTwoStep.value.chargeProjectDTOList.splice(index, 1)
|
|
|
|
|
|
|
+ showConfirmDialog({
|
|
|
|
|
+ title: '提示',
|
|
|
|
|
+ message: '是否确定删除该项目情况',
|
|
|
|
|
+ }).then(() => {
|
|
|
|
|
+ formDataTwoStep.value.chargeProjectDTOList.splice(index, 1)
|
|
|
|
|
+ }).catch(() => {
|
|
|
|
|
+ // on cancel
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function onConfirm(date, index) {
|
|
function onConfirm(date, index) {
|
|
@@ -82,6 +87,10 @@ function onConfirm(date, index) {
|
|
|
async function validate() {
|
|
async function validate() {
|
|
|
await twoStepFormRef.value.validate()
|
|
await twoStepFormRef.value.validate()
|
|
|
}
|
|
}
|
|
|
|
|
+function validateProject(value, rule){
|
|
|
|
|
+ console.log(value, rule);
|
|
|
|
|
+ if (formDataTwoStep.value.chargeProjectDTOList&&formDataTwoStep.value.chargeProjectDTOList.length===0) return '请添加负责项目情况'
|
|
|
|
|
+}
|
|
|
defineExpose({ validate })
|
|
defineExpose({ validate })
|
|
|
</script>
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|