From b5f084460e9e639358fbf91056a86be8d0a5c4b2 Mon Sep 17 00:00:00 2001 From: yaolonglong <yaolonglong15@163.com> Date: 星期四, 09 十月 2025 20:18:57 +0800 Subject: [PATCH] 获取验证码功能 --- policy/translate/translate.vue | 456 ++++++++++++++++++++++++++++++++------------------------ 1 files changed, 260 insertions(+), 196 deletions(-) diff --git a/policy/translate/translate.vue b/policy/translate/translate.vue index 22a4284..9ab73d3 100644 --- a/policy/translate/translate.vue +++ b/policy/translate/translate.vue @@ -1,197 +1,261 @@ -<template> - <view class="page-box"> - <view class="list"> - <view class="select-box" @click="setIsSelect(index)" v-for="(item,index) in list" :key="index" :class="{start: isJudege}"> - <view class="select-image" v-if="isJudege" > - <image src="/static/policy/checkbox.png" mode="widthFix" v-show="item.isSelect"></image> - <image src="/static/policy/none-checkbox.png" mode="widthFix" v-show="!item.isSelect"></image> - </view> - <view class="list-item"> - <view class="top-title"> - <text>{{item.enforceReason}}</text> - <text class="status">寰呭鎵�</text> - </view> - <view class="user-info"> - <text>{{item.applyUser}}</text> - <!-- <view class="driver"></view> - <text>{{item.checkDeptName}}</text> --> - </view> - <view class="user-info"> - <!-- <text>{{item.applyUser}}</text> - <view class="driver"></view> --> - <text>{{item.checkDeptName}}</text> - </view> - <view class="set-line"> - <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} - </view> - <view class="line"></view> - <view class="set-flex set-start set-flex-content-between"> - <view> - <view class="set-line1"> - <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}} - </view> - <view class="set-line1"> - <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} - </view> - </view> - <view class="button" v-if="!isJudege" @click.self="goStartJudeg([item.orderId])"> - 瀹℃壒 - </view> - </view> - </view> - </view> - <u-empty v-if="!list.length" style="margin-top: 200rpx;"></u-empty> - </view> - <view class="down" v-if="!isJudege"> - <view class="button" @click="goRecord">瀹℃壒璁板綍</view> - <view class="button more-options" @click="moreJudeg">鎵归噺瀹℃壒</view> - </view> - <view class="down judge" v-else> - <view class="select-image" @click="allSelect()"> - <image src="/static/policy/checkbox.png" mode="widthFix" v-show="isAllSelect"></image> - <image src="/static/policy/none-checkbox.png" mode="widthFix" v-show="!isAllSelect"></image> - <view class="show-check">鍏ㄩ��</view> - </view> - <view class="button more-options start-option" @click="moreStart">绔嬪嵆瀹℃壒</view> - </view> - <popupCom ref="popup" @entery="entery" @cancel="cancelSelect"></popupCom> - </view> -</template> - -<script> - import popupCom from '@/policy/components/popup.vue' - import { checkLogList, checkUpd } from '@/api/policy.js' - export default { - components: { - popupCom - }, - data() { - return { - isJudege: false, - list: [ - - ], - total: 1, - queryms: { - pageNum: 1, - pageSize: 10, - orderStatus: 1, - isAsc: "desc", - orderByColumn: "apply_time" - }, - recordList: [] - } - }, - computed: { - isAllSelect(){ - if(this.list.length) { - const value = this.list.every(item => item.isSelect) - return value - } else { - return false - } - } - }, - onLoad() { - this.checkLogList() - }, - onReachBottom() { - if(this.total == this.list.length) { - return - } - this.queryms.pageNum++ - this.checkLogList() - }, - methods: { - goRecord() { - uni.navigateTo({ - url: `/policy/translateRecord/translateRecord` - }) - }, - click() { - - }, - goStartJudeg(id) { - this.recordList = id - this.$refs.popup.open() - }, - // 鎵归噺瀹℃壒 - moreJudeg() { - if(!this.list.length){ - return - } - this.isJudege = true - }, - setIsSelect(index){ - if(!this.isJudege) { - return - } - this.list[index].isSelect = !this.list[index].isSelect - }, - allSelect() { - const value = this.isAllSelect - this.list.map(item => item.isSelect = !value) - }, - moreStart() { - const value = this.list.some(item => item.isSelect) - if(value) { - const valueData = this.list.filter(item => item.isSelect).map(item => item.orderId) - // console.log(valueData) - this.goStartJudeg(valueData) - } else { - uni.showToast({ - title: '璇烽�夋嫨瀹℃壒', - icon: 'none' - }) - } - }, - entery(form) { - // 1浼佷笟瀹℃壒锛�2鎵ф硶鍗曞鎵� - checkUpd({...form, ids: this.recordList, checkType: 2}).then(val => { - if(val.data.code == 200) { - uni.showToast({ - title: '瀹℃壒鎴愬姛', - icon: 'none' - }) - } - this.list = [] - this.queryms.pageNum = 1 - this.checkLogList() - this.$refs.popup.close() - this.isJudege = false - }) - - }, - cancelSelect() { - this.isJudege = false - this.list.map(item => item.isSelect = false) - }, - checkLogList() { - checkLogList(this.queryms).then(val => { - val.data.rows.map(item => { - item.isSelect = false - }) - this.list = [...this.list,...val.data.rows ] - this.total = val.data.total - }) - } - } - } -</script> -<style> - page { - background-color: #F4F4F4; - } -</style> -<style lang="scss" scoped> - @import "./translate.scss"; - - /deep/ .u-radio { - margin-right: 84rpx !important; - } - - /deep/ .u-textarea { - background-color: #F4F4F4 !important; - border: none; - } +<template> + <view class="page-box"> + <view class="list"> + <view class="select-box" @click="setIsSelect(index)" v-for="(item,index) in list" :key="index" + :class="{start: isJudege}"> + <view class="select-image" v-if="isJudege"> + <image src="/static/policy/checkbox.png" mode="widthFix" v-show="item.isSelect"></image> + <image src="/static/policy/none-checkbox.png" mode="widthFix" v-show="!item.isSelect"></image> + </view> + <view class="list-item"> + <view class="top-title"> + <text>{{item.enforceReason}}</text> + <text class="status">寰呭鎵�</text> + </view> + <view class="user-info"> + <text>{{item.applyUser}}</text> + <!-- <view class="driver"></view> + <text>{{item.checkDeptName}}</text> --> + </view> + <view class="user-info"> + <!-- <text>{{item.applyUser}}</text> + <view class="driver"></view> --> + <text>{{item.checkDeptName}}</text> + </view> + <view class="set-line"> + <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} + </view> + + <view class="line"></view> + <view class="set-flex set-start set-flex-content-between"> + <view style="width: 75%;"> + <view class="set-line1"> + <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}} + </view> + <view class="set-line1"> + <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} + </view> + <view class="look" v-if="item.show"> + <view class="set-line"> + <text>鎵ф硶涓婚锛�</text>{{item.enforceReason}} + </view> + <view class="set-line"> + <text>妫�鏌ユ柟寮忥細</text>{{handlerType(item.enforceType)}} + </view> + <view class="set-line set-line-flex"> + <text>鎵ф硶鍐呭锛�</text> + <view>{{item.enforceContent}}</view> + </view> + </view> + + </view> + <view class="button" v-if="!isJudege" @click.self="goStartJudeg([item.orderId])"> + 瀹℃壒 + </view> + </view> + <view @click="showItem(item)" class="icon" + style="text-align: center;display: flex;justify-content: center;align-items: center;"> + <u-icon name="arrow-down" color="#bfbfbf" size="20" v-if="!item.show"></u-icon> + <u-icon name="arrow-up" color="#bfbfbf" size="20" v-else></u-icon> + </view> + </view> + </view> + <u-empty v-if="!list.length" style="margin-top: 200rpx;"></u-empty> + </view> + <view class="down" v-if="!isJudege"> + <view class="button" @click="goRecord">瀹℃壒璁板綍</view> + <view class="button more-options" @click="moreJudeg">鎵归噺瀹℃壒</view> + </view> + <view class="down judge" v-else> + <view class="select-image" @click="allSelect()"> + <image src="/static/policy/checkbox.png" mode="widthFix" v-show="isAllSelect"></image> + <image src="/static/policy/none-checkbox.png" mode="widthFix" v-show="!isAllSelect"></image> + <view class="show-check">鍏ㄩ��</view> + </view> + <view class="button more-options start-option" @click="moreStart">绔嬪嵆瀹℃壒</view> + </view> + <popupCom ref="popup" @entery="entery" @cancel="cancelSelect"></popupCom> + </view> +</template> + +<script> + import popupCom from '@/policy/components/popup.vue' + import { + checkLogList, + checkUpd + } from '@/api/policy.js' + import { + getDicts + } from '@/api/data.js' + export default { + components: { + popupCom + }, + data() { + return { + isJudege: false, + list: [ + + ], + total: 1, + queryms: { + pageNum: 1, + pageSize: 10, + orderStatus: 1, + isAsc: "desc", + orderByColumn: "apply_time" + }, + recordList: [], + typeList: [] + } + }, + computed: { + isAllSelect() { + if (this.list.length) { + const value = this.list.every(item => item.isSelect) + return value + } else { + return false + } + } + }, + onLoad() { + this.getDicts() + }, + onReachBottom() { + if (this.total <= this.list.length) { + return + } + this.queryms.pageNum++ + this.checkLogList() + }, + methods: { + showItem(item) { + item.show = !item.show + }, + handlerType(type) { + const value = this.typeList.find(item => item.dictCode == type) + if (value) { + return value.dictLabel + } else { + return '' + } + }, + getDicts(type) { + getDicts('enforce_type').then(val => { + this.typeList = val.data.data + this.checkLogList() + }) + }, + goRecord() { + uni.navigateTo({ + url: `/policy/translateRecord/translateRecord` + }) + }, + click() { + + }, + goStartJudeg(id) { + this.recordList = id + this.$refs.popup.open() + }, + // 鎵归噺瀹℃壒 + moreJudeg() { + if (!this.list.length) { + return + } + this.isJudege = true + }, + setIsSelect(index) { + if (!this.isJudege) { + return + } + this.list[index].isSelect = !this.list[index].isSelect + }, + allSelect() { + const value = this.isAllSelect + this.list.map(item => item.isSelect = !value) + }, + moreStart() { + const value = this.list.some(item => item.isSelect) + if (value) { + const valueData = this.list.filter(item => item.isSelect).map(item => item.orderId) + // console.log(valueData) + this.goStartJudeg(valueData) + } else { + uni.showToast({ + title: '璇烽�夋嫨瀹℃壒', + icon: 'none' + }) + } + }, + entery(form) { + // 1浼佷笟瀹℃壒锛�2鎵ф硶鍗曞鎵� + checkUpd({ + ...form, + ids: this.recordList, + checkType: 2 + }).then(val => { + if (val.data.code == 200) { + uni.showToast({ + title: '瀹℃壒鎴愬姛', + icon: 'none' + }) + } + this.list = [] + this.queryms.pageNum = 1 + this.checkLogList() + this.$refs.popup.close() + this.isJudege = false + }) + + }, + cancelSelect() { + this.isJudege = false + this.list.map(item => item.isSelect = false) + }, + checkLogList() { + checkLogList(this.queryms).then(val => { + val.data.rows.map(item => { + item.isSelect = false + item.show = false + }) + this.list = [...this.list, ...val.data.rows] + this.total = val.data.total + }) + } + } + } +</script> +<style> + page { + background-color: #F4F4F4; + } +</style> +<style lang="scss" scoped> + @import "./translate.scss"; + + ::v-deep .u-radio { + margin-right: 84rpx !important; + } + + ::v-deep .u-textarea { + background-color: #F4F4F4 !important; + border: none; + } + + .set-line-flex { + display: flex; + justify-content: flex-start; + align-items: flex-start; + + text { + width: 28%; + display: inline-block; + } + + &>view { + width: 70%; + } + } </style> \ No newline at end of file -- Gitblit v1.9.1