From 105d1e8d9225c1000c53b924bd9a3ae076f64d09 Mon Sep 17 00:00:00 2001 From: quanyawei <401863037@qq.com> Date: Thu, 16 Nov 2023 15:55:53 +0800 Subject: [PATCH] fix:添加已作废 --- pages/actionChange/agencyPage/index.vue | 516 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 516 insertions(+), 0 deletions(-) diff --git a/pages/actionChange/agencyPage/index.vue b/pages/actionChange/agencyPage/index.vue new file mode 100644 index 0000000..9ce724b --- /dev/null +++ b/pages/actionChange/agencyPage/index.vue @@ -0,0 +1,516 @@ +<template> + <view> + <view class="hearderInfor"> + <view> + <p class="unit"> + <text>���������������{{ unitName }}</text> + </p> + </view> + <view class="headSculpture"> + <button open-type="chooseAvatar" @chooseavatar='onChooseAvatar' + style="padding: 0;margin: 0;border-radius: 100px;"> + <u-avatar :src="avatarUrl" randomBgColor size='60'></u-avatar> + </button> + <text style="margin-left: 46.15rpx;">������������{{ userName || ''}}</text> + </view> + </view> + <view> + <u-tabs :list="list" :scrollable="scrollable" lineWidth="60" :current='current' @change="changeTap" /> + </view> + <view class="" v-if="userName"> + <view class="dataRangeSerch" v-if="current===3"> + <view class="dataRangeSerchLabel"> + <text style="margin-right: 8px;">������:</text> + <uni-datetime-picker v-model="range" type="daterange" rangeSeparator="���" /> + </view> + <view> + <u-button type="primary" size="small" text="������" @click="getSearch" throttleTime='500'></u-button> + </view> + </view> + <view :key="index" v-for="(item, index) in workOderList" class="workOrderDetail" + @tap="handleClick(item, 'edit')"> + <view class="mainContent"> + <p class="rowTip" style="justify-content: space-between"> + <text class=" titleLable"> ������������: {{ item.allocationNum }} + </text> + <text class="rowTipContenet_right"> + <text catchtap class="butsName" @tap.stop="handleClick(item, 'view')"> ������ </text> + <text catchtap class="butsName" @tap.stop="handleClick(item, 'edit')"> + {{ item.stateName }} + </text> + </text> + </p> + </view> + <u-line color="#bbb" /> + <view class="mainContent"> + <p class="rowTip"> + <view class="rowTipContenet"> + <view class="wholeLine"> + <text class="rowTipContenetLabel">������������:</text> + <text class="rowTipContenetAll"> + {{ unitList.find( + (a) => item && parseInt(a.unitId) === item.unitId + ).unitName + }} + </text> + </view> + </view> + <view class="rowTipContenet"> + <view class="wholeLine"> + <text class="rowTipContenetLabel">������������:</text> + <text class="rowTipContenetAll"> + {{ polluteList.find( + (a) => item && parseInt(a.dataKey) === item.polluteType + ).dataValue + }} + </text> + </view> + </view> + </p> + </view> + <view class="mainContent"> + <p class="rowTip"> + <view class="rowTipContenet"> + <view class="wholeLine"> + <text class="rowTipContenetLabel">������������:</text> + <text class="rowTipContenetAll"> + {{ dictObj.changeEnum[item.changeType] }} + </text> + </view> + </view> + <view class="rowTipContenet"> + <view class="wholeLine"> + <text class="rowTipContenetLabel">������������:</text> + <u--text type="warning" :text="item.state |stateFormatter" size='30.77rpx' + v-if="item.state===20 ||item.state===9"></u--text> + <u--text type="primary" :text="item.state |stateFormatter" size='30.77rpx' + v-if="item.state===30"></u--text> + <u--text type="success" :text="item.state |stateFormatter" size='30.77rpx' + v-if="item.state===40"></u--text> + <u--text type="error" :text="item.state |stateFormatter" size='30.77rpx' + v-if="item.state===50"></u--text> + </view> + </view> + </p> + </view> + <view class="mainContent"> + <p class="rowTip"> + <view class="rowTipContenet"> + <view class="wholeLine"> + <text class="rowTipContenetLabel">������������:</text> + <text class="rowTipContenetAll"> + {{ item.escalationTime }} + </text> + </view> + </view> + <view class="rowTipContenet"> + <view class="wholeLine"> + <text class="rowTipContenetLabel">������������:</text> + <text class="rowTipContenetAll"> + {{ item.escalationUnitName}} + </text> + </view> + </view> + </p> + </view> + <view class="mainContent"> + <p class="rowTip"> + <view class="wholeLine"> + <text class="rowTipContenetLabel">������������:</text> + <text class="rowTipContenetAll">{{ item.pollutePosition }}</text> + </view> + </p> + </view> + <view class="yingzhang" v-if="item.isInvalid===1"> + <view class="seal-red"> ��������� </view> + </view> + </view> + <u-loadmore :status="status" :loading-text="loadingText" @loadmore='getLoadmore' + :loadmore-text="loadmoreText" dashed line :nomore-text="nomoreText" /> + </view> + </view> +</template> +<script> + import { + httpPost, + httpGet + } from '@/utils/http.js' + import store from '@/store/index.js' + export default { + data() { + return { + range: [], + scrollable: false, + userInfor: null, + dictObj: [], + list: [{ + name: '������', + value: 0, + }, { + name: '���������', + value: 1, + }, { + name: '���������', + value: 2, + }, { + name: '���������', + value: 3, + }, ], + showeEscalationTime: false, + current: 1, + startTime: '', + endTime: '', + workOderList: [], + unitList: [], + polluteList: [], + avatarUrl: '', + baseUrl: '', + token: '', + status: 'loadmore', + loadingText: '���������������', + loadmoreText: '������������', + nomoreText: '���������������', + isLoading: false, + page: { + currentPage: 1, + pageSize: 10 + } + } + }, + watch: { + range(newval) { + console.log('newval', newval) + this.startTime = newval[0] + this.endTime = newval[1] + }, + }, + computed: { + unitName() { + let data = '' + if (this.userInfor && this.unitList.length > 0) { + data = this.unitList && this.unitList.find(a => Number(a.unitId) === Number(this.userInfor.unitId)) + } + if (this.userInfor) { + data = this.userInfor.unName + } + return data + }, + userName() { + let data = '' + if (this.userInfor) { + data = this.userInfor.userName + } + return data + } + }, + mounted() {}, + filters: { + stateFormatter(val) { + let information = JSON.parse(uni.getStorageSync('dictObj') || '[]') + return information.allocationApproveEnum[val] + } + }, + onLoad: () => {}, + methods: { + onBottom() { + //������������������������������������������ + console.log('1122111') + this.status = 'loading' + //������������������,���������++ + this.page.currentPage = ++this.page.currentPage + //������������,������������tab������������ + this.getWorkOrder() + }, + getLoadmore() { + this.status = 'loading' + //������������������,���������++ + this.page.currentPage = ++this.page.currentPage + //������������,������������tab������������ + this.getWorkOrder() + }, + async onChooseAvatar(e) { + const { + avatarUrl + } = e.detail // ������������������������������������������������������������������������ + this.avatarUrl = avatarUrl + uni.showToast({ + title: '������', + duration: 1000 + }) + let a = uni.uploadFile({ + url: this.baseUrl + '/file/upload', + filePath: this.avatarUrl, + header: { + token: this.token, + Authorization: this.token, + }, + name: 'file', + formData: { + sysCode: '1202401' + }, + success: res => { + let resData = JSON.parse(res.data) + let parms = { + 'file': resData.data, + 'userId': this.userInfor.userId + } + this.$http.httpPost('/allocationApp/appFile', parms).then(res => { + uni.removeStorageSync('userInfor') + this.userInfor.file = resData.data + console.log('resData.data', resData.data) + uni.setStorageSync('userInfor', JSON.stringify(this.userInfor)) + console.log('this.userInforSet', this.userInfor) + }) + console.log(this.url) + }, + fail: res => { + uni.showToast({ + title: res.data, + icon: 'none', + }) + } + }) + }, + changeTap(data) { + console.log(data) + this.current = data.value + this.page = { + currentPage: 1, + pageSize: 10 + } + this.workOderList = [] + this.startTime = '' + this.endTime = '' + uni.$u.throttle(this.getWorkOrder, 500) + }, + getSearch() { + this.workOderList = [] + this.page = { + currentPage: 1, + pageSize: 10 + } + this.getWorkOrder() + }, + setData() { + this.workOderList = [] + this.page = { + currentPage: 1, + pageSize: 10 + } + this.getContaminateList() + }, + // ������������������list + getUnitList() { + this.$http.httpGet('/allocation/unit').then(res => { + this.unitList = res.data + }) + }, + getContaminateList() { + console.log('indexindex') + this.$http.httpGet('/allocation/contaminate').then(res => { + this.polluteList = res.data + this.dictObj = JSON.parse(uni.getStorageSync('dictObj') || '[]') + this.userInfor = JSON.parse(uni.getStorageSync('userInfor') || '{}') + this.baseUrl = this.$storage.get('baseUrl') + this.token = uni.getStorageSync('tonken') + this.avatarUrl = `${this.baseUrl}/file/preview/${this.userInfor.file.fileId}` + console.log('indexindexindexindexthis.userInfor', this.userInfor) + this.getUnitList() + this.getWorkOrder() + }).catch(res => { + console.log('���������', res) + // this.getContaminateList() + }) + }, + getWorkOrder() { + httpPost('/allocationApp/page', { + state: this.current, + startTime: this.startTime, + endTime: this.endTime, + page: { + 'currentPage': this.page.currentPage, + 'pageSize': this.page.pageSize + }, + }).then(res => { + console.log('indexindex', res.data.list) + if (res.data.list) { + if (res.data.list.length < this.page.pageSize) { + //���������������false������������������������,������������������������������������������ + this.isLoading = false + this.status = 'nomore' + } else { + this.isLoading = true + this.status = 'loadmore' + } + res.data.list.forEach(el => { + this.workOderList.push(el) + }) + } else { + this.status = 'nomore' + } + }) + }, + handleClick(e, pageState) { + let data = {} + data.pageState = e.stateName === '���������' ? pageState : 'view' + data.stateName = e.stateName + data.allocationId = e.allocationId + data.state = e.state + data.allocationNum = e.allocationNum + data.current = this.current + let myData = JSON.stringify(data) + uni.navigateTo({ + url: '/pages/actionChange/workOrderDetails/index?infor=' + myData + '&type=jump', + }) + }, + }, + // onShow() {}, + } +</script> +<style scoped lang="scss"> + page { + height: 101vh; + } + + /deep/.uni-page-head { + display: none; + } + + .hearderInfor { + font-size: 28.85rpx; + background-color: #3875c5; + padding-bottom: 8px; + color: #f2f2f2; + + .unit { + text-align: right; + padding-right: 19.23rpx; + padding-top: 19.23rpx; + } + + .headSculpture { + display: flex; + align-items: center; + padding-left: 20px; + + .imageSrc { + height: 117.31rpx; + width: 117.31rpx; + margin: 0rpx 46.15rpx; + } + } + } + + .textContent { + text-align: left; + width: 100%; + font-size: 30.77rpx; + } + + .workOrderDetail { + border: 1px solid #bbb; + border-radius: 5px; + margin: 9.62rpx; + padding: 9.62rpx 19.23rpx; + color: #101010; + font-size: 30.77rpx; + + /deep/.u-line { + margin: 9.62rpx 0px !important; + } + + .mainContent { + margin-bottom: 5px; + + .rowTip { + display: flex; + + .wholeLine { + display: flex; + + .rowTipContenetLabel { + min-width: 125rpx; + } + } + + .rowTipContenetAll { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .rowTipContenet { + width: 50%; + text-align: left; + } + } + + .butsName { + display: inline-block; + margin-left: 19.23rpx; + color: #1990ff; + } + + .titleLable { + font-size: 30.77rpx; + font-weight: bold; + } + + .rowTipContenet_right { + text-align: right !important; + } + } + } + + /deep/.u-tabs__wrapper__nav__item__text { + font-size: 34.62rpx !important; + } + + .yingzhang { + position: relative; + + .seal-red { + position: absolute; + right: 0; + top: -85px; + display: inline-block; + border: solid 2px #e93e00; + border-radius: .2em; + color: #e24c06; + font-size: 19px; + line-height: 1; + opacity: 0; + padding: .1em .5em; + text-transform: uppercase; + opacity: 0; + transform: rotate(-2deg) scale(5); + animation: seal .3s cubic-bezier(0.6, 0.04, 0.98, 0.335) forwards; + } + + @keyframes seal { + 100% { + opacity: .75; + transform: rotate(-15deg) scale(1); + } + } + } + + .dataRangeSerch { + display: flex; + justify-content: space-around; + align-items: center; + padding: 10px 0 5px 0px; + + .dataRangeSerchLabel { + display: flex; + align-items: center; + width: 75%; + } + + /deep/.range-separator, + /deep/.uni-date__x-inpu { + height: 30px !important; + line-height: 30px !important; + } + } +</style> \ No newline at end of file -- Gitblit v1.8.0