<template> <view class="content"> <u-tabs lineWidth="336rpx" :list="tabsList" itemStyle="height:80rpx;padding-bottom:10rpx;background-color: #fff;" @click="tabsClick" ></u-tabs> <u-list @scrolltolower="scrolltolower" v-if="list.length > 0"> <u-list-item v-for="(item, index) in list" :key="index"> <view> <view class="flex-between main-title"> <text>{{ item.HIDDENDESCR }}</text> </view> <view class="flex-between mt-10 subtitle"> <text>被处罚单位:{{ item.UNITS_NAME }}</text> <text v-show="item.ISPUNISH==='1'&&item.HANDLED==='0'">被处罚人:{{ item.PERSON_NAME }}</text> </view> <view v-show="item.ISPUNISH==='1'" class="flex-between mt-10 subtitle"> <text> 处罚原因:{{ item.REASON }} </text> </view> <view v-show="item.ISPUNISH" class="flex-between mt-10 subtitle"> <text>下发人:{{ item.CREATOR_NAME }}</text> <text>是否处罚:{{ item.ISPUNISH == "2" ? "否" : "是" }}</text> </view> <view class="flex-between mt-10 subtitle"> <text>处罚处理状态:{{ item.ISPUNISH == "2" ? "不处罚" : item.HANDLED == "1" ? "已完成" : item.ISPUNISH == "1" ? "待反馈" : "待处罚" }} </text> </view> <view class="flex-end"> <view v-if="!item.ISPUNISH"> <u-button color="linear-gradient(to right, #ff6034, #ee0a24)" text="处罚" size="mini" @click="fnModalShow(item)"></u-button> </view> <view class="ml-10"> <u-button type="primary" text="查看" size="mini" @click="fnNavigatorDetail(item.HIDDEN_ID)"></u-button> </view> </view> </view> </u-list-item> </u-list> <empty v-else></empty> <u-modal :show="modalShow" title="处罚" showCancelButton @cancel="modalShow = false" @confirm="fnSubmit"> <view style="flex: 1"> <u-cell-group :border="false"> <view class="cu-form-group"> <view class="title">是否进行罚款:</view> <radio-group @change="changeRadioGroup($event)"> <label class="radio"> <radio value="1" :checked="punishForm.ISPUNISH === '1'" :disabled="TabCur == 2"/> 是</label> <label class="radio"> <radio value="2" :checked="punishForm.ISPUNISH === '2'" :disabled="TabCur == 2"/> 否</label> </radio-group> </view> <view v-if="punishForm.ISPUNISH==1"> <u-cell> <view slot="title" class="title required"> 处罚原因: </view> <view slot="value"> <u--input v-model="punishForm.REASON" border="none" inputAlign="right"></u--input> </view> </u-cell> <u-cell> <view slot="title" class="title required"> 处罚金额(元): </view> <view slot="value" style="flex: 1;"> <u--input v-model="punishForm.AMOUT" border="none" type="number" inputAlign="right"></u--input> </view> </u-cell> <u-cell> <view slot="title" class="title required"> 被处罚单位: </view> <view slot="value">{{ punishForm.RECTIFICATIONDEPT_NAME }}</view> </u-cell> <u-cell> <view slot="title" class="title required"> 被处罚人: </view> <view slot="value">{{ punishForm.RECTIFICATIONOR_NAME }}</view> </u-cell> <u-cell> <view slot="title" class="title required">下发处罚时间:</view> <view slot="value"> <text @click="timeShow = true">{{ punishForm.DATE || '请选择' }}</text> <u-datetime-picker :show="timeShow" :value="punishForm.DATE" :minDate="Number(1970)" @cancel="timeShow = false" @confirm="timeConfirm"></u-datetime-picker> </view> </u-cell> </view> </u-cell-group> </view> </u-modal> </view> </template> <script> import { setKeyProjectsPunishList, getKeyProjectsPunishList, getKeyProjectsPunishAdd, editHiddenIspunish } from "../../../api"; export default { data() { return { TabCur: 0, //迁移变量,作用未知 tabsList: [ {name: '待反馈处罚', id: '1'}, {name: '已完成处罚', id: '2'} ], tabsType: '1', pageSize: 10, currentPage: 1, totalPage: 0, list: [], modalShow: false, punishForm: { HIDDEN_ID: '', ISPUNISH: '', RECTIFICATIONDEPT_NAME: '', RECTIFICATIONOR_NAME: '', REASON: '', CORPINFO_ID: '', AMOUT: '', DATE: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'), }, timeShow: false } }, onShow() { this.resetList() }, onLoad(e) { this.CORPINFO_ID = e.CORPINFO_ID }, computed: { userInfo() { return this.$store.getters.getUserInfo } }, methods: { async getData() { let resData = await getKeyProjectsPunishList({ showCount: this.pageSize, currentPage: this.currentPage, CORPINFO_ID: this.CORPINFO_ID, HANDLED: this.tabsType, loginUserId: this.userInfo.USER_ID }); this.list = [...this.list, ...resData.varList]; this.totalPage = resData.page.totalPage; }, resetList() { this.pageSize = 10 this.currentPage = 1 this.list = [] this.getData() }, fnNavigatorDetail(HIDDEN_ID) { uni.$u.route({ url: '/pages/key-project-management/penalty-management/viewHidden', params: { HIDDEN_ID, type: 'view' } }) }, scrolltolower() { this.currentPage++; if (this.totalPage >= this.currentPage) this.getData(); }, tabsClick(e) { this.tabsType = e.id this.resetList() }, fnModalShow(item) { this.punishForm.HIDDEN_ID = item.HIDDEN_ID this.punishForm.RECTIFICATIONDEPT_NAME = item.UNITS_NAME this.punishForm.RECTIFICATIONOR_NAME = item.RECTIFICATIONOR_NAME this.punishForm.ISPUNISH = '2' this.modalShow = true }, changeRadioGroup(e) { if (this.TabCur == 2) return this.punishForm.ISPUNISH = e.detail.value }, timeConfirm(e) { this.punishForm.DATE = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM') this.timeShow = false; }, async fnSubmit() { if (this.punishForm.ISPUNISH == 1) { for (const key in this.punishRules) { if (!this.punishForm[key]) { uni.showToast({ title: this.punishRules[key], icon: 'none' }) return } } await getKeyProjectsPunishAdd({ ...this.punishForm, CREATOR: this.userInfo.USER_ID, OPERATOR: this.userInfo.USER_ID }) await this.editHiddenIspunishIndex(1) } else { await this.editHiddenIspunishIndex(2) } }, editHiddenIspunishIndex(Ispunish) { // 如果不处罚 修改隐患 editHiddenIspunish({ ...this.punishForm, ISPUNISH: Ispunish, PUNISH_PERSON: this.userInfo.USER_ID }) this.punishForm = { HIDDEN_ID: '', ISPUNISH: '', RECTIFICATIONDEPT_NAME: '', RECTIFICATIONOR_NAME: '', REASON: '', AMOUT: '', DATE: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'), }, this.modalShow = false this.resetList() }, } } </script> <style scoped lang="scss"> .wrap { width: 200rpx; margin: 0 10rpx; } </style>