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