From 7aaff69bb11a4d75882d25bd1bc8e9748c2bd609 Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期四, 29 五月 2025 16:57:41 +0800 Subject: [PATCH] 完成报工前端页面,除库存接收外 --- pages/wareHouse/moveWareHouse/index.vue | 829 +++++++++-------- pages/product/report/components/saveForm.vue | 140 +++ pages/product/report/index0.vue | 489 ++++++++++ pages.json | 15 pages/product/report/index.vue | 684 ++++---------- components/modal/modal-bg.vue | 49 + static/custom/moda-lbg.png | 0 pages/product/report/index0.scss | 113 ++ pages/product/report/orderList.vue | 312 ++++++ pages/product/report/index.scss | 122 -- 10 files changed, 1,767 insertions(+), 986 deletions(-) diff --git a/components/modal/modal-bg.vue b/components/modal/modal-bg.vue new file mode 100644 index 0000000..6e85584 --- /dev/null +++ b/components/modal/modal-bg.vue @@ -0,0 +1,49 @@ +<template> + <u-modal v-model="showModal" title="" :show-cancel-button="showCancelButton" @confirm="confirm" @cancel="cancel"> + <view class="slot-content"> + <slot></slot> + </view> + </u-modal> +</template> + +<script> +export default { + props: { + showCancelButton: { + type: Boolean, + default: true + }, + confirm: { + type: Function, + default: () => { } + } + }, + data() { + return { + showModal: false + } + }, + methods: { + open() { + this.showModal = true; + }, + cancel() { + this.showModal = false; + }, + } + +} +</script> + +<style lang="scss" scoped> +::v-deep .u-model__title { + padding-top: 0 !important; +} + +.slot-content { + min-height: 400rpx; + box-sizing: border-box; + padding-top: 250rpx; + background: url(../../static/custom/moda-lbg.png) no-repeat center / 100% 100% !important; +} +</style> \ No newline at end of file diff --git a/pages.json b/pages.json index 5232a5f..78a8a76 100644 --- a/pages.json +++ b/pages.json @@ -680,6 +680,7 @@ } }, // 鐢熶骇鐩稿叧 + // 鎶ュ伐 { "path": "pages/product/report/index", "style": { @@ -689,16 +690,26 @@ "titleNView": { "buttons": [ { - "text": "娓呯┖", + "text": "鎻愪氦", "type": "none", "color": "#ffffff", - "fontSize": "14px" + "fontSize": "14px", + "marginRight": "10px" } ] } } } }, + // 杞﹂棿璁㈠崟鍒楄〃 + { + "path": "pages/product/report/orderList", + "style": { + "navigationStyle": "custom", + "navigationBarTextStyle": "white", + "navigationBarBackgroundColor": "#3281FF" + } + }, // 鏃ユ姤鐩稿叧 { "path": "pages/daily/common/work-order-list", diff --git a/pages/product/report/components/saveForm.vue b/pages/product/report/components/saveForm.vue new file mode 100644 index 0000000..b99e88b --- /dev/null +++ b/pages/product/report/components/saveForm.vue @@ -0,0 +1,140 @@ +<template> + <u-modal v-model="show" ref="uModal" title="" :show-cancel-button="true" @confirm="confirm" @cancel="cancel" + :async-close="true"> + <view style="padding: 20rpx;"> + <u-form :model="form" ref="uFormSave" :label-width="280" :rules="rules" :error-type="['toast']"> + <u-form-item label="鎵瑰彿" :border-bottom="false" prop="value0"> + <u-input v-model="form.value0" disabled /> + </u-form-item> + <u-form-item label="闀垮害" :border-bottom="false" prop="value1"> + <u-input v-model="form.value1" /> + </u-form-item> + <u-form-item label="搴撲綅" :border-bottom="false" prop="value2"> + <u-input v-model="form.value2" disabled /> + </u-form-item> + <u-form-item label="鐩樺彿" :border-bottom="false" prop="value3"> + <u-input v-model="form.value3" /> + </u-form-item> + <u-form-item label="姣涢噸" :border-bottom="false" prop="value4"> + <u-input v-model="form.value4" /> + </u-form-item> + <u-form-item label="鍑�閲�" :border-bottom="false" prop="value5"> + <u-input v-model="form.value5" /> + </u-form-item> + <u-form-item label="宸ュ簭" :border-bottom="false" prop="value6"> + <u-input v-model="form.value6" disabled /> + </u-form-item> + <u-form-item label="鎴愬搧澶栧緞娴嬮噺鍊�" :border-bottom="false" prop="value7"> + <u-input v-model="form.value7" /> + </u-form-item> + <u-form-item label="閫�鐏數鍘�" :border-bottom="false" prop="value8"> + <u-input v-model="form.value8" /> + </u-form-item> + <u-form-item label="杞��" prop="value9" :border-bottom="false"> + <u-input v-model="form.value9" /> + </u-form-item> + <u-form-item label="澶栭儴姘斿帇" prop="value10" :border-bottom="false"> + <u-input v-model="form.value10" /> + </u-form-item> + <u-form-item label="鐢熶骇閫熷害" prop="value11" :border-bottom="false"> + <u-input v-model="form.value11" /> + </u-form-item> + </u-form> + </view> + + </u-modal> +</template> + +<script> +export default { + data() { + return { + show: false, + form: { + value0: null, + value1: null, + value2: null, + value3: null, + value4: null, + value5: null, + value6: null, + value7: null, + value8: null, + value9: null, + value10: null, + value11: null + }, + rules: { + value1: [ + { required: true, message: '璇疯緭鍏ラ暱搴�', trigger: ['blur', 'change'] }, + ], + value3: [ + { required: true, message: '璇疯緭鍏ョ洏鍙�', trigger: ['blur', 'change'] }, + ], + value4: [ + { required: true, message: '璇疯緭鍏ユ瘺閲�', trigger: ['blur', 'change'] }, + ], + value5: [ + { required: true, message: '璇疯緭鍏ュ噣閲�', trigger: ['blur', 'change'] }, + ], + value7: [ + { required: true, message: '璇疯緭鍏ユ垚鍝佸寰勬祴閲忓��', trigger: ['blur', 'change'] }, + ], + value8: [ + { required: true, message: '璇疯緭鍏ラ��鐏數鍘�', trigger: ['blur', 'change'] }, + ], + value9: [ + { required: true, message: '璇疯緭鍏ヨ浆閫�', trigger: ['blur', 'change'] }, + ], + value10: [ + { required: true, message: '璇疯緭鍏ュ閮ㄦ皵鍘�', trigger: ['blur', 'change'] } + ], + value11: [ + { required: true, message: '璇疯緭鍏ョ敓浜ч�熷害', trigger: ['blur', 'change'] } + ] + }, + } + }, + watch: { + show(val) { + if (val) { + this.$nextTick(() => { + this.$refs.uFormSave.setRules(this.rules); + }); + } + }, + }, + methods: { + confirm() { + this.$refs.uFormSave.validate((valid) => { + if (valid) { + console.log('楠岃瘉閫氳繃'); + // 鎵ц鎻愪氦閫昏緫锛堝API璇锋眰锛� + // 鎻愪氦鎴愬姛鍚庡叧闂ā鎬佹 + this.$refs.uModal.cancel(); + } else { + console.log('楠岃瘉澶辫触'); + // 鏄剧ず閿欒淇℃伅 + this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵�� + } + }); + }, + cancel() { + this.show = false; + }, + open() { + this.show = true; + } + }, +} +</script> + +<style lang="scss" scoped> +::v-deep .u-model__title { + padding-top: 0 !important; +} + +::v-deep .u-input__input { + text-align: right !important; +} +</style> \ No newline at end of file diff --git a/pages/product/report/index.scss b/pages/product/report/index.scss index 9f36785..78f1659 100644 --- a/pages/product/report/index.scss +++ b/pages/product/report/index.scss @@ -1,113 +1,29 @@ -.body { - background: linear-gradient(to bottom, #e5f0ff, #f6f9ff); +.page { box-sizing: border-box; - padding-top: 26rpx; - height: 100vh; + padding: 30rpx; } -.top_code { - height: 80rpx; +.u-checkbox-group { display: flex; - align-items: center; - margin: 0 30rpx; - margin-bottom: 10rpx; + flex-direction: column; } -.top_code_edit { - text-align: right; - flex: 1; - margin-bottom: 18rpx; -} -.main_view { - margin-top: 5rpx; - background-image: url("~@/static/custom/home/home_img_bg.png"); - background-repeat: no-repeat; - background-size: 100% auto; - border-radius: 15rpx; - height: 936rpx; - margin: 0 30rpx; - box-sizing: border-box; - padding: 37rpx 25rpx; +.u-form-item { + padding: 0; } -.product-number-icon { - background-image: url("~@/static/custom/daily/icon_number.png"); - background-repeat: no-repeat; - background-size: cover; - height: 32rpx; - width: 32rpx; - position: relative; - margin-right: 8rpx; -} - -.product-edit-icon { - background-image: url("~@/static/custom/daily/icon_edit.png"); - background-repeat: no-repeat; - background-size: cover; - height: 32rpx; - width: 32rpx; - position: relative; -} -.icon_history { - background-image: url("~@/static/custom/daily/icon_history.png"); - background-repeat: no-repeat; - background-size: cover; - height: 26rpx; - width: 26rpx; - margin-right: 8rpx; - position: relative; -} -.icon_save { - background-image: url("~@/static/custom/daily/icon_save.png"); - background-repeat: no-repeat; - background-size: cover; - height: 26rpx; - width: 26rpx; - margin-right: 8rpx; - position: relative; -} -.icon_right { - background-image: url("~@/static/custom/daily/icon_right.png"); - background-repeat: no-repeat; - background-size: cover; - height: 26rpx; - width: 26rpx; - margin-right: 8rpx; - position: relative; -} -.main_top_title { - font-weight: 800; - font-size: 34rpx; - color: #1d2541; - margin-bottom: 20rpx; -} -.main_item { - display: flex; - align-items: center; - justify-content: space-between; - font-size: 30rpx; - line-height: 112rpx; - border-bottom: 1rpx solid rgba(213, 213, 213, 0.67); - box-sizing: border-box; - .value2 { - width: 450rpx; /*鐩掑瓙鏈�澶у搴�*/ - overflow: hidden; - text-overflow: ellipsis; /* 璁剧疆鏂囨湰婧㈠嚭鏃舵樉绀虹渷鐣ュ彿 */ - white-space: nowrap; /* 璁剧疆涓嶆崲琛� */ - text-align: right; - padding-left: 40rpx; +.packer-popup { + ::v-deep .u-mode-center-box { + border-radius: 30rpx; } -} -.btns { - display: flex; - align-items: center; - justify-content: center; - margin-top: 33rpx; - .uni-button { + .popup-row { + background-image: url("~@/static/custom/packing/row_bg.png"); + background-size: 100% auto; + background-repeat: no-repeat; + height: 89rpx; + width: 520rpx; display: flex; - align-items: center; - justify-content: center; - } - ::v-deep.u-icon__icon { - height: 26rpx; - width: 26rpx; + justify-content: space-between; + padding-top: 12rpx; + padding-left: 14rpx; + padding-right: 20rpx; } } diff --git a/pages/product/report/index.vue b/pages/product/report/index.vue index e12c3ec..a31fa52 100644 --- a/pages/product/report/index.vue +++ b/pages/product/report/index.vue @@ -1,486 +1,214 @@ <template> - <view class="body"> - <view class="top_code"> - <u-icon class="product-number-icon"></u-icon>缂栧彿锛� - <text selectable>{{ dutyNo }}</text> - <view class="top_code_edit"> - <u-icon class="product-edit-icon" @click="edit" v-show="true"></u-icon> - </view> - </view> - <view class="main_view"> - <h3 class="main_top_title">宸ヤ綔鍙�</h3> - <view class="main_item" @click="goPage(0)"> - <span style="color:#4F4F4F">宸ヤ綔绔�</span> - <view> - <span style="color:#333333;margin-right: 20rpx;">{{ query.workstationName }}</span> - <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon> - </view> - </view> - <view class="main_item" @click="goPage(1)"> - <span style="color:#4F4F4F">宸ュ簭</span> - <view> - <span style="color:#333333;margin-right: 20rpx;">{{ query.operationName }}</span> - <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon> - </view> - </view> - <view class="main_item" @click="goPage(2)"> - <span style="color:#4F4F4F">鏃ユ湡</span> - <view> - <span style="color:#333333;margin-right: 20rpx;">{{ query.updateTime }}</span> - <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon> - </view> - </view> - <view class="main_item" @click="goPage(3)"> - <span style="color:#4F4F4F">鐝</span> - <view> - <span style="color:#333333;margin-right: 20rpx;">{{ query.clazzType }}</span> - <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon> - </view> - </view> - <view class="main_item" @click="goPage(4)"> - <span style="color:#4F4F4F;width: 118rpx;">鐢熶骇浜哄憳</span> - <view class="value2"> - <span style="color:#333333;margin-right: 20rpx;">{{ staffNameJoin }}</span> - </view> - <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon> - </view> - <view class="main_item"> - <span style="color:#4F4F4F">鍒涘缓浜�</span> - <view> - <span style="color:#333333;">{{ query.createUser }}</span> - </view> - </view> - <view class="btns"> - <u-button :custom-style="customStyle" @click="goPage(9)">鏉傚伐</u-button> - <u-button :custom-style="customStyle" style="width: 150rpx;" @click="goPage(6)"> - <u-icon class="icon_history" size="26rpx" /> - <span style="line-height: 40rpx;">鍘嗗彶</span> - </u-button> - <u-button v-if="isShowButton" @click="submit" :custom-style="customStyle" - style="background: #30AFFF;color: #fff;border: 0;width: 150rpx;"> - <u-icon class="icon_save" size="26rpx" /> - <span style="line-height: 40rpx;">淇濆瓨</span> - </u-button> - <u-button :custom-style="customStyle" style="background: #214DED;color: #fff;border: 0;width: 150rpx;" - @click="goPage(8)"> - <u-icon class="icon_right" size="26rpx" /> - <span style="line-height: 40rpx;">鎶ュ伐</span></u-button> - </view> - </view> - <u-calendar v-model="calendarShow" :mode="mode" @change="changeCalendar"></u-calendar> - <!--宸ュ簭涓嬫媺妗�--> - <u-select :default-value="[operationIndex]" v-model="selectShowOperation" :list="operationList" - @confirm="confirmOperation"></u-select> - <u-select v-model="selectShowClazzType" :list="clazzTypeList" @confirm="confirmClazzType"></u-select> - <u-toast ref="uToast" /> - </view> + <!-- 鎶ュ伐 --> + <div class="page"> + <u-form :model="form" ref="uForm" :label-width="200" :rules="rules" :error-type="['toast']"> + <u-form-item label="杞﹂棿" :border-bottom="false" prop="value0"> + <u-radio-group v-model="form.value0"> + <u-radio name="瀵间綋">瀵间綋</u-radio> + <u-radio name="閾滄潌">閾滄潌</u-radio> + </u-radio-group> + </u-form-item> + <u-form-item label="鎶ュ伐鍗曞彿" :border-bottom="false" prop="value1"> + <u-input v-model="form.value1" type="select" placeholder="璇锋壂鎻忔姤宸ュ崟鍙�" @click="open" /> + </u-form-item> + <u-form-item label="宸ュ簭" :border-bottom="false" prop="value2"> + <u-input v-model="form.value2" type="select" placeholder="璇锋壂鎻忔姤宸ュ崟鍙�" /> + </u-form-item> + <u-form-item label="璁㈠崟鍙�" :border-bottom="false" prop="value3"> + <u-input v-model="form.value3" type="select" placeholder="鐐瑰嚮閫夋嫨" @click="openList" /> + </u-form-item> + <u-form-item label="闆朵欢鍙�" :border-bottom="false" prop="value4"> + <u-input v-model="form.value4" placeholder="" disabled /> + </u-form-item> + <u-form-item label="闆朵欢鎻忚堪" :border-bottom="false" prop="value5"> + <u-input v-model="form.value5" placeholder="" disabled /> + </u-form-item> + <u-form-item label="鎵归噺澶у皬" :border-bottom="false" prop="value6"> + <u-input v-model="form.value6" placeholder="" disabled /> + </u-form-item> + <u-form-item label="鍓╀綑鏁伴噺" :border-bottom="false" prop="value7"> + <u-input v-model="form.value7" placeholder="" disabled /> + </u-form-item> + <u-form-item label="搴撲綅" :border-bottom="false" prop="value8"> + <u-input v-model="form.value8" placeholder="" disabled /> + </u-form-item> + <u-form-item label="鎶ュ伐绫诲瀷" prop="value9"> + <u-radio-group v-model="form.value9"> + <u-radio name="涓嬫満鎶ュ伐">涓嬫満鎶ュ伐</u-radio> + <u-radio name="鏈笅鏈烘姤宸�">鏈笅鏈烘姤宸�</u-radio> + </u-radio-group> + </u-form-item> + <u-form-item label="鎺ユ敹闆朵欢" prop="value10"> + <u-radio-group v-model="form.value10"> + <u-radio name="杞﹂棿璁㈠崟">杞﹂棿璁㈠崟</u-radio> + <u-radio name="鏇夸唬闆朵欢">鏇夸唬闆朵欢</u-radio> + </u-radio-group> + </u-form-item> + <u-form-item label="鐗╂枡鍜屽伐搴�" prop="value11"> + <u-checkbox-group> + <u-checkbox :name="item.name" v-for="(item, index) in checkboxList" :key="index" v-model="item.value" + @change="changeCheckbox"> + {{ item.name }} + </u-checkbox> + </u-checkbox-group> + </u-form-item> + <u-form-item label="搴撳瓨鎺ユ敹" :border-bottom="false" prop="value12"></u-form-item> + </u-form> + <!-- 濉啓鎶ュ伐鍗� --> + <modalBg ref="modalBg" :confirm="confirm"> + <u-field v-model="form.value1" label="鎶ュ伐鍗曞彿" placeholder="璇疯緭鍏�" :border-bottom="false"> + </u-field> + </modalBg> + <saveForm ref="saveForm" /> + </div> </template> <script> -import { - dateFormat -} from "@/utils/date.js"; -import UIcon from "../../../uview-ui/components/u-icon/u-icon.vue"; +import modalBg from '@/components/modal/modal-bg.vue' +import saveForm from './components/saveForm.vue' export default { - components: { - UIcon - }, - data() { - return { - customStyle: { - 'background': '#FFFFFF', - 'border-radius': '8rpx', - 'border': '1px solid #D2D2D2', - 'width': '121rpx', - 'height': '65rpx', - 'font-weight': 500, - 'font-size': '28rpx', - 'color': '#333333', - 'pading': '0 30rpx' - }, - calendarShow: false, - selectShowOperation: false, - selectShowClazzType: false, - mode: 'date', - id: '', - dutyNo: '', // 缂栧彿 - query: { - updateTime: dateFormat( - new Date(), 'yyyy-MM-dd'), - workstationName: '', // 宸ヤ綔绔欏悕绉� - workstationId: '', // 宸ヤ綔绔檌d - clazzType: '', // 鐝 - productionUser: '', - operationId: '', // 宸ュ簭id - operationName: '', // 宸ュ簭鍚嶇О - userList: [], - createUser: '' - }, - toId: '', - operationList: [], - clazzTypeList: [{ - label: '鐧界彮' - }, - { - label: '鏅氱彮' - }, - ], - workstation: '', - staffNameJoin: '', - operationIndex: '', - isEdit: false, // 鏄惁淇敼 - isShowButton: false, - workCenter: '', - addOrEdit: '', - info: {}, - firstOperationId: null, - lastOperationId: null, - } - }, - onShow() { - // this.getLastDutyRecordFun() - }, - onLoad() { - uni.$on('dailyListInfo', (info) => { - this.dutyNo = info.dutyNo - this.id = info.id - this.query.createUser = this.vuex_username - this.query.clazzType = info.clazzType - this.query.workstationId = info.workstationId - this.query.workstationName = info.workstationName - this.query.productionUser = info.productionUser.split(',').reverse() - this.query.userList = info.productionUserList.split(',') - this.query.operationId = info.operationId - this.getOperation() - }) - - uni.$on('returnData', (data) => { - // 涓存椂瀛樺偍宸ヤ綔绔欑殑鏁版嵁 - this.workstation = data - // 缁欓〉闈㈠伐浣滅珯璧嬪�� - this.query.workstationName = '(' + data.workCenter + ')' + data.name - this.query.workstationId = data.id - // 娓呯┖宸ュ簭閫夐」 - this.query.operationName = '' - this.query.operationId = '' - this.operationIndex = 0 - this.getOperationTaskFun(data.workCenter) - }) - uni.$on('checkedList', (data) => { - let staffNameList = [] - let staffNoList = [] - data.forEach(i => { - staffNameList.push(i.staffName) - staffNoList.push(i.staffNo) - }) - this.query.productionUser = staffNameList - this.query.userList = staffNoList - }); - }, - onReady() { - // 棣栨杩涘叆椤甸潰鑾峰彇褰撳墠鐧诲綍浜烘渶鍚庝竴娆℃彁浜ょ殑鏃ユ姤 - this.getLastDutyRecordFun() - }, - methods: { - isNotOperationName(workCenter, operationName, workCenterTwo) { - // 鍒ゆ柇鏄惁涓鸿宸ヤ綔绔� - if (workCenter.includes(workCenterTwo)) { - // 鍒ゆ柇鏄惁鍖呭惈宸ュ簭鍚嶇О - if (!operationName.includes(this.query.operationName)) { - return true - } else { - return false - } - } else { - return false - } - }, - // 鍒ゆ柇宸ュ崟鏄惁绛変簬,鍚屾椂鍒ゆ柇鏄惁涓虹涓�閬撳伐搴� - isFirstOperationId(workCenter, workCenterTwo) { - if (workCenter.includes(workCenterTwo)) { - // 鍒ゆ柇鏄惁涓嶄负绗竴閬撳伐搴� - if (this.query.operationId !== this.firstOperationId) { - return true - } else { - return false - } - } else { - return false - } - }, - // 棣栨杩涘叆椤甸潰鑾峰彇褰撳墠鐧诲綍浜烘渶鍚庝竴娆℃彁浜ょ殑鏃ユ姤 - getLastDutyRecordFun() { - this.$u.api.dailyPaper.getLastDutyRecord().then(res => { - if (res.code === 0) { - this.dutyNo = res.data.dutyNo - this.id = res.data.id - this.query.createUser = this.vuex_username - this.query.clazzType = res.data.clazzType - this.query.workstationId = res.data.workstationId - this.query.workstationName = res.data.workstationName - this.query.productionUser = res.data.productionUser.split(',').reverse() - this.query.userList = res.data.productionUserList.split(',') - this.query.operationId = res.data.operationId - this.getOperation() - } else { - this.$u.toast(res.msg) - } - }) - }, - // 娓呯┖閫昏緫 - onNavigationBarButtonTap(e) { - this.isEdit = true - this.isShowButton = true - this.addOrEdit = 'add' - this.query.productionUser = '' - this.query.productionUserList = [] - this.staffNameJoin = '' - this.query.updateTime = '' - }, - edit() { - this.isEdit = !this.isEdit - this.isShowButton = this.isEdit - this.addOrEdit = 'edit' - }, - goPage(index) { - switch (index) { - // 璺宠浆鍒板巻鍙查〉闈� - case 6: - uni.navigateTo({ - url: '/pages/daily/daily/daily-list' - }) - break; - // 璺宠浆鍒版姤宸ラ〉闈� - case 8: - if (this.isEdit) { - this.$refs.uToast.show({ - title: '璇峰厛淇濆瓨淇敼', - type: 'warning ' - }) - return - } - - let workCenter = this.query.workstationName.split(')')[0].substring(1) - let operation = this.query.workstationName.split(')')[1] - console.log(workCenter, operation, this.firstOperationId, this.query.operationId, this.query) - if (workCenter == "TM-01" || workCenter == "JG-01" || workCenter == "YB-04" || this.isFirstOperationId('DY-01,GY-01,YB-01,YB-02', workCenter) || this.isNotOperationName('ZZ-02', '浜岃,娉ㄦ补', workCenter)) { - let item = { - workstationId: this.query.workstationId, - clazzType: this.query.clazzType, - dutyNo: this.dutyNo, - userStaffNo: this.query.userList, - workstationName: this.query.workstationName, - staffNameJoin: this.staffNameJoin, - workCenter: workCenter, - operationId: this.query.operationId, - firstOperationId: this.firstOperationId, - lastOperationId: this.lastOperationId - } - uni.navigateTo({ - url: '/pages/daily/common/work-reporting?info=' + encodeURIComponent(JSON - .stringify(item)) - }) - } else if (this.query.workstationName.includes("TX-02") && !this.query.operationName.includes("鍙犺")) { - let item = { - workstationId: this.query.workstationId, - clazzType: this.query.clazzType, - dutyNo: this.dutyNo, - userStaffNo: this.query.userList, - workstationName: this.query.workstationName, - staffNameJoin: this.staffNameJoin, - workCenter: "TX-02", - operationId: this.query.operationId, - firstOperationId: this.firstOperationId, - lastOperationId: this.lastOperationId - } - uni.navigateTo({ - url: '/pages/daily/common/work-reporting?info=' + encodeURIComponent(JSON - .stringify(item)) - }) - } else { - uni.navigateTo({ - url: `/pages/daily/common/work-order-list?workstationId=${this.query.workstationId}&toId=${this.toId}&clazzType=${this.query.clazzType}&dutyNo=${this.dutyNo}&userStaffNo=${this.query.userList}&workstationName=${this.query.workstationName}&staffNameJoin=${this.staffNameJoin}` - }) - } - break; - // 璺宠浆鍒版潅宸ラ〉闈� - case 9: - if (this.isEdit) { - this.$refs.uToast.show({ - title: '璇峰厛淇濆瓨淇敼', - type: 'warning ' - }) - return - } - uni.navigateTo({ - url: `/pages/daily/handyman/handyman?dutyNo=${this.query.dutyNo}&updateTime=${this.query.updateTime}&userList=${this.query.productionUser}&staffList=${this.query.userList}` - }) - break; - } - if (!this.isEdit) { - return - } else { - switch (index) { - case 0: - uni.navigateTo({ - url: '/pages/daily/workstation/index' - }) - break; - case 1: - if (!this.query.workstationName) { - this.$refs.uToast.show({ - title: '璇峰厛閫夋嫨宸ヤ綔绔�', - type: 'warning ' - }) - } else { - this.selectShowOperation = true; - } - break; - case 2: - this.calendarShow = true; - break; - case 3: - this.selectShowClazzType = true; - break; - case 4: - let staffList = this.query.productionUser - let staffNoList = this.query.userList - const list = [] - for (const i in staffList) { - const obj = { - staffName: staffList[i], - staffNo: staffNoList[i] - } - list.push(obj) - } - uni.navigateTo({ - url: '/pages/daily/production-person/production-person?list=' + encodeURIComponent( - JSON.stringify(list)) - }) - break; - } - } - }, - // 鎻愪氦鏃ユ姤淇敼 - submit() { - if (!this.query.workstationId) { - this.$u.toast('璇烽�夋嫨宸ヤ綔绔�') - return - } else if (!this.query.operationId) { - this.$u.toast('璇烽�夋嫨宸ュ簭') - return - } else if (!this.query.clazzType) { - this.$u.toast('璇烽�夋嫨鐝') - return - } else if (!this.query.productionUser) { - this.$u.toast('璇烽�夋嫨鐢熶骇浜哄憳') - return - } else if (!this.query.updateTime) { - this.$u.toast('璇烽�夋嫨鏃堕棿') - return - } - - let params = JSON.parse(JSON.stringify(this.query)) - this.$delete(params, 'productionUser') - this.$delete(params, 'productionUserList') - params.updateTime = params.updateTime + ' 00:00:00' - params.id = null - if (this.addOrEdit === 'add') { - this.$u.api.dailyPaper.addDailyPaper(params).then(res => { - if (res.code === 0) { - // this.getLastDutyRecordFun() - this.query.createUser = this.vuex_username - this.$u.toast('淇濆瓨鎴愬姛') - this.isShowButton = false - this.getLastDutyRecordFun() - } - }) - } else { - params.id = this.id - this.$u.api.dailyPaper.editDailyPaper(params).then(res => { - if (res.code === 0) { - // this.getLastDutyRecordFun() - this.$u.toast('淇敼鎴愬姛') - this.isShowButton = false - } - }) - } - this.isEdit = false - }, - changeCalendar(e) { - this.query.updateTime = e.result; - }, - confirmOperation(e) { - this.query.operationName = e[0].label - this.query.operationId = e[0].value - const index = this.operationList.findIndex(item => item.value === this.query.operationId) - if (index > -1) { - this.operationIndex = index - this.toId = this.operationList[index].value - } - }, - confirmClazzType(e) { - this.query.clazzType = e[0].label - }, - // 鏌ヨ宸ヤ綔绔� - getOperation() { - this.$u.api.dailyPaper.getWorkstation().then(res => { - if (res.code === 0) { - const index = res.data.findIndex(item => item.name === this.query.workstationName) - if (index > -1) { - this.workCenter = res.data[index].workCenter - } - this.query.workstationName = '(' + this.workCenter + ')' + this.query.workstationName - this.getOperationTaskFun(this.workCenter, this.query.operationId) - } - }) - }, - getOperationTaskFun(id, operationId) { - this.operationList = [] - const params = { - workCenter: id, - current: 1, - size: -1 - } - // 鏌ヨ宸ュ簭鍒楄〃 - this.$u.api.dailyPaper.getOperation(params).then(res => { - if (res.code === 0) { - if (res.data.records.length > 0) { - res.data.records.forEach(i => { - const obj = Object.assign({ - label: i.name, - value: i.id, - }) - this.operationList.push(obj) - }) - if (operationId) { - const index = this.operationList.findIndex(item => item.value === operationId) - if (index > -1) { - this.operationIndex = index - this.query.operationName = this.operationList[index].label - this.toId = this.operationList[index].value - } - } - this.firstOperationId = this.operationList[0].value - this.lastOperationId = this.operationList[this.operationList.length - 1].value - } - } - }) - } - }, - watch: { - 'query.productionUser': { - handler(newName, oldName) { - if (this.query.productionUser.length > 0) { - this.staffNameJoin = this.query.productionUser.join() - } else { - this.staffNameJoin = '' - } - }, - immediate: true, - deep: true - } - } + components: { modalBg, saveForm }, + data() { + return { + checkboxList: [ + { + name: '鍊掑啿', + value: false + }, + { + name: '宸ュ簭鐨勮嚜鍔ㄦ姤鍛�', + value: false + }, + { + name: '绠�鍖栫墿鏂欐鏌�', + value: false + } + ], + form: { + value0: '', + value1: '', + value2: '', + value3: '', + value4: '', + value5: '', + value6: '', + value7: '', + value8: '', + value9: '涓嬫満鎶ュ伐', + value10: '杞﹂棿璁㈠崟', + value11: [], // 澶嶉�夋缁勭殑鍊� + value12: '' + }, + rules: { + value0: [ + { + required: true, + message: '璇烽�夋嫨杞﹂棿', + trigger: ['change'] + } + ], + value1: [ + { + required: true, + message: '璇烽�夋嫨鎶ュ伐鍗曞彿', + trigger: ['change', 'blur'] + } + ], + value2: [ + { + required: true, + message: '璇烽�夋嫨宸ュ簭', + trigger: ['change', 'blur'] + } + ], + value3: [ + { + required: true, + message: '璇烽�夋嫨璁㈠崟鍙�', + trigger: ['change', 'blur'] + } + ], + value9: [ + { + required: true, + message: '璇烽�夋嫨鎶ュ伐绫诲瀷', + trigger: ['change'] + } + ], + value10: [ + { + required: true, + message: '璇烽�夋嫨鎺ユ敹闆朵欢绫诲瀷', + trigger: ['change'] + } + ], + value11: [ + { + type: 'array', + required: true, + message: '璇疯嚦灏戦�夋嫨涓�涓墿鏂欏拰宸ュ簭閫夐」', + trigger: ['change'] + } + ] + }, + showSave: false, + } + }, + // 鐐瑰嚮鎻愪氦鎸夐挳鐨勪簨浠跺鐞嗗嚱鏁� + onNavigationBarButtonTap() { + this.form.value11 = this.checkboxList.filter(item => item.value).map(item => item.name); + this.$refs.uForm.validate(valid => { + if (valid) { + console.log('楠岃瘉閫氳繃'); + // 澶勭悊鎻愪氦閫昏緫 + this.$refs.saveForm.open(); + } else { + console.log('楠岃瘉澶辫触'); + // 鍙互鑾峰彇鍏蜂綋鐨勯敊璇俊鎭� + const errors = this.$refs.uForm.getError(); + console.log('閿欒淇℃伅:', errors); + } + }); + }, + onReady() { + this.$refs.uForm.setRules(this.rules); + }, + methods: { + // 澶氶�夊鐞� + changeCheckbox(val) { + if (val.name === '鍊掑啿') { + this.checkboxList[2].value = false + } + if (val.name === '绠�鍖栫墿鏂欐鏌�') { + this.checkboxList[0].value = false + } + }, + // 鎵撳紑寮规--鍚庨潰杩橀渶瑕佺洃鍚壂鐮佹灙鎵爜缁撴灉锛岃祴鍊肩粰鎶ュ伐鍗曞彿瀛楁锛岀劧鍚庢墦寮�寮规閫夋嫨璁㈠崟鍙风瓑鎿嶄綔 + open() { + this.$refs.modalBg.open(); + }, + // 寮规淇濆瓨 + confirm() { + console.log('淇濆瓨', this.form.value1); + // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊� + }, + // 閫夋嫨璁㈠崟鍙� + openList() { + if (this.form.value1 === '') { + uni.showToast({ + title: '璇峰厛鎵弿鎴栬緭鍏ユ姤宸ュ崟鍙�', + icon: 'none' + }) + return + } + uni.navigateTo({ + url: '/pages/product/report/orderList' + }) + }, + setNo(val) { + this.form.value3 = val + } + } } </script> diff --git a/pages/product/report/index0.scss b/pages/product/report/index0.scss new file mode 100644 index 0000000..9f36785 --- /dev/null +++ b/pages/product/report/index0.scss @@ -0,0 +1,113 @@ +.body { + background: linear-gradient(to bottom, #e5f0ff, #f6f9ff); + box-sizing: border-box; + padding-top: 26rpx; + height: 100vh; +} +.top_code { + height: 80rpx; + display: flex; + align-items: center; + margin: 0 30rpx; + margin-bottom: 10rpx; +} +.top_code_edit { + text-align: right; + flex: 1; + margin-bottom: 18rpx; +} +.main_view { + margin-top: 5rpx; + background-image: url("~@/static/custom/home/home_img_bg.png"); + background-repeat: no-repeat; + background-size: 100% auto; + border-radius: 15rpx; + height: 936rpx; + margin: 0 30rpx; + box-sizing: border-box; + padding: 37rpx 25rpx; +} + +.product-number-icon { + background-image: url("~@/static/custom/daily/icon_number.png"); + background-repeat: no-repeat; + background-size: cover; + height: 32rpx; + width: 32rpx; + position: relative; + margin-right: 8rpx; +} + +.product-edit-icon { + background-image: url("~@/static/custom/daily/icon_edit.png"); + background-repeat: no-repeat; + background-size: cover; + height: 32rpx; + width: 32rpx; + position: relative; +} +.icon_history { + background-image: url("~@/static/custom/daily/icon_history.png"); + background-repeat: no-repeat; + background-size: cover; + height: 26rpx; + width: 26rpx; + margin-right: 8rpx; + position: relative; +} +.icon_save { + background-image: url("~@/static/custom/daily/icon_save.png"); + background-repeat: no-repeat; + background-size: cover; + height: 26rpx; + width: 26rpx; + margin-right: 8rpx; + position: relative; +} +.icon_right { + background-image: url("~@/static/custom/daily/icon_right.png"); + background-repeat: no-repeat; + background-size: cover; + height: 26rpx; + width: 26rpx; + margin-right: 8rpx; + position: relative; +} +.main_top_title { + font-weight: 800; + font-size: 34rpx; + color: #1d2541; + margin-bottom: 20rpx; +} +.main_item { + display: flex; + align-items: center; + justify-content: space-between; + font-size: 30rpx; + line-height: 112rpx; + border-bottom: 1rpx solid rgba(213, 213, 213, 0.67); + box-sizing: border-box; + .value2 { + width: 450rpx; /*鐩掑瓙鏈�澶у搴�*/ + overflow: hidden; + text-overflow: ellipsis; /* 璁剧疆鏂囨湰婧㈠嚭鏃舵樉绀虹渷鐣ュ彿 */ + white-space: nowrap; /* 璁剧疆涓嶆崲琛� */ + text-align: right; + padding-left: 40rpx; + } +} +.btns { + display: flex; + align-items: center; + justify-content: center; + margin-top: 33rpx; + .uni-button { + display: flex; + align-items: center; + justify-content: center; + } + ::v-deep.u-icon__icon { + height: 26rpx; + width: 26rpx; + } +} diff --git a/pages/product/report/index0.vue b/pages/product/report/index0.vue new file mode 100644 index 0000000..45e05be --- /dev/null +++ b/pages/product/report/index0.vue @@ -0,0 +1,489 @@ +<template> + <view class="body"> + <view class="top_code"> + <u-icon class="product-number-icon"></u-icon>缂栧彿锛� + <text selectable>{{ dutyNo }}</text> + <view class="top_code_edit"> + <u-icon class="product-edit-icon" @click="edit" v-show="true"></u-icon> + </view> + </view> + <view class="main_view"> + <h3 class="main_top_title">宸ヤ綔鍙�</h3> + <view class="main_item" @click="goPage(0)"> + <span style="color:#4F4F4F">宸ヤ綔绔�</span> + <view> + <span style="color:#333333;margin-right: 20rpx;">{{ query.workstationName }}</span> + <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon> + </view> + </view> + <view class="main_item" @click="goPage(1)"> + <span style="color:#4F4F4F">宸ュ簭</span> + <view> + <span style="color:#333333;margin-right: 20rpx;">{{ query.operationName }}</span> + <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon> + </view> + </view> + <view class="main_item" @click="goPage(2)"> + <span style="color:#4F4F4F">鏃ユ湡</span> + <view> + <span style="color:#333333;margin-right: 20rpx;">{{ query.updateTime }}</span> + <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon> + </view> + </view> + <view class="main_item" @click="goPage(3)"> + <span style="color:#4F4F4F">鐝</span> + <view> + <span style="color:#333333;margin-right: 20rpx;">{{ query.clazzType }}</span> + <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon> + </view> + </view> + <view class="main_item" @click="goPage(4)"> + <span style="color:#4F4F4F;width: 118rpx;">鐢熶骇浜哄憳</span> + <view class="value2"> + <span style="color:#333333;margin-right: 20rpx;">{{ staffNameJoin }}</span> + </view> + <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon> + </view> + <view class="main_item"> + <span style="color:#4F4F4F">鍒涘缓浜�</span> + <view> + <span style="color:#333333;">{{ query.createUser }}</span> + </view> + </view> + <view class="btns"> + <u-button :custom-style="customStyle" @click="goPage(9)">鏉傚伐</u-button> + <u-button :custom-style="customStyle" style="width: 150rpx;" @click="goPage(6)"> + <u-icon class="icon_history" size="26rpx" /> + <span style="line-height: 40rpx;">鍘嗗彶</span> + </u-button> + <u-button v-if="isShowButton" @click="submit" :custom-style="customStyle" + style="background: #30AFFF;color: #fff;border: 0;width: 150rpx;"> + <u-icon class="icon_save" size="26rpx" /> + <span style="line-height: 40rpx;">淇濆瓨</span> + </u-button> + <u-button :custom-style="customStyle" style="background: #214DED;color: #fff;border: 0;width: 150rpx;" + @click="goPage(8)"> + <u-icon class="icon_right" size="26rpx" /> + <span style="line-height: 40rpx;">鎶ュ伐</span></u-button> + </view> + </view> + <u-calendar v-model="calendarShow" :mode="mode" @change="changeCalendar"></u-calendar> + <!--宸ュ簭涓嬫媺妗�--> + <u-select :default-value="[operationIndex]" v-model="selectShowOperation" :list="operationList" + @confirm="confirmOperation"></u-select> + <u-select v-model="selectShowClazzType" :list="clazzTypeList" @confirm="confirmClazzType"></u-select> + <u-toast ref="uToast" /> + </view> +</template> + +<script> +import { + dateFormat +} from "@/utils/date.js"; +import UIcon from "../../../uview-ui/components/u-icon/u-icon.vue"; +export default { + components: { + UIcon + }, + data() { + return { + customStyle: { + 'background': '#FFFFFF', + 'border-radius': '8rpx', + 'border': '1px solid #D2D2D2', + 'width': '121rpx', + 'height': '65rpx', + 'font-weight': 500, + 'font-size': '28rpx', + 'color': '#333333', + 'pading': '0 30rpx' + }, + calendarShow: false, + selectShowOperation: false, + selectShowClazzType: false, + mode: 'date', + id: '', + dutyNo: '', // 缂栧彿 + query: { + updateTime: dateFormat( + new Date(), 'yyyy-MM-dd'), + workstationName: '', // 宸ヤ綔绔欏悕绉� + workstationId: '', // 宸ヤ綔绔檌d + clazzType: '', // 鐝 + productionUser: '', + operationId: '', // 宸ュ簭id + operationName: '', // 宸ュ簭鍚嶇О + userList: [], + createUser: '' + }, + toId: '', + operationList: [], + clazzTypeList: [{ + label: '鐧界彮' + }, + { + label: '鏅氱彮' + }, + ], + workstation: '', + staffNameJoin: '', + operationIndex: '', + isEdit: false, // 鏄惁淇敼 + isShowButton: false, + workCenter: '', + addOrEdit: '', + info: {}, + firstOperationId: null, + lastOperationId: null, + } + }, + onShow() { + // this.getLastDutyRecordFun() + }, + onLoad() { + uni.$on('dailyListInfo', (info) => { + this.dutyNo = info.dutyNo + this.id = info.id + this.query.createUser = this.vuex_username + this.query.clazzType = info.clazzType + this.query.workstationId = info.workstationId + this.query.workstationName = info.workstationName + this.query.productionUser = info.productionUser.split(',').reverse() + this.query.userList = info.productionUserList.split(',') + this.query.operationId = info.operationId + this.getOperation() + }) + + uni.$on('returnData', (data) => { + // 涓存椂瀛樺偍宸ヤ綔绔欑殑鏁版嵁 + this.workstation = data + // 缁欓〉闈㈠伐浣滅珯璧嬪�� + this.query.workstationName = '(' + data.workCenter + ')' + data.name + this.query.workstationId = data.id + // 娓呯┖宸ュ簭閫夐」 + this.query.operationName = '' + this.query.operationId = '' + this.operationIndex = 0 + this.getOperationTaskFun(data.workCenter) + }) + uni.$on('checkedList', (data) => { + let staffNameList = [] + let staffNoList = [] + data.forEach(i => { + staffNameList.push(i.staffName) + staffNoList.push(i.staffNo) + }) + this.query.productionUser = staffNameList + this.query.userList = staffNoList + }); + }, + onReady() { + // 棣栨杩涘叆椤甸潰鑾峰彇褰撳墠鐧诲綍浜烘渶鍚庝竴娆℃彁浜ょ殑鏃ユ姤 + this.getLastDutyRecordFun() + }, + methods: { + isNotOperationName(workCenter, operationName, workCenterTwo) { + // 鍒ゆ柇鏄惁涓鸿宸ヤ綔绔� + if (workCenter.includes(workCenterTwo)) { + // 鍒ゆ柇鏄惁鍖呭惈宸ュ簭鍚嶇О + if (!operationName.includes(this.query.operationName)) { + return true + } else { + return false + } + } else { + return false + } + }, + // 鍒ゆ柇宸ュ崟鏄惁绛変簬,鍚屾椂鍒ゆ柇鏄惁涓虹涓�閬撳伐搴� + isFirstOperationId(workCenter, workCenterTwo) { + if (workCenter.includes(workCenterTwo)) { + // 鍒ゆ柇鏄惁涓嶄负绗竴閬撳伐搴� + if (this.query.operationId !== this.firstOperationId) { + return true + } else { + return false + } + } else { + return false + } + }, + // 棣栨杩涘叆椤甸潰鑾峰彇褰撳墠鐧诲綍浜烘渶鍚庝竴娆℃彁浜ょ殑鏃ユ姤 + getLastDutyRecordFun() { + this.$u.api.dailyPaper.getLastDutyRecord().then(res => { + if (res.code === 0) { + this.dutyNo = res.data.dutyNo + this.id = res.data.id + this.query.createUser = this.vuex_username + this.query.clazzType = res.data.clazzType + this.query.workstationId = res.data.workstationId + this.query.workstationName = res.data.workstationName + this.query.productionUser = res.data.productionUser.split(',').reverse() + this.query.userList = res.data.productionUserList.split(',') + this.query.operationId = res.data.operationId + this.getOperation() + } else { + this.$u.toast(res.msg) + } + }) + }, + // 娓呯┖閫昏緫 + onNavigationBarButtonTap(e) { + this.isEdit = true + this.isShowButton = true + this.addOrEdit = 'add' + this.query.productionUser = '' + this.query.productionUserList = [] + this.staffNameJoin = '' + this.query.updateTime = '' + }, + edit() { + this.isEdit = !this.isEdit + this.isShowButton = this.isEdit + this.addOrEdit = 'edit' + }, + goPage(index) { + switch (index) { + // 璺宠浆鍒板巻鍙查〉闈� + case 6: + uni.navigateTo({ + url: '/pages/daily/daily/daily-list' + }) + break; + // 璺宠浆鍒版姤宸ラ〉闈� + case 8: + if (this.isEdit) { + this.$refs.uToast.show({ + title: '璇峰厛淇濆瓨淇敼', + type: 'warning ' + }) + return + } + + let workCenter = this.query.workstationName.split(')')[0].substring(1) + let operation = this.query.workstationName.split(')')[1] + console.log(workCenter, operation, this.firstOperationId, this.query.operationId, this.query) + if (workCenter == "TM-01" || workCenter == "JG-01" || workCenter == "YB-04" || this.isFirstOperationId('DY-01,GY-01,YB-01,YB-02', workCenter) || this.isNotOperationName('ZZ-02', '浜岃,娉ㄦ补', workCenter)) { + let item = { + workstationId: this.query.workstationId, + clazzType: this.query.clazzType, + dutyNo: this.dutyNo, + userStaffNo: this.query.userList, + workstationName: this.query.workstationName, + staffNameJoin: this.staffNameJoin, + workCenter: workCenter, + operationId: this.query.operationId, + firstOperationId: this.firstOperationId, + lastOperationId: this.lastOperationId + } + uni.navigateTo({ + url: '/pages/daily/common/work-reporting?info=' + encodeURIComponent(JSON + .stringify(item)) + }) + } else if (this.query.workstationName.includes("TX-02") && !this.query.operationName.includes("鍙犺")) { + let item = { + workstationId: this.query.workstationId, + clazzType: this.query.clazzType, + dutyNo: this.dutyNo, + userStaffNo: this.query.userList, + workstationName: this.query.workstationName, + staffNameJoin: this.staffNameJoin, + workCenter: "TX-02", + operationId: this.query.operationId, + firstOperationId: this.firstOperationId, + lastOperationId: this.lastOperationId + } + uni.navigateTo({ + url: '/pages/daily/common/work-reporting?info=' + encodeURIComponent(JSON + .stringify(item)) + }) + } else { + uni.navigateTo({ + url: `/pages/daily/common/work-order-list?workstationId=${this.query.workstationId}&toId=${this.toId}&clazzType=${this.query.clazzType}&dutyNo=${this.dutyNo}&userStaffNo=${this.query.userList}&workstationName=${this.query.workstationName}&staffNameJoin=${this.staffNameJoin}` + }) + } + break; + // 璺宠浆鍒版潅宸ラ〉闈� + case 9: + if (this.isEdit) { + this.$refs.uToast.show({ + title: '璇峰厛淇濆瓨淇敼', + type: 'warning ' + }) + return + } + uni.navigateTo({ + url: `/pages/daily/handyman/handyman?dutyNo=${this.query.dutyNo}&updateTime=${this.query.updateTime}&userList=${this.query.productionUser}&staffList=${this.query.userList}` + }) + break; + } + if (!this.isEdit) { + return + } else { + switch (index) { + case 0: + uni.navigateTo({ + url: '/pages/daily/workstation/index' + }) + break; + case 1: + if (!this.query.workstationName) { + this.$refs.uToast.show({ + title: '璇峰厛閫夋嫨宸ヤ綔绔�', + type: 'warning ' + }) + } else { + this.selectShowOperation = true; + } + break; + case 2: + this.calendarShow = true; + break; + case 3: + this.selectShowClazzType = true; + break; + case 4: + let staffList = this.query.productionUser + let staffNoList = this.query.userList + const list = [] + for (const i in staffList) { + const obj = { + staffName: staffList[i], + staffNo: staffNoList[i] + } + list.push(obj) + } + uni.navigateTo({ + url: '/pages/daily/production-person/production-person?list=' + encodeURIComponent( + JSON.stringify(list)) + }) + break; + } + } + }, + // 鎻愪氦鏃ユ姤淇敼 + submit() { + if (!this.query.workstationId) { + this.$u.toast('璇烽�夋嫨宸ヤ綔绔�') + return + } else if (!this.query.operationId) { + this.$u.toast('璇烽�夋嫨宸ュ簭') + return + } else if (!this.query.clazzType) { + this.$u.toast('璇烽�夋嫨鐝') + return + } else if (!this.query.productionUser) { + this.$u.toast('璇烽�夋嫨鐢熶骇浜哄憳') + return + } else if (!this.query.updateTime) { + this.$u.toast('璇烽�夋嫨鏃堕棿') + return + } + + let params = JSON.parse(JSON.stringify(this.query)) + this.$delete(params, 'productionUser') + this.$delete(params, 'productionUserList') + params.updateTime = params.updateTime + ' 00:00:00' + params.id = null + if (this.addOrEdit === 'add') { + this.$u.api.dailyPaper.addDailyPaper(params).then(res => { + if (res.code === 0) { + // this.getLastDutyRecordFun() + this.query.createUser = this.vuex_username + this.$u.toast('淇濆瓨鎴愬姛') + this.isShowButton = false + this.getLastDutyRecordFun() + } + }) + } else { + params.id = this.id + this.$u.api.dailyPaper.editDailyPaper(params).then(res => { + if (res.code === 0) { + // this.getLastDutyRecordFun() + this.$u.toast('淇敼鎴愬姛') + this.isShowButton = false + } + }) + } + this.isEdit = false + }, + changeCalendar(e) { + this.query.updateTime = e.result; + }, + confirmOperation(e) { + this.query.operationName = e[0].label + this.query.operationId = e[0].value + const index = this.operationList.findIndex(item => item.value === this.query.operationId) + if (index > -1) { + this.operationIndex = index + this.toId = this.operationList[index].value + } + }, + confirmClazzType(e) { + this.query.clazzType = e[0].label + }, + // 鏌ヨ宸ヤ綔绔� + getOperation() { + this.$u.api.dailyPaper.getWorkstation().then(res => { + if (res.code === 0) { + const index = res.data.findIndex(item => item.name === this.query.workstationName) + if (index > -1) { + this.workCenter = res.data[index].workCenter + } + this.query.workstationName = '(' + this.workCenter + ')' + this.query.workstationName + this.getOperationTaskFun(this.workCenter, this.query.operationId) + } + }) + }, + getOperationTaskFun(id, operationId) { + this.operationList = [] + const params = { + workCenter: id, + current: 1, + size: -1 + } + // 鏌ヨ宸ュ簭鍒楄〃 + this.$u.api.dailyPaper.getOperation(params).then(res => { + if (res.code === 0) { + if (res.data.records.length > 0) { + res.data.records.forEach(i => { + const obj = Object.assign({ + label: i.name, + value: i.id, + }) + this.operationList.push(obj) + }) + if (operationId) { + const index = this.operationList.findIndex(item => item.value === operationId) + if (index > -1) { + this.operationIndex = index + this.query.operationName = this.operationList[index].label + this.toId = this.operationList[index].value + } + } + this.firstOperationId = this.operationList[0].value + this.lastOperationId = this.operationList[this.operationList.length - 1].value + } + } + }) + } + }, + watch: { + 'query.productionUser': { + handler(newName, oldName) { + if (this.query.productionUser.length > 0) { + this.staffNameJoin = this.query.productionUser.join() + } else { + this.staffNameJoin = '' + } + }, + immediate: true, + deep: true + } + } +} +</script> + +<style lang="scss"> +@import 'index0.scss'; +</style> \ No newline at end of file diff --git a/pages/product/report/orderList.vue b/pages/product/report/orderList.vue new file mode 100644 index 0000000..b48b167 --- /dev/null +++ b/pages/product/report/orderList.vue @@ -0,0 +1,312 @@ +<template> + <view class="page"> + <view class="finishProductIn-locno-bg" /> + <u-navbar title="杞﹂棿璁㈠崟鍒楄〃" :background="background" :border-bottom="false" :title-bold="true" title-color="#000" + back-icon-color="#000" /> + <view class="finishProductIn-locno-search"> + <u-search v-model="keywords" shape="square" bg-color="rgba(250,252,255,0.36)" :show-action="false" + placeholder="璇疯緭鍏ヨ溅闂磋鍗曞彿" @clear="search" @custom="search" @search="search"> + </u-search> + </view> + <view class="wrap"> + <scroll-view class="finishProductIn-locno-scroll-list" scroll-y="true" @scrolltolower="loadMore"> + <u-cell-group class="finishProductIn-locno-scroll-list-group" :border="false"> + <view class="content" v-for="(item, index) in list" :key="item.locNo" :index="index" + @click="selectNo(item.index)"> + <view class="content-header"> + <view class="content-header-title">{{ item.index }}</view> + </view> + <view class="content-body"> + <view class="row-list"> + <view class="_label"> + <view class="_label-icon-1"> + </view> + <view class="_label-name">璁㈠崟鍙凤細</view> + </view> + <view class="_content"> + {{ item.value0 }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-icon-2"> + </view> + <view class="_label-name">闆朵欢鍙凤細</view> + </view> + <view class="_content"> + {{ item.value1 }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-icon-3"> + </view> + <view class="_label-name">闆朵欢鎻忚堪锛�</view> + </view> + <view class="_content"> + {{ item.value2 }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-icon-1"> + </view> + <view class="_label-name">鎵归噺澶у皬锛�</view> + </view> + <view class="_content"> + {{ item.value3 }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-icon-2"> + </view> + <view class="_label-name">寮�濮嬫棩鏈燂細</view> + </view> + <view class="_content"> + {{ item.value4 }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-icon-3"> + </view> + <view class="_label-name">缁撴潫鏃ユ湡锛�</view> + </view> + <view class="_content"> + {{ item.value5 }} + </view> + </view> + </view> + </view> + </u-cell-group> + <view class="loadmore" @click="loadMore"> + <u-loadmore :status="loadStatus"></u-loadmore> + </view> + </scroll-view> + </view> + </view> +</template> +<script> +import content_bg from '@/static/custom/finishProductIn/locNoBg.png' +export default { + data() { + return { + background: { + backgroundImage: `url(${content_bg})`, + backgroundAttachment: 'fixed', + backgroundSize: '100% auto', + backgroundRepeat: 'no-repeat', + }, + keywords: '', + alllist: [], + originList: [], + query: { + current: 1, + size: 10 + }, + list: [ + { + index: 1, + value0: '123456789', + value1: '123456789', + value2: '123456789', + value3: '123456789', + value4: '123456789', + value5: '123456789' + } + ], + count: 0, + loadStatus: 'loading' + }; + }, + onLoad() { + this.$u.api.finishProductIn.fetchList().then(res => { + this.alllist = res.data + this.originList = res.data + this.loadList() + }) + }, + methods: { + loadMore() { + if (this.loadStatus == "nomore" || this.loadStatus == "loading") { + return + } + this.loadStatus = "loading"; + setTimeout(() => { + this.query.current += 1; + this.loadList(); + }, 100); + }, + loadList() { + const data = this.originList.slice((this.query.current - 1) * this.query.size, this.query.current * this.query.size) + this.list = this.list.concat(data); + this.loadStatus = "loadmore"; + if (!data || data.length < this.query.size) { + this.loadStatus = "nomore"; + } + }, + search(value) { + this.list = []; + this.query.current = 1; + if (value) { + this.originList = this.alllist.filter(item => item.locNo.includes(value)) + } else { + this.originList = this.alllist + } + this.loadList() + }, + selectNo(no) { + this.refreshLastPage(no) + }, + + //鍒锋柊涓婁竴涓〉闈� + refreshLastPage(no) { + // 鍛婄煡 A.vue 鏇存柊鏁版嵁 + // 鑾峰彇椤甸潰鏍� + let pages = getCurrentPages() + + // 鑾峰彇涓婁竴椤垫爤 + let prevPage = pages[pages.length - 2] + + // 瑙﹀彂涓婁竴椤� upData 鍑芥暟(骞舵惡甯﹀弬鏁�) + prevPage.$vm.setNo(no) + + // 杩斿洖涓婁竴椤� + uni.navigateBack({ + delta: 1 + }) + }, + } +}; +</script> +<style lang="scss"> +.finishProductIn-locno-bg { + background-color: #F6F9FF; + background-image: url('~@/static/custom/finishProductIn/locNoBg.png'); + // background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0)); + padding: 0 20rpx; + background-attachment: fixed; + background-size: 100% auto; + background-repeat: no-repeat; + position: fixed; + top: 0; + bottom: 0; + width: 100%; + z-index: -1; +} + +.finishProductIn-locno-search { + padding: 40rpx 30rpx 20rpx 30rpx; +} + +.wrap .finishProductIn-locno-scroll-list { + height: calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx); + width: 100%; +} + +.finishProductIn-locno-scroll-list-group { + ::v-deep .u-cell-item-box { + background-color: rgba(250, 252, 255, 0.36) !important; + padding: 0rpx 30rpx; + } + + .content { + font-size: 12px; + background-color: #FFFFFF; + box-sizing: border-box; + border-radius: 10rpx; + margin: 0rpx 0rpx 16rpx; + padding: 20rpx 8rpx; + box-shadow: none; + display: flex; + align-items: center; + + .content-header { + width: 40rpx; + height: 90rpx; + display: flex; + align-items: center; + + .content-header-icon { + background-image: url('~@/static/custom/moveWareHouse/header_icon.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height: 28rpx; + width: 28rpx; + } + + .content-header-title { + margin-left: 11rpx; + font-size: 26rpx; + font-weight: bold; + color: #333333; + } + } + + .content-body { + flex: 1; + background: #F5F9FF; + border-radius: 10rpx; + padding: 0rpx 23rpx; + + .row-list { + height: 60rpx; + display: flex; + flex-direction: row; + padding: 0px; + align-items: center; + } + + .row-list ._label { + display: flex; + flex: 0.8; + color: #909399; + align-items: center; + + ._label-icon-1 { + background-image: url('~@/static/custom/moveWareHouse/label-icon-1.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height: 26rpx; + width: 26rpx; + } + + ._label-icon-2 { + background-image: url('~@/static/custom/moveWareHouse/label-icon-2.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height: 26rpx; + width: 26rpx; + } + + ._label-icon-3 { + background-image: url('~@/static/custom/moveWareHouse/label-icon-3.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height: 26rpx; + width: 26rpx; + } + + ._label-name { + margin-left: 11rpx; + font-size: 26rpx; + font-weight: 500; + color: #666666; + } + } + + .row-list ._content { + flex: 1.5; + text-align: right; + color: #909399; + font-size: 24rpx; + } + + .row-list .s1 { + color: #D35651; + } + } + } +} +</style> diff --git a/pages/wareHouse/moveWareHouse/index.vue b/pages/wareHouse/moveWareHouse/index.vue index e1d9638..14bb537 100644 --- a/pages/wareHouse/moveWareHouse/index.vue +++ b/pages/wareHouse/moveWareHouse/index.vue @@ -1,22 +1,23 @@ <template> <view class="page"> - <view class="movewarehouse-index-bg"/> - <u-navbar title="绉诲簱" :background="background" :border-bottom="false" :title-bold="true" title-color="#000" back-icon-color="#000"/> + <view class="movewarehouse-index-bg" /> + <u-navbar title="绉诲簱" :background="background" :border-bottom="false" :title-bold="true" title-color="#000" + back-icon-color="#000" /> <view class="movewarehouse-index-search"> <!--<u-search v-model="keywords" shape="square" bg-color="rgba(250,252,255,0.36)" :show-action="false" placeholder="璇疯緭鍏ュ簱浣嶅彿" @clear="search" @custom="search" @search="search"> </u-search>--> <view class="movewarehouse-index-search-view"> <view class="movewarehouse-index-search-view-item"> - <text class="item-one">鑷冲簱浣嶅彿</text> - <text class="item-one-content">{{tolocationNo}}</text> - </view> + <text class="item-one">鑷冲簱浣嶅彿</text> + <text class="item-one-content">{{ tolocationNo }}</text> + </view> <view class="movewarehouse-index-search-view-item" @click="seachLocationNo()"> - <text class="item-two">璇烽�夋嫨</text> - <u-icon name="arrow-right" color="#2979ff" size="28"></u-icon> + <text class="item-two">璇烽�夋嫨</text> + <u-icon name="arrow-right" color="#2979ff" size="28"></u-icon> </view> </view> </view> - <view class="wrap"> + <view class="wrap"> <scroll-view class="movewarehouse-index-scroll-list" scroll-y="true"> <u-cell-group class="movewarehouse-index-scroll-list-group" :border="false"> <view class="content" v-for="(item, index) in list" :key="item.id" :index="index"> @@ -31,7 +32,7 @@ </view> <view class="header-item-toolbar" @click="deleteHandle(item)"> <view class="header-item-toolbar-del-icon"> - + </view> <view class="header-item-toolbar-del-text"> 鍒犻櫎 @@ -72,7 +73,7 @@ </view> <view class="_content"> <text class="_content-text">{{ item.availableStockQuantity }}</text> - ({{ item.unit }}) + ({{ item.unit }}) </view> </view> <view class="row-list"> @@ -89,437 +90,459 @@ </u-cell-group> </scroll-view> <scan></scan> - <view class="new-form-footer" v-if="list.length>0"> + <view class="new-form-footer" v-if="list.length > 0"> <u-button class="btn" type="primary" @click="submit">鎻愪氦</u-button> </view> </view> - </view> + </view> </template> <script> - import scan from "@/components/scan/scan.vue"; - import content_bg from '@/static/custom/moveWareHouse/locNoBg.png' - export default { - components: { - scan - }, - data() { - return { - background:{ - backgroundImage: `url(${content_bg})`, - backgroundAttachment: 'fixed', - backgroundSize: '100% auto', - backgroundRepeat: 'no-repeat', - }, - list: [], - tolocationNo: "", - keywords:'' - }; - }, - onLoad() { - // this.loadList("221206000739N"); - // let data = '{"part_no":"88.118.1/A0047954","lot_batch_no":"221112000082N","qty_arrived":0.5,"wdr":"221112000082N"}' - // let data = '221206000739N' - // let sn = '' - // if (data.indexOf('{') >= 0) { - // //澶ф爣绛句簩浣嶇爜 - // sn = JSON.parse(data).lot_batch_no - // } else { - // //灏忔爣绛炬潯鐮� - // sn = data - // } - // console.log(sn); - }, - onShow() { +import scan from "@/components/scan/scan.vue"; +import content_bg from '@/static/custom/moveWareHouse/locNoBg.png' +export default { + components: { + scan + }, + data() { + return { + background: { + backgroundImage: `url(${content_bg})`, + backgroundAttachment: 'fixed', + backgroundSize: '100% auto', + backgroundRepeat: 'no-repeat', + }, + list: [], + tolocationNo: "", + keywords: '' + }; + }, + onLoad() { + // this.loadList("221206000739N"); + // let data = '{"part_no":"88.118.1/A0047954","lot_batch_no":"221112000082N","qty_arrived":0.5,"wdr":"221112000082N"}' + // let data = '221206000739N' + // let sn = '' + // if (data.indexOf('{') >= 0) { + // //澶ф爣绛句簩浣嶇爜 + // sn = JSON.parse(data).lot_batch_no + // } else { + // //灏忔爣绛炬潯鐮� + // sn = data + // } + // console.log(sn); + }, + onShow() { + let that = this + + uni.$off('scan') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒 + uni.$on('scan', function (data) { + console.log('onscan'); + //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲� + console.log('鎵爜缁撴灉锛�', data.code); + + if (data.code != "" && (that.tolocationNo == "")) { + uni.showToast({ + title: '璇烽�夋嫨鑷冲簱浣嶅彿', + icon: 'none' + }) + return + } + + let sn = '' + if (data.code.indexOf('{') >= 0) { + //澶ф爣绛句簩浣嶇爜 + let snNoIndex = data.code.indexOf('sn_no') + if (snNoIndex > -1) { + sn = JSON.parse(data.code).sn_no + } else { + sn = JSON.parse(data.code).lot_batch_no + } + } else { + //灏忔爣绛炬潯鐮� + sn = data.code + } + + //鍒ゆ柇鏁扮粍涓槸鍚﹀瓨鍦� SN 鏄惁宸茬粡瀛樺湪 + let initList = that.list.filter(item => item + .partBatchNo == sn) + if (initList.length > 0) { + uni.showToast({ + title: "SN:" + sn + ",宸插瓨鍦�,璇烽�夋嫨鍙︿竴涓猄N鍙�", + icon: "none" + }); + return + } + + that.loadList(sn); + }) + }, + onNavigationBarButtonTap(e) { + uni.scanCode({ + success: res => { + try { + const result = JSON.parse(res.result) + + } catch (e) { } + } + }); + }, + methods: { + //鑷冲簱浣� + seachLocationNo() { + uni.navigateTo({ + url: '/pages/wareHouse/moveWareHouse/locNoList' + }) + }, + loadList(sanCode) { + uni.showLoading({ + mask: true, + title: "鍔犺浇涓�", + }); let that = this - uni.$off('scan') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒 - uni.$on('scan', function(data) { - console.log('onscan'); - //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲� - console.log('鎵爜缁撴灉锛�', data.code); - - if (data.code != "" && (that.tolocationNo == "")) { - uni.showToast({ - title: '璇烽�夋嫨鑷冲簱浣嶅彿', - icon: 'none' - }) - return - } - - let sn = '' - if (data.code.indexOf('{') >= 0) { - //澶ф爣绛句簩浣嶇爜 - let snNoIndex=data.code.indexOf('sn_no') - if(snNoIndex>-1){ - sn = JSON.parse(data.code).sn_no - }else{ - sn = JSON.parse(data.code).lot_batch_no - } - } else { - //灏忔爣绛炬潯鐮� - sn = data.code + if (sanCode != "") { + let data = { + sn: sanCode } - //鍒ゆ柇鏁扮粍涓槸鍚﹀瓨鍦� SN 鏄惁宸茬粡瀛樺湪 - let initList = that.list.filter(item => item - .partBatchNo == sn) + //鍒ゆ柇鏁扮粍涓槸鍚﹀瓨鍦� 鑷冲簱浣嶅彿 SN + let initList = that.list.filter(item => item.arriveLocationNo == that.tolocationNo).filter(item => item + .partBatchNo == sanCode) if (initList.length > 0) { uni.showToast({ - title: "SN:" + sn + ",宸插瓨鍦�,璇烽�夋嫨鍙︿竴涓猄N鍙�", + title: "搴撲綅鍙�:" + that.tolocationNo + ",SN:" + sanCode + ",宸茬粡鎵繃鐮�", icon: "none" }); return } - that.loadList(sn); - }) - }, - onNavigationBarButtonTap(e) { - uni.scanCode({ - success: res => { - try { - const result = JSON.parse(res.result) + // 鏌ヨ绉诲簱淇℃伅 + that.$u.api.pigxWareHouse.list(data).then(res => { + let reList = [] + reList = res.data - } catch (e) {} + if (reList.length == 0) { + uni.showToast({ + title: "搴撲綅鍙�:" + that.tolocationNo + ",SN:" + sanCode + ",鏈壂鍒扮Щ搴撲俊鎭�", + icon: "none" + }); + } else { + for (let i = 0; i < reList.length; i++) { + if (reList[i].locationNo !== that.tolocationNo) { + let item = { + id: reList[i].id, + partNo: reList[i].partNo, + partName: reList[i].partName, + partBatchNo: reList[i].partBatchNo, + ifsBatchNo: reList[i].ifsBatchNo, + unit: reList[i].unit, + locationNo: reList[i].locationNo, + availableStockQuantity: reList[i].availableStockQuantity, + arriveLocationNo: that.tolocationNo, + moveQty: 0 + } + that.list.push(item) + } + } + } + + uni.hideLoading(); + }) + } + }, + //鑷冲簱浣嶅彿璁剧疆 + setNo(no) { + this.tolocationNo = no + }, + deleteHandle(obj) { + let that = this + uni.showModal({ + title: '鎻愮ず', + content: '姝ゆ搷浣滃皢鍒犻櫎璇ョЩ搴撲俊鎭�, 鏄惁缁х画?', + success: function (res) { + if (res.confirm) { + that.list.map((item, index) => { + if (obj.id == item.id) { + that.list.splice(index, 1) + } + }); + } } }); }, - methods: { - //鑷冲簱浣� - seachLocationNo() { - uni.navigateTo({ - url: '/pages/wareHouse/moveWareHouse/locNoList' - }) - }, - loadList(sanCode) { - uni.showLoading({ - mask: true, - title: "鍔犺浇涓�", - }); - let that = this + submit() { + let that = this - if (sanCode != "") { - let data = { - sn: sanCode - } + that.list.map((item) => { - //鍒ゆ柇鏁扮粍涓槸鍚﹀瓨鍦� 鑷冲簱浣嶅彿 SN - let initList = that.list.filter(item => item.arriveLocationNo == that.tolocationNo).filter(item => item - .partBatchNo == sanCode) - if (initList.length > 0) { - uni.showToast({ - title: "搴撲綅鍙�:" + that.tolocationNo + ",SN:" + sanCode + ",宸茬粡鎵繃鐮�", - icon: "none" - }); - return - } - // 鏌ヨ绉诲簱淇℃伅 - that.$u.api.pigxWareHouse.list(data).then(res => { - let reList = [] - reList = res.data + if (item.moveQty <= 0) { + uni.showToast({ + title: '璇风Щ搴撴暟閲忓繀椤诲ぇ浜�0', + icon: "none" + }); + return + } - if (reList.length == 0) { - uni.showToast({ - title: "搴撲綅鍙�:" + that.tolocationNo + ",SN:" + sanCode + ",鏈壂鍒扮Щ搴撲俊鎭�", - icon: "none" - }); - } else { - for (let i = 0; i < reList.length; i++) { - if (reList[i].locationNo !== that.tolocationNo) { - let item = { - id: reList[i].id, - partNo: reList[i].partNo, - partName: reList[i].partName, - partBatchNo: reList[i].partBatchNo, - ifsBatchNo: reList[i].ifsBatchNo, - unit: reList[i].unit, - locationNo: reList[i].locationNo, - availableStockQuantity: reList[i].availableStockQuantity, - arriveLocationNo: that.tolocationNo, - moveQty: 0 - } - that.list.push(item) - } - } + if (item.moveQty > item.availableStockQuantity) { + uni.showToast({ + title: '绉诲簱鏁伴噺涓嶈兘澶т簬鍙敤搴撳瓨鏁伴噺', + icon: "none" + }); + return + } + }); + + + let subList = [] + that.list.map((item) => { + + let sub = { + stockId: item.id, + arriveLocationNo: item.arriveLocationNo, + moveQty: item.moveQty + } + + subList.push(sub) + + }); + + that.$u.api.pigxWareHouse.addList(subList).then(res => { + + if (res.code == 0) { + uni.showModal({ + title: '鎻愮ず', + content: '鎻愪氦鎴愬姛', + showCancel: false, + success: function () { + that.list = [] + that.tolocationNo = "" } + }) + } else { + uni.showModal({ + title: '鎻愮ず', + content: '鎻愪氦澶辫触', + showCancel: false, + success: function () { - uni.hideLoading(); + } }) } - }, - //鑷冲簱浣嶅彿璁剧疆 - setNo(no) { - this.tolocationNo = no - }, - deleteHandle(obj) { - let that = this - uni.showModal({ - title: '鎻愮ず', - content: '姝ゆ搷浣滃皢鍒犻櫎璇ョЩ搴撲俊鎭�, 鏄惁缁х画?', - success: function(res) { - if (res.confirm) { - that.list.map((item, index) => { - if (obj.id == item.id) { - that.list.splice(index, 1) - } - }); - } - } - }); - }, - submit() { - let that = this - that.list.map((item) => { + }) - if (item.moveQty <= 0) { - uni.showToast({ - title: '璇风Щ搴撴暟閲忓繀椤诲ぇ浜�0', - icon: "none" - }); - return - } - - if (item.moveQty > item.availableStockQuantity) { - uni.showToast({ - title: '绉诲簱鏁伴噺涓嶈兘澶т簬鍙敤搴撳瓨鏁伴噺', - icon: "none" - }); - return - } - }); - - - let subList = [] - that.list.map((item) => { - - let sub = { - stockId: item.id, - arriveLocationNo: item.arriveLocationNo, - moveQty: item.moveQty - } - - subList.push(sub) - - }); - - that.$u.api.pigxWareHouse.addList(subList).then(res => { - - if (res.code == 0) { - uni.showModal({ - title: '鎻愮ず', - content: '鎻愪氦鎴愬姛', - showCancel: false, - success: function() { - that.list = [] - that.tolocationNo = "" - } - }) - } else { - uni.showModal({ - title: '鎻愮ず', - content: '鎻愪氦澶辫触', - showCancel: false, - success: function() { - - } - }) - } - - }) - - - }, - } - }; + }, + } +}; </script> <style lang="scss" scoped> - .movewarehouse-index-bg{ - background-color: #F6F9FF; - background-image: url('~@/static/custom/moveWareHouse/locNoBg.png'); - // background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0)); - padding: 0 20rpx; - background-attachment: fixed; - background-size: 100% auto; - background-repeat: no-repeat; - position: fixed; - top: 0; - bottom: 0; - width: 100%; - z-index: -1; - } - .movewarehouse-index-search{ - padding: 40rpx 30rpx 20rpx 30rpx; - } - .movewarehouse-index-search-view{ - height: 66rpx; - border: 1px solid #ADC8E4; - border-radius: 8rpx; - background: rgba(250,252,255,0.36); - line-height: 66rpx; - padding-left:33rpx; - padding-right:10rpx; - display:flex; - justify-content: space-between; - .movewarehouse-index-search-view-item{ - .item-one{ - font-size: 30rpx; - color: #283E65; - } - .item-one-content{ - margin-left: 10rpx; - color: #909399; - font-size: 26rpx; - } - .item-two{ - font-size: 30rpx; - color: #A6B4CC; - } +.movewarehouse-index-bg { + background-color: #F6F9FF; + background-image: url('~@/static/custom/moveWareHouse/locNoBg.png'); + // background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0)); + padding: 0 20rpx; + background-attachment: fixed; + background-size: 100% auto; + background-repeat: no-repeat; + position: fixed; + top: 0; + bottom: 0; + width: 100%; + z-index: -1; +} + +.movewarehouse-index-search { + padding: 40rpx 30rpx 20rpx 30rpx; +} + +.movewarehouse-index-search-view { + height: 66rpx; + border: 1px solid #ADC8E4; + border-radius: 8rpx; + background: rgba(250, 252, 255, 0.36); + line-height: 66rpx; + padding-left: 33rpx; + padding-right: 10rpx; + display: flex; + justify-content: space-between; + + .movewarehouse-index-search-view-item { + .item-one { + font-size: 30rpx; + color: #283E65; + } + + .item-one-content { + margin-left: 10rpx; + color: #909399; + font-size: 26rpx; + } + + .item-two { + font-size: 30rpx; + color: #A6B4CC; } } - .wrap .movewarehouse-index-scroll-list{ - height:calc(100vh - var(--window-top) - var(--window-bottom) - 378rpx); - width:100%; - } - .movewarehouse-index-scroll-list-group{ - ::v-deep .u-cell-item-box { - background-color:rgba(250,252,255,0.36) !important; - padding:0rpx 30rpx ; - } - .content { - font-size: 12px; - background-color: #FFFFFF; - box-sizing: border-box; - border-radius: 10rpx; - margin: 0rpx 0rpx 16rpx; - height: 432rpx; - padding: 10rpx 20rpx; - box-shadow:0rpx 6rpx 12rpx 2rpx rgba(127, 127, 127, 0.1) !important; - position:relative; - .content-header{ - .header-item{ - height: 50rpx; - display: flex; - align-items:center; - .content-header-icon-one{ - background-image: url('~@/static/custom/moveWareHouse/label-icon-1.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height:28rpx; - width:28rpx; - } - .content-header-icon-two{ - background-image: url('~@/static/custom/moveWareHouse/header_icon.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height:28rpx; - width:28rpx; - } - .content-header-title{ - margin-left: 11rpx; - font-size: 26rpx; - font-weight: bold; - color: #333333; - } - } - .header-item-toolbar{ - position: absolute; - background-image: url('~@/static/custom/moveWareHouse/del-icon.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height:60rpx; - width:140rpx; - right:0; - top:0; - display: flex; - justify-content: flex-end; - padding-top: 10rpx; - padding-right: 18rpx; - .header-item-toolbar-del-icon{ - background-image: url('~@/static/custom/moveWareHouse/icon_dele.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height:25rpx; - width:22rpx; - margin-top: 5rpx; - } - .header-item-toolbar-del-text{ - margin-left:7rpx; - height: 23rpx; - font-size: 24rpx; - color: #FFFFFF; - } - } - } - - .content-body{ - height:300rpx; - background: #F5F9FF; - border-radius: 10rpx; - padding: 25rpx 23rpx; - .row-list { - height: 50rpx; - display: flex; - flex-direction: row; - padding: 0px; - align-items: center; - justify-content: space-between; - } - .row-list ._label { - display: flex; - color: #666666; - font-size:26rpx; - align-items: center; - width: 170rpx; - } - - .row-list ._content { - text-align: right; - color: #909399; - font-size: 24rpx; - ._content-text{ - color:#214ded; - } - } - .row-list ._input { - display: flex; - justify-content: space-between; - align-items: center; - border-bottom: 1px solid #4FA0FF; - height: 56rpx; - .edit_icon{ - background-image: url('~@/static/custom/finishProductIn/icon_edit.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height:26rpx; - width:26rpx; - } - ::v-deep .uni-input-input{ - color:#D35651; - } - } - } - } +} + +.wrap .movewarehouse-index-scroll-list { + height: calc(100vh - var(--window-top) - var(--window-bottom) - 378rpx); + width: 100%; +} + +.movewarehouse-index-scroll-list-group { + ::v-deep .u-cell-item-box { + background-color: rgba(250, 252, 255, 0.36) !important; + padding: 0rpx 30rpx; } - .new-form-footer{ - display: flex; - margin-top: 10rpx; - margin-bottom: 10rpx; - margin-left: 20rpx; - margin-right: 20rpx; - padding-bottom: 14rpx; - .btn { - flex: 1; - margin: 10rpx; - background: #214DED; - box-shadow: 0rpx 6rpx 8rpx 0rpx rgba(4,49,212,0.3); - font-weight: bold; - color: #FEFEFE; - font-family: PingFang SC; + .content { + font-size: 12px; + background-color: #FFFFFF; + box-sizing: border-box; + border-radius: 10rpx; + margin: 0rpx 0rpx 16rpx; + height: 432rpx; + padding: 10rpx 20rpx; + box-shadow: 0rpx 6rpx 12rpx 2rpx rgba(127, 127, 127, 0.1) !important; + position: relative; + + .content-header { + .header-item { + height: 50rpx; + display: flex; + align-items: center; + + .content-header-icon-one { + background-image: url('~@/static/custom/moveWareHouse/label-icon-1.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height: 28rpx; + width: 28rpx; + } + + .content-header-icon-two { + background-image: url('~@/static/custom/moveWareHouse/header_icon.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height: 28rpx; + width: 28rpx; + } + + .content-header-title { + margin-left: 11rpx; + font-size: 26rpx; + font-weight: bold; + color: #333333; + } + } + + .header-item-toolbar { + position: absolute; + background-image: url('~@/static/custom/moveWareHouse/del-icon.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height: 60rpx; + width: 140rpx; + right: 0; + top: 0; + display: flex; + justify-content: flex-end; + padding-top: 10rpx; + padding-right: 18rpx; + + .header-item-toolbar-del-icon { + background-image: url('~@/static/custom/moveWareHouse/icon_dele.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height: 25rpx; + width: 22rpx; + margin-top: 5rpx; + } + + .header-item-toolbar-del-text { + margin-left: 7rpx; + height: 23rpx; + font-size: 24rpx; + color: #FFFFFF; + } + } + } + + .content-body { + height: 300rpx; + background: #F5F9FF; + border-radius: 10rpx; + padding: 25rpx 23rpx; + + .row-list { + height: 50rpx; + display: flex; + flex-direction: row; + padding: 0px; + align-items: center; + justify-content: space-between; + } + + .row-list ._label { + display: flex; + color: #666666; + font-size: 26rpx; + align-items: center; + width: 170rpx; + } + + .row-list ._content { + text-align: right; + color: #909399; + font-size: 24rpx; + + ._content-text { + color: #214ded; + } + } + + .row-list ._input { + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #4FA0FF; + height: 56rpx; + + .edit_icon { + background-image: url('~@/static/custom/finishProductIn/icon_edit.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height: 26rpx; + width: 26rpx; + } + + ::v-deep .uni-input-input { + color: #D35651; + } + } } } +} + +.new-form-footer { + display: flex; + margin-top: 10rpx; + margin-bottom: 10rpx; + margin-left: 20rpx; + margin-right: 20rpx; + padding-bottom: 14rpx; + + .btn { + flex: 1; + margin: 10rpx; + background: #214DED; + box-shadow: 0rpx 6rpx 8rpx 0rpx rgba(4, 49, 212, 0.3); + font-weight: bold; + color: #FEFEFE; + font-family: PingFang SC; + } +} </style> diff --git a/static/custom/moda-lbg.png b/static/custom/moda-lbg.png new file mode 100644 index 0000000..309317c --- /dev/null +++ b/static/custom/moda-lbg.png Binary files differ -- Gitblit v1.9.3