From b5f084460e9e639358fbf91056a86be8d0a5c4b2 Mon Sep 17 00:00:00 2001
From: yaolonglong <yaolonglong15@163.com>
Date: 星期四, 09 十月 2025 20:18:57 +0800
Subject: [PATCH] 获取验证码功能
---
qiye/complaint/details.vue | 809 +++++++++++++++++++++++++++++++++------------------------
1 files changed, 468 insertions(+), 341 deletions(-)
diff --git a/qiye/complaint/details.vue b/qiye/complaint/details.vue
index dac18d2..02c90df 100644
--- a/qiye/complaint/details.vue
+++ b/qiye/complaint/details.vue
@@ -1,342 +1,469 @@
-<template>
- <view>
- <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
- <template slot="center">
- <view style="color: white;">鎶曡瘔璁板綍</view>
- </template>
- </u-navbar>
- <view class="donw-box"></view>
- <view class="page-main">
- <view class="title">
- <template v-if="msg.orderStatus>2&&msg.isEva==0">宸叉墽娉曞緟璇勪环</template>
- <template v-if="msg.orderStatus>2&&msg.isEva==1">宸茶瘎浠�</template>
- <template v-if="msg.orderStatus==2">寰呮墽娉�</template>
- </view>
- <view class="wbox">
- <view class="item">
- <view class="k">
- 鎵ф硶绫诲瀷
- </view>
- <view class="v">
- {{type}}
- </view>
- </view>
- <view class="item">
- <view class="k">
- 鎵ф硶浜�
- </view>
- <view class="v">
- {{msg.executeUser}}
- </view>
- </view>
- <view class="item">
- <view class="k">
- 鎵ф硶閮ㄩ棬
- </view>
- <view class="v">
- {{msg.executeDeptName}}
- </view>
- </view>
- <view class="item">
- <view class="k">
- 浼佷笟
- </view>
- <view class="v">
- {{msg.companyName}}
- </view>
- </view>
- </view>
- <view style="height: 20rpx;"></view>
- <view class="wbox">
- <view class="item">
- <view class="k">
- 鎵ф硶涓婚
- </view>
- <view class="v">
- {{msg.enforceReason}}
- </view>
- </view>
- <view class="item">
- <view class="k">
- 鎵ф硶杩囩▼
- </view>
- </view>
- <view class="imgbox">
- <img v-for="(item,index) in img" :key="index" :src="item" class="more" alt="" @click="imgclick(item)" />
-
- <!-- <img src="/static/i01.png" class="more" @click="imgclick('/static/i01.png')" alt="" />
- <img src="/static/i02.png" class="more" alt="" />
- <img src="/static/i03.png" class="more" alt="" />
- <img src="/static/i04.png" class="more" alt="" /> -->
- </view>
- <view class="item">
- <view class="k">
- 鎵ф硶缁撴灉
- </view>
- <view class="v" style="color: #EB4746;">
- {{msg.regionReason}}
- </view>
- </view>
- <view class="item">
- <view class="k">
- 鎵ф硶鏃堕棿
- </view>
- <view class="v">
- {{msg.executeTime}}
- </view>
- </view>
- </view>
- <view style="height: 20rpx;"></view>
- <view class="wbox2">
- <view class="t">
- 鎶曡瘔璁板綍
- </view>
- <view class="jilu" v-for="(item,index) in tousulist">
- <img src="/static/policy/icon.png" class="img" alt="" />
- <view class="font">
- <view class="h">
- <view class="s">
- {{item.nodeName}}
- </view>
- <view class="time">
- {{item.nodeTime}}
- </view>
- </view>
- <view class="b">
- <view class="name">
- {{item.nodeUser}}
- </view>
- <view class="p">
- <span>鐢宠瘔涓婚锛�</span>
-
- </view>
- <view class="p">
- <span>鐢宠瘔鍐呭锛�</span>
- {{item.nodeReason}}
-
- </view>
- </view>
- </view>
- </view>
- <!-- <view class="jilu">
- <img src="/static/policy/refject.png" class="img" alt="" />
- <view class="font">
- <view class="h">
- <view class="s">
- 宸查┏鍥�
- </view>
- <view class="time">
- 2024-06-07 12:14
- </view>
- </view>
- <view class="b">
- <view class="name">
- 鏋楀皬闆�
- </view>
- <view class="p">
- <span>鐢宠瘔涓婚锛�</span>
- 姹夊涵閰掑簵鍙告硶妫�鏌�233鍙锋枃浠�
- </view>
- <view class="p">
- <span>鐢宠瘔鍐呭锛�</span>
- 鎴戞槸涓�涓唴瀹癸紱鎴戞槸涓�涓唴瀹癸紱鎴戞槸涓�涓唴瀹癸紱鎴戞槸涓�涓唴瀹�
- </view>
- </view>
- </view>
- </view> -->
- </view>
- </view>
-
- </view>
-</template>
-
-<script>
- import { complaint } from '@/api/qiye.js'
- import { config } from '@/common/config'
- import { order } from '@/api/index.js'
- import { getDicts } from '@/api/data.js'
-
- export default {
- data() {
- return {
- id:'',
- msg:{},
- type:'',
- img:[],
- baseUrl: config.baseUrl,
- orderId:'',
- tousulist:[]
- }
- },
- onLoad(options) {
- this.id = options.id
- this.orderId = options.orderId
- order(this.orderId).then(val => {
- this.msg = val.data.data
- let arr = this.msg.regionImgs.split(",");
- for(let i = 0;i<arr.length;i++){
- this.img.push(this.baseUrl+arr[i])
- }
-
- console.log(this.img)
- getDicts('enforce_type').then(val => {
- const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
- this.type = value.dictLabel
- })
- })
- complaint({orderId:this.orderId}).then(val => {
- this.tousulist = val.data.data
- // this.msg = val.data.data
- // let arr = this.msg.regionImgs.split(",");
- // for(let i = 0;i<arr.length;i++){
- // this.img.push(this.baseUrl+arr[i])
- // }
-
- // getDicts('enforce_type').then(val => {
- // const value = val.data.data.find(item => item.dictCode == this.msg.enforceType)
- // this.type = value.dictLabel
- // })
- })
- },
- methods: {
- imgclick(url) {
- uni.previewImage({
- urls: [url]
- })
- },
- }
- }
-</script>
-
-<style>
- page {
- background: #F4F4F4;
- }
-</style>
-<style lang="scss" scoped>
- .page-main {
- position: relative;
- top: -380rpx;
- }
-
- .donw-box {
- width: 100%;
- height: 380rpx;
- flex-shrink: 0;
- background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
- }
- .wbox {
- background: #fff;
- border-radius: 5px;
- padding: 24rpx;
- box-sizing: border-box;
- margin: 0 32rpx;
-
- .item {
- display: flex;
- margin-bottom: 20rpx;
- font-size: 30rpx;
-
- .k {
- color: #7E8596;
- width: 30%;
-
- }
-
- .v {
- color: #202D44;
- width: 70%;
-
- }
- }
-
- .item:last-child {
- margin-bottom: 0;
- }
-
- .imgbox {
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
- border-radius: 10rpx;
-
- img {
- width: 198rpx;
- height: 198rpx;
- margin-bottom: 20rpx;
-
- }
- }
- }
- .title {
- color: #ffffff;
- font-size: 44rpx;
- font-weight: bold;
- padding-left: 32rpx;
- margin-top: 24rpx;
- margin-bottom: 24rpx;
-
- }
-
- .wbox2 {
- background: #fff;
- border-radius: 5px;
- box-sizing: border-box;
- margin: 0 32rpx;
-
- .t {
- padding: 24rpx;
- border-bottom: 1px solid #EEEEEE;
- color: #202d44;
- font-size: 36rpx;
- font-weight: bold;
- }
-
- }
- .jilu{
- display: flex;
- justify-content: space-between;
- padding: 24rpx;
- .img{
- width: 40rpx;
- height: 40rpx;
- margin-right: 24rpx;
- }
- .font{
- width: 90%;
- .h{
- display: flex;
- justify-content: space-between;
- margin-bottom: 20rpx;
- .s{
- color: #202d44;
- font-size: 32rpx;
- }
- .time{
- color: #7e8596;
- font-size: 24rpx;
- }
- }
- .b{
- // width: 289px;
- // height: 111px;
- // flex-shrink: 0;
- border-radius: 4px;
- background: #F6F6F6;
- padding: 24rpx;
- .name{
- color: #202d44;
- font-size: 32rpx;
- }
- .p{
- color: #202d44;
- font-size: 26rpx;
- span{
- color: #666666;
-
- }
- }
- }
- }
- }
+<template>
+ <view>
+ <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true">
+ <template slot="center">
+ <view style="color: white;">鎶曡瘔璁板綍</view>
+ </template>
+ </u-navbar>
+ <view class="donw-box"></view>
+ <view class="page-main">
+ <view class="title">
+ <template v-if="msg.orderStatus>2&&msg.isEva==0">宸叉墽娉曞緟璇勪环</template>
+ <template v-if="msg.orderStatus>2&&msg.isEva==1">宸茶瘎浠�</template>
+ <template v-if="msg.orderStatus==2">寰呮墽娉�</template>
+ </view>
+ <view class="wbox">
+ <view class="item" v-if="dictLabel">
+ <view class="k">
+ 妫�鏌ユ柟寮�
+ </view>
+ <view class="v">
+ {{dictLabel}}
+ </view>
+ </view>
+ <view class="item" v-if="details.executeUser">
+ <view class="k">
+ 鎵ф硶浜�
+ </view>
+ <view class="v">
+ {{details.executeUser}}
+ </view>
+ </view>
+ <view class="item">
+ <view class="k">
+ 鎵ф硶閮ㄩ棬
+ </view>
+ <view class="v">
+ {{details.executeDeptName}}
+ </view>
+ </view>
+ <view class="item">
+ <view class="k">
+ 浼佷笟
+ </view>
+ <view class="v">
+ {{details.companyName}}
+ </view>
+ </view>
+ </view>
+ <view style="height: 20rpx;"></view>
+ <template v-if="orderId">
+ <view class="wbox">
+ <view class="item">
+ <view class="k">
+ 鎵ф硶涓婚
+ </view>
+ <view class="v">
+ {{details.enforceReason}}
+ </view>
+ </view>
+ <view class="item">
+ <view class="k">
+ 鎵ф硶杩囩▼
+ </view>
+ </view>
+ <view class="imgbox">
+ <img :src="baseUrl+item" v-for="(item,index) in orderDetailsMsg.regionImgs" :key="index" class="more"
+ @click="imgclick(item)" alt="" />
+
+ </view>
+ <view class="item">
+ <view class="k">
+ 鎵ф硶缁撴灉
+ </view>
+ <view class="v" style="color: #EB4746;">
+ <!-- {{details.regionStatus == 0? "姝e父" : "鍋滀笟鏁撮】" }} -->
+ {{orderDetailsMsg.regionReason}}
+ </view>
+ </view>
+ <view class="item">
+ <view class="k">
+ 鎵ф硶鏃堕棿
+ </view>
+ <view class="v">
+ {{details.executeTime}}
+ </view>
+ </view>
+ </view>
+ <view style="height: 20rpx;"></view>
+ </template>
+ <view class="wbox2">
+ <view class="t">
+ 鎶曡瘔璁板綍
+ </view>
+ <view class="jilu"
+ :class="{start: item.nodeName == '鍙戣捣鎶曡瘔' || item.nodeName == '宸插姙缁�', handler: item.nodeName == '澶勭悊涓�', nonde: index == nodeList.length - 1}"
+ v-for="(item,index) in nodeList" :key="index">
+ <image src="/static/policy/icon.png" class="img" alt="" mode="widthFix"
+ v-if="item.nodeName == '鍙戣捣鎶曡瘔' || item.nodeName == '鍙戣捣璇夋眰'" />
+ <image src="/static/guocheng.png" class="img" alt="" mode="widthFix" v-if="item.nodeName == '澶勭悊涓�'" />
+ <image src="/static/policy/refject.png" class="img" mode="widthFix" alt="" v-if="item.nodeName == '宸查┏鍥�'" />
+ <image src="/static/policy/icon.png" class="img" alt="" mode="widthFix" v-if="item.nodeName == '宸插姙缁�'" />
+ <view class="font" style="width: calc(100% - 50rpx);">
+ <view class="h">
+ <view class="s">
+ {{item.nodeName}}
+ </view>
+ <view class="time">
+ {{item.nodeTime}}
+ </view>
+ </view>
+ <view class="b">
+ <view class="name" style="margin-bottom: 18rpx;">
+ {{item.nodeUser}}
+ </view>
+ <view class="p" style="margin-bottom: 18rpx;">
+ <span>鐢宠瘔涓婚锛�</span>
+ {{dictLabel1}}
+ </view>
+ <view class="p" style="margin-bottom: 18rpx;">
+ <span>鐢宠瘔鍐呭锛�</span>
+ {{details.complaintReason}}
+ </view>
+ <view class="p" v-if="item.nodeName == '宸查┏鍥�'">
+ <span>椹冲洖鍘熷洜锛�</span>
+ {{item.nodeReason}}
+ </view>
+ <view class="p" v-if="item.nodeName == '宸插姙缁�' && item.nodeReason">
+ <span>鍔炵粨缁撴灉锛�</span>
+ {{item.nodeReason}}
+ </view>
+ </view>
+ </view>
+ </view>
+ <!-- <view class="jilu">
+ <image src="/static/policy/refject.png" class="img" alt="" />
+ <view class="font">
+ <view class="h">
+ <view class="s">
+ {{item.nodeName}}
+ </view>
+ <view class="time">
+ {{item.nodeTime}}
+ </view>
+ </view>
+ <view class="b">
+ <view class="name">
+ {{details.companyUser}}
+ </view>
+ <view class="p">
+ <span>鐢宠瘔涓婚锛�</span>
+ {{dictLabel1}}
+ </view>
+ <view class="p">
+ <span>鐢宠瘔鍐呭锛�</span>
+ {{details.complaintReason}}
+ </view>
+ </view>
+ </view>
+ </view>
+ <view class="jilu">
+ <image src="/static/guocheng.png" class="img" alt="" />
+ <view class="font">
+ <view class="h">
+ <view class="s">
+ 澶勭悊涓�
+ </view>
+ <view class="time">
+ 2024-06-07 12:14
+ </view>
+ </view>
+ <view class="b">
+ <view class="name">
+ {{details.companyUser}}
+ </view>
+ <view class="p">
+ <span>鐢宠瘔涓婚锛�</span>
+ {{dictLabel1}}
+ </view>
+ <view class="p">
+ <span>鐢宠瘔鍐呭锛�</span>
+ {{details.complaintReason}}
+ </view>
+ </view>
+ </view>
+ </view>
+ -->
+ </view>
+ </view>
+
+ </view>
+</template>
+
+<script>
+ import {
+ complaintDetails,
+ orderNodeList,
+ orderComplaintNodeList
+ } from '@/api/qiye.js'
+ import {
+ orderDetails,
+ orderDetailsLog
+ } from '@/api/policy.js'
+ import {
+ config
+ } from '@/common/config.js'
+ import {
+ getDicts
+ } from '@/api/data.js'
+ export default {
+ data() {
+ return {
+ details: {},
+ orderId: "",
+ orderDetailsMsg: {},
+ baseUrl: config.baseUrl,
+ dictLabel: "",
+ dictLabel1: "",
+ nodeList: []
+ }
+ },
+ onLoad(options) {
+ this.complaint(options.id)
+ if (options.orderId && options.orderId !== 'null') {
+ this.orderId = options.orderId
+ this.orderDetails()
+ } else {
+ this.orderNodeList(options.id)
+ }
+ },
+ methods: {
+ orderNodeList(id) {
+ orderNodeList({
+ id
+ }).then(val => {
+ // console.log(val)
+ this.nodeList = val.data.data
+ })
+ },
+ // 鑾峰彇鎶曡瘔绫诲瀷
+ getComtype() {
+ getDicts('complaint_type').then(val => {
+ this.dictLabel1 = val.data.data.find(item => item.dictCode == this.details.complaintType).dictLabel
+
+ })
+ },
+ enforceType() {
+ getDicts('enforce_type').then(val => {
+ console.log(val)
+ this.dictLabel = val.data.data.find(item => item.dictCode == this.orderDetailsMsg.enforceType).dictLabel
+
+ })
+ },
+ imgclick(url) {
+ url = this.baseUrl + url
+ uni.previewImage({
+ urls: [url]
+ })
+ },
+ complaint(details) {
+ complaintDetails(details).then(val => {
+ // console.log(val.data.data)
+ this.details = val.data.data
+ this.getComtype()
+ })
+ },
+ orderDetails() {
+ orderDetails({
+ orderId: this.orderId
+ }).then(val => {
+ // console.log(val.data.data)
+ val.data.data.regionImgs = val.data.data.regionImgs.split(",")
+ this.orderDetailsMsg = val.data.data
+ if (this.orderId) {
+ this.orderComplaintNodeList()
+ }
+ this.enforceType()
+ })
+ },
+ orderComplaintNodeList() {
+ orderComplaintNodeList({
+ orderId: this.orderId
+ }).then(val => {
+ console.log(val.data.data, 'val===')
+ this.nodeList = val.data.data
+ })
+ }
+ }
+ }
+</script>
+
+<style>
+ page {
+ background: #F4F4F4;
+ }
+</style>
+<style lang="scss" scoped>
+ .page-main {
+ position: relative;
+ top: -380rpx;
+ }
+
+ .donw-box {
+ width: 100%;
+ height: 380rpx;
+ flex-shrink: 0;
+ background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
+ }
+
+ .wbox {
+ background: #fff;
+ border-radius: 5px;
+ padding: 24rpx;
+ box-sizing: border-box;
+ margin: 0 32rpx;
+
+ .item {
+ display: flex;
+ margin-bottom: 20rpx;
+ font-size: 30rpx;
+
+ .k {
+ color: #7E8596;
+ width: 30%;
+
+ }
+
+ .v {
+ color: #202D44;
+ width: 70%;
+
+ }
+ }
+
+ .item:last-child {
+ margin-bottom: 0;
+ }
+
+ .imgbox {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ border-radius: 10rpx;
+
+ img {
+ width: 198rpx;
+ height: 198rpx;
+ margin-bottom: 20rpx;
+
+ }
+ }
+ }
+
+ .title {
+ color: #ffffff;
+ font-size: 44rpx;
+ font-weight: bold;
+ padding-left: 32rpx;
+ margin-top: 24rpx;
+ margin-bottom: 24rpx;
+
+ }
+
+ .wbox2 {
+ background: #fff;
+ border-radius: 5px;
+ box-sizing: border-box;
+ margin: 0 32rpx;
+ position: relative;
+ z-index: 10;
+
+ .t {
+ padding: 24rpx;
+ border-bottom: 1px solid #EEEEEE;
+ color: #202d44;
+ font-size: 36rpx;
+ font-weight: bold;
+ }
+
+ }
+
+ .jilu {
+ display: flex;
+ justify-content: space-between;
+ padding: 24rpx;
+ position: relative;
+
+ &::before {
+ content: '';
+ display: inline-block;
+ width: 2rpx;
+ height: 100%;
+ background: #eb47460d;
+ position: absolute;
+ left: 44rpx;
+ top: 30rpx;
+ z-index: 99;
+ }
+
+ .img {
+ width: 50rpx;
+ height: 50rpx;
+ margin-right: 24rpx;
+ position: relative;
+ z-index: 100;
+ }
+
+ .font {
+ width: calc(100% - 70rpx);
+
+ .h {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 20rpx;
+
+ .s {
+ color: #202d44;
+ font-size: 32rpx;
+ }
+
+ .time {
+ color: #7e8596;
+ font-size: 24rpx;
+ }
+ }
+
+ .b {
+ // width: 289px;
+ // height: 111px;
+ // flex-shrink: 0;
+ border-radius: 4px;
+ background: #F6F6F6;
+ padding: 24rpx;
+
+ .name {
+ color: #202d44;
+ font-size: 32rpx;
+ }
+
+ .p {
+ color: #202d44;
+ font-size: 26rpx;
+
+ span {
+ color: #666666;
+
+ }
+ }
+ }
+ }
+ }
+
+ .handler {
+ &::before {
+ background: #fe7b320d;
+ }
+ }
+
+ .start {
+ &::before {
+ background: #E7F8F0;
+ }
+ }
+
+ .nonde {
+ &::before {
+ background: none;
+ }
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.1