From 52d463e03c1f074099ed8e8a6b7c3ddde52d2708 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Fri, 27 Oct 2023 14:50:28 +0800
Subject: [PATCH] fix:小程序初版
---
pages/actionChange/agencyPage/index.vue | 298 +++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 256 insertions(+), 42 deletions(-)
diff --git a/pages/actionChange/agencyPage/index.vue b/pages/actionChange/agencyPage/index.vue
index 5c535ca..563f912 100644
--- a/pages/actionChange/agencyPage/index.vue
+++ b/pages/actionChange/agencyPage/index.vue
@@ -3,23 +3,35 @@
<view class="hearderInfor">
<view>
<p class="unit">
- <text>���������������{{ userInfor.userName ||''}}</text>
+ <text>���������������{{ unitName }}</text>
</p>
</view>
<view class="headSculpture">
- <image alt="" src="/static/img/headSculpture.png" />
- <text>������������{{ userInfor.userName || ''}}</text>
+ <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" @change="changeTap" />
+ <u-tabs :list="list" :scrollable="scrollable" lineWidth="60" @change="changeTap" />
</view>
- <view class="" v-if="userInfor.userName">
+ <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="getWorkOrder"></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=""> ������������: {{ item.allocationNum }}
+ <text class=" titleLable"> ������������: {{ item.allocationNum }}
</text>
<text class="rowTipContenet_right">
<text catchtap class="butsName" @tap.stop="handleClick(item, 'view')"> ������ </text>
@@ -69,9 +81,14 @@
<view class="rowTipContenet">
<view class="wholeLine">
<text class="rowTipContenetLabel">������������:</text>
- <text class="rowTipContenetAll">
- {{ stateFormatter(item.state) }}
- </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>
@@ -108,7 +125,12 @@
</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>
@@ -117,11 +139,13 @@
httpPost,
httpGet
} from '@/utils/http.js'
+ import store from '@/store/index.js'
export default {
data() {
return {
+ range: [],
scrollable: false,
- userInfor: {},
+ userInfor: null,
dictObj: [],
list: [{
name: '������',
@@ -136,54 +160,188 @@
name: '���������',
value: 3,
}, ],
+ showeEscalationTime: false,
current: 0,
+ startTime: '',
+ endTime: '',
workOderList: [],
unitList: [],
polluteList: [],
+ avatarUrl: '',
+ baseUrl: '',
+ token: '',
+ status: 'loadmore',
+ loadingText: '���������������',
+ loadmoreText: '������������',
+ nomoreText: '���������������',
+ isLoading: false,
+ page: {
+ currentPage: 1,
+ pageSize: 10
+ }
}
},
- mounted() {
- console.log('mounted this.userInfo', this.userInfo)
+ watch: {
+ range(newval) {
+ console.log('newval', newval)
+ this.startTime = newval[0]
+ this.endTime = newval[1]
+ },
},
- created() {
- console.log('created this.userInfo', this.userInfo)
- this.getContaminateList()
- this.getUnitList()
- this.getWorkOrder()
+ 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
+ }
},
- onShow() {
- uni.showTabBar()
+ onReachBottom() {
+ //������������������������������������������
+ if (this.isLoading) {
+ this.status = 'loading'
+ //������������������,���������++
+ this.page.currentPage = ++this.page.currentPage
+ //������������,������������tab������������
+ this.getWorkOrder()
+ }
},
+ mounted() {},
+ filters: {
+ stateFormatter(val) {
+ let information = JSON.parse(uni.getStorageSync('dictObj') || '[]')
+ return information.allocationApproveEnum[val]
+ }
+ },
+ onLoad: () => {},
methods: {
+ getLoadmore() {
+ if (this.isLoading) {
+ 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.startTime = ''
+ this.endTime = ''
this.getWorkOrder()
},
// ������������������list
getUnitList() {
this.$http.httpGet('/allocation/unit').then(res => {
this.unitList = res.data
- this.userInfor = this.$storage.getJson('userInfo')
- this.dictObj = this.$storage.getJson('dictObj')
- this.$storage.setJson('unitList', this.unitList)
})
},
getContaminateList() {
+ console.log('indexindex')
this.$http.httpGet('/allocation/contaminate').then(res => {
this.polluteList = res.data
- this.$storage.setJson('polluteList', this.polluteList)
+ 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()
})
},
- stateFormatter(val) {
- return this.dictObj.allocationApproveEnum[val]
- },
getWorkOrder() {
- httpGet('/allocationApp/select', {
+ httpPost('/allocationApp/page', {
state: this.current,
- startTime: '',
- endTime: '',
+ startTime: this.startTime,
+ endTime: this.endTime,
+ page: {
+ 'currentPage': this.page.currentPage,
+ 'pageSize': this.page.pageSize
+ },
}).then(res => {
- this.workOderList = res.data
+ 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'
+ }
+ if (this.page.currentPage === res.data.page.currentPage) {
+ this.workOderList = res.data.list
+ } else {
+ res.data.list.forEach(el => {
+ this.workOderList.push(el)
+ })
+ }
+ } else {
+ this.status = 'nomore'
+ }
})
},
handleClick(e, pageState) {
@@ -191,7 +349,7 @@
id: e.allocationId
}).then(res => {
let data = res.data
- data.pageState = pageState
+ data.pageState = data.state === 50 || data.state === 40 ? 'view' : pageState
let myData = JSON.stringify(data)
uni.navigateTo({
url: '/pages/actionChange/workOrderDetails/index?infor=' + myData,
@@ -208,9 +366,9 @@
}
.hearderInfor {
- font-size: 26.92rpx;
- height: 223.08rpx;
+ font-size: 28.85rpx;
background-color: #3875c5;
+ padding-bottom: 8px;
color: #f2f2f2;
.unit {
@@ -222,8 +380,9 @@
.headSculpture {
display: flex;
align-items: center;
+ padding-left: 20px;
- image {
+ .imageSrc {
height: 117.31rpx;
width: 117.31rpx;
margin: 0rpx 46.15rpx;
@@ -234,25 +393,23 @@
.textContent {
text-align: left;
width: 100%;
- font-size: 28.85rpx;
+ font-size: 30.77rpx;
}
.workOrderDetail {
border: 1px solid #bbb;
border-radius: 5px;
- min-height: 288.46rpx;
- margin: 19.23rpx;
- padding: 19.23rpx;
+ margin: 9.62rpx;
+ padding: 9.62rpx 19.23rpx;
color: #101010;
- font-weight: 700;
- font-size: 26.92rpx;
+ font-size: 30.77rpx;
/deep/.u-line {
- margin: 19.23rpx 0px !important;
+ margin: 9.62rpx 0px !important;
}
.mainContent {
- margin-bottom: 10px;
+ margin-bottom: 5px;
.rowTip {
display: flex;
@@ -283,9 +440,66 @@
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