update:项目管理

This commit is contained in:
ltx 2026-03-12 18:05:33 +08:00
parent 353d94c4a7
commit 480b2061f8

View File

@ -30,7 +30,7 @@
<!-- 弹窗 -->
<el-dialog title="新增" v-model="isShowDialog" width="60%">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="150px" style="width: 70%; margin-bottom: 30px" v-if="isShowDialog">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="150px" style="width: 90%; margin-bottom: 30px" v-if="isShowDialog">
<!-- 项目名称 -->
<el-form-item label="项目名称:" prop="name">
<el-input v-model="formData.name" placeholder="请输入项目名称"></el-input>
@ -41,16 +41,63 @@
<el-select v-model="formData.projectTypeId" placeholder="请选择项目类型" style="width: 100%">
<el-option label="个人速度" :value="1003"></el-option>
<el-option label="个人花样" :value="1004"></el-option>
<el-option label="团队速度" :value="1001"></el-option>
<el-option label="团队花样" :value="1002"></el-option>
<el-option label="团队速度" :value="1005"></el-option>
<el-option label="团队花样" :value="1006"></el-option>
</el-select>
</el-form-item>
<!-- 完成人数 -->
<el-form-item label="完成人数:" prop="completionCount" v-if="formData.projectTypeId == 1001 || formData.projectTypeId == 1002">
<el-form-item label="完成人数:" prop="completionCount" v-if="formData.projectTypeId == 1005 || formData.projectTypeId == 1006">
<el-input v-model="formData.completionCount" placeholder="请输入完成人数"></el-input>
</el-form-item>
<!-- 组别 -->
<div v-if="formData.projectTypeId == 1005 || formData.projectTypeId == 1006">
<el-form-item
:label="'组别' + (index + 1) + ':'"
prop="groups"
v-for="(group, index) in formData.groups"
:key="index"
:rules="{
validator: (rule, value, callback) => {
if (!value.groupName) {
callback(new Error('请输入组别名'));
}
if (!value.birthDateStart) {
callback(new Error('请选择出生日期开始'));
}
if (!value.birthDateEnd) {
callback(new Error('请选择出生日期结束'));
}
if (!value.gender) {
callback(new Error('请选择性别'));
} else {
callback();
}
},
trigger: 'blur',
}"
>
<el-input v-model="group.groupName" placeholder="输入组别名" style="width: 100px; margin-right: 18px"></el-input>
<el-date-picker v-model="group.birthDateStart" type="date" placeholder="出生日期开始" style="margin-right: 18px"></el-date-picker>
<el-date-picker v-model="group.birthDateEnd" type="date" placeholder="出生日期结束" style="margin-right: 18px"></el-date-picker>
<el-select v-model="group.gender" placeholder="性别" style="width: 100px">
<el-option label="男" value="1"></el-option>
<el-option label="女" value="2"></el-option>
<el-option label="不限" value="0"></el-option>
</el-select>
<el-button
circle
@click="removeGroup(index)"
style="margin-left: 30px"
size="small"
icon="Minus"
v-if="index == formData.groups.length - 1 && index != 0"
></el-button>
</el-form-item>
<el-button @click="addGroup" icon="Plus" style="margin: 20px 0px 20px 150px; width: 85%" dashed></el-button>
</div>
<!-- 费用 -->
<el-form-item label="费用:" prop="fee">
<el-input v-model="formData.fee" placeholder="请输入费用" class="fee-input">
@ -92,6 +139,20 @@ const formRef = ref();
const initParam = ref({
refresh: true,
});
const addGroup = () => {
formData.value.groups.push({
groupName: '',
birthDateStart: '',
birthDateEnd: '',
gender: '',
});
};
const removeGroup = () => {
formData.value.groups.pop();
};
const formData = ref({
name: '',
projectTypeId: '',
@ -99,6 +160,14 @@ const formData = ref({
fee: '',
durationMinutes: '0',
durationSeconds: '0',
groups: [
{
groupName: '',
birthDateStart: '',
birthDateEnd: '',
gender: '',
},
],
});
const formRules = ref({
@ -154,7 +223,7 @@ const dialogTitle = ref('新增');
const onOpenMenu = (row) => {
console.log(row);
dialogTitle.value = row.id ? '编辑' : '新增';
dialogTitle.value = row ? '编辑' : '新增';
formData.value = {
name: '',
projectTypeId: '',
@ -162,6 +231,14 @@ const onOpenMenu = (row) => {
fee: '',
durationMinutes: '0',
durationSeconds: '0',
groups: [
{
groupName: '',
birthDateStart: '',
birthDateEnd: '',
gender: '',
},
],
};
if (row) {
formData.value = row;