fix: 我的计划和计划编辑优化

This commit is contained in:
wangzhuo
2025-09-18 22:20:13 +08:00
parent 1aa1507336
commit e8dddd8dca
2 changed files with 94 additions and 72 deletions

View File

@@ -16,11 +16,11 @@
<!-- 正文内容 -->
<view class="week-plan-title">
<view v-if="userInfo.nickName">姓名<strong>{{ userInfo.nickName || userInfo.userName }}</strong></view>
<!-- <view v-if="userInfo.nickName">姓名<strong>{{ userInfo.nickName || userInfo.userName }}</strong></view>-->
<view>{{ currentEditDate.yearMonth }} <strong>{{ currentEditDate.weekNum }}</strong> </view>
</view>
<uni-forms ref="formRef" :model="weekPlanFormData" :rules="rules" label-width="100px" label-position="top">
<block v-for="(item, index) in OrdinalDate">
<view v-for="(item, index) in OrdinalDate">
<view class="white-bg" :class="index==0?'white-bg-2':'white-bg-3'">
<view class="w-b-title" @click="handleExpand(index)">
{{ weekPlanFormData[item] }} {{ WeekCN[index] }}
@@ -29,7 +29,8 @@
</text>
</view>
<view v-show="expandFlag[index]" class="form-con">
<!--v-show="expandFlag[index]"-->
<view class="form-con" :class="{'show': expandFlag[index], 'hidden': !expandFlag[index]}">
<uni-forms-item label="工作类型" :name="getTypeField(index)" :required="index < workDays">
<view class="form-picker">
<picker @change="handleTypeChange" :range="WORK_TYPE" :data-field="getTypeField(index)">
@@ -41,13 +42,13 @@
</view>
</uni-forms-item>
<uni-forms-item label="内容" :name="getEventField(index)" :required="index < workDays">
<uni-easyinput type="textarea" autoHeight v-model="weekPlanFormData[getEventField(index)]"
<uni-easyinput type="textarea" v-model="weekPlanFormData[getEventField(index)]"
placeholder="请输入" class="form-texarea"/>
</uni-forms-item>
</view>
</view>
</block>
</view>
</uni-forms>
</view>
@@ -62,7 +63,6 @@ import {useRoute} from "vue-router"
import {useMessage} from "@/utils/message";
import {onLoad} from "@dcloudio/uni-app";
import {updateWeekPlanList, addPlan} from "@/api/crm/plan/updatePlan";
import {getUserInfo} from "@/api/crm/plan/getPlan";
import {getDate} from "@/utils/datetime";
import {getWeek2, getCurrentWeekNum} from "./dateTimeUtils";
@@ -127,17 +127,10 @@ const workDays = 5;
// const instance = getCurrentInstance().proxy;
let instance = null;
// 初始化创建任务
let initCreate = (params)=>{
let initCreate = (params) => {
const {itemList, selectIndex} = params;
// 获取用户信息
// getUserInfo().then(res => {
// userInfo.value = res.user;
// console.log(route.path, ":用户信息获取成功");
// }).catch(err => {
// console.warn(err, "用户信息获取失败")
// });
console.log(route.path,`:创建${itemList[selectIndex]}计划`);
title.value="创建周计划";
console.log(route.path, `:创建${itemList[selectIndex]}计划`);
title.value = "创建周计划";
currentEditDate.value.yearMonth = getDate({format: true}).substring(0, 7); // 只要年月
currentEditDate.value.weekNum = getCurrentWeekNum() + selectIndex; // 取巧做法当期周则selectIndex为0下周则selectIndex为1用加法处理
const week = getWeek2(itemList[selectIndex]); // 获取本周/下周一周日期
@@ -147,11 +140,11 @@ let initCreate = (params)=>{
const {year, month} = week;
weekPlanFormData.value.year = year;
weekPlanFormData.value.month = month;
for(let index in OrdinalDate){
for (let index in OrdinalDate) {
let dateField = getDateField(index);
weekPlanFormData.value[dateField] = week[dateField];
// console.log(week[dateField]);
if(index>=workDays){
if (index >= workDays) {
let typeField = getTypeField(index);
weekPlanFormData.value[typeField] = "法定假日"; // TODO: 换成更规范代码
workTypeIndex.value[typeField] = WORK_TYPE.indexOf("法定假日");
@@ -180,7 +173,7 @@ onLoad((options) => {
expandFlag.value[index] = editFields.includes(getTypeField(index)) || editFields.includes(getEventField(index));
// console.log(index, expandFlag.value[index], "展开状态");
}
}else{
} else {
initCreate(data.param);
}
@@ -203,7 +196,7 @@ function getEventField(index) {
}
// 初始化校验规则
(function bindRules(){
(function bindRules() {
for (let i in WorkType) {
if (i < workDays) {
rules[getTypeField(i)] = {
@@ -253,25 +246,25 @@ const submitForm = async () => {
// console.log('表单数据:', weekPlanFormData.value);
// 这里可以添加提交到服务器的代码
if(!isAdd.value){ // 请求修改
let res = await updateWeekPlanList(weekPlanFormData.value).catch(err=>{
if (!isAdd.value) { // 请求修改
let res = await updateWeekPlanList(weekPlanFormData.value).catch(err => {
message.error('操作失败!');
console.warn(err, "更新周计划失败");
})
message.success('修改成功!');
setTimeout(()=>{
setTimeout(() => {
const eventChannel = instance.getOpenerEventChannel();
eventChannel.emit('refreshData');
uni.navigateBack()
}, 500);
}else{ // 请求新增
console.log(weekPlanFormData.value,"新增计划");
let res = await addPlan(weekPlanFormData.value).catch(err=>{
} else { // 请求新增
console.log(weekPlanFormData.value, "新增计划");
let res = await addPlan(weekPlanFormData.value).catch(err => {
message.error('操作失败!');
console.error(err, "周计划新增失败");
})
message.success('保存成功!');
setTimeout(()=>{
setTimeout(() => {
const eventChannel = instance.getOpenerEventChannel();
eventChannel.emit('refreshData');
uni.navigateBack()
@@ -279,8 +272,8 @@ const submitForm = async () => {
}
} catch (err) {
uni.showToast({
icon:'none',
title:"请完善内容",
icon: 'none',
title: "请完善内容",
duration: 1500
})
console.log('表单验证失败:', err);
@@ -301,6 +294,7 @@ const submitForm = async () => {
.white-bg {
width: 690rpx;
margin: 0;
padding-bottom: 0;
border-radius: 8px 8px 0 0;
}
@@ -309,7 +303,7 @@ const submitForm = async () => {
}
.white-bg.white-bg-3 {
border-top: 1rpx solid #E5E5E5;
border-top: 1rpx solid #E5E5E5;
border-radius: 0
}
@@ -320,10 +314,17 @@ const submitForm = async () => {
.form-con {
padding: 30rpx 0 0;
height: 500rpx;
overflow: hidden;
transition: height 0.3s;
}
:deep(.form-con .uni-forms-item) {
margin-bottom: 22px !important;
}
.hidden{
height: 0;
}
</style>