From 244d89b41c0e0e995d38f635a126a0959b9ba25b Mon Sep 17 00:00:00 2001 From: wjt <1797368093@qq.com> Date: 星期二, 25 六月 2024 18:16:42 +0800 Subject: [PATCH] 问题处理 --- qiye/qiyeIndex/qiyeIndex.vue | 46 + policy/reportRecord/reportRecord.vue | 7 policy/components/index.vue | 4 uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue | 11 policy/translateRecord/translateRecord.vue | 22 qiye/complaint/details.vue | 296 ++++++-- qiye/record/evaluate.vue | 2 policy/judgeApply/judgeApply.vue | 252 ++++++++ api/qiye.js | 14 policy/judgeApply/judgeApply.scss | 123 +++ common/config.js | 34 policy/reportRecord/reportRecord.scss | 1 policy/components/tabs.vue | 18 policy/policyApply/perPicker.vue | 118 +++ qiye/record/record.vue | 425 +++++++------ App.vue | 3 policy/reportDetails/reportDetails.vue | 2 common/upload.js | 2 policy/dataLook/dataLook.scss | 6 policy/policyApply/policyApply.vue | 108 +- pages/companyLogin/companyLogin.vue | 4 policy/components/popup.vue | 2 policy/applyRecordDetails/applyRecordDetails.vue | 40 pages/index/index.vue | 29 policy/applyRecord/applyRecord.vue | 40 pages.json | 15 qiye/complaint/complaint.vue | 13 policy/dataLook/dataLook.vue | 76 +- policy/translate/translate.vue | 15 policy/reportPage/reportPage.scss | 1 policy/scodePage/scodePage.vue | 13 qiye/record/details.vue | 45 policy/components/mine.vue | 2 policy/applyRecordDetails/applyRecordDetails.scss | 20 static/guocheng.png | 0 policy/components/upload.vue | 9 qiye/components/bottom.vue | 8 qiye/my/my.vue | 21 38 files changed, 1,324 insertions(+), 523 deletions(-) diff --git a/App.vue b/App.vue index af53386..783b76a 100644 --- a/App.vue +++ b/App.vue @@ -71,4 +71,7 @@ /*姣忎釜椤甸潰鍏叡css */ @import "@/uni_modules/uview-ui/index.scss"; @import "@/common/scss/public.scss"; + .u-empty{ + margin-top: 340rpx !important; + } </style> \ No newline at end of file diff --git a/api/qiye.js b/api/qiye.js index ccd8812..d61ba87 100644 --- a/api/qiye.js +++ b/api/qiye.js @@ -31,4 +31,18 @@ // 鎶曡瘔璇︽儏 export function complaint(id){ return http.get('/enforce/complaint/'+id, { custom: { loading: true }}); +} +// /enforce/complaint/log/ +export function complaintDetails(id){ + return http.get('/enforce/complaint/log/'+id, { custom: { loading: true }}); +} + +// /enforce/order/orderComplaintNodeList 鎶曡瘔鍗曡妭鐐� + +export function orderComplaintNodeList(data){ + return http.get('/enforce/order/orderComplaintNodeList',{params: data}, { custom: { loading: true }}); +} +// 鏃爋rderid +export function orderNodeList(data){ + return http.get('/enforce/complaint/log/orderNodeList',{params: data}, { custom: { loading: true }}); } \ No newline at end of file diff --git a/common/config.js b/common/config.js index 04338d0..c171ea5 100644 --- a/common/config.js +++ b/common/config.js @@ -3,14 +3,14 @@ hasHead: true, authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=', webURL: 'https://jmy.jinmingyuan.com/ecosphere-user', - serverTempl:"http://172.16.61.34:8089", + serverTempl:"http://172.16.61.31:8089", socketTempl:"wss://yqzx.jinmingyuan.com/wsPerCode", h5Temp:"https://yqzx.jinmingyuan.com/ecosphere-h5", - serverUrl: 'http://172.16.61.34:8089', - h5Url: 'http://172.16.61.34:8089/service-merchant', + serverUrl: 'http://172.16.61.31:8089', + h5Url: 'http://172.16.61.31:8089/service-merchant', ftpUrl: 'https://yqzx.jinmingyuan.com/file', // ftpUrl: 'https://echftp.jinmingyuan.com', - baseUrl: 'http://172.16.61.34:8089', + baseUrl: 'http://172.16.61.31:8089', wx_appid: 'wxad8cc511da676bd4', ali_appid: '2021003199690698' } @@ -18,32 +18,18 @@ const prod = { authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=', webURL: 'https://jmy.jinmingyuan.com/ecosphere-user', - serverTempl:"https://yqzx.jinmingyuan.com", + serverTempl:"https://jmy.jinmingyuan.com", socketTempl:"wss://yqzx.jinmingyuan.com/wsPerCode", - h5Temp:"https://yqzx.jinmingyuan.com/ecosphere-h5", - serverUrl: 'https://yqzx.jinmingyuan.com/service-shop', - h5Url: 'https://yqzx.jinmingyuan.com/service-merchant', - ftpUrl: 'https://yqzx.jinmingyuan.com/file', + h5Temp:"https://jmy.jinmingyuan.com/ecosphere-h5", + serverUrl: 'https://jmy.jinmingyuan.com/prod-api', + h5Url: 'https://jmy.jinmingyuan.com/service-merchant', + ftpUrl: 'https://jmy.jinmingyuan.com/file', // ftpUrl: 'https://echftp.jinmingyuan.com', - baseUrl: 'https://yqzx.jinmingyuan.com', + baseUrl: 'https://jmy.jinmingyuan.com/prod-api', wx_appid: 'wxad8cc511da676bd4', ali_appid: '2021003199690698' } -const ayprod = { - authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=', - webURL: 'https://ayecosphere.aysnsh.com/ecosphere-user', - serverTempl:"https://ayecosphere.aysnsh.com", - socketTempl:"wss://ayecosphere.aysnsh.com/wsPerCode", - h5Temp:"https://ayecosphere.aysnsh.com/ecosphere-h5", - serverUrl: 'https://ayecosphere.aysnsh.com/service-shop', - h5Url: 'https://ayecosphere.aysnsh.com/service-merchant', - ftpUrl: 'https://ayecosphere.aysnsh.com/service-base/ossFile', - // ftpUrl: 'https://echftp.jinmingyuan.com', - baseUrl: 'https://ayecosphere.aysnsh.com', - wx_appid: 'wxd81ee034e03873b1', - ali_appid:'2021004122689522' -} module.exports = { kefuTel: '15824668510', diff --git a/common/upload.js b/common/upload.js index 4d44e33..199e747 100644 --- a/common/upload.js +++ b/common/upload.js @@ -2,7 +2,7 @@ export const upload = (file) => { return new Promise((resolve,refject) => { uni.uploadFile({ - url: config.baseUrl + '/tool/file/upload', + url: config.serverUrl + '/tool/file/upload', filePath: file, name: 'file', success: val => { diff --git a/pages.json b/pages.json index 22845e7..2894a5e 100644 --- a/pages.json +++ b/pages.json @@ -100,7 +100,7 @@ "style" : { "navigationBarTitleText" : "鏁版嵁鐪嬫澘", - "navigationStyle": "custom" + "backgroundColor": "#1171E0" } }, { @@ -128,7 +128,7 @@ "path" : "applyRecord/applyRecord", "style" : { - "navigationBarTitleText" : "鐢宠璁板綍" + "navigationBarTitleText" : "璁板綍鏌ヨ" } }, { @@ -160,6 +160,14 @@ "navigationBarTitleText" : "", "navigationStyle": "custom" } + }, + { + "path" : "judgeApply/judgeApply", + "style" : + { + "navigationBarTitleText" : "瀹℃壒璇︽儏", + "navigationStyle": "custom" + } } ] }, @@ -186,7 +194,8 @@ "path" : "record/record", "style" : { - "navigationBarTitleText" : "鎵ф硶璁板綍" + "navigationBarTitleText" : "鎵ф硶璁板綍", + "navigationStyle": "custom" } }, { diff --git a/pages/companyLogin/companyLogin.vue b/pages/companyLogin/companyLogin.vue index 9bb819d..b6f8889 100644 --- a/pages/companyLogin/companyLogin.vue +++ b/pages/companyLogin/companyLogin.vue @@ -165,11 +165,11 @@ uni.setStorageSync('userInfo', val.data.data) if(this.form.userType == '02') { uni.reLaunch({ - url:`/qiye/qiyeIndex/qiyeIndex` + url:`/qiye/qiyeIndex/qiyeIndex?id=${val.data.data.deptId}` }) } else if(this.form.userType == '01'){ uni.reLaunch({ - url:`/policy/policyIndex/policyIndex?id=${val.data.data.deptId}` + url:`/policy/policyIndex/policyIndex` }) } else { uni.reLaunch({ diff --git a/pages/index/index.vue b/pages/index/index.vue index 6cd2b5b..b97cb8d 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,15 +1,15 @@ <template> <view> <img src="/static/head.png" class="head" alt="" /> - <view class="hqzc"> + <view class="hqzc" @click="more1()"> <img src="/static/hqzc.png" class="img" alt="" /> <view class="line"></view> <view class="font"> - <p v-for="(item,index) in list1" :key="index">{{item.docTitle}}</p> + <p v-for="(item,index) in list1" :key="index" class="u-line-1">{{item.docTitle}}</p> <!-- <p>娴峰叧鎬荤讲璐告槗鎸佺画鍙戝睍2024骞寸珛娉�...</p> <p>鍥藉鍖荤枟淇濋殰灞�鍔炲叕瀹ゅ叧浜庡彂甯冪鐞�... </p> --> </view> - <img src="/static/i06.png" class="more" @click="more1()" alt="" /> + <img src="/static/i06.png" class="more" alt="" /> </view> <view class="btnbox"> <img src="/static/i01.png" class="more" alt="" style="margin-right: 18rpx;" @click="goMyCompany('01')"/> @@ -125,9 +125,28 @@ // 00钀ュ晢鍔�,01鎵ф硶,02浼佷笟 鍖哄垎涓嶅悓鐨勭櫥闄嗛〉闈� export default { onLoad() { + }, onShow() { this.getInfo() + const value = uni.getStorageSync("userInfo") + const sessionToken = uni.getStorageSync('sessionToken') + if(sessionToken && value && value.userType) { + const qiyeData = uni.getStorageSync('qiyedata') + if(value.userType == '02') { + uni.reLaunch({ + url:`/qiye/qiyeIndex/qiyeIndex?id=${qiyeData.deptId}` + }) + } else if(value.userType == '01'){ + uni.reLaunch({ + url:`/policy/policyIndex/policyIndex` + }) + } else { + uni.reLaunch({ + url:`/policy/policyIndex/policyIndex` + }) + } + } }, data() { return { @@ -192,6 +211,7 @@ top: 500rpx; padding: 24rpx; box-sizing: border-box; + .line{ width: 2rpx; height: 50rpx; @@ -212,7 +232,8 @@ color: #4A4E60; margin-right: 50rpx; width: 450rpx; - text-align: center; + // text-align: center; + text-align: left; } } .btnbox{ diff --git a/policy/applyRecord/applyRecord.vue b/policy/applyRecord/applyRecord.vue index 39f515a..c723980 100644 --- a/policy/applyRecord/applyRecord.vue +++ b/policy/applyRecord/applyRecord.vue @@ -1,17 +1,18 @@ <template> <view class="page-box"> - <u-sticky bgColor="white"> + <u-sticky bgColor="white" :offsetTop="0" style=" position: -webkit-sticky;"> <view class="set-search"> <u-search placeholder="璇疯緭鍏ョ敵璇疯褰曞叧閿瘝 " @search="search" @blur="search" shape="square" :showAction="false"></u-search> </view> <view class="border"></view> - <u-tabs :list="list1" @click="click" :current="current" :scrollable="false" bgColor="white"></u-tabs> + <u-tabs :list="list1" @click="click" :current="current" :scrollable="true" bgColor="white"></u-tabs> </u-sticky> <view class="list"> <view class="list-item" @click="goReport(item.orderId)" v-for="(item,index) in dataList" :key="index"> <view class="top-title"> <text>{{item.enforceReason}}</text> - <text class="status">{{mapStatus[item.orderStatus]}}</text> + <text class="status" v-if="item.checkStatus != -1" :class="{status1: item.orderStatus == 1,status2: item.orderStatus == 2,status3: item.orderStatus == 3,status4: item.orderStatus == 4}">{{mapStatus[item.orderStatus]}}</text> + <text class="status status4" v-else >宸叉嫆缁�</text> </view> <view class="user-info"> <text>{{item.applyUser}}</text> @@ -31,7 +32,6 @@ <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} </view> </view> - </view> </view> <u-empty v-if="!dataList.length"></u-empty> @@ -47,26 +47,39 @@ current: 0, list1: [{ name: '鍏ㄩ儴', - value: '' + value: {} }, { name: '寰呭鎵�', - value: 1 + value: { + orderStatus: 1, + checkStatus: 0 + } }, { name: '寰呮墽琛�', - value: 2 + value: { + orderStatus: 2 + } }, { name: '寰呬笂鎶�', - value: 3 + value: { + orderStatus: 3 + } }, { name: '宸叉嫆缁�', - value: -1 + value: { + checkStatus: -1 + } }, { name: '宸茬粨鏉�', - value: 4 + value: { + orderStatus: 4 + } }], queryParams: { pageNum: 1, - pageSize: 10 + pageSize: 10, + isAsc: "desc", + orderByColumn: "apply_time" }, total: 1, dataList: [], @@ -102,7 +115,7 @@ this.orderList() }, orderList() { - orderList({...this.queryParams, orderStatus: this.list1[this.current].value}).then(val => { + orderList({...this.queryParams, ...this.list1[this.current].value}).then(val => { this.total = val.data.total this.dataList = [...this.dataList,...val.data.rows] }) @@ -123,4 +136,7 @@ </style> <style lang="scss" scoped> @import "./applyRecord.scss"; + /deep/ .u-sticky{ + position: -webkit-sticky; + } </style> \ No newline at end of file diff --git a/policy/applyRecordDetails/applyRecordDetails.scss b/policy/applyRecordDetails/applyRecordDetails.scss index 8d98922..0ed415d 100644 --- a/policy/applyRecordDetails/applyRecordDetails.scss +++ b/policy/applyRecordDetails/applyRecordDetails.scss @@ -9,8 +9,9 @@ .status{ color: white; margin: 20rpx 32rpx; - font-size: 36rpx; + font-size: 44rpx; margin-bottom: 24rpx; + font-weight: 700; } .base-card{ margin: 20rpx 32rpx; @@ -60,6 +61,7 @@ image{ width: 100%; height: 220rpx; + border: 2rpx solid gray; } } .view-step{ @@ -68,7 +70,7 @@ .step-content{ position: relative; padding-left: 64rpx; - height: 100rpx; + // height: 100rpx; padding-bottom: 64rpx; &::before{ content: ''; @@ -84,23 +86,25 @@ left: 0; width: 40rpx; height: 40rpx; + top: 0; } .top-title{ font-size: 32rpx; color: #202D44; margin-bottom: 16rpx; + line-height: 30rpx; } .down-tips{ color: #7E8596; - display: flex; - justify-content: flex-start; - align-items: center; + // display: flex; + // justify-content: flex-start; + // align-items: center; .time{ - margin-left: 32rpx; - width: 58%; + // margin-left: 32rpx; + // width: 60%; } .submit-per{ - width: 42%; + // width: 40%; } text{ color: #4A4E60; diff --git a/policy/applyRecordDetails/applyRecordDetails.vue b/policy/applyRecordDetails/applyRecordDetails.vue index 45668b8..53d25ab 100644 --- a/policy/applyRecordDetails/applyRecordDetails.vue +++ b/policy/applyRecordDetails/applyRecordDetails.vue @@ -32,7 +32,7 @@ <view>{{typeList}}</view> </view> - <view v-if="!details.executeUser"> + <template v-if="!details.executeUser"> <view class="view-form-item"> <view class="label">鎵ф硶浜哄憳</view> <view>{{details.applyUser}}</view> @@ -41,8 +41,8 @@ <view class="label">鎵ф硶閮ㄩ棬</view> <view>{{details.applyDeptName}}</view> </view> - </view> - <view v-else> + </template> + <template v-else> <view class="view-form-item"> <view class="label">鎵ф硶浜哄憳</view> <view>{{details.executeUser}}</view> @@ -51,11 +51,11 @@ <view class="label">鎵ф硶閮ㄩ棬</view> <view>{{details.executeDeptName}}</view> </view> - </view> - <view class="view-form-item" style="margin-top: 20rpx;"> + </template> + <view class="view-form-item" > <view class="label">闅忚浜哄憳</view> <view> - <view style="margin-bottom: 20rpx;"v-for="(item,index) in details.peers" :key="index"> + <view v-for="(item,index) in details.peers" :key="index"> {{item.peerUser}}({{item.peerDeptName}}) </view> </view> @@ -79,10 +79,10 @@ <text>鎵ф硶鍐呭</text> </view> <view class="view-content"> - {{ details.regionReason }} + {{ details.enforceContent }} </view> </view> - <view class="base-card" v-if="judgeDetails.length"> + <!-- <view class="base-card" v-if="judgeDetails.length"> <view class="title"> <text>瀹℃壒鎯呭喌</text> </view> @@ -107,14 +107,13 @@ </view> </view> </view> - </view> - <view class="base-card" v-if="details.orderStatus == 3 || details.orderStatus == 4"> + </view> --> + <view class="base-card" v-if="(details.orderStatus == 3 || details.orderStatus == 4) && details.regionImgs && details.regionImgs.length"> <view class="title"> <text>鎵ф硶鍥剧墖</text> </view> <view class="view-image"> - <image :src="baseUrl+item" mode="widthFix" v-for="(item,index) in details.regionImgs" :key="index"></image> - + <image :src="baseUrl+item" @click="previewImage(details.regionImgs, index)" mode="aspectFill" v-for="(item,index) in details.regionImgs" :key="index"></image> </view> </view> <view class="base-card"> @@ -129,10 +128,9 @@ {{item.nodeName}} </view> <view class="down-tips"> - <view class="u-line-1 submit-per">鎻愪氦浜猴細<text>{{item.nodeUser}}</text></view> + <view class=" submit-per">鎻愪氦浜猴細<text>{{item.nodeUser}}</text></view> <view class="time">{{item.nodeTime}}</view> </view> - </view> <!-- <view class="step-content"> <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image> @@ -190,7 +188,11 @@ this.getDetails(options.id) this.orderNodeList(options.id) this.enforceLogList(options.id) - + if(options.setTitle) { + uni.setNavigationBarTitle({ + title: '' + }) + } }, methods: { getDetails(orderId) { @@ -222,6 +224,14 @@ const value = val.data.data.find(item => item.dictCode == this.details.enforceType) this.typeList = value.dictLabel }) + }, + previewImage(list, index) { + const data = list.map(item => this.baseUrl + item) + console.log(data) + uni.previewImage({ + urls: data, + current: index + }) } } } diff --git a/policy/components/index.vue b/policy/components/index.vue index cb01a36..8c3c56b 100644 --- a/policy/components/index.vue +++ b/policy/components/index.vue @@ -5,10 +5,10 @@ <image src="/static/head.png" mode=""></image> </view> <view class="main-page-box"> - <view class="second-box"> + <view class="second-box" @click="goPolicyList"> <image src="/static/hqzc.png" class="icon"></image> <view class="driver"></view> - <view class="right-box" @click="goPolicyList"> + <view class="right-box" > <view class="article-list"> <view class="u-line-1 margin-bottom" v-for="(item, index) in policyList" :key="index"> {{item.docTitle}}</view> diff --git a/policy/components/mine.vue b/policy/components/mine.vue index f7efe29..f919002 100644 --- a/policy/components/mine.vue +++ b/policy/components/mine.vue @@ -159,7 +159,7 @@ width: calc(100% - 64rpx); left: 32rpx; position: fixed; - bottom: 180rpx; + bottom: 220rpx; } .inckname{ font-size: 36rpx; diff --git a/policy/components/popup.vue b/policy/components/popup.vue index f352f42..4286a80 100644 --- a/policy/components/popup.vue +++ b/policy/components/popup.vue @@ -13,7 +13,7 @@ </u-radio-group> </view> <view class="margin-top"> - <u-textarea placeholder="璇疯緭鍏ユ嫆缁濈悊鐢�..." v-model="form.checkReason"></u-textarea> + <u-textarea placeholder="璇疯緭鍏�..." v-model="form.checkReason"></u-textarea> </view> </view> <view class="down"> diff --git a/policy/components/tabs.vue b/policy/components/tabs.vue index db70f0b..3f39d7b 100644 --- a/policy/components/tabs.vue +++ b/policy/components/tabs.vue @@ -69,14 +69,22 @@ .code{ width: 108rpx; height: 108rpx; - position: absolute; - top: -20rpx; - left: 0; + // position: absolute; + // top: -20rpx; + // left: 0; } .relative{ position: relative; - width: 108rpx; - height: 108rpx; + width: 136rpx; + height: 136rpx; + background-color: white; + border-radius: 50%; + padding: 12rpx; + top: -40rpx; + display: flex; + box-sizing: border-box; + justify-content: center; + align-items: center; } } </style> \ No newline at end of file diff --git a/policy/components/upload.vue b/policy/components/upload.vue index d421f03..6721977 100644 --- a/policy/components/upload.vue +++ b/policy/components/upload.vue @@ -79,10 +79,13 @@ width: 200rpx; height: 200rpx; text-align: center; - line-height: 200rpx; + // line-height: 200rpx; + display: flex; + justify-content: center; + align-items: center; image{ - width: 28rpx; - height: 28rpx; + width: 60rpx; + height: 60rpx; } } .grid-box{ diff --git a/policy/dataLook/dataLook.scss b/policy/dataLook/dataLook.scss index dbf5ca5..5f55bec 100644 --- a/policy/dataLook/dataLook.scss +++ b/policy/dataLook/dataLook.scss @@ -4,15 +4,17 @@ flex-shrink: 0; background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%); position: fixed; - top: 50px; + // top: 50px; z-index: -1; } .page-main{ // position: relative; // top: -380rpx; padding-bottom: 140rpx; + padding-top: 20rpx; .box{ - margin: 32rpx 32rpx 20rpx; + margin: 0 32rpx 20rpx; + background-color: white; border-radius: 10rpx; padding: 24rpx 0; diff --git a/policy/dataLook/dataLook.vue b/policy/dataLook/dataLook.vue index 3265eb7..a987964 100644 --- a/policy/dataLook/dataLook.vue +++ b/policy/dataLook/dataLook.vue @@ -1,10 +1,10 @@ <template> <view> - <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true"> + <!-- <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true" > <template slot="center"> <view style="color: white;">鏁版嵁鐪嬫澘</view> </template> - </u-navbar> + </u-navbar> --> <view class="donw-box"></view> <view class="page-main"> <view class="box"> @@ -18,7 +18,7 @@ </view> <view class="grid-item"> <view class="label">鎵ф硶鍗曚綅</view> - <view>{{infoData.enforceCompanyNum || 0}}</view> + <view>{{infoData.enforceDeptNum || 0}}</view> </view> <view class="grid-item"> <view class="label">鎵ф硶浜哄憳</view> @@ -26,7 +26,7 @@ </view> <view class="grid-item"> <view class="label">鎵ф硶鐢宠</view> - <view>{{infoData.enforceOrderNum || 0}}</view> + <view>{{infoData.enforceorderNum || 0}}</view> </view> <view class="grid-item"> <view class="label">宸插鎵�</view> @@ -46,7 +46,7 @@ <view class="number"> <view class="date">{{pageQuerm.beginTimeStr1}} <text class="margin-text">鑷�</text> {{pageQuerm.endTimeStr1}}</view> <view class="progress-box"> - <qiun-data-charts key="11" type="bar" + <qiun-data-charts v-if="!show" key="11" type="bar" :opts="opts" :chartData="chartData" /> </view> </view> @@ -85,7 +85,7 @@ <view class="number"> <view class="date" style="margin-bottom: 20rpx;">{{pageQuerm.beginTimeStr3}} <text class="margin-text">鑷�</text> {{pageQuerm.endTimeStr3}}</view> <view class="progress-box"> - <qiun-data-charts type="rose" tooltipFormat="tooltipDemo1" + <qiun-data-charts type="pie" v-if="!show" tooltipFormat="tooltipDemo1" key="22" :opts="opts1" :chartData="chartData1" /> </view> @@ -94,6 +94,7 @@ </view> <u-datetime-picker :show="show" + @cancel="show = false" :maxDate="new Date().getTime()" v-model="currentValue" mode="year-month" @@ -136,16 +137,20 @@ padding: [15, 30, 0, 5], enableScroll: false, legend: { - show: false + show: false, + }, xAxis: { boundaryGap: "justify", disableGrid: false, min: 0, axisLine: false, - max: 40 + max: 40, + gridColor: "#ededed" }, - yAxis: {}, + yAxis: { + gridColor: "#ededed" + }, extra: { bar: { type: "group", @@ -164,36 +169,28 @@ chartData1: {}, tooltipCustom: {}, opts1: { - color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4", - "#ea7ccc" - ], - tooltipFormat: function (item) { - return "456" - }, - padding: [5, 5, 5, 5], - enableScroll: false, - legend: { - show: false, - }, - extra: { - rose: { - type: "area", - minRadius: 50, - activeOpacity: 0.5, - activeRadius: 10, - offsetAngle: 0, - labelWidth: 15, - border: false, - borderWidth: 2, - borderColor: "#FFFFFF" - }, - tooltip: { - // bgColor: "#fff", - // showArrow: false, - // fontColor: "#202D44", - // bgOpacity: 1, - } - } + color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"], + padding: [5,5,5,5], + enableScroll: false, + legend: { + position: "bottom", + lineHeight: 25, + width: '100%', // 璁剧疆鍥句緥瀹藉害 + // itemWidth: 25, // 璁剧疆鍥句緥鏍囪瀹藉害 + itemGap: 10, // 璁剧疆鍥句緥椤逛箣闂寸殑闂撮殧 + float: 'left' + }, + extra: { + pie: { + activeOpacity: 0.5, + activeRadius: 10, + offsetAngle: 0, + labelWidth: 10, + border: false, + borderWidth: 3, + borderColor: "#FFFFFF" + } + } } } }, @@ -298,7 +295,6 @@ return { name: item.k, value: item.v, - "labelText": item.k } }) let res = { diff --git a/policy/judgeApply/judgeApply.scss b/policy/judgeApply/judgeApply.scss new file mode 100644 index 0000000..849f9a5 --- /dev/null +++ b/policy/judgeApply/judgeApply.scss @@ -0,0 +1,123 @@ +.top-content{ + width: 100%; + height: 380rpx; + background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%); +} +.main-page{ + position: relative; + top: -380rpx; + .status{ + color: white; + margin: 20rpx 32rpx; + font-size: 44rpx; + margin-bottom: 24rpx; + font-weight: 700; + } + .base-card{ + margin: 20rpx 32rpx; + border-radius: 10rpx; + background-color: white; + padding: 24rpx 0; + .title{ + padding: 0 24rpx; + font-size: 32rpx; + font-weight: 700; + border-bottom: 2rpx solid #EEEEEE; + padding-bottom: 14rpx; + margin-bottom: 15rpx; + } + .view-form{ + padding: 0 24rpx; + .view-form-item{ + display: flex; + justify-content: flex-start; + align-items: flex-start; + margin-bottom: 34rpx; + font-size: 30rpx; + &:last-child{ + margin-bottom: 0; + } + &>view{ + width: 60%; + font-weight: 500; + } + .label{ + color: #7E8596; + font-weight: normal; + width: 40%; + } + } + } + .view-content{ + font-size: 30rpx; + padding: 0 24rpx; + line-height: 52rpx; + } + .view-image{ + display: grid; + grid-template-columns: 1fr 1fr 1fr; + grid-gap: 22rpx; + padding: 0 32rpx; + image{ + width: 100%; + height: 220rpx; + border: 2rpx solid gray; + } + } + .view-step{ + padding: 0 24rpx; + + .step-content{ + position: relative; + padding-left: 64rpx; + // height: 100rpx; + padding-bottom: 64rpx; + &::before{ + content: ''; + display: block; + height: 100%; + width: 4rpx; + background-color: #E7F8F0; + position: absolute; + left: 19rpx; + } + .icon{ + position: absolute; + left: 0; + width: 40rpx; + height: 40rpx; + } + .top-title{ + font-size: 32rpx; + color: #202D44; + margin-bottom: 16rpx; + } + .down-tips{ + color: #7E8596; + // display: flex; + // justify-content: flex-start; + // align-items: center; + .time{ + // margin-left: 32rpx; + // width: 60%; + } + .submit-per{ + // width: 40%; + margin-bottom: 10rpx; + } + text{ + color: #4A4E60; + } + + } + } + .none{ + &::before{ + display: none; + } + padding-bottom: 0; + } + + } + } +} \ No newline at end of file diff --git a/policy/judgeApply/judgeApply.vue b/policy/judgeApply/judgeApply.vue new file mode 100644 index 0000000..5efaef0 --- /dev/null +++ b/policy/judgeApply/judgeApply.vue @@ -0,0 +1,252 @@ +<template> + <view> + <u-navbar placeholder bgColor="#1171E0FF" leftIconColor="white" :autoBack="true"> + <template slot="center"> + <view style="color: white;">鐢宠璇︽儏</view> + </template> + </u-navbar> + <view class="top-content"></view> + <view class="main-page"> + <view class="status"> + {{mapStatus[details.checkStatus]}} + </view> + <view class="base-card"> + <view class="title"> + <text>鍩烘湰淇℃伅</text> + </view> + <view class="view-form"> + <view class="view-form-item"> + <view class="label">鎵ф硶涓婚</view> + <view>{{details.enforceReason}}</view> + </view> + <view class="view-form-item"> + <view class="label">鎵ф硶瀵硅薄</view> + <view>{{details.companyName}}</view> + </view> + <view class="view-form-item"> + <view class="label">鎵ф硶鏃堕棿</view> + <view>{{details.planTime}}</view> + </view> + <view class="view-form-item"> + <view class="label">鎵ф硶绫诲瀷</view> + <view>{{typeList}}</view> + </view> + + <template v-if="!details.executeUser"> + <view class="view-form-item"> + <view class="label">鎵ф硶浜哄憳</view> + <view>{{details.applyUser}}</view> + </view> + <view class="view-form-item"> + <view class="label">鎵ф硶閮ㄩ棬</view> + <view>{{details.applyDeptName}}</view> + </view> + </template> + <template v-else> + <view class="view-form-item"> + <view class="label">鎵ф硶浜哄憳</view> + <view>{{details.executeUser}}</view> + </view> + <view class="view-form-item"> + <view class="label">鎵ф硶閮ㄩ棬</view> + <view>{{details.executeDeptName}}</view> + </view> + </template> + <view class="view-form-item" > + <view class="label">闅忚浜哄憳</view> + <view> + <view v-for="(item,index) in details.peers" :key="index"> + {{item.peerUser}}({{item.peerDeptName}}) + </view> + </view> + </view> + <view class="view-form-item"> + <view class="label">鏄惁閫氱煡浼佷笟</view> + <view>{{details.isNoticeCompany == 0 ? '鍚�': '鏄�'}}</view> + </view> + <view class="view-form-item"> + <view class="label">鐢宠鏃堕棿</view> + <view>{{details.applyTime}}</view> + </view> + <view class="view-form-item"> + <view class="label">褰撳墠鐘舵��</view> + <view>{{mapStatus[details.checkStatus]}}</view> + </view> + </view> + </view> + <view class="base-card"> + <view class="title"> + <text>鎵ф硶鍐呭</text> + </view> + <view class="view-content"> + {{ details.enforceContent }} + </view> + </view> + <!-- <view class="base-card" v-if="judgeDetails.length"> + <view class="title"> + <text>瀹℃壒鎯呭喌</text> + </view> + <view class="view-form"> + <view v-for="(item,index) in judgeDetails" :key="index"> + <view class="view-form-item"> + <view class="label">瀹℃壒缁撴灉</view> + <view v-if="item.checkStatus == 1" style="color: #3EB47A;">閫氳繃</view> + <view v-else style="color: red">鎷掔粷</view> + </view> + <view class="view-form-item"> + <view class="label">瀹℃壒浜�</view> + <view>{{item.checkUser}}</view> + </view> + <view class="view-form-item"> + <view class="label">瀹℃壒閮ㄩ棬</view> + <view>{{item.checkDeptName}}</view> + </view> + <view class="view-form-item"> + <view class="label">瀹℃壒鏃堕棿</view> + <view>{{item.checkTime}}</view> + </view> + </view> + </view> + </view> --> + <view class="base-card" v-if="(details.orderStatus == 3 || details.orderStatus == 4) && details.regionImgs && details.regionImgs.length"> + <view class="title"> + <text>鎵ф硶鍥剧墖</text> + </view> + <view class="view-image"> + <image :src="baseUrl+item" @click="previewImage(details.regionImgs, index)" mode="aspectFill" v-for="(item,index) in details.regionImgs" :key="index"></image> + </view> + </view> + <view class="base-card"> + <view class="title"> + <text>瀹℃壒杩涘害</text> + </view> + <view class="view-step"> + <view class="step-content" :class="{none: index == nodeList.length - 1}" v-for="(item,index) in nodeList" :key="index"> + <image class="icon" src="/static/policy/icon.png" mode="widthFix" v-if="!item.nodeReason"></image> + <image src="/static/policy/refject.png" mode="widthFix" class="icon" v-else></image> + <view class="top-title"> + {{item.nodeName}} + </view> + <view class="down-tips"> + <view class=" submit-per">鎻愪氦浜猴細<text>{{item.nodeUser}}</text></view> + <view class="time">{{item.nodeTime}}</view> + </view> + </view> + <!-- <view class="step-content"> + <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image> + <view class="top-title"> + 瀹℃壒閫氳繃 + </view> + <view class="down-tips"> + <view>鎻愪氦浜猴細<text>鏋楀皬闆�</text></view> + <view class="time">2024-06-07 12:14</view> + </view> + </view> + <view class="step-content none"> + <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image> + <image src="/static/policy/refject.png" mode="widthFix" class="icon"></image> + <view class="top-title"> + 鎻愪氦鐢宠 + </view> + <view class="down-tips"> + <view>鎻愪氦浜猴細<text>鏋楀皬闆�</text></view> + <view class="time">2024-06-07 12:14</view> + </view> + </view> --> + </view> + </view> + </view> + </view> +</template> + +<script> + import { + orderDetails, + orderNodeList, + enforceLogList + } from '@/api/policy.js' + import { getDicts } from '@/api/data.js' + import { config } from '@/common/config' + export default { + data() { + return { + details: {}, + nodeList: [], + mapStatus: { + // 1: '寰呭鎵�', + // 2: "寰呮墽琛�", + // 3: "寰呬笂鎶�", + // '-1':"宸叉嫆缁�", + // 4: "宸茬粨鏉�" + // -1鎷掔粷锛�0寰呭鎵癸紝1瀹℃壒涓紝2閫氳繃 + "-1": '宸叉嫆缁�', + 0: '寰呭鎵�', + 1: '瀹℃壒涓�', + 2: "宸插鎵�" + }, + + typeList: '', + judgeDetails: [], + baseUrl: config.baseUrl + } + }, + onLoad(options) { + this.getDetails(options.id) + this.orderNodeList(options.id) + this.enforceLogList(options.id) + if(options.setTitle) { + uni.setNavigationBarTitle({ + title: '' + }) + } + }, + methods: { + getDetails(orderId) { + orderDetails({ + orderId + }).then(val => { + this.details = val.data.data + if(this.details.regionImgs){ + this.details.regionImgs = this.details.regionImgs.split(",") + } + this.getDicts() + }) + }, + // 鑺傜偣 + orderNodeList(orderId) { + orderNodeList({orderId}).then(val => { + this.nodeList = val.data.data + }) + }, + // 鐢宠璁板綍 + enforceLogList(orderId) { + enforceLogList({orderId}).then(val => { + // console.log(val.data.rows) + this.judgeDetails = val.data.rows + }) + }, + getDicts() { + getDicts('enforce_type').then(val => { + const value = val.data.data.find(item => item.dictCode == this.details.enforceType) + this.typeList = value.dictLabel + }) + }, + previewImage(list, index) { + const data = list.map(item => this.baseUrl + item) + console.log(data) + uni.previewImage({ + urls: data, + current: index + }) + } + } + } +</script> +<style> + page { + background-color: #F4F4F4; + } +</style> +<style lang="scss" scoped> + @import "./judgeApply.scss"; +</style> \ No newline at end of file diff --git a/policy/policyApply/perPicker.vue b/policy/policyApply/perPicker.vue new file mode 100644 index 0000000..1aea242 --- /dev/null +++ b/policy/policyApply/perPicker.vue @@ -0,0 +1,118 @@ +<template> + <u-popup mode="bottm" :show="show" :safeAreaInsetBottom="false"> + <view class="picker-view-box"> + <view class="options"> + <view class="button" @click="cancel" size="mini">鍙栨秷</view> + <view class="button entery" @click="entery" color="#1171E0" size="mini">纭畾</view> + </view> + <u-search v-model="companyName" @search="companyList" @clear="clearContent" @confirm="companyList" @custom="companyList()"></u-search> + <view> + <picker-view immediate-change :value="value" @change="bindChange" class="picker-view"> + <picker-view-column> + <view class="text-center" v-for="(item,index) in columns" :key="index">{{item[keyName]}}</view> + </picker-view-column> + </picker-view> + </view> + </view> + </u-popup> +</template> + +<script> + import { companyList } from '@/api/policy.js' + export default { + props: { + keyName: { + type: String, + default: '' + } + }, + data() { + return { + columns: [], + show: false, + companyName: "", + index: 0, + value: [] + } + }, + mounted() { + this.companyList() + }, + methods: { + clearContent() { + this.companyName = "" + this.companyList() + }, + cancel() { + this.show = false + }, + open() { + this.show = true + }, + bindChange(e) { + this.index = e.detail.value[0] + }, + companyList() { + companyList({companyName: this.companyName}).then(val => { + if(val.data.code == 200){ + if(!val.data.rows.length || !val.data.rows){ + uni.showToast({ + title: '娌℃湁绗﹀悎鐨勬暟鎹紝璇锋鏌ヨ緭鍏ョ殑鎵ф硶瀵硅薄', + icon: 'none', + duration: 3000 + }) + } else { + this.columns = val.data.rows + } + + } + }) + }, + entery() { + const info = this.columns[this.index] + this.$emit('confirm', info) + this.show = false + } + + } + } +</script> + +<style lang="scss" scoped> + .picker-view-box{ + position: fixed; + z-index: 120000; + background-color: white; + height: 600rpx; + padding: 40rpx 32rpx 0; + bottom: 0; + width: 100%; + box-sizing: border-box; + border-radius: 20rpx 20rpx 0 0; + } + .options{ + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 40rpx; + .button{ + padding: 10rpx 20rpx; + border-radius: 10rpx; + font-size: 28rpx; + } + .entery{ + background-color: $main-color; + color: white; + + } + } + .text-center{ + text-align: center; + line-height: 34px; + } + .picker-view { + width: 100%; + height: 500rpx; + margin-top: 20rpx; + } +</style> \ No newline at end of file diff --git a/policy/policyApply/policyApply.vue b/policy/policyApply/policyApply.vue index 399b8f0..99e8728 100644 --- a/policy/policyApply/policyApply.vue +++ b/policy/policyApply/policyApply.vue @@ -6,16 +6,17 @@ <view class="form-label require"> 鎵ф硶涓婚 </view> - <input type="text" placeholder="璇疯緭鍏�" v-model="form.enforceReason"/> + <input type="text" placeholder="璇疯緭鍏�" v-model.trim="form.enforceReason"/> </view> <view class="form-item"> <view class="form-label require"> 鎵ф硶瀵硅薄 </view> - <view class="input"> - <input type="text" placeholder="璇疯緭鍏�" v-model="form.companyName"/> - <!-- <u-icon name="arrow-right"></u-icon> --> - <u-text text='鎼滅储' type="primary" @click="search"></u-text> + <view class="input" @click="search"> + + <input type="text" style="width: 80%;" disabled placeholder="璇疯緭鍏�" :value="form.companyName"/> + <u-icon name="arrow-right"></u-icon> + <!-- <u-text text='鎼滅储' type="primary" style="width: 20%;" @click="search"></u-text> --> </view> </view> <view class="form-item"> @@ -23,7 +24,7 @@ 鎵ф硶鏃堕棿 </view> <view class="input" @click="showTimeFun"> - <input type="text" placeholder="璇疯緭鍏�" disabled v-model="form.planTimeStr"/> + <input type="text" placeholder="璇疯緭鍏�" disabled v-model.trim="form.planTimeStr"/> <u-icon name="arrow-right"></u-icon> </view> </view> @@ -32,7 +33,7 @@ 鎵ф硶绫诲瀷 </view> <view class="input"> - <input type="text" placeholder="璇疯緭鍏�" v-model="form.enforceTypeName" disabled/> + <input type="text" placeholder="璇疯緭鍏�" v-model.trim="form.enforceTypeName" disabled/> <u-icon name="arrow-right"></u-icon> </view> </view> @@ -41,7 +42,7 @@ 鎵ф硶鍐呭 </view> <view class="back"> - <u--textarea :height="120" v-model="form.enforceContent" placeholder="璇疯緭鍏�" count maxlength="500"></u--textarea> + <u--textarea :height="120" v-model.trim="form.enforceContent" placeholder="璇疯緭鍏�" count maxlength="500"></u--textarea> </view> </view> </view> @@ -52,13 +53,13 @@ <view class="form-label"> 鎵ф硶浜哄憳 </view> - <input type="text" placeholder="璇疯緭鍏�" v-model="form.applyUser" disabled/> + <input type="text" placeholder="璇疯緭鍏�" v-model.trim="form.applyUser" disabled/> </view> <view class="form-item"> <view class="form-label"> 鎵ф硶閮ㄩ棬 </view> - <input type="text" placeholder="璇疯緭鍏�" v-model="form.applyDeptName" disabled/> + <input type="text" placeholder="璇疯緭鍏�" v-model.trim="form.applyDeptName" disabled/> </view> <view class="form-item sui" style="align-items: flex-start;" @click="openPer"> <view class="form-label require "> @@ -122,24 +123,17 @@ </u-form> --> <!-- <u-button @click="submitApply">鎻愪氦鐢宠</u-button> <u-button @click="applyRecord">鐢宠璁板綍</u-button> --> - <u-picker :show="show" @close="show = false" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName"></u-picker> - <!-- <u-datetime-picker - :show="showTime" - @close="showTime = false" - @cancel="showTime = false" - @confirm="confirmTime" - :minDate="minDate" - v-model="currentTime" - @change="changeValue" - mode="datetime" - ref="datetimePicker" - ></u-datetime-picker> --> + <!-- <u-picker :show="show" @close="show = false" :immediateChange="true" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName"> + + + </u-picker> --> + <perPicker ref="perPicker" :immediateChange="true" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName"></perPicker> <yt-dateTimePicker ref="myPicker" @submit="confirmTime" - :start-year="year" - :end-year="endYear" :time-init="timeInit" + :start-year="year" + :startMonth="month" :time-hide="[true, true, true, true, false, false]" /> <u-picker :show="showType" @close="showType = false" @confirm="confirmType" @cancel="showType = false" :columns="columnsType" keyName="dictLabel"></u-picker> @@ -152,11 +146,13 @@ import { getInfo } from '@/api/auth.js' import { getDicts } from '@/api/data' import perPage from './perPage' + import perPicker from './perPicker' import YtDateTimePicker from "uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue" export default { components: { YtDateTimePicker, - perPage + perPage, + perPicker }, data() { return { @@ -170,7 +166,8 @@ planTimeStr: '', peers: [], orderStatus: 1, - enforceContent: "" + enforceContent: "", + companyName: "" }, show: false, columns: [], @@ -181,14 +178,18 @@ year: '', endYear: '', timeInit: '', - list: [] + list: [], + startTime: "", + month: '' } }, onLoad() { this.year = new Date().getFullYear() + this.month = new Date().getMonth() + 1 this.endYear = this.year + 5 this.minDate = new Date().valueOf() - this.timeInit = this.$u.timeFormat(new Date(), 'yyyy-mm-dd') + this.timeInit = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM') + this.startTime =this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM') this.getInfo() this.getDicts() this.enforceList() @@ -233,11 +234,11 @@ return options; }, authFile() { - if(!this.form.enforceReason){ + if(!this.form.enforceReason || !this.form.enforceReason.replace(/\s+/g, "")){ return '璇峰~鍐欎富棰�' } - if(!this.form.companyName){ - return '璇峰~鍐欑‘璁ゆ墽娉曞璞�' + if(!this.form.companyName || !this.form.companyName.replace(/\s+/g, "")){ + return '璇烽�夋嫨鎵ф硶瀵硅薄' } if(!this.form.companyId) { return '璇风偣鍑绘悳绱㈢‘璁ゆ墽娉曞璞�' @@ -248,11 +249,12 @@ if(!this.form.enforceTypeName){ return '璇烽�夋嫨鎵ф硶绫诲瀷' } - if(!this.form.enforceContent) { + console.log(!this.form.enforceContent.replace(/\s+/g, "")) + if(!this.form.enforceContent || !this.form.enforceContent.replace(/\s+/g, "")) { return '璇峰~鍐欐墽娉曞唴瀹�' } if(!this.form.peers.length){ - return '璇锋坊鍔犲悓琛屼汉' + return '璇烽�夋嫨闅忚浜哄憳' } return '' }, @@ -283,35 +285,38 @@ }) }, search() { - companyList({companyName: this.form.companyName}).then(val => { - if(val.data.code == 200){ - if(!val.data.rows.length || !val.data.rows){ - uni.showToast({ - title: '娌℃湁绗﹀悎鐨勬暟鎹紝璇锋鏌ヨ緭鍏ョ殑鎵ф硶瀵硅薄', - icon: 'none', - duration: 3000 - }) - } else { - this.columns = [val.data.rows] - this.show = true - } + // companyList({companyName: this.form.companyName}).then(val => { + // if(val.data.code == 200){ + // if(!val.data.rows.length || !val.data.rows){ + // uni.showToast({ + // title: '娌℃湁绗﹀悎鐨勬暟鎹紝璇锋鏌ヨ緭鍏ョ殑鎵ф硶瀵硅薄', + // icon: 'none', + // duration: 3000 + // }) + // } else { + + // } - } - }) + // } + // }) + + this.$refs.perPicker.open() }, confirmSearch(e){ - const value = this.columns[0].find(item => item.companyName == e.value[0].companyName) - this.form.companyName = e.value[0].companyName + let value = e + // const value = this.columns[0].find(item => item.companyName == e.value[0].companyName) + this.form.companyName = e.companyName this.form.companyCode = value.companyCode this.form.companyId = value.companyId this.form.companyPhone = value.companyPhone this.form.companyUser = value.companyUser this.form.companyAddress = value.companyAddress - this.show = false + console.log(this.form.companyName) }, confirmTime(e) { this.form.planTime = e.year + '-' + e.month+ '-' + + e.day + ' ' + e.hour + ":" + "00:00" - this.form.planTimeStr = e.year + '-' + e.month+ '-' + + e.day + ' ' + e.hour + this.form.planTimeStr = e.year + '-' + e.month+ '-' + + e.day + ' ' + e.hour + ":" + "00" + this.timeInit = this.$u.timeFormat(new Date(this.form.planTimeStr), 'yyyy-mm-dd hh:MM') }, showTimeFun() { // this.showTime = true @@ -333,6 +338,7 @@ this.$refs.perpage.open(this.list) }, selectValue(value) { + this.form.peers = [] this.list.forEach(item => { if(value.includes(item.userId)) { this.form.peers.push({ diff --git a/policy/reportDetails/reportDetails.vue b/policy/reportDetails/reportDetails.vue index 2115ae8..da7420a 100644 --- a/policy/reportDetails/reportDetails.vue +++ b/policy/reportDetails/reportDetails.vue @@ -47,7 +47,7 @@ <view class="form-input-item"> <view class="form-label require">鎵ф硶鐓х墖</view> <view> - <view class="show-hint">鍙笂浼�9寮犲浘锛屽崟寮犱笉寰楄秴杩�10m</view> + <view class="show-hint">鍙笂浼�9寮犲浘锛屽崟寮犱笉寰楄秴杩�10M</view> </view> <view> <uploadImage ref="uploadImage"></uploadImage> diff --git a/policy/reportPage/reportPage.scss b/policy/reportPage/reportPage.scss index 6dfed67..2992451 100644 --- a/policy/reportPage/reportPage.scss +++ b/policy/reportPage/reportPage.scss @@ -1,4 +1,5 @@ .page-box{ + padding-bottom: 180rpx; .list{ margin: 20rpx 32rpx; .list-item{ diff --git a/policy/reportRecord/reportRecord.scss b/policy/reportRecord/reportRecord.scss index a7c73cb..9273cee 100644 --- a/policy/reportRecord/reportRecord.scss +++ b/policy/reportRecord/reportRecord.scss @@ -1,4 +1,5 @@ .page-box{ + padding-bottom: 120rpx; .padding{ padding: 20rpx 32rpx; } diff --git a/policy/reportRecord/reportRecord.vue b/policy/reportRecord/reportRecord.vue index 3b9eb91..3b67722 100644 --- a/policy/reportRecord/reportRecord.vue +++ b/policy/reportRecord/reportRecord.vue @@ -53,7 +53,9 @@ queryParams: { pageNum: 1, pageSize: 10, - orderStatus: 4 + orderStatus: 4, + isAsc: "desc", + orderByColumn: "execute_time" }, searchContent: '' } @@ -68,7 +70,7 @@ return } this.queryParams.pageNum++ - this.orderList() + this.executeList() }, methods: { clean() { @@ -93,6 +95,7 @@ executeList(this.queryParams).then(val => { this.list = [...this.list, ...val.data.rows] this.total = val.data.total + console.log(this.total) }) } } diff --git a/policy/scodePage/scodePage.vue b/policy/scodePage/scodePage.vue index c71c691..9940bcd 100644 --- a/policy/scodePage/scodePage.vue +++ b/policy/scodePage/scodePage.vue @@ -76,7 +76,7 @@ <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} </view> <view class="button-entery"> - <view class="button" @click="doScanOrder(item.orderId)">纭鎵ф硶</view> + <view class="button" v-if="item.isSelect" @click="doScanOrder(item.orderId, index)">纭鎵ф硶</view> </view> </view> </swiper-item> @@ -98,7 +98,8 @@ uqrcodeImage: '', list: [], userInfo: {}, - color: '' + color: '', + } }, onReady() { @@ -112,7 +113,10 @@ methods: { getScanList(companyCode){ getScanList({companyCode}).then(val => { - this.list = val.data.data + this.list = val.data.data.map(item => { + item['isSelect'] = true + return item + }) if(this.list.length) { this.color = 'green' } else { @@ -134,13 +138,14 @@ this.userInfo = val.data.data }) }, - doScanOrder(item) { + doScanOrder(item, index) { doScanOrder(item).then(val => { if(val.data.code == 200) { uni.showToast({ title: '纭鎵ф硶鎴愬姛', icon: 'none' }) + this.list[index].isSelect = false } }) } diff --git a/policy/translate/translate.vue b/policy/translate/translate.vue index c6a2547..22fc3d5 100644 --- a/policy/translate/translate.vue +++ b/policy/translate/translate.vue @@ -1,8 +1,8 @@ <template> <view class="page-box"> <view class="list"> - <view class="select-box" v-for="(item,index) in list" :key="index" :class="{start: isJudege}"> - <view class="select-image" v-if="isJudege" @click="setIsSelect(index)"> + <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> @@ -29,13 +29,13 @@ <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} </view> </view> - <view class="button" v-if="!isJudege" @click="goStartJudeg([item.orderId])"> + <view class="button" v-if="!isJudege" @click.self="goStartJudeg([item.orderId])"> 瀹℃壒 </view> </view> </view> </view> - <u-empty v-if="!list.length"></u-empty> + <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> @@ -70,7 +70,9 @@ queryms: { pageNum: 1, pageSize: 10, - checkStatus: 0 + orderStatus: 1, + isAsc: "desc", + orderByColumn: "apply_time" }, recordList: [] } @@ -116,6 +118,9 @@ this.isJudege = true }, setIsSelect(index){ + if(!this.isJudege) { + return + } this.list[index].isSelect = !this.list[index].isSelect }, allSelect() { diff --git a/policy/translateRecord/translateRecord.vue b/policy/translateRecord/translateRecord.vue index 5c62dc0..ac3347d 100644 --- a/policy/translateRecord/translateRecord.vue +++ b/policy/translateRecord/translateRecord.vue @@ -1,6 +1,6 @@ <template> <view class="page-box"> - <u-sticky bgColor="white"> + <u-sticky bgColor="white" :offsetTop="0"> <view class="set-search"> <u-search placeholder="璇疯緭鍏ユ墽娉曚富棰� " v-model="value" @clear="value = '';search()" @search="search" @blur="search" shape="square" :showAction="false"></u-search> </view> @@ -8,11 +8,12 @@ <u-tabs :list="list1" @click="click" :current="current" :scrollable="false" bgColor="white"></u-tabs> </u-sticky> <view class="list"> - <view class="list-item" @click="goReport" v-for="(item,index) in list" :key="index"> + <view class="list-item" @click="goReport(item.orderId)" v-for="(item,index) in list" :key="index"> <view class="top-title"> <text>{{item.enforceReason}}</text> - <text class="status status2" v-if="item.checkStatus == 2">閫氳繃</text> - <text class="status status4" v-else>鎷掔粷</text> + <text class="status status2" v-if="item.checkStatus == 2 || item.checkStatus == 1">閫氳繃</text> + <!-- <text class="status " v-if="item.checkStatus == 1">瀹℃壒涓�</text> --> + <text class="status status4" v-if="item.checkStatus == -1">鎷掔粷</text> </view> <view class="user-info"> <text>{{item.applyUser}}</text> @@ -47,7 +48,9 @@ current: 0, queryParams: { pageNum: 1, - pageSize: 10 + pageSize: 10, + isAsc: "desc", + orderByColumn: "apply_time" }, list1: [{ name: '鍏ㄩ儴', @@ -83,8 +86,10 @@ this.queryParams.pageNum = 1 this.enforceLogList() }, - goReport() { - + goReport(order) { + uni.navigateTo({ + url: `/policy/judgeApply/judgeApply?id=${order}&title=setTitle` + }) }, click(e) { this.list = [] @@ -108,4 +113,7 @@ </style> <style lang="scss" scoped> @import "./translateRecord.scss"; + /deep/ .u-sticky{ + position: -webkit-sticky; + } </style> \ No newline at end of file diff --git a/qiye/complaint/complaint.vue b/qiye/complaint/complaint.vue index accf0db..97fadaa 100644 --- a/qiye/complaint/complaint.vue +++ b/qiye/complaint/complaint.vue @@ -38,12 +38,13 @@ <p>鎵ф硶鍗曚綅锛歿{item.executeDeptName}}</p> <p>鎵ф硶鏃堕棿锛歿{item.executeTime}}</p> </view> - <view class="r" @click="chakan()"> + <view class="r" @click="chakan(item.id, item.orderId)"> 鍘绘煡鐪� </view> </view> </view> </view> + <u-empty v-if="!list1.length"></u-empty> <!-- <view class="item"> <img src="/static/i05.png" class="img" alt="" /> <view class="right"> @@ -122,7 +123,7 @@ total: 1, } }, - onShow() { + onLoad() { this.list1 = [] this.queryParams.pageNum = 1 this.getList() @@ -135,27 +136,27 @@ this.getList() }, methods: { - chakan(id){ + chakan(id, orderId){ uni.navigateTo({ - url: `/qiye/complaint/details?id=${id}` + url: `/qiye/complaint/details?id=${id}&orderId=${orderId}` }) }, getList() { let data = uni.getStorageSync("qiyedata") //this.queryParams.companyId = data.companyId logList({...this.queryParams}).then(val => { - // console.log(val.data) + console.log(val.data) this.total = val.data.total this.list1 = [...this.list1,...val.data.rows] }) }, search(e){ + this.list1 = [] this.queryParams.pageNum =1 this.queryParams.companyName = e this.getList() }, click(i) { - this.list1 = [] this.queryParams.pageNum = 1 this.queryParams.complaintStatus = this.list[i.index].value diff --git a/qiye/complaint/details.vue b/qiye/complaint/details.vue index 0c3d8ac..98ec88e 100644 --- a/qiye/complaint/details.vue +++ b/qiye/complaint/details.vue @@ -16,7 +16,7 @@ 鎵ф硶绫诲瀷 </view> <view class="v"> - 鍙告硶妫�鏌� + {{dictLabel}} </view> </view> <view class="item"> @@ -24,7 +24,7 @@ 鎵ф硶浜� </view> <view class="v"> - 鍒樻娆� + {{details.executeUser}} </view> </view> <view class="item"> @@ -32,7 +32,7 @@ 鎵ф硶閮ㄩ棬 </view> <view class="v"> - 鍐滀笟灞� + {{details.executeDeptName}} </view> </view> <view class="item"> @@ -40,55 +40,89 @@ 浼佷笟 </view> <view class="v"> - 姹夊涵閰掑簵 + {{details.companyName}} </view> </view> </view> <view style="height: 20rpx;"></view> - <view class="wbox"> - <view class="item"> - <view class="k"> - 鎵ф硶涓婚 - </view> - <view class="v"> - 姹夊涵閰掑簵鍙告硶妫�鏌�233鍙锋枃浠� - </view> - </view> - <view class="item"> - <view class="k"> - 鎵ф硶杩囩▼ - </view> - </view> - <view class="imgbox"> - <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;"> - 鍋滀笟鏁撮】 - </view> - </view> - <view class="item"> - <view class="k"> - 鎵ф硶鏃堕棿 - </view> - <view class="v"> - 2024-10-10 16:24 - </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"> - <img src="/static/policy/icon.png" class="img" alt="" /> + <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 == '鍙戣捣鎶曡瘔'"/> + <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"> + <span>鐢宠瘔鍐呭锛�</span> + {{details.complaintReason}} + </view> + <view class="p" v-if="item.nodeName == '宸查┏鍥�'"> + <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"> @@ -100,64 +134,128 @@ </view> <view class="b"> <view class="name"> - 鏋楀皬闆� + {{details.companyUser}} </view> <view class="p"> <span>鐢宠瘔涓婚锛�</span> - 姹夊涵閰掑簵鍙告硶妫�鏌�233鍙锋枃浠� + {{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 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> +<script> + import { complaintDetails, orderNodeList, orderComplaintNodeList } from '@/api/qiye.js' + import { orderDetails } 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) { + this.orderId = options.orderId + this.orderDetails() + } else { + this.orderNodeList(options.id) + } }, - methods: { - imgclick(url) { + methods: { + orderNodeList(id) { + orderNodeList({id}).then(val => { + // console.log(val) + this.nodeList = val.data.data + }) + }, + // 鑾峰彇鎶曡瘔绫诲瀷 + getComtype() { + getDicts('complaint_type').then(val => { + console.log(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 + this.orderComplaintNodeList() + this.enforceType() + }) + }, + orderComplaintNodeList() { + orderComplaintNodeList({ orderId: this.orderId }).then(val => { + console.log(val.data.data, 'val===') + this.nodeList = val.data.data + }) + } } } </script> @@ -246,17 +344,34 @@ font-weight: bold; } - } + } + .jilu{ display: flex; justify-content: space-between; - padding: 24rpx; + 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: 70rpx; + width: 50rpx; height: 50rpx; - margin-right: 24rpx; + margin-right: 24rpx; + position: relative; + z-index: 100; } - .font{ + .font{ + width: calc(100% - 70rpx); .h{ display: flex; justify-content: space-between; @@ -292,4 +407,19 @@ } } } + .handler{ + &::before { + background: #fe7b320d; + } + } + .start{ + &::before{ + background: #E7F8F0; + } + } + .nonde{ + &::before{ + background: none; + } + } </style> \ No newline at end of file diff --git a/qiye/components/bottom.vue b/qiye/components/bottom.vue index 0ee7317..e342e8e 100644 --- a/qiye/components/bottom.vue +++ b/qiye/components/bottom.vue @@ -38,17 +38,17 @@ } this.active = number if(number==0){ - uni.navigateTo({ + uni.redirectTo({ url: `/qiye/qiyeIndex/qiyeIndex` }) } if(number==1){ - uni.navigateTo({ + uni.redirectTo({ url: `/qiye/record/record` }) } if(number==2){ - uni.navigateTo({ + uni.redirectTo({ url: `/qiye/my/my` }) } @@ -66,7 +66,7 @@ display: flex; justify-content: space-around; align-items: center; - padding: 10rpx 0; + padding: 10rpx 0 40rpx; background-color: white; font-size: 20rpx; color: #7E8596FF; diff --git a/qiye/my/my.vue b/qiye/my/my.vue index f5cf9eb..deb344a 100644 --- a/qiye/my/my.vue +++ b/qiye/my/my.vue @@ -17,7 +17,7 @@ </view> <view class="show-phone-number"> <text class="label">鑱旂郴鐢佃瘽</text> - <text>{{msg.companyPhone}}</text> + <text>{{userPhone||""}}</text> </view> <view class="wbox"> <view class="item" @click="tousu()"> @@ -60,7 +60,8 @@ <script> import tabsCom from '@/qiye/components/bottom.vue' - + import { getInfo } from '@/api/auth.js' + import { company } from '@/api/qiye.js' export default { components: { tabsCom @@ -68,11 +69,23 @@ data() { return { activeNumber: 2, - msg:uni.getStorageSync("qiyedata"), - src: '/static/policy/header.png' + msg: {}, + src: '/static/policy/header.png', + userPhone: "" } }, + onShow() { + this.httoInfo() + }, methods: { + httoInfo() { + getInfo().then(val => { + this.userPhone = val.data.data.phonenumber + company(val.data.data.deptId).then(val => { + this.msg = val.data.data + }) + }) + }, goChangePhone() { uni.navigateTo({ url: '/policy/changePhone/changePhone?code=02' diff --git a/qiye/qiyeIndex/qiyeIndex.vue b/qiye/qiyeIndex/qiyeIndex.vue index 9666440..29a3e63 100644 --- a/qiye/qiyeIndex/qiyeIndex.vue +++ b/qiye/qiyeIndex/qiyeIndex.vue @@ -1,17 +1,17 @@ <template> <view> <img src="/static/head.png" class="head" alt="" /> - <view class="hqzc"> + <view class="hqzc" @click="more1()"> <img src="/static/hqzc.png" class="img" alt="" /> <view class="line"></view> <view class="font"> - <p v-for="(item,index) in list1" :key="index">{{item.docTitle}}</p> + <p v-for="(item,index) in list1" class="u-line-1" :key="index">{{item.docTitle}}</p> </view> - <img src="/static/i06.png" class="more" @click="more1()" alt="" /> + <img src="/static/i06.png" class="more" alt="" /> </view> <view class="wbox"> <view class="name"> - {{msg.companyUser}} + {{msg.companyName}} </view> <view class="imgbox"> <image :src="uqrcodeImage" mode="widthFix" class="qrcode-1"></image> @@ -21,7 +21,7 @@ </view> <view style="height: 50rpx;"></view> - <uqrcode class="hide-canvas" :size="470" sizeUnit="rpx" v-if="companyCode" ref="uqrcode" canvas-id="qrcode" :value="companyCode" :options="{ backgroundColor: '#000000',useDynamicSize: true, areaColor: '#ffffff', foregroundColor: '#ffffff' }"></uqrcode> + <uqrcode :errorCorrectLevel="1" class="hide-canvas" :size="470" sizeUnit="rpx" v-if="companyCode" ref="uqrcode" canvas-id="qrcode" :value="companyCode" :options="{ backgroundColor: '#000000',useDynamicSize: true, areaColor: '#ffffff', foregroundColor: '#ffffff' }"></uqrcode> <tabsCom :activeNumber.sync="activeNumber"></tabsCom> </view> @@ -31,13 +31,13 @@ import tabsCom from '@/qiye/components/bottom.vue' import { docList } from '@/api/index.js' import { company } from '@/api/qiye.js' - + import { getInfo as httoInfo} from '@/api/auth.js' export default { components: { tabsCom }, onShow() { - this.getInfo() + this.httoInfo() }, data() { return { @@ -50,16 +50,25 @@ } }, onReady() { - this.$refs.uqrcode.toTempFilePath({ - success: res => { - this.uqrcodeImage = res.tempFilePath - } - }); + }, onLoad(options) { - this.companyId = options.id||33 + // if(options.id) { + // this.companyId = options.id||33 + // } + // else { + // this.companyId = uni.getStorageSync('qiyedata').companyId + // } + }, methods: { + httoInfo() { + httoInfo().then(val => { + console.log(val.data.data.deptId) + this.companyId = val.data.data.deptId + this.getInfo() + }) + }, more1(){ uni.navigateTo({ url: `/pages/hqzc/list` @@ -77,9 +86,16 @@ }) company(this.companyId).then(val => { this.msg = val.data.data - console.log(this.msg) + this.companyCode = this.msg.companyCode uni.setStorageSync('qiyedata', this.msg) + setTimeout(() => { + this.$refs.uqrcode.toTempFilePath({ + success: res => { + this.uqrcodeImage = res.tempFilePath + } + }); + }, 500) // this.msg.createTime = this.msg.createTime.slice(0, 10) // this.msg.docContent = decodeURIComponent(this.msg.docContent) // console.log(this.msg.docContent) @@ -136,7 +152,7 @@ color: #4A4E60; margin-right: 50rpx; width: 450rpx; - text-align: center; + // text-align: center; } } .hide-canvas{ diff --git a/qiye/record/details.vue b/qiye/record/details.vue index d1a0d4d..2d43f43 100644 --- a/qiye/record/details.vue +++ b/qiye/record/details.vue @@ -8,7 +8,7 @@ <view class="donw-box"></view> <view class="page-main"> <view class="title"> - <template v-if="msg.isEva==0">宸叉墽娉曞緟璇勪环</template> + <template v-if="msg.isEva==0">鏈瘎浠�</template> <template v-if="msg.isEva==1">宸茶瘎浠�</template> <template v-if="msg.orderStatus==2">寰呮墽娉�</template> </view> @@ -26,7 +26,7 @@ 鎵ф硶浜� </view> <view class="v"> - {{msg.executeUser}} + {{msg.executeUser || msg.applyUser}} </view> </view> <view class="item"> @@ -34,7 +34,7 @@ 鎵ф硶閮ㄩ棬 </view> <view class="v"> - {{msg.executeDeptName}} + {{msg.executeDeptName || msg.applyDeptName}} </view> </view> <view class="item"> @@ -60,9 +60,14 @@ <view class="k"> 鎵ф硶杩囩▼ </view> + <view class="v" v-if="!img.length"> + {{msg.regionReason || '鎵ф硶杩囩▼寰呬笂鎶�'}} + </view> </view> - <view class="imgbox"> - <img v-for="(item,index) in img" :key="index" :src="item" class="more" alt="" @click="imgclick(item)" /> + <view class="imgbox" v-if="img.length"> + <template > + <img v-for="(item,index) in img" :key="index" :src="item" class="more" alt="" @click="imgclick(item)" /> + </template> <!-- <img src="/static/i01.png" class="more" @click="imgclick('/static/i01.png')" alt="" /> <img src="/static/i02.png" class="more" alt="" /> @@ -74,7 +79,7 @@ 鎵ф硶缁撴灉 </view> <view class="v" style="color: #EB4746;"> - {{msg.regionReason}} + {{msg.regionReason || '鎵ф硶缁撴灉寰呬笂鎶�'}} </view> </view> <view class="item"> @@ -82,7 +87,7 @@ 鎵ф硶鏃堕棿 </view> <view class="v"> - {{msg.executeTime}} + {{msg.inTime || "寰呮墽娉�"}} </view> </view> </view> @@ -153,7 +158,7 @@ </template> - <view class="sbox"> + <view class="sbox" v-if="msg.evaluateVo.questionRemark"> <view class="t2"> 瀵规垜浠殑璇勪环 </view> @@ -163,7 +168,7 @@ </view> </view> </view> - <view class="bottom"> + <view class="bottom" v-if="msg.orderStatus==3 || msg.orderStatus== 4"> <view class="one" v-if="msg.isEva==1"> <view class="b1" @click="open()"> 鎶曡瘔 @@ -199,7 +204,7 @@ 鎶曡瘔鍐呭 </view> <view class="margin-top"> - <u-textarea v-model="complaintReason" placeholder="璇疯緭鍏�..."></u-textarea> + <u-textarea :cursorSpacing="70" v-model="complaintReason" placeholder="璇疯緭鍏�..."></u-textarea> </view> </view> <view class="down"> @@ -242,15 +247,21 @@ console.log(this.list) // const value = val.data.data.find(item => item.dictCode == this.msg.enforceType) // this.type = value.dictLabel - }) + }) + this.getdata() }, onShow(options) { - this.getdata() + }, methods: { getdata(){ - order(this.id).then(val => { - this.msg = val.data.data + order(this.id).then(val => { + + this.msg = val.data.data + getDicts('enforce_type').then(val => { + const value = val.data.data.find(item => item.dictCode == this.msg.enforceType) + this.type = value.dictLabel + }) let arr = this.msg.regionImgs.split(","); for(let i = 0;i<arr.length;i++){ this.img.push(this.baseUrl+arr[i]) @@ -261,11 +272,7 @@ this.qlist[i].remark = Number(this.qlist[i].remark) } } - 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 - }) + }) }, daxing(a) { diff --git a/qiye/record/evaluate.vue b/qiye/record/evaluate.vue index 5b648c4..c345ad4 100644 --- a/qiye/record/evaluate.vue +++ b/qiye/record/evaluate.vue @@ -65,7 +65,7 @@ <view class="t2" style="margin-bottom: 30rpx;"> 瀵规垜浠殑璇勪环 </view> - <u-textarea v-model="questionRemark" placeholder="璇疯緭鍏�..."></u-textarea> + <u-textarea :cursorSpacing="70" v-model="questionRemark" placeholder="璇疯緭鍏�..."></u-textarea> </view> </view> <view style="height: 200rpx;"></view> diff --git a/qiye/record/record.vue b/qiye/record/record.vue index 5ba117c..3f9de4d 100644 --- a/qiye/record/record.vue +++ b/qiye/record/record.vue @@ -1,87 +1,92 @@ <template> <view> + <u-sticky bgColor="white"> + <u-navbar title="鎵ф硶璁板綍" :autoBack="true" placeholder> + <view slot="left"></view> + </u-navbar> <u-tabs :list="list" @change="click" :current="current" :scrollable="false" bgColor="white"></u-tabs> - </u-sticky> - <view class="item" v-for="(item,index) in list1"> - <img src="/static/i05.png" class="img" alt="" /> - <view class="right"> - <view class="name"> - <view class="l"> - {{item.companyName}} - </view> - <template v-if="item.orderStatus==2"> - <view class="r color3"> - 鏈墽娉� - </view> - </template> - <template v-if="item.isEva==0"> - <view class="r color2"> - 寰呰瘎浠� - </view> - </template> - <template v-if="item.isEva==1"> - <view class="r color1"> - 宸茶瘎浠� - </view> - </template> - </view> - <view class="box"> - <view class="l"> - <p>鎵ф硶鍗曚綅锛歿{item.executeDeptName}}</p> - <p>鎵ф硶鏃堕棿锛歿{item.executeTime}}</p> - </view> - <view class="r" @click="chakan(item.orderId)"> - 鍘绘煡鐪� - </view> - </view> - </view> - </view> - <!-- <view class="item"> - <img src="/static/i05.png" class="img" alt="" /> - <view class="right"> - <view class="name"> - <view class="l"> - 鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃 - </view> - <view class="r color2"> - 寰呰瘎浠� - </view> - </view> - <view class="box"> - <view class="l"> - <p>鎵ф硶鍗曚綅锛氬啘涓氬啘鏉戝眬鍐滀笟鍐滄潙灞�鍐滀笟鍐滄潙灞�鍐滀笟鍐滄潙灞�鍐滀笟鍐滄潙灞�鍐滀笟鍐滄潙灞�s</p> - <p>鎵ф硶鏃堕棿锛�2024-06-03 12:30:67</p> - </view> - <view class="r"> - 鍘绘煡鐪� - </view> - </view> - </view> - </view> - <view class="item"> - <img src="/static/i05.png" class="img" alt="" /> - <view class="right"> - <view class="name"> - <view class="l"> - 鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃 - </view> - <view class="r color3"> - 寰呰瘎浠� - </view> - </view> - <view class="box"> - <view class="l"> - <p>鎵ф硶鍗曚綅锛氬啘涓氬啘鏉戝眬</p> - <p>鎵ф硶鏃堕棿锛�2024-06-03 12:30:67</p> - </view> - <view class="r"> - 鍘绘煡鐪� - </view> - </view> - </view> - </view> --> - <view style="height: 150rpx;"></view> + </u-sticky> + <view class="item" v-for="(item,index) in list1"> + <img src="/static/i05.png" class="img" alt="" /> + <view class="right"> + <view class="name"> + <view class="l"> + {{item.companyName}} + </view> + <template v-if="item.orderStatus==2"> + <view class="r color3"> + 鏈墽娉� + </view> + </template> + <template v-if="item.isEva==0"> + <view class="r color2"> + 寰呰瘎浠� + </view> + </template> + <template v-if="item.isEva==1"> + <view class="r color1"> + 宸茶瘎浠� + </view> + </template> + </view> + <view class="box"> + <view class="l"> + <p>鎵ф硶鍗曚綅锛歿{item.executeDeptName|| item.applyDeptName}}</p> + <p>鎵ф硶鏃堕棿锛歿{item.inTime || item.planTime}}</p> + </view> + <view class="r" @click="chakan(item.orderId)"> + 鍘绘煡鐪� + </view> + </view> + </view> + </view> + <u-empty v-if="!list1.length"></u-empty> + <!-- <view class="item"> + <img src="/static/i05.png" class="img" alt="" /> + <view class="right"> + <view class="name"> + <view class="l"> + 鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃 + </view> + <view class="r color2"> + 寰呰瘎浠� + </view> + </view> + <view class="box"> + <view class="l"> + <p>鎵ф硶鍗曚綅锛氬啘涓氬啘鏉戝眬鍐滀笟鍐滄潙灞�鍐滀笟鍐滄潙灞�鍐滀笟鍐滄潙灞�鍐滀笟鍐滄潙灞�鍐滀笟鍐滄潙灞�s</p> + <p>鎵ф硶鏃堕棿锛�2024-06-03 12:30:67</p> + </view> + <view class="r"> + 鍘绘煡鐪� + </view> + </view> + </view> + </view> + <view class="item"> + <img src="/static/i05.png" class="img" alt="" /> + <view class="right"> + <view class="name"> + <view class="l"> + 鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃鍖椾含灏氱瓥浜掑姩绉戞妧鏈夐檺鍏徃 + </view> + <view class="r color3"> + 寰呰瘎浠� + </view> + </view> + <view class="box"> + <view class="l"> + <p>鎵ф硶鍗曚綅锛氬啘涓氬啘鏉戝眬</p> + <p>鎵ф硶鏃堕棿锛�2024-06-03 12:30:67</p> + </view> + <view class="r"> + 鍘绘煡鐪� + </view> + </view> + </view> + </view> --> + <view style="height: 150rpx;"></view> <tabsCom :activeNumber.sync="activeNumber"></tabsCom> </view> @@ -89,7 +94,9 @@ <script> import tabsCom from '@/qiye/components/bottom.vue' - import { companyList } from '@/api/qiye.js' + import { + companyList + } from '@/api/qiye.js' export default { components: { @@ -100,66 +107,80 @@ activeNumber: 1, list: [{ name: '鍏ㄩ儴', + value: { + + } }, { name: '寰呰瘎浠�', + value: { + isEva: 0 + } }, { name: '鏈墽娉�', + value: { + orderStatus: 2 + } }, { name: '宸茶瘎浠�', - }], - current: 0, - list1:[], - queryParams: { - pageNum: 1, - pageSize: 10, - companyId:'', - }, + value: { + isEva: 1 + } + }], + current: 0, + list1: [], + queryParams: { + pageNum: 1, + pageSize: 10, + companyId: '', + }, total: 1, } - }, - onShow() { - this.list1 = [] - this.queryParams.pageNum = 1 - this.getList() - }, - onReachBottom() { - if(this.list1.length == this.total) { - return - } - this.queryParams.pageNum++ - this.getList() }, - methods: { - chakan(id){ - uni.navigateTo({ - url: `/qiye/record/details?id=${id}` - }) - }, - getList() { - let data = uni.getStorageSync("qiyedata") - this.queryParams.companyId = data.companyId - companyList({...this.queryParams}).then(val => { - // console.log(val.data) - this.total = val.data.total - this.list1 = [...this.list1,...val.data.rows] - }) + onShow() { + this.list1 = [] + this.queryParams.pageNum = 1 + this.getList() + }, + onReachBottom() { + if (this.list1.length == this.total) { + return + } + this.queryParams.pageNum++ + this.getList() + }, + methods: { + chakan(id) { + uni.navigateTo({ + url: `/qiye/record/details?id=${id}` + }) }, - click(i) { - this.list1 = [] + getList() { + let data = uni.getStorageSync("qiyedata") + this.queryParams.companyId = data.companyId + companyList({ + ...this.queryParams, + ...this.list[this.current].value + }).then(val => { + // console.log(val.data) + this.total = val.data.total + this.list1 = [...this.list1, ...val.data.rows] + }) + }, + click(i) { + this.list1 = [] this.queryParams.pageNum = 1 - console.log(i.index) - // if(i.index==0){ - - // } - if(i.index==1){ - this.queryParams.isEva = 0 - } - if(i.index==2){ - this.queryParams.orderStatus = 2 - } - if(i.index==3){ - this.queryParams.isEva = 1 - } + this.current = i.index + // console.log(i.index) + + // if(i.index==1){ + // this.queryParams.isEva = 0 + // } + // if(i.index==2){ + // this.queryParams.orderStatus = 2 + // } + // if(i.index==3){ + // this.queryParams.isEva = 1 + // } this.getList() } } @@ -170,71 +191,81 @@ page { background: #f4f4f4; } -</style> -<style lang="scss" scoped> - - .item{ - background: #fff; - border-radius: 5px; - padding: 24rpx; - box-sizing: border-box; - margin: 20rpx 32rpx; - display: flex; - .img{ - width: 56rpx; - height: 56rpx; - } - .right{ - width: 90%; - .name{ - display: flex; - justify-content: space-between; - .l{ - color: #202d44; - font-size: 32rpx; - line-height: 44rpx; - margin-bottom: 24rpx; - width: 80%; - } - .r{ - font-size: 28rpx; - width: 20%; - text-align: right; - } - } - .box{ - display: flex; - justify-content: space-between; - .l{ - font-size: 26rpx; - color: #7e8593; - max-width: 80%; - } - .r{ - width: 132rpx; - height: 64rpx; - line-height: 64rpx; - border-radius: 5px; - border: 1px solid #ABD2FF; - background: #F0F8FF; - color: #1171e0; - text-align: center; - font-size: 30rpx; - } - } - } - } - .color1{ - color: #FE7B32; - //cheng - } - .color2{ - color: #EB4746; - - //hong - } - .color3{ - color: #3EB47A; - //lv - } +</style> +<style lang="scss" scoped> + .item { + background: #fff; + border-radius: 5px; + padding: 24rpx; + box-sizing: border-box; + margin: 20rpx 32rpx; + display: flex; + + .img { + width: 56rpx; + height: 56rpx; + } + + .right { + width: 90%; + + .name { + display: flex; + justify-content: space-between; + + .l { + color: #202d44; + font-size: 32rpx; + line-height: 44rpx; + margin-bottom: 24rpx; + width: 80%; + } + + .r { + font-size: 28rpx; + width: 20%; + text-align: right; + } + } + + .box { + display: flex; + justify-content: space-between; + + .l { + font-size: 26rpx; + color: #7e8593; + max-width: 80%; + } + + .r { + width: 132rpx; + height: 64rpx; + line-height: 64rpx; + border-radius: 5px; + border: 1px solid #ABD2FF; + background: #F0F8FF; + color: #1171e0; + text-align: center; + font-size: 30rpx; + } + } + } + } + + .color1 { + color: #FE7B32; + //cheng + } + + .color2 { + color: #EB4746; + + //hong + } + + .color3 { + color: #3EB47A; + //lv + } </style> \ No newline at end of file diff --git a/static/guocheng.png b/static/guocheng.png new file mode 100644 index 0000000..3e2933a --- /dev/null +++ b/static/guocheng.png Binary files differ diff --git a/uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue b/uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue index 4e32bc2..ef1527f 100644 --- a/uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue +++ b/uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue @@ -53,6 +53,14 @@ type: Number, default: 2000, }, + startMonth: { + type: Number, + default: 0 + }, + startDay: { + type: Number, + default: 0 + }, endYear: { type: Number, default: 2099, @@ -68,7 +76,7 @@ timeInit: { type: String, default: '', //new Date('2023-5-20').valueOf() - }, + } }, data() { @@ -132,6 +140,7 @@ initMonths() { const months = []; + for (let month = 1; month <= 12; month++) { months.push(month); if (this.currentDatetime.getMonth() + 1 === month) { -- Gitblit v1.9.1