bug修改

This commit is contained in:
=
2025-09-03 08:44:51 +08:00
parent 172b7e93d9
commit b827811367
10 changed files with 329 additions and 39 deletions
@@ -39,9 +39,24 @@ const basicForm = {
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="unionId" label="工会"
:rules="[{required:true,message:'请选择工会',trigger:['change','blur']}]">
<el-select clearable filterable multiple style="width: 100%"
v-model="formData.unionId"
placeholder="请选择活动线路"
@change="onUnionChange">
<el-option :value="item.id"
:key="item.id"
:label="item.name"
v-for="item in unionOptions"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="unionQuotaAllocationList" label="工会名额分配">
<el-table :data="formData.unionQuotaAllocationList" size="medium" height="70vh">
<el-table :data="filteredUnionQuotaAllocationList" size="medium" height="70vh">
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column label="工会名称" prop="unionName"></el-table-column>
<el-table-column label="会员人数" prop="memberNum"></el-table-column>
@@ -87,13 +102,27 @@ const basicForm = {
</el-row>
</el-card>
</div>
`,
mixins: [initTableMixins],
data() {
return {
lineList: [],
unionOptions: [],
allUnionQuotaAllocationList: [], // 保存所有工会名额分配数据
}
},
computed: {
// 计算属性:根据选择的工会过滤显示的名额分配列表
filteredUnionQuotaAllocationList() {
// 如果没有选择任何工会,显示所有工会
if (!this.formData.unionId || this.formData.unionId.length === 0) {
return this.allUnionQuotaAllocationList;
}
// 如果选择了工会,只显示选中的工会
return this.allUnionQuotaAllocationList.filter(item =>
this.formData.unionId.includes(item.unionId)
);
}
},
methods: {
@@ -107,32 +136,58 @@ const basicForm = {
listUnion() {
this.$axios.post("/platform/excellentRecuperation/activityList/listUnion").then(res => {
if (res.code === 0) {
this.formData.unionQuotaAllocationList = res.data
this.allUnionQuotaAllocationList = res.data; // 保存所有数据
// 如果formData.unionQuotaAllocationList存在,则更新对应数据
if (this.formData.unionQuotaAllocationList) {
this.updateUnionQuotaAllocationList();
}
}
})
},
// 更新名额分配列表数据
updateUnionQuotaAllocationList() {
this.allUnionQuotaAllocationList.forEach(item => {
const existingItem = this.formData.unionQuotaAllocationList.find(
formDataItem => formDataItem.unionId === item.unionId
);
if (existingItem) {
item.allocationNum = existingItem.allocationNum || 0;
}
});
},
// 工会选择变化时的处理
onUnionChange(selectedUnions) {
// 数据会自动根据计算属性更新显示
console.log("Selected unions:", selectedUnions);
},
clearUnionQuotaAllocation() {
this.$confirm("您确定要清空分配名额吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(async () => {
this.listUnion()
// 清空所有名额分配
this.allUnionQuotaAllocationList.forEach(item => {
this.$set(item, 'allocationNum', 0);
});
})
},
onOpen(id) {
this.formData = {}
this.$refs.formRef.clearValidate()
this.getLineList()
this.listUnion(); // 始终加载所有工会数据
if (id) {
this.$axios.post("/platform/excellentRecuperation/activityList/findOne", {id}).then(res => {
if (res.code === 0) {
this.formData = res.data
this.$set(this.formData, "signUpTime", [res.data.signUpStartTime, res.data.signUpEndTIme])
// 更新名额分配数据
if (this.allUnionQuotaAllocationList.length > 0) {
this.updateUnionQuotaAllocationList();
}
}
})
} else {
this.listUnion()
}
},
onSubmit() {
@@ -146,6 +201,8 @@ const basicForm = {
const formData = clone(this.formData)
formData.signUpStartTime = formData.signUpTime[0]
formData.signUpEndTIme = formData.signUpTime[1]
// 传递过滤后的名额分配列表
formData.unionQuotaAllocationList = this.filteredUnionQuotaAllocationList;
const resp = await this.$axios.post("/platform/excellentRecuperation/activityList/onSubmit", {
data: JSON.stringify(formData)
})
@@ -157,6 +214,9 @@ const basicForm = {
}
})
}
},
created() {
//工会查询
this.$businessTool.listUnion().then((res) => (this.unionOptions = res))
}
}