From 910f2ef56d0d49a4ce24b2f33860dce4d739b1b4 Mon Sep 17 00:00:00 2001 From: 付延余 <f-yanyu@outlook.com> Date: 星期三, 03 八月 2022 16:58:06 +0800 Subject: [PATCH] 项目整体细节,新增主页煤仓剩余量图表。 --- pages/home/home.vue | 1629 ++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 1,033 insertions(+), 596 deletions(-) diff --git a/pages/home/home.vue b/pages/home/home.vue index cbd0679..bfac91d 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -1,596 +1,1033 @@ -<template> - <view class="home"> - <!-- 杞挱鍥� --> - <view class="home_swipe"><u-swiper :list="list3" indicator indicatorMode="line" circular></u-swiper></view> - <!-- 鎴戠殑鐢宠 --> - <combined-title title="鎴戠殑鐢宠" detailsPath="/pages/my-application/my-application"></combined-title> - <combination-card v-for="(item, index) in shenqingData" index="index"> - <template v-slot:top> - <view> - <text>{{ item.title }}</text> - </view> - </template> - <template v-slot:center> - <view class="center-container"> - <view class="center-content__one center-margin"> - <view class=""> - <text>鎵�灞炴祦绋嬶細{{ item.processName }}</text> - </view> - <view class=""> - <text>瀹℃壒鐜妭锛歿{ item.currTaskName }}</text> - </view> - </view> - <view class="center-content__two center-margin"> - <view class=""> - 鐘舵�侊細 - <text :style="{ color: statusColor[item.status] }">{{ status[item.status] }}</text> - </view> - <view class=""> - 缁撴灉锛� - <text :style="{ color: resultColor[item.result] }">{{ result[item.result] }}</text> - </view> - </view> - <view class="center-content__three center-margin"> - <text>鍒涘缓鏃堕棿锛歿{ item.createTime }}</text> - </view> - <view class="center-content__four"> - <text>鎻愪氦鐢宠鏃堕棿锛歿{ item.applyTime }}</text> - </view> - </view> - </template> - <template v-slot:bottom> - <view class="bottom-container"> - <!-- 鎸夐挳鍖哄煙 --> - <view class="bottom-content__chulizhong bottom-content__item" > - <view @click="withDrawClick(item.id)" v-if="item.status == 1"> - <image src="@/static/home/cehui.png" mode=""></image> - <view>鎾ゅ洖</view> - </view> - <view @click="checkTheScheduleClick" v-if="item.status == 1"> - <image src="@/static/home/jindu.png" mode=""></image> - <view>鏌ョ湅杩涘害</view> - </view> - <view @click="theFormDataClick" v-if="item.status == 1 || item.status == 2 "> - <image src="@/static/home/biaodan.png" mode=""></image> - <view>琛ㄥ崟鏁版嵁</view> - </view> - <view v-if="item.status == 3"> - <image src="@/static/home/history.png" mode="" ></image> - <view>閲嶆柊鐢宠</view> - </view> - <view v-if="item.status == 3"> - <image src="@/static/home/history.png" mode="" ></image> - <view>缂栬緫</view> - </view> - <view @click="approvalHistoryClick" v-if="item.status == 2 || item.status == 3"> - <image src="@/static/home/history.png" mode=""></image> - <view>瀹℃壒鍘嗗彶</view> - </view> - - </view> - <!-- 宸茬粨鏉熷皬缁勬寜閽� --> - <!-- <view class="bottom-content__chulizhong bottom-content__item" v-if="item.status == 2"> - <view @click="theFormDataClick"> - <image src="@/static/home/biaodan.png" mode=""></image> - <view>琛ㄥ崟鏁版嵁</view> - </view> - - </view> --> - </view> - </template> - </combination-card> - - <!-- 鎴戠殑寰呭姙 --> - <combined-title title="鎴戠殑寰呭姙" detailsPath="/pages/my-todo/my-todo"></combined-title> - <combination-card v-for="(item, index) in daibanData" index="index"> - <template v-slot:top> - <view> - <text>{{ item.actBusiness.title }}</text> - </view> - </template> - <template v-slot:center> - <view class="center-container"> - <view class="center-content__one center-margin"> - <view class=""> - <text>浠诲姟鍚嶇О锛歿{ item.name }}</text> - </view> - <view class=""> - <text>鎵�灞炴祦绋嬶細{{ item.processName }}</text> - </view> - </view> - <view class="center-content__two center-margin"> - <text>鍙戣捣浜猴細{{ item.actBusiness.createByName }}</text> - </view> - - <view class="center-content__three"> - <text>鍒涘缓鏃堕棿锛歿{ item.createTime }}</text> - </view> - </view> - </template> - <template v-slot:bottom> - <view class="bottom-container"> - <!-- 寰呭姙鎸夐挳 --> - <view class="bottom-content__item"> - <view @click="theFormDataClick"> - <image src="@/static/home/jindu.png" mode=""></image> - <view>鐢宠璇︽儏</view> - </view> - <view @click="adoptModalShow = true"> - <image src="@/static/home/tongguo.png" mode=""></image> - <view>閫氳繃</view> - </view> - <view @click="rejectModalShow = true"> - <image src="@/static/home/bohui.png" mode=""></image> - <view>椹冲洖</view> - </view> - <view @click="approvalHistoryClick"> - <image src="@/static/home/history.png" mode=""></image> - <view>鍘嗗彶</view> - </view> - </view> - </view> - </template> - </combination-card> - - <!-- 鎴戠殑宸插姙 --> - <combined-title title="鎴戠殑宸插姙 " detailsPath="/pages/my-have-todo/my-have-todo"></combined-title> - <combination-card v-for="(item, index) in yibanData" index="index"> - <template v-slot:top> - <view> - <text>{{ item.actBusiness.title }}</text> - </view> - </template> - <template v-slot:center> - <view class="center-container"> - <view class="center-content__one center-margin"> - <view> - <text>浠诲姟鍚嶇О锛歿{ item.name }}</text> - </view> - <view> - <text>鎵�灞炴祦绋嬶細{{ item.processName }}</text> - </view> - </view> - <view class="center-content__two center-margin"> - <view> - <text>鍙戣捣浜猴細{{ item.actBusiness.createByName }}</text> - </view> - <view> - <text>瀹℃壒鎿嶄綔锛歿{ item.deleteReason }}</text> - </view> - </view> - <view class="center-content__three center-margin"> - <view class=""> - <text>瀹℃壒鎰忚锛歿{ item.comment }}</text> - </view> - <view class=""> - <text> - 鑰楁椂锛歿{ - item.duration >= 86400000 - ? parseInt(item.duration / 86400000 + '澶�' + parseInt(item.duration % 86400000) / 3600000 + '鏃�' + parseInt(item.duration % 3600000) / 60000 + '鍒�') - : item.duration >= 3600000 - ? parseInt(item.duration / 3600000) + '鏃�' + parseInt(item.duration / 3600000 % 3600000) + '鍒�' - : parseInt(item.duration / 60000) + '鍒�' - }} - </text> - </view> - </view> - <view class="center-content__four"> - <text>鍒涘缓鏃堕棿锛歿{ item.createTime }}</text> - </view> - </view> - </template> - <template v-slot:bottom> - <view class="bottom-container"> - <!-- 宸插姙鎸夐挳 --> - <view class="bottom-content__item"> - <view @click="theFormDataClick"> - <image src="@/static/home/biaodan.png" mode=""></image> - <view>琛ㄥ崟鏁版嵁</view> - </view> - <view @click="approvalHistoryClick"> - <image src="@/static/home/history.png" mode=""></image> - <view>瀹℃壒鍘嗗彶</view> - </view> - <view @click="deleteApplicationClick(item.id)"> - <image src="@/static/home/delete.png" mode=""></image> - <view>鍒犻櫎</view> - </view> - </view> - </view> - </template> - </combination-card> - - <!-- 鎾ゅ洖妯℃�佹 --> - <view class="wodeshenqingMotai"> - <u-modal width="684rpx" :show="withDrawShow" title="鎾ゅ洖鍘熷洜" :showCancelButton="true" @confirm="withDrawConfirm" @cancel="withDrawCancel"> - <view class="slot-content"><u--textarea v-model="withDrawContent" placeholder="璇疯緭鍏ユ挙鍥炲師鍥�"></u--textarea></view> - </u-modal> - </view> - - <!-- 閫氳繃妯℃�佹 --> - <view class="adoptModal"> - <u-modal width="684rpx" :show="adoptModalShow" title="瀹℃壒閫氳繃" :showCancelButton="true" @confirm="adoptModalConfirm" @cancel="adoptModalCancel"> - <view class="slot-content"><u--textarea v-model="adoptModalContent" placeholder="璇疯緭鍏ュ鎵规剰瑙�"></u--textarea></view> - </u-modal> - </view> - - <!-- 椹冲洖妯℃�佹 --> - <view class="rejectModal"> - <u-modal width="684rpx" :show="rejectModalShow" title="椹冲洖" :showCancelButton="true" @confirm="rejectModalConfirm" @cancel="rejectModalCancel"> - <view class="slot-content"> - <u--textarea v-model="rejectModalContent" placeholder="璇疯緭鍏ュ鎵规剰瑙�"></u--textarea> - <view class="rejectBack"> - <view class="rejectBack-title"><text>椹冲洖鑷�</text></view> - <view class="data-selet" @click="statusSeletShow = true"> - <view class="content"> - <text>{{ dataSeletText }}</text> - </view> - <view class="uni-select__icon"><image src="@/static/icon/select.png" mode="鍔犺浇澶辫触"></image></view> - </view> - </view> - </view> - </u-modal> - </view> - - <!-- 鍒犻櫎宸插姙鐢宠妯℃�佹 --> - <view class="deleteApplicationModal"> - <u-modal - :show="deleteApplicationModalShow" - title="鎻愮ず" - content="纭畾鍒犻櫎璇ョ敵璇凤紵" - :showCancelButton="true" - @confirm="deleteApplicationModalConfirm" - @cancel="deleteApplicationModalCancel" - ></u-modal> - </view> - - <!-- 閫夋嫨鍣� --> - <u-picker @cancel="statusSeletShow = false" @confirm="statusConfirm" :show="statusSeletShow" :columns="statusList"></u-picker> - - <!-- 鑿滃崟鏍� --> - <popup-menu @menuShow="menushow" ref="menuRef"></popup-menu> - </view> -</template> - -<script> -import { timeConsuming } from '@/utils/nowDate.js'; -import popupMenu from '@/components/common/popup-menu/popup-menu.vue'; -import combinedTitle from '@/components/common/combined-title/combined-title.vue'; -import combinationCard from '@/components/common/combination-card/combination-card.vue'; -import {setAccessToken} from '@/utils/status.js' -export default { - name: 'home', - data() { - return { - // menuShow:false,// 鑿滃崟鏄剧ず - status: ['鑽夌', '澶勭悊涓�', '宸茬粨鏉�', '宸叉挙鍥�'], - statusColor: ['#DDDDDD', '#FF9900', '#007AFF', '#06BE00'], - result: ['鏈彁浜�', '澶勭悊涓�', '閫氳繃', '椹冲洖'], - resultColor: ['#DDDDDD', '#FF9900', '#06BE00', '#be2b2d'], - list3: ['https://cdn.uviewui.com/uview/swiper/swiper3.png', 'https://cdn.uviewui.com/uview/swiper/swiper2.png', 'https://cdn.uviewui.com/uview/swiper/swiper1.png'], - // 鎾ゅ洖妯℃�佹 - withDrawShow: false, - withDrawContent: '', - withDrawId: 0, // 鎾ゅ洖鐢宠ID - // 閫氳繃妯℃�佹 - adoptModalShow: false, - adoptModalContent: '', - // 椹冲洖妯℃�佹 - rejectModalShow: false, - rejectModalContent: '', - dataSeletText: '璇烽�夋嫨鐘舵��', - // 鍒犻櫎鐢宠妯℃�佹 - deleteApplicationModalShow: false, - // 閫夋嫨鍣� - statusSeletShow: false, - statusList: [['涓浗', '缇庡浗', '鏃ユ湰']], - // data - shenqingData: [], - daibanData: [], - daibanData: [], - yibanData: [], - menuShow: false, - // 鐢宠 - myApplicationParams: { - status: '', - result: '', - pageNumber: 1, - pageSize: 2, - sort: 'createTime', - order: 'desc' - }, - // 寰呭姙 - todoParams: { - pageNumber: 1, - pageSize: 2 - }, - haveTodoParams: { - pageNumber: 1, - pageSize: 2, - sort: 'createTime', - order: 'desc' - } - }; - }, - // 鐐瑰嚮瀵艰埅鏍忚彍鍗曞悗 - onNavigationBarButtonTap(e) { - console.log(e); - this.$refs.menuRef.menuClick(); - }, - onShow() { - if (this.menuShow == true) { - this.$refs.menuRef.menuClick(); - } - this.init(); - }, - components: { - combinedTitle, - combinationCard, - popupMenu - }, - methods: { - getUserInfo() { - this.$reqGet('getUserInfo').then(res => { - if(res.code == 0) { - uni.setStorageSync('userInfo',res.data.sysUser) - } - }) - }, - init() { - this.getUserInfo() - this.getProcessDataList(); // 鐢宠鍒楄〃 - this.todoList(); // 鎴戠殑寰呭姙 - this.doneList(); // 鎴戠殑宸插姙 - }, - getProcessDataList() { - this.$reqGet('getProcessDataList', this.myApplicationParams).then(res => { - if (res.code === 0) { - // console.log('鐢宠', res); - this.shenqingData = res.data.records; - } - }); - }, - todoList() { - this.$reqGet('todoList', this.todoParams).then(res => { - if (res.code === 0) { - // console.log('寰呭姙', res); - this.daibanData = res.data.content; - } - }); - }, - doneList() { - this.$reqGet('doneList', this.haveTodoParams).then(res => { - if (res.code === 0) { - // console.log('宸插姙', res); - this.yibanData = res.data.content; - } - }); - }, - menushow(e) { - this.menuShow = e; - }, - // 鎾ゅ洖妯℃�佹 - withDrawClick(id) { - this.withDrawShow = true; - this.withDrawId = id; - }, - withDrawConfirm() { - console.log(this.withDrawId); - if (this.withDrawContent.length >= 2) { - console.log(this.withDrawContent); - } else { - uni.showToast({ - title: '璇疯鑼冭緭鍏�', - duration: 2000 - }); - } - }, - // 閫氳繃妯℃�佹 - adoptModalConfirm() { - this.adoptModalShow = false; - }, - adoptModalCancel() { - this.adoptModalShow = false; - }, - // 椹冲洖妯℃�佹 - rejectModalConfirm() { - this.rejectModalShow = false; - }, - rejectModalCancel() { - this.rejectModalShow = false; - }, - withDrawCancel() { - this.withDrawShow = false; - }, - // 鍒犻櫎鐢宠妯℃�佹 - deleteApplicationModalConfirm() { - this.deleteApplicationModalShow = false; - }, - deleteApplicationModalCancel() { - this.deleteApplicationModalShow = false; - }, - // 鏌ョ湅杩涘害 - checkTheScheduleClick() { - uni.navigateTo({ - url: '/pages/check-the-schedule/check-the-schedule' - }); - }, - // 琛ㄥ崟鏁版嵁 - theFormDataClick() { - uni.navigateTo({ - url: '/pages/the-form-data/the-form-data' - }); - }, - // 瀹℃壒鍘嗗彶 - approvalHistoryClick() { - uni.navigateTo({ - url: '/pages/approval-history/approval-history' - }); - }, - // 鍒犻櫎鐢宠 - deleteApplicationClick(id) { - this.deleteApplicationModalShow = true; - console.log(id); - } - } -}; -</script> - -<style lang="scss" scoped> -::v-deep.home { - height: 100%; - width: 100%; - padding-bottom: vww(24); - .home_swipe { - width: 100%; - height: vww(160); - .u-swiper { - height: vww(160) !important; - .u-swiper__wrapper { - height: vww(160) !important; - .uni-swiper-slides { - .u-swiper__wrapper__item { - .u-swiper__wrapper__item__wrapper { - .u-swiper__wrapper__item__wrapper__image { - height: vww(160) !important; - } - } - } - } - } - } - } - - // 鍗$墖涓棿 - .center-container { - display: flex; - flex-direction: column; - .center-content__one { - display: flex; - view { - width: 50%; - } - } - .center-content__two { - display: flex; - // margin: vww(10) 0; - view { - width: 50%; - } - } - .center-content__three { - display: flex; - view { - width: 50%; - } - } - .center-content__four { - } - } - // 涓棿閮ㄥ垎鏍峰紡 - .center-margin { - margin-bottom: vww(16); - } - - // 鍗$墖搴曢儴 - .bottom-container { - .bottom-content__item { - display: flex; - justify-content: space-around; - view { - display: flex; - justify-content: center; - align-content: center; - margin-right: vww(10); - &:nth-last-child() { - margin-right: 0; - } - view { - display: inline-block; - } - image { - width: vww(16); - height: vww(16); - margin-right: vww(4); - } - } - } - } - - // 妯℃�佹 - .wodeshenqingMotai { - // width:100%; - // height:vww(244); - .slot-content { - .u-textarea { - width: vww(280); - height: vww(90) !important; - .uni-textarea-wrapper { - height: vww(90) !important; - } - } - } - } - - // 閫氳繃妯℃�佹 - .adoptModal { - // width:100%; - // height:vww(244); - .slot-content { - .u-textarea { - width: vww(280); - height: vww(90) !important; - .uni-textarea-wrapper { - height: vww(90) !important; - } - } - } - } - - // 椹冲洖妯℃�佹 - .rejectModal { - .slot-content { - display: inline-block; - .u-textarea { - width: vww(280); - height: vww(90) !important; - .uni-textarea-wrapper { - height: vww(90) !important; - } - } - - .rejectBack { - margin-top: vww(24); - .rejectBack-title { - font-size: vww(13); - } - // 涓嬫媺鑿滃崟 - .data-selet { - border: 1px solid #d1d1d1; - border-radius: 4px; - width: vww(300); - height: 40px; - display: flex; - align-items: center; - font-size: 13px; - color: #666; - margin-top: vww(8); - .uni-select__icon { - display: flex; - align-content: center; - margin: 0 10px; - image { - width: 10px; - height: 5.5px; - } - } - .content { - margin-left: vww(8); - width: vww(280); - } - } - } - } - } -} -</style> +<template> + <view class="home"> + <!-- 杞挱鍥� --> + <view class="home_swipe"><u-swiper :list="list3" indicator indicatorMode="line" circular></u-swiper></view> + <!-- 鍥捐〃 --> + <combined-title title="鐓や粨搴撳瓨鏄庣粏"></combined-title> + <view class="charts-box"><qiun-data-charts type="pie" :opts="opts" :chartData="chartData" /></view> + <!-- 鎴戠殑鐢宠 --> + <combined-title title="鎴戠殑鐢宠" detailsPath="/pages/my-application/my-application" v-if="shenqingMenu"></combined-title> + <view class="card-group"> + <combination-card class="card" v-for="(item, index) in shenqingData" index="index" v-if="shenqingMenu"> + <template v-slot:top> + <view> + <text>{{ item.title }}</text> + </view> + </template> + <template v-slot:center> + <view class="center-container"> + <view class="center-content__one center-margin"> + <view class=""> + <text>鎵�灞炴祦绋嬶細{{ item.processName }}</text> + </view> + <view class=""> + <text>瀹℃壒鐜妭锛歿{ item.currTaskName }}</text> + </view> + </view> + <view class="center-content__two center-margin"> + <view class=""> + 鐘舵�侊細 + <text :style="{ color: statusColor[item.status] }">{{ status[item.status] }}</text> + </view> + <view class=""> + 缁撴灉锛� + <text :style="{ color: resultColor[item.result] }">{{ result[item.result] }}</text> + </view> + </view> + <view class="center-content__three center-margin"> + <text>鍒涘缓鏃堕棿锛歿{ item.createTime }}</text> + </view> + <view class="center-content__four"> + <text>鎻愪氦鐢宠鏃堕棿锛歿{ item.applyTime }}</text> + </view> + </view> + </template> + <template v-slot:bottom> + <view class="bottom-container"> + <!-- 鎸夐挳鍖哄煙 --> + <view class="bottom-content__chulizhong bottom-content__item"> + <view @click="withDrawClick(item.id)" v-if="item.status == 1"> + <image src="@/static/home/cehui.png" mode=""></image> + <view>鎾ゅ洖</view> + </view> + <view @click="checkTheScheduleClick(item.procInstId)" v-if="item.status == 1"> + <image src="@/static/home/jindu.png" mode=""></image> + <view>鏌ョ湅杩涘害</view> + </view> + <view @click="theFormDataClick(item.tableId)" v-if="item.status == 1 || item.status == 2"> + <image src="@/static/home/biaodan.png" mode=""></image> + <view>琛ㄥ崟鏁版嵁</view> + </view> + <view @click="apply(item)" v-if="item.status == 3"> + <image src="@/static/home/history.png" mode=""></image> + <view>閲嶆柊鐢宠</view> + </view> + <view @click="editMyApplication(item)" v-if="item.status == 3"> + <image src="@/static/home/history.png" mode=""></image> + <view>缂栬緫</view> + </view> + <view @click="approvalHistoryClick(item.procInstId)" v-if="item.status == 2 || item.status == 3"> + <image src="@/static/home/history.png" mode=""></image> + <view>瀹℃壒鍘嗗彶</view> + </view> + </view> + <!-- 宸茬粨鏉熷皬缁勬寜閽� --> + <!-- <view class="bottom-content__chulizhong bottom-content__item" v-if="item.status == 2"> + <view @click="theFormDataClick"> + <image src="@/static/home/biaodan.png" mode=""></image> + <view>琛ㄥ崟鏁版嵁</view> + </view> + + </view> --> + </view> + </template> + </combination-card> + </view> + + <!-- 鎴戠殑寰呭姙 --> + <combined-title title="鎴戠殑寰呭姙" detailsPath="/pages/my-todo/my-todo"></combined-title> + <view class="card-group"> + <combination-card class="card" v-for="(item, index) in daibanData" index="index"> + <template v-slot:top> + <view> + <text>{{ item.actBusiness.title }}</text> + </view> + </template> + <template v-slot:center> + <view class="center-container"> + <view class="center-content__one center-margin"> + <view class=""> + <text>浠诲姟鍚嶇О锛歿{ item.name }}</text> + </view> + <view class=""> + <text>鎵�灞炴祦绋嬶細{{ item.processName }}</text> + </view> + </view> + <view class="center-content__two center-margin"> + <text>鍙戣捣浜猴細{{ item.actBusiness.createByName }}</text> + </view> + + <view class="center-content__three"> + <text>鍒涘缓鏃堕棿锛歿{ item.createTime }}</text> + </view> + </view> + </template> + <template v-slot:bottom> + <view class="bottom-container"> + <!-- 寰呭姙鎸夐挳 --> + <view class="bottom-content__item"> + <!-- <view @click="theFormDataClick"> + <image src="@/static/home/jindu.png" mode=""></image> + <view>鐢宠璇︽儏</view> + </view> --> + <view @click="adopClick(item)"> + <image src="@/static/home/tongguo.png" mode=""></image> + <view>閫氳繃</view> + </view> + <view @click="rejectClick(item)"> + <image src="@/static/home/bohui.png" mode=""></image> + <view>椹冲洖</view> + </view> + <view @click="approvalHistoryClick(item.procInstId)"> + <image src="@/static/home/history.png" mode=""></image> + <view>鍘嗗彶</view> + </view> + </view> + </view> + </template> + </combination-card> + </view> + + <!-- 鎴戠殑宸插姙 --> + <combined-title title="鎴戠殑宸插姙 " detailsPath="/pages/my-have-todo/my-have-todo"></combined-title> + <view class="card-group"> + <combination-card class="card" v-for="(item, index) in yibanData" index="index"> + <template v-slot:top> + <view> + <text>{{ item.actBusiness.title }}</text> + </view> + </template> + <template v-slot:center> + <view class="center-container"> + <view class="center-content__one center-margin"> + <view> + <text>浠诲姟鍚嶇О锛歿{ item.name }}</text> + </view> + <view> + <text>鎵�灞炴祦绋嬶細{{ item.processName }}</text> + </view> + </view> + <view class="center-content__two center-margin"> + <view> + <text>鍙戣捣浜猴細{{ item.actBusiness.createByName }}</text> + </view> + <view> + <text>瀹℃壒鎿嶄綔锛歿{ item.deleteReason }}</text> + </view> + </view> + <view class="center-content__three center-margin"> + <view class=""> + <text>瀹℃壒鎰忚锛歿{ item.comment }}</text> + </view> + <view class=""> + <text> + 鑰楁椂锛歿{ + item.duration >= 86400000 + ? parseInt(item.duration / 86400000 + '澶�' + parseInt(item.duration % 86400000) / 3600000 + '鏃�' + parseInt(item.duration % 3600000) / 60000 + '鍒�') + : item.duration >= 3600000 + ? parseInt(item.duration / 3600000) + '鏃�' + parseInt((item.duration / 3600000) % 3600000) + '鍒�' + : parseInt(item.duration / 60000) + '鍒�' + }} + </text> + </view> + </view> + <view class="center-content__four"> + <text>鍒涘缓鏃堕棿锛歿{ item.createTime }}</text> + </view> + </view> + </template> + <template v-slot:bottom> + <view class="bottom-container"> + <!-- 宸插姙鎸夐挳 --> + <view class="bottom-content__item"> + <view @click="theFormDataClick(item.tableId)"> + <image src="@/static/home/biaodan.png" mode=""></image> + <view>琛ㄥ崟鏁版嵁</view> + </view> + <view @click="approvalHistoryClick(item.procInstId)"> + <image src="@/static/home/history.png" mode=""></image> + <view>瀹℃壒鍘嗗彶</view> + </view> + <view @click="deleteApplicationClick(item.id)"> + <image src="@/static/home/delete.png" mode=""></image> + <view>鍒犻櫎</view> + </view> + </view> + </view> + </template> + </combination-card> + </view> + + <!-- 鏃ヨ鍒� --> + <combined-title title="鏃ュ彂杩愯鍒�" detailsPath="/pages/jihua/jihua" v-if="rijihuaMenu"></combined-title> + <view class="card-group"> + <combination-card class="card" :showTop="false" v-for="(item, index) in fyData.slice(0, 2)" :key="item.id" v-if="rijihuaMenu"> + <template v-slot:top></template> + <template v-slot:center> + <view class="main-block-box"> + <view class="jihua-main-line"> + <view class="name">瀹㈡埛鍚嶇О锛歿{ item.customerName || '' }}</view> + </view> + <view class="jihua-main-line"> + <view class="main-flex"> + <view>鐓ょ锛歿{ item.order.coalName || '' }}</view> + <view>鍓╀綑閲忥細{{ item.order.executiveSurplus || '' }}</view> + </view> + </view> + <view class="jihua-main-line"> + <view class="main-flex"> + <view class="carNum-box"> + <view>璁″垝杞︽暟锛�</view> + <u--input placeholder="璇疯緭鍏ュ彂杩愯溅鏁�" border="surround" :disabled="true" v-model="item.numPlan" @change="inputTotalChange(item)"></u--input> + </view> + <view>瀹為檯鍙戣溅鏁帮細{{ item.order.numReal || '' }}</view> + </view> + </view> + </view> + </template> + <template v-slot:bottom></template> + </combination-card> + </view> + + <!-- 鎾ゅ洖妯℃�佹 --> + <view class="wodeshenqingMotai"> + <u-modal width="684rpx" :show="withDrawShow" title="鎾ゅ洖鍘熷洜" :showCancelButton="true" @confirm="withDrawConfirm" @cancel="withDrawCancel"> + <view class="slot-content"><u--textarea v-model="withDrawData.reason" placeholder="璇疯緭鍏ユ挙鍥炲師鍥�"></u--textarea></view> + </u-modal> + </view> + + <!-- 閫氳繃妯℃�佹 --> + <view class="adoptModal"> + <u-modal width="684rpx" :show="adoptModalShow" title="瀹℃壒閫氳繃" :showCancelButton="true" @confirm="adoptModalConfirm" @cancel="adoptModalCancel"> + <view class="slot-content"> + <view class="rejectMesaage"> + <u-icon name="info-circle-fill" color="#0307ff"></u-icon> + <text>{{ modalType == 0 ? '娉ㄦ剰锛氬皢榛樿鍒嗛厤缁欒妭鐐硅瀹氱殑鎵�鏈夊彲瀹℃壒鐢ㄦ埛' : '娉ㄦ剰锛氭墍鏈夋祦绋嬪皢椹冲洖鑷冲彂璧蜂汉' }}</text> + </view> + <u--textarea v-model="adoptForm.comment" placeholder="璇疯緭鍏ュ鎵规剰瑙�"></u--textarea> + </view> + </u-modal> + </view> + + <!-- 椹冲洖妯℃�佹 --> + <view class="rejectModal"> + <u-modal width="684rpx" :show="rejectModalShow" title="椹冲洖" :showCancelButton="true" @confirm="rejectModalConfirm" @cancel="rejectModalCancel"> + <view class="slot-content"> + <view class="rejectMesaage"> + <u-icon name="info-circle-fill" color="#0307ff"></u-icon> + <text>{{ modalType == 0 ? '娉ㄦ剰锛氬皢榛樿鍒嗛厤缁欒妭鐐硅瀹氱殑鎵�鏈夊彲瀹℃壒鐢ㄦ埛' : '娉ㄦ剰锛氭墍鏈夋祦绋嬪皢椹冲洖鑷冲彂璧蜂汉' }}</text> + </view> + <u--textarea v-model="rejectForm.comment" placeholder="璇疯緭鍏ュ鎵规剰瑙�"></u--textarea> + <!-- <view class="rejectBack"> + <view class="rejectBack-title"><text>椹冲洖鑷�</text></view> + <view class="data-selet" @click="statusSeletShow = true"> + <view class="content"> + <text>{{ dataSeletText }}</text> + </view> + <view class="uni-select__icon"><image src="@/static/icon/select.png" mode="鍔犺浇澶辫触"></image></view> + </view> + </view> --> + </view> + </u-modal> + </view> + + <!-- 鍒犻櫎宸插姙鐢宠妯℃�佹 --> + <view class="deleteApplicationModal"> + <u-modal + :show="deleteApplicationModalShow" + title="鎻愮ず" + content="纭畾鍒犻櫎璇ョ敵璇凤紵" + :showCancelButton="true" + @confirm="deleteApplicationModalConfirm" + @cancel="deleteApplicationModalCancel" + ></u-modal> + </view> + + <!-- 閫夋嫨鍣� --> + <!-- <u-picker @cancel="statusSeletShow = false" @confirm="statusConfirm" :show="statusSeletShow" :columns="statusList"></u-picker> --> + + <!-- 鑿滃崟鏍� --> + <!-- <popup-menu @menuShow="menushow" ref="menuRef"></popup-menu> --> + </view> +</template> + +<script> +import { timeConsuming } from '@/utils/nowDate.js'; +// import popupMenu from '@/components/common/popup-menu/popup-menu.vue'; +import combinedTitle from '@/components/common/combined-title/combined-title.vue'; +import combinationCard from '@/components/common/combination-card/combination-card.vue'; +import { setAccessToken } from '@/utils/status.js'; + +export default { + name: 'home', + computed: { + rijihuaMenu() { + return this.$store.state.rijihuaMenu; + }, + shenqingMenu() { + return this.$store.state.shenqingMenu; + } + }, + data() { + return { + // ucharts鍥捐〃 + chartData: {}, + opts: { + color: ['#FAC858', '#EE6666', '#73C0DE', '#91CB74', '#1890FF', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'], + padding: [5, 5, 5, 5], + extra: { + pie: { + activeOpacity: 0.5, + activeRadius: 10, + offsetAngle: 0, + labelWidth: 15, + border: true, + borderWidth: 3, + borderColor: '#FFFFFF' + } + } + }, + uchartsData: [], + userId: null, + // menuShow:false,// 鑿滃崟鏄剧ず + status: ['鑽夌', '澶勭悊涓�', '宸茬粨鏉�', '宸叉挙鍥�'], + statusColor: ['#dd8b8c', '#FF9900', '#007AFF', '#06BE00'], + result: ['鏈彁浜�', '澶勭悊涓�', '閫氳繃', '椹冲洖'], + resultColor: ['#dd8b8c', '#FF9900', '#06BE00', '#be2b2d'], + list3: ['https://cdn.uviewui.com/uview/swiper/swiper3.png', 'https://cdn.uviewui.com/uview/swiper/swiper2.png', 'https://cdn.uviewui.com/uview/swiper/swiper1.png'], + // 鎾ゅ洖妯℃�佹 + withDrawShow: false, + fyData: [], + withDrawData: { + reason: '', + id: '', // 鎾ゅ洖鐢宠ID + procInstId: '' + }, + withDrawContent: '', + // 閲嶆柊鐢宠 + form: { + sendMessage: true, + sendSms: true, + sendEmail: true, + procDefId: '', + assignees: [], + priority: '0' + }, + assigneeList: [], + showAssign: false, + isGateway: false, + isCustom: false, + // 閫氳繃妯℃�佹 + adoptModalShow: false, + // 閫氳繃璇锋眰 + adoptForm: { + ids: '', + comment: '' + }, + // 椹冲洖妯℃�佹 + rejectModalShow: false, + rejectModalContent: '', + // dataSeletText: '璇烽�夋嫨鐘舵��', + // 椹冲洖璇锋眰 + rejectForm: { + procInstIds: '', + comment: '' + }, + modalType: 0, + // 鍒犻櫎鐢宠妯℃�佹 + deleteApplicationModalShow: false, + procInstId: '', + // 閫夋嫨鍣� + statusSeletShow: false, + statusList: [['涓浗', '缇庡浗', '鏃ユ湰']], + // data + shenqingData: [], + daibanData: [], + yibanData: [], + menuShow: false, + // 鐢宠 + myApplicationParams: { + status: '', + result: '', + pageNumber: 1, + pageSize: 2, + sort: 'createTime', + order: 'desc' + }, + // 寰呭姙 + todoParams: { + pageNumber: 1, + pageSize: 2 + }, + haveTodoParams: { + pageNumber: 1, + pageSize: 2, + sort: 'createTime', + order: 'desc' + } + }; + }, + // 鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚銆傛敞鎰忓鏋滄覆鏌撻�熷害蹇紝浼氬湪椤甸潰杩涘叆鍔ㄧ敾瀹屾垚鍓嶈Е鍙� + // onReady() { + + // }, + // 鐐瑰嚮瀵艰埅鏍忚彍鍗曞悗 + onNavigationBarButtonTap(e) { + console.log(e); + // this.$refs.menuRef.menuClick(); + }, + onShow() { + // 鑿滃崟娉ㄩ噴锛坅pp寰呯敤锛� + // if (this.menuShow == true) { + // this.$refs.menuRef.menuClick(); + // } + this.init(); + }, + components: { + combinedTitle, + combinationCard + // popupMenu + }, + methods: { + init() { + this.getUserInfo(); // 鐢ㄦ埛淇℃伅 + this.getProcessDataList(); // 鐢宠鍒楄〃 + this.todoList(); // 鎴戠殑寰呭姙 + this.doneList(); // 鎴戠殑宸插姙 + this.xscarshippingdayplan(); //鏃ヨ鍒� + }, + getUserInfo() { + this.$reqGet('getUserInfo').then(res => { + if (res.code == 0) { + uni.setStorageSync('userInfo', res.data.sysUser); + this.userId = res.data.sysUser.userId; + this.$nextTick(() => { + this.coalbunker(); + }); + } + }); + }, + getServerData() { + //妯℃嫙浠庢湇鍔″櫒鑾峰彇鏁版嵁鏃剁殑寤舵椂 + setTimeout(() => { + //妯℃嫙鏈嶅姟鍣ㄨ繑鍥炴暟鎹紝濡傛灉鏁版嵁鏍煎紡鍜屾爣鍑嗘牸寮忎笉鍚岋紝闇�鑷鎸変笅闈㈢殑鏍煎紡鎷兼帴 + let res = { + series: [ + { + data: this.uchartsData + } + ] + }; + this.chartData = JSON.parse(JSON.stringify(res)); + }, 500); + }, + // 鐓や粨褰撳墠鍓╀綑閲� + coalbunker() { + this.uchartsData = []; + this.$reqGet('coalbunker', { customerId: this.userId }).then(res => { + let newArr = res.data.records; + newArr.forEach(item => { + if (item.stock != null) { + let a = { name: '', value: '', labelText: '' }; + a.name = item.bunkerName + '鍓╀綑閲�'; + a.value = item.stock; + // a.labelText ='鍓╀綑閲忥細' + item.stock; + this.uchartsData.push(a); + } + }); + this.getServerData(); // 鍔犺浇鍥捐〃 + }); + }, + xscarshippingdayplan(allList) { + //宸茬粡璁剧疆鐨� + console.log(allList, 'allList=========='); + let params = { + current: 1, + size: 2, + shippingDate: this.todayDate() + }; + this.$reqGet('xscarshippingdayplan', params) + .then(res => { + if (res.code == 0) { + this.fyData = res.data.records; + uni.hideLoading(); + } + }) + .catch(e => { + uni.hideLoading(); + }); + }, + todayDate() { + let yes = new Date().getTime(); + let date = new Date(yes); + let y = date.getFullYear(); + let m = date.getMonth() + 1; + m = m < 10 ? '0' + m : m; + let d = date.getDate(); + d = d < 10 ? '0' + d : d; + const time = y + '-' + m + '-' + d; + console.log('todayDate---------', time); + return time; + }, + getProcessDataList() { + this.$reqGet('getProcessDataList', this.myApplicationParams).then(res => { + if (res.code === 0) { + // console.log('鐢宠', res); + this.shenqingData = res.data.records; + } + }); + }, + todoList() { + this.$reqGet('todoList', this.todoParams).then(res => { + if (res.code === 0) { + // console.log('寰呭姙', res); + this.daibanData = res.data.content; + } + }); + }, + doneList() { + uni.showLoading({ + title: '鍔犺浇涓�...' + }); + this.$reqGet('doneList', this.haveTodoParams).then(res => { + uni.hideLoading(); + if (res.code === 0) { + // console.log('宸插姙', res); + this.yibanData = res.data.content; + } + }); + }, + menushow(e) { + this.menuShow = e; + }, + // 鎾ゅ洖妯℃�佹 + withDrawClick(id) { + this.withDrawShow = true; + this.withDrawData.id = id; + }, + withDrawConfirm() { + this.shenqingData.forEach(i => { + if (i.id == this.withDrawData.id) { + this.withDrawData.procInstId = i.procInstId; + } + }); + if (this.withDrawData.reason.length >= 2) { + this.$reqPost('withDraw', this.withDrawData, 'form').then(res => { + this.withDrawShow = false; + if (res.code == 0) { + uni.showToast({ + title: res.data, + duration: 2000 + }); + } + this.getProcessDataList(); + }); + } else { + uni.showToast({ + title: '璇疯鑼冭緭鍏�', + duration: 2000 + }); + } + }, + // 閫氳繃 + adopClick(v) { + console.log('閫氳繃鐐瑰嚮', v); + this.adoptModalShow = true; + this.adoptForm.ids = v.id; + this.modalType = 0; + // let urlparam = v.procDefId+'/'+v.key; + // this.$reqGet('getNextNode',{},urlparam).then(res=>{ + // console.log('閫氳繃娆茶姹�'); + // }) + }, + // 閫氳繃妯℃�佹 + adoptModalConfirm() { + this.adoptModalShow = false; + this.adoptForm.comment = this.adoptModalContent; + + this.$reqPost('passAll', this.adoptForm, 'form').then(res => { + if (res.code == 0) { + this.$u.toast('鎿嶄綔鎴愬姛!'); + } else { + this.$u.toast('娣诲姞澶辫触!!'); + } + }); + }, + adoptModalCancel() { + this.adoptModalShow = false; + }, + // 椹冲洖 + rejectClick(v) { + this.modalType = 1; + this.rejectModalShow = true; + this.rejectForm.procInstIds = v.procInstId; + }, + // 椹冲洖妯℃�佹 + rejectModalConfirm() { + this.rejectModalShow = false; + + this.$reqPost('backAll', this.rejectForm, 'form').then(res => { + if (res.code == 0) { + this.$u.toast('鎿嶄綔鎴愬姛锛�'); + } else { + this.$u.toast('鎿嶄綔澶辫触锛侊紒锛�'); + } + this.todoList(); // 鎴戠殑寰呭姙 + }); + }, + rejectModalCancel() { + this.rejectModalShow = false; + }, + withDrawCancel() { + this.withDrawShow = false; + }, + // 鍒犻櫎鐢宠妯℃�佹 + deleteApplicationModalConfirm() { + this.deleteApplicationModalShow = false; + this.$reqPost('deleteHistoric', { ids: this.procInstId }, 'form').then(res => { + if (res.code == 0) { + this.$u.toast('鎿嶄綔鎴愬姛锛�'); + this.yibanData = []; + this.doneList(); // 鎴戠殑宸插姙 + } else { + this.$u.toast('鎿嶄綔澶辫触锛侊紒锛�'); + } + }); + }, + deleteApplicationModalCancel() { + this.deleteApplicationModalShow = false; + }, + // 鏌ョ湅杩涘害 + checkTheScheduleClick(v) { + uni.navigateTo({ + url: `/pages/check-the-schedule/check-the-schedule?index=${v}` + }); + }, + // 琛ㄥ崟鏁版嵁 + theFormDataClick(v) { + uni.navigateTo({ + url: `/pages/the-form-data/the-form-data?index=${v}` + }); + }, + // 閲嶆柊鐢宠 + apply(v) { + if (!v.procDefId || v.procDefId == 'null') { + this.$u.toast('娴佺▼瀹氫箟涓虹┖'); + return; + } + this.form.id = v.id; + this.form.procDefId = v.procDefId; + this.form.title = v.title; + // 鍔犺浇瀹℃壒浜� + // this.userLoading = true; + uni.showLoading({ + title: '瀹℃壒浜哄姞杞戒腑' + }); + // getFirstNode(v.procDefId).then((res) => { + this.$reqGet('getFirstNode', {}, v.procDefId).then(res => { + // this.userLoading = false; + console.log('瀹℃壒浜�', res); + uni.hideLoading(); + if (res.data) { + this.error = ''; + if (res.data.type == 3 || res.data.type == 4) { + this.isGateway = true; + this.form.firstGateway = true; + this.showAssign = false; + this.isCustom = false; + return; + } + if (res.data.type == 5) { + this.isCustom = true; + this.isGateway = false; + this.form.firstGateway = false; + this.showAssign = false; + return; + } + if (res.data.type == 1) { + this.showAssign = true; + this.isGateway = false; + this.form.firstGateway = false; + this.isCustom = false; + if (res.data.users && res.data.users.length > 0) { + this.assigneeList = res.data.users; + // 榛樿鍕鹃�� + let ids = []; + res.data.users.forEach(e => { + ids.push(e.userId); + }); + this.form.assignees = ids; + this.showAssign = true; + // 鑾峰彇琛ㄥ崟鍐呭锛岄噸鏂板垱寤虹敵璇� + this.$reqPost('apply', this.form, 'form').then(res => { + console.log('閲嶆柊鎻愪氦鐢宠', res); + if (res.code == 0) { + uni.showToast({ + title: res.data, + icon: 'success', + duration: 2000 + }); + } + // 鍒濆鍖栫敵璇峰垪琛� + // this.myApplication.pageNumber = 1; + // this.shenqingData = []; + // this.getMoreNews(); + this.getProcessDataList(); + }); + } else { + this.form.assignees = []; + this.showAssign = true; + this.error = '璇疯繘鍏�"娴佺▼绠$悊"涓哄鎵硅妭鐐瑰垎閰嶅�欓�夊鎵逛汉鍛�'; + } + } + } + console.log(this.form); + }); + + this.modalVisible = true; + }, + // 淇敼 + editMyApplication(v) { + console.log('淇敼鐢宠'); + uni.navigateTo({ + url: `/pages/edit-my-application/edit-my-application?index=${v.tableId}` + }); + }, + // 瀹℃壒鍘嗗彶 + approvalHistoryClick(v) { + uni.navigateTo({ + url: `/pages/approval-history/approval-history?index=${v}` + }); + }, + // 鍒犻櫎鐢宠 + deleteApplicationClick(id) { + this.deleteApplicationModalShow = true; + this.procInstId = id; + console.log(id); + } + } +}; +</script> + +<style lang="scss" scoped> +::v-deep.home { + width: 100%; + display: flex; + flex-direction: column; + padding-bottom: vww(20); + + .home_swipe { + width: 100%; + + .u-swiper { + height: vww(160) !important; + + .u-swiper__wrapper { + height: vww(160) !important; + + .u-swiper__wrapper__item { + .u-swiper__wrapper__item__wrapper { + .u-swiper__wrapper__item__wrapper__image { + height: vww(160) !important; + } + } + } + } + } + } + + // echarts鍥捐〃 + .charts-box { + width: 91%; + height: vww(330); + margin: 0 auto; + } + + .u-input { + height: vww(16); + width: vww(100); + } + + //鍗$墖 + .card-group { + .card { + &:nth-of-type(2) { + .combination-card { + margin-bottom: 0px !important; + } + } + } + } + + // 鍗$墖涓棿 + .center-container { + display: flex; + flex-direction: column; + + .center-content__one { + display: flex; + + view { + width: 50%; + } + } + + .center-content__two { + display: flex; + // margin: vww(10) 0; + view { + width: 50%; + } + } + + .center-content__three { + display: flex; + + view { + width: 50%; + } + } + + .center-content__four { + } + } + + // 涓棿閮ㄥ垎鏍峰紡 + .center-margin { + margin-bottom: vww(16); + } + + // 鍗$墖搴曢儴 + .bottom-container { + .bottom-content__item { + display: flex; + justify-content: space-around; + + view { + display: flex; + justify-content: center; + align-content: center; + margin-right: vww(10); + + view { + display: inline-block; + } + + image { + width: vww(16); + height: vww(16); + margin-right: vww(4); + } + } + } + } + + // 妯℃�佹 + .wodeshenqingMotai { + // width:100%; + // height:vww(244); + .slot-content { + .u-textarea { + width: vww(280); + height: vww(90) !important; + + .uni-textarea-wrapper { + height: vww(90) !important; + } + } + } + } + + // 閫氳繃妯℃�佹 + .adoptModal { + // width:100%; + // height:vww(244); + .slot-content { + width:vww(330); + .rejectMesaage { + display: flex; + padding: vww(3); + border: 1px solid #0307ff; + border-radius: vww(4); + font-size: 13px; + + text { + margin-left: vww(5); + } + } + + .u-textarea { + margin-top: vww(10); + width: vww(280); + height: vww(90) !important; + + .u-textarea__field { + height: vww(90) !important; + } + } + } + } + + // 椹冲洖妯℃�佹 + .rejectModal { + .slot-content { + display: inline-block; + .rejectMesaage { + display: flex; + padding: vww(3); + border: 1px solid #0307ff; + border-radius: vww(4); + font-size: 13px; + + text { + margin-left: vww(5); + } + } + + .u-textarea { + margin-top: vww(10); + width: vww(280); + height: vww(90) !important; + + .u-textarea__field { + height: vww(90) !important; + } + } + + .rejectBack { + margin-top: vww(24); + + .rejectBack-title { + font-size: vww(13); + } + + // 涓嬫媺鑿滃崟 + .data-selet { + border: 1px solid #d1d1d1; + border-radius: 4px; + width: vww(300); + height: 40px; + display: flex; + align-items: center; + font-size: 13px; + color: #666; + margin-top: vww(8); + + .uni-select__icon { + display: flex; + align-content: center; + margin: 0 10px; + + image { + width: 10px; + height: 5.5px; + } + } + + .content { + margin-left: vww(8); + width: vww(280); + } + } + } + } + } + + //鏃ュ彂杩愯鍒� + .main-block-box { + // box-shadow: 0px 0px 8px 0px rgba(216,218,238,0.80); + height: vww(80); + // padding: vww(10); + box-sizing: border-box; + margin-top: vww(12); + border-radius: vww(8); + + &:first-child { + margin-top: vww(5); + } + + .jihua-main-line { + width: 100%; + display: flex; + + view { + font-size: vww(14); + } + + .name { + font-weight: 600 !important; + } + + .main-flex { + width: 100%; + display: flex; + justify-content: space-between; + + view { + font-size: vww(14); + line-height: vww(32); + } + + .carNum-box { + display: flex; + + view { + font-size: vww(14); + line-height: vww(32); + } + } + } + } + } +} +</style> -- Gitblit v1.9.1