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>
|