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 | 521 ++++++++++++++++++++++++++++-----------------------------
1 files changed, 260 insertions(+), 261 deletions(-)
diff --git a/policy/translate/translate.vue b/policy/translate/translate.vue
index 6f7e592..9ab73d3 100644
--- a/policy/translate/translate.vue
+++ b/policy/translate/translate.vue
@@ -1,262 +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 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%;
- }
- }
+<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