From d698c77ac8f21ef383a1557be3dfdabbc2d76d61 Mon Sep 17 00:00:00 2001 From: 付延余 <f-yanyu@outlook.com> Date: 星期一, 19 十二月 2022 15:37:25 +0800 Subject: [PATCH] pull editor --- pages/jihua/jihua.vue | 427 ++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 305 insertions(+), 122 deletions(-) diff --git a/pages/jihua/jihua.vue b/pages/jihua/jihua.vue index e3c5bf5..b4090af 100644 --- a/pages/jihua/jihua.vue +++ b/pages/jihua/jihua.vue @@ -1,5 +1,6 @@ <template> <view class="jihua-wrap"> + <u-overlay :show="overlayShow" @click="overlayShow = false"></u-overlay> <view class="qiehuan-box"><u-tabs :list="tabList" @click="tabClick"></u-tabs></view> <view class="jihua-main"> <view class="shaixuan-box"> @@ -11,7 +12,8 @@ </view> <view class="main-inside"> <view v-if="isTomJihua == '鍏ㄩ儴'"> - <view class="main-block-box" v-for="(item, index) in fyData" :key="item.id"> + <u-empty v-if="fyData.length == 0" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" class="empty-container"></u-empty> + <view id="u-dropdown" class="main-block-box" v-for="(item, index) in fyData" :key="item.id" ref="planViewRef"> <view class="jihua-main-line"> <!-- <view class="name">瀹㈡埛鍚嶇О锛歿{item.customerName || ''}}</view> --> <view class="name">鏀惰揣鍗曚綅锛歿{ item.customerAddressName || '' }}</view> @@ -26,15 +28,35 @@ <view class="main-flex"> <view class="carNum-box"> <view>璁″垝杞︽暟锛�</view> - <u--input placeholder="璇疯緭鍏ュ彂杩愯溅鏁�" border="surround" v-model="item.numPlan" @change="inputChange"></u--input> + <!-- <u--input placeholder="璇疯緭鍏ュ彂杩愯溅鏁�" border="surround" v-model="item.numPlan" @change="inputChange" @focus="faYunPlanCarsFocus(item)"></u--input> --> + <view class="planCars" :style="{color:item.numPlan ? '#111':'#ccc'}" @click="faYunPlanCarsFocus(item)"> + <text v-model="item.numPlan">{{ item.numPlan || '鐐瑰嚮杈撳叆鏁伴噺' }}</text> + <view class="cursor" v-if="isCursor && fayunPlanFocusId == item.id"><image src="@/static/cursor.gif" mode=""><image></view> + </view> </view> - <view>瀹為檯鍙戣溅鏁帮細{{ item.numReal || '' }}</view> + <view>瀹為檯鍙戣溅鏁帮細{{ item.numReal || '鏆傛棤' }}</view> </view> </view> + <u-keyboard + @change="valChange" + @backspace="backspace" + @confirm="keyBoardConfirm" + @cancel="keyBoardCancel" + @close="keyBoardClose" + :show="keyBoardShow" + ref="uKeyboard" + mode="number" + :overlay="false" + :closeOnClickOverlay="false" + :dotDisabled="true" + zIndex="100000" + ></u-keyboard> </view> - <u-button class="xiugai-btn" type="primary" text="鎻愪氦" @click="dataFormSubmit"></u-button> + + <u-button class="xiugai-btn" type="primary" text="鎻愪氦" @click="submit"></u-button> </view> <view v-if="isTomJihua == '宸茶缃殑璁″垝'"> + <u-empty v-if="fyData.length == 0" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" class="empty-container"></u-empty> <view class="main-block-box" v-for="(item, index) in fyData" :key="item.id"> <view class="jihua-main-line"> <view class="name">瀹㈡埛鍚嶇О锛歿{ item.customerName || '' }}</view> @@ -42,29 +64,45 @@ <view class="jihua-main-line"> <view class="main-flex"> <view>鐓ょ锛歿{ item.order.coalName || '' }}</view> - <view>鍓╀綑閲忥細{{ item.order.executiveSurplus || '' }}</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" v-model="item.numPlan" @change="inputTotalChange(item)"></u--input> + <!-- <u--input placeholder="璇疯緭鍏ュ彂杩愯溅鏁�" border="surround" v-model="item.numPlan" @change="inputTotalChange(item)" @focus="faYunPlanCarsFocus(item)"></u--input> --> + <view class="planCars" :style="{color:item.numPlan ? '#111':'#ccc'}" @click="faYunPlanCarsFocus(item)"> + <text v-model="item.numPlan">{{ item.numPlan || '鐐瑰嚮杈撳叆鏁伴噺' }}</text> + <view class="cursor" v-if="isCursor && fayunPlanFocusId == item.id"> + <image src="@/static/cursor.gif" mode="" /> + </view> + </view> </view> - <view>瀹為檯鍙戣溅鏁帮細{{ item.order.numReal || '' }}</view> + <view>瀹為檯鍙戣溅鏁帮細{{ item.order.numReal == null ? '鏆傛棤' : item.order.numReal }}</view> </view> </view> + <u-keyboard + @change="valChange" + @backspace="backspace" + @confirm="keyBoardConfirm" + @cancel="keyBoardCancel" + @close="keyBoardClose" + :show="keyBoardShow" + ref="uKeyboard" + mode="number" + :overlay="false" + :closeOnClickOverlay="false" + :dotDisabled="true" + zIndex="100000" + ></u-keyboard> </view> - <u-button class="xiugai-btn" type="primary" text="淇敼" @click="getOrderCarNum"></u-button> + <u-button class="xiugai-btn" type="primary" text="淇敼" @click="editPlan"></u-button> </view> - <!-- <u-empty - v-if="fyData.length == 0" - mode="data" - icon="" - > - </u-empty> --> </view> </view> + + <view class="back-top-container"><u-back-top :scroll-top="scrollTop" icon="arrow-up" mode="square"></u-back-top></view> <!-- 鑿滃崟鏍� --> <popup-menu @menuShow="menushow" ref="menuRef"></popup-menu> </view> @@ -72,6 +110,7 @@ <script> import popupMenu from '@/components/common/popup-menu/popup-menu.vue'; +import tool from '@/utils/tool.js'; export default { components: { popupMenu @@ -80,7 +119,7 @@ return { radioValue: '鍏ㄩ儴', tabList: [ - { + { name: '浠婃棩鍙戣繍璁″垝' }, { @@ -95,7 +134,14 @@ }, isTomJihua: '鍏ㄩ儴', editRow: '', //淇敼琛岀殑琛� - menuShow: false + menuShow: false, + scrollTop: 0, // 杩斿洖椤堕儴鎸夐挳缁戝畾, + // 閿洏 + keyBoardShow: false, + keyBoardValue: '', + fayunPlanFocusId: null, + isCursor: false ,// 鏃ヨ鍒掕溅杈嗚緭鍏ユ鐒︾偣鍔ㄧ敾 + overlayShow:false // 閬僵灞� }; }, onShow() { @@ -104,10 +150,58 @@ } this.init(); }, + onPageScroll(e) { + // 浼犲叆scrollTop鍊煎苟瑙﹀彂鎵�鏈塭asy-loadimage缁勪欢涓嬬殑婊氬姩鐩戝惉浜嬩欢 + this.scrollTop = e.scrollTop; + }, // 鐐瑰嚮瀵艰埅鏍忚彍鍗曞悗 onNavigationBarButtonTap(e) { // console.log(e); this.$refs.menuRef.menuClick(); + }, + mounted() { + // setInterval(() => { + // uni.hideKeyboard(); + // }, 1); + }, + watch: { + isTomJihua: { + handler: function(newV, oldV) { + if (newV != oldV) { + this.keyBoardShow = false; + } + }, + deep: true, + immediate: true + }, + keyBoardValue: { + handler: function(newV, oldV) { + console.log('閿洏杈撳叆鍊�', newV, oldV); + this.fyData.map(item => { + if (item.id == this.fayunPlanFocusId) { + if (item.numPlan && item.numPlan != newV) { + item.numPlan = this.keyBoardValue; + if (this.isTomJihua == '宸茶缃殑璁″垝') { + this.editRow = item; + } + } + } + }); + }, + deep: true, + immediate: true + }, + scrollTop: { + handler: function(newV, oldV) { + // console.log('椤甸潰婊戝姩', newV); + if (newV != oldV) { + this.keyBoardClose(); + // this.keyBoardShow = false; + } + } + }, + deep: true, + immediate: true }, methods: { init() { @@ -116,22 +210,30 @@ menushow(e) { this.menuShow = e; }, + //鎻愪氦 dataFormSubmit() { - //鎻愪氦璁㈠崟 - this.fyData.forEach(e => { - e.shippingDate = this.info.shippingDate; - if (e.planId && !e.numPlan) { - e.numPlan = -1; //鍒犻櫎璁剧疆涓虹┖鐨勮鍒� - } - let orderId = e.id; - e.id = e.planId; - e.orderId = orderId; - }); - this.$reqPost('addObj', this.fyData).then(res => { - this.$u.toast('娣诲姞鎴愬姛'); - this.fyList(); - }); + console.log('鏃ュ彂杩愯鍒掓洿鏂版暟鎹彁浜�',this.fyData); + this.overlayShow = true; + this.fyData.forEach(e => { + e.shippingDate = this.info.shippingDate; + if (e.planId && !e.numPlan) { + e.numPlan = -1; // 鍒犻櫎璁剧疆涓虹┖鐨勮鍒� + } + let orderId = e.id; // 璁㈠崟id + e.orderId = orderId; + // e.id = e.planId; + }); + this.$reqPost('addObj', this.fyData).then(res => { + console.log('addObj鎺ュ彛杩斿洖',res); + this.$u.toast('娣诲姞鎴愬姛'); + this.fyList(); + }); }, + // 鍏ㄩ儴鏃ヨ鍒掓彁浜ゆ寜閽槻鎶� + submit:tool.throttle(function(){ + this.dataFormSubmit(); + }), + // 淇敼鏃ヨ鍒掓寜閽� getOrderCarNum() { //淇敼 this.$reqPost('setCarNums', this.editRow).then(res => { @@ -139,6 +241,11 @@ this.xscarshippingdayplan(); }); }, + // 淇敼鏃ヨ鍒掗槻鎶栨寜閽� + editPlan:tool.throttle(function(){ + this.getOrderCarNum(); + }), + // 鍒囨崲鍏ㄩ儴鍜屽凡璁剧疆 groupChange(n) { console.log(n, 'n================'); this.isTomJihua = n; @@ -147,6 +254,140 @@ } else { this.fyList(); } + }, + fyList() { + this.overlayShow = true; + //鍒楄〃鏌ヨ + uni.showLoading({ + title: '姝e湪鍔犺浇...' + }); + let compId = uni.getStorageSync('userInfo').compId; + let params = { + current: 1, + size: 100, + status: 2, + trainType: 1, + compId: compId + }; + this.$reqGet('fyList', params).then(res => { + if (res.code == 0) { + console.log('fylist--------',res.data); + this.xscarshippingdayplan(res.data); + } + }); + }, + xscarshippingdayplan(allList) { + uni.showLoading({ + title: '姝e湪鍔犺浇...' + }); + this.overlayShow = true; + //宸茬粡璁剧疆鐨� + let params = { + current: 1, + size: 50, + shippingDate: this.info.shippingDate + }; + this.$reqGet('xscarshippingdayplan', params) + .then(res => { + console.log('涓嶇煡閬撴槸浠�涔�---------------',res); + if (res.code == 0) { + if (allList) { + let selectFyData = res.data.records; + allList.forEach(e => { + selectFyData.forEach(ee => { + if (e.id == ee.orderId) { + e.numPlan = ee.numPlan; + e.numReal = ee.numReal; + // e.planId = ee.id; + console.log('淇敼planid鎿嶄綔',`planId:${ee.id}`); + if (ee.carNums != null) { + e.carNums = ee.carNums; + } + } + }); + }); + this.fyData = allList; + } else { + this.fyData = res.data.records; + } + uni.hideLoading(); + this.overlayShow = false; + } + }) + .catch(e => { + uni.hideLoading(); + this.overlayShow = false; + }); + }, + //鍒囨崲浠婃棩鍜屾槑鏃� + tabClick(item) { + console.log(item, 'item=========='); + if (item.index == 1) { + this.info.shippingDate = this.tomorrowDate(); + if (this.isTomJihua == '宸茶缃殑璁″垝') { + this.xscarshippingdayplan(); + } else { + this.fyList(); + } + } else { + this.info.shippingDate = this.todayDate(); + if (this.isTomJihua == '宸茶缃殑璁″垝') { + this.xscarshippingdayplan(); + } else { + this.fyList(); + } + } + }, + inputChange(val) { + console.log('鍏ㄩ儴璁″垝', val); + }, + inputTotalChange(val) { + console.log(val, 'val2=======val2,宸茶缃鍒�'); + this.editRow = val; + }, + // input鑾峰彇鐒︾偣 + faYunPlanCarsFocus(item) { + // 鑾峰彇璇ョ劍鐐瑰湪椤甸潰鐨勪綅缃� + // let boxBottom = document.getElementById('#u-dropdown'); + // console.log('鍏冪礌',boxBottom); + // let bottom = this.$refs.planViewRef.offsetHeight + + this.fayunPlanFocusId = item.id; + this.keyBoardShow = true; + this.isCursor = true; + this.keyBoardValue = item.numPlan + ''; + }, + // 閿洏 + valChange(val) { + // this.keyBoardValue += val; + // 灏嗘瘡娆℃寜閿殑鍊兼嫾鎺ュ埌value鍙橀噺涓紝娉ㄦ剰+=鍐欐硶 + this.fyData.map(item => { + if (item.id == this.fayunPlanFocusId) { + if (item.numPlan) { + item.numPlan = this.keyBoardValue += val + ''; + this.keyBoardValue = item.numPlan; + } else { + item.numPlan = val; + this.keyBoardValue = item.numPlan; + } + } + }); + }, + backspace() { + this.keyBoardValue = this.keyBoardValue.substr(0, this.keyBoardValue.length - 1); + }, + keyBoardConfirm(val) { + console.log('閿洏鐐瑰嚮纭畾鐨勫��', val); + this.keyBoardClose(); + }, + keyBoardCancel() { + this.keyBoardClose(); + }, + keyBoardClose() { + console.log('閿洏鍏抽棴浜�'); + this.fayunPlanFocusId = null; + this.keyBoardShow = false; + this.isCursor = false; }, todayDate() { let yes = new Date().getTime(); @@ -171,92 +412,6 @@ const time = y + '-' + m + '-' + d; console.log('tomorrowDate---------222', time); return time; - }, - - fyList() { - //鍒楄〃鏌ヨ - uni.showLoading({ - title: '姝e湪鍔犺浇...' - }); - let compId = uni.getStorageSync('userInfo').compId; - - let params = { - current: 1, - size: 100, - status: 2, - trainType: 1, - compId: compId - }; - this.$reqGet('fyList', params).then(res => { - if (res.code == 0) { - this.xscarshippingdayplan(res.data); - } - }); - }, - xscarshippingdayplan(allList) { - //宸茬粡璁剧疆鐨� - console.log(allList, 'allList=========='); - let params = { - current: 1, - size: 50, - shippingDate: this.info.shippingDate - }; - this.$reqGet('xscarshippingdayplan', params) - .then(res => { - if (res.code == 0) { - if (!allList) { - this.fyData = res.data.records; - console.log(this.fyData, 'this.fyData=========11111111'); - } else { - let l = res.data.records; - allList.forEach(e => { - l.forEach(ee => { - if (e.id == ee.orderId) { - e.numPlan = ee.numPlan; - e.numReal = ee.numReal; - e.planId = ee.id; - if (ee.carNums != null) { - e.carNums = ee.carNums; - } - } - }); - }); - this.fyData = allList; - console.log(this.fyData, 'this.fyData=========22222222'); - } - console.log(this.fyData, 'this.fyData=========333333333'); - uni.hideLoading(); - } - }) - .catch(e => { - uni.hideLoading(); - }); - }, - tabClick(item) { - //鍒囨崲浠婃棩鍜屾槑鏃� - console.log(item, 'item=========='); - if (item.index == 1) { - this.info.shippingDate = this.tomorrowDate(); - if (this.isTomJihua == '宸茶缃殑璁″垝') { - this.xscarshippingdayplan(); - } else { - this.fyList(); - } - } else { - this.info.shippingDate = this.todayDate(); - if (this.isTomJihua == '宸茶缃殑璁″垝') { - this.xscarshippingdayplan(); - } else { - this.fyList(); - } - } - }, - inputChange(val) { - console.log(val); - }, - inputTotalChange(val) { - console.log(val, 'val2=======val2'); - this.editRow = val; } } }; @@ -282,6 +437,7 @@ .u-input { height: vww(16); width: vww(100); + z-index: 1; } .u-button { position: fixed !important; @@ -307,6 +463,10 @@ font-size: vww(12) !important; line-height: vww(12) !important; } + .u-empty { + width: 100%; + height: vww(300); + } } .qiehuan-box { @@ -315,8 +475,8 @@ left: 0; right: 0; width: 100%; - height:vww(44); - // z-index: 1; + height: vww(44); + z-index: 10; background-color: #fff; } @@ -341,9 +501,8 @@ display: flex; flex-direction: column; width: 100%; - padding: vww(0) vww(10) vww(70) vww(10); + padding: vww(44) vww(10) vww(70) vww(10); box-sizing: border-box; - margin-top: vww(44); .main-inside { width: 100%; height: calc(100% - vww(44)); @@ -356,7 +515,7 @@ left: 0; right: 0; width: 100%; - // z-index: 1; + z-index: 10; background-color: #fff; } @@ -392,6 +551,30 @@ } .carNum-box { display: flex; + .planCars { + display: flex; + box-sizing: border-box; + overflow: auto; + width: vww(120); + border: 1px solid #dddddd; + border-radius: vww(4); + padding: vww(1) vww(10); + + + // 杈撳叆鐒︾偣鍥剧墖 + .cursor { + // float: left; + width: vww(1); + height: vww(15); + vertical-align: middle; + align-self: center; + image { + width: vww(1); + display: block; + height: vww(15); + } + } + } view { font-size: vww(14); line-height: vww(32); @@ -401,4 +584,4 @@ } } } -</style> +</style> \ No newline at end of file -- Gitblit v1.9.1