| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 | <template>	<view class="container">		<page-title>年度计划录入</page-title>		<view class="cards-list">			<view class="card only-card">				<!-- 项目名称 -->				<view class="card-item first-card-item">					<view class="card-item-name">项目名称</view>					<view class="card-item-input">{{BindName || "--"}}</view>				</view>				<!-- 年度 -->				<view class="card-item" @click="yearShowChoose()">					<view class="card-item-name">年度</view>					<view class="card-item-description">						<view v-if="Bindyear">{{Bindyear || "--"}}</view>						<view v-else class="remind-text">请选择年度</view>						<u-icon name="arrow-right" color="#343437" size="16" customStyle="margin-left:10rpx"></u-icon>					</view>				</view>				<!-- 月份标题 -->				<view class="card-name" style="margin-top: 36rpx;">					<view class="card-name-title">						<text class="card-name-description">月份</text>					</view>					<view class="card-name-title">						<text class="card-name-description">资金(万元)</text>					</view>				</view>				<!-- 月份值 -->				<view class="card-item" v-for="(item,index) in pageForm" :key="index">					<view class="card-item-name">{{item.ymonth}}月</view>					<input v-model="item.amt" type="number" class="card-item-input" placeholder="请填写金额"						placeholder-style="color: #D8D8D8" maxlength="20" :disabled="banSubmit" />				</view>			</view>			<view class="confirm-btn" :class="banSubmit?'ban-submit':''" @click="confirmParams()">保存</view>		</view>		<!-- 年度选择 -->		<u-picker :show="yearShow" :defaultIndex="defaultIndex" :columns="yearColumns" @confirm="yearClose"			@cancel="yearClose" @close="yearClose" closeOnClickOverlay></u-picker>	</view></template><script setup>	import config from '@/config.js'	import {		ref	} from 'vue'	import {		onLoad	} from "@dcloudio/uni-app"	import {		getYearlyById,		saveYearly	} from "@/api/work/weeklyAndMonthly.js"	let Bindyear = ref(null);	let BindName = ref(null);	let BindSubId = ref(null);	// =============================年度选择	let defaultIndex = ref(0)	let yearShow = ref(false);	let yearColumns = ref([		["2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013",			"2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025", "2026",			"2027", "2028", "2029", "2030", "2031", "2032", "2033"		]	])	function yearShowChoose() {		yearShow.value = true;	}	function yearClose(e) {		if (e) {			Bindyear.value = e.value[0];			getYearlyDetail({				subId: BindSubId.value,				year: e.value[0]			})			banSubmit.value = false;		}		yearShow.value = false	}	let pageForm = ref([{			name: "01",			amt: null		},		{			name: "02",			amt: null		},		{			name: "03",			amt: null		},		{			name: "04",			amt: null		},		{			name: "05",			amt: null		},		{			name: "06",			amt: null		},		{			name: "07",			amt: null		},		{			name: "08",			amt: null		},		{			name: "09",			amt: null		},		{			name: "10",			amt: null		},		{			name: "11",			amt: null		},		{			name: "12",			amt: null		},	])	// 获取数据	function getYearlyDetail(sendParams) {		let params = {			subId: sendParams.subId,			year: sendParams.year		}		getYearlyById(params).then(res => {			pageForm.value = res.data.list		})	}	let banSubmit = ref(false);	let isSubmit = ref(false);	// 确认数据	function confirmParams() {		if (banSubmit.value || isSubmit.value) return;		uni.showModal({			title: "保存确认",			content: "确定要保存该年度计划录入吗?",			success: function(res) {				if (res.confirm) {					let params = {						subId: BindSubId.value,						amtPlans: pageForm.value					}					let paramsFormat = JSON.parse(JSON.stringify(params))					paramsFormat.amtPlans.forEach(item => {						item.ymonth = `${Bindyear.value}${item.ymonth}`					})					isSubmit.value = true;					saveYearly(paramsFormat).then(res => {						if (res.code === 200) {							isSubmit.value = false;							banSubmit.value = true;							uni.showToast({								title: "保存成功",								icon: "success",								duration: 2000							})						}					}).catch(() => {						isSubmit.value = false;						uni.showToast({							title: "保存失败",							icon: "error",							duration: 2000						})					})				} else if (res.cancel) {					uni.showToast({						title: "取消保存",						icon: "none",						duration: 2000,					})				}			},		})	}	onLoad((options) => {		Bindyear.value = options.year;		defaultIndex.value = [Number(Bindyear.value) - 2000]		BindName.value = options.title;		BindSubId.value = options.subId;		getYearlyDetail(options)	})</script><style lang="scss" scoped></style>
 |