From 8d3ebc610d048289f8ca4d8bc86ac11208a60fef Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 29 一月 2026 19:47:27 +0800
Subject: [PATCH] #
---
pages/inspect/check.vue | 466 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 251 insertions(+), 215 deletions(-)
diff --git a/pages/inspect/check.vue b/pages/inspect/check.vue
index a8ebbce..c64ce93 100644
--- a/pages/inspect/check.vue
+++ b/pages/inspect/check.vue
@@ -2,258 +2,294 @@
<view class="has-foot">
<form>
<view class="cu-form-group margin-top">
- <view class="title">瀹瑰櫒鍙�</view>
- <input placeholder="璇锋壂鎻忓鍣ㄧ紪鐮�" v-model="isptCode" focus></input>
- <text class='cuIcon-search text-blue' @click="search"></text>
+ <view class="title">鎵樼洏鐮�</view>
+ <input
+ placeholder="璇锋壂鎻忔墭鐩樼爜"
+ v-model="container"
+ focus
+ />
</view>
- <view class="cu-form-group ">
- <view class="title">鐗╂枡鍙�</view>
- <input placeholder="璇锋壂鎻忕墿鏂欑紪鐮�" v-model="barcode"></input>
- <text class='cuIcon-search text-blue' @click="scrollTo"></text>
+ <view class="cu-form-group">
+ <view class="title">鐗╂枡鏍囩</view>
+ <input
+ placeholder="璇锋壂鎻忕墿鏂欐爣绛�"
+ v-model="barcode"
+ />
+ <text
+ class="cuIcon-search text-blue"
+ @click="search"
+ ></text>
</view>
</form>
+ <view class="flex solid-bottom padding-sm justify-between">
+ <view class="text-blue">鐗╂枡绉嶇被:{{ list.length }}</view>
+ <view class="text-red">閿佸畾鏁伴噺:{{ allCount }}</view>
+ </view>
+ <view
+ class="flex solid-bottom padding-sm justify-between"
+ v-if="list.length"
+ >
+ <view class="text-blue">搴撲綅鍙�:{{ list[0].locCode }}</view>
+ </view>
- <view class="padding-lr margin-top-sm">
- <block v-for="(item, index) in list" :key="index">
- <view class="cu-list det menu sm-border margin-bottom-sm " :class="[item.matnrCode===barcode&&'act']"
- :ref="item.matnrCode+'ref'">
-
- <view class="cu-bar bg-white solid-bottom ">
- <view class="action">
- <view class="index">
- {{index+1}}
- </view>
- <view class="text-blue">
- {{`${item.maktx}`}}
- </view>
- </view>
- <view class="action">
- <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>
+ <view
+ class="cu-list det menu sm-border padding"
+ style="padding-bottom: 60px"
+ >
+ <block
+ v-for="(item, index) in list"
+ :key="index"
+ >
+ <view class="cu-bar bg-white solid-bottom margin-top-sm">
+ <view class="action">
+ <!-- <view class="index">
+ {{index+1}}
+ </view> -->
+ <view class="text-blue">
+ {{ `${item.maktx}` }}
</view>
</view>
- <view class="cu-item">
- <view class="content">
- <text class="text-black">ASN:</text>
- </view>
- <view class="action">
- <text class="text-grey ">{{item.asnCode}}</text>
+ <!-- <view class="action">
+ <view class="cu-tag radius bg-red">涓嶅悎鏍�</view>
+ </view> -->
+
+ <!-- <view class="action" v-if="!isconfirm">
+ <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>
+ </view> -->
+ </view>
+
+ <view class="cu-item">
+ <view class="content">
+ <text class="text-black">鐗╂枡缂栫爜:</text>
+ </view>
+ <view class="action">
+ <text class="text-grey">{{ item.matnrCode }}</text>
+ </view>
+ </view>
+ <view class="cu-item">
+ <view class="content">
+ <text class="text-black">璁″垝璺熻釜鍙�:</text>
+ </view>
+ <view class="action">
+ <text class="text-grey">{{ item.platWorkCode }}</text>
+ </view>
+ </view>
+
+ <view class="cu-item">
+ <view class="content">
+ <text class="text-black">鍗曞彿:</text>
+ </view>
+ <view class="action">
+ <text class="text-grey">{{ item.asnCode }}</text>
+ </view>
+ </view>
+
+ <view class="cu-item">
+ <view class="content">
+ <text class="text-black">渚涘簲鍟嗘壒娆�:</text>
+ </view>
+ <view class="action">
+ <text class="text-grey">{{ item.splrBatch }}</text>
+ </view>
+ </view>
+
+ <view class="cu-item">
+ <view class="content">
+ <text class="text-black">搴撳瓨鍗曚綅:</text>
+ </view>
+ <view class="action">
+ <text class="text-grey">{{ item.stockUnit }}</text>
+ </view>
+ </view>
+
+ <!-- <view class="cu-item">
+ <view class="content">
+ <view class="cu-form-group padding-lr-0">
+ <view class="title text-blue">鏁伴噺:</view>
+ <input
+ class="text-right"
+ type="number"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ v-model="item.receiptQty"
+ focus
+ />
</view>
</view>
-
- <view class="cu-item">
- <view class="content">
- <text class="text-black">渚涘簲鍟�:</text>
- </view>
- <view class="action">
- <text class="text-grey ">{{item.splrName}}</text>
- </view>
- </view>
-
- <view class="cu-item">
- <view class="content">
- <text class="text-black">渚涘簲鍟嗘壒娆�:</text>
- </view>
- <view class="action">
- <text class="text-grey ">{{item.splrBatch}}</text>
- </view>
- </view>
-
-
- <view class="cu-item">
- <view class="content">
- <text class="text-black">鏀惰揣鏁伴噺: <text class="text-grey ">{{item.rcptQty}}</text></text>
- </view>
-
- <view class="content">
- <text class="text-black">閫佽揣鏁伴噺: <text class="text-grey ">{{item.dlyQty}}</text></text>
- </view>
- </view>
-
- <view class="cu-item">
- <view class="content">
- <view class="cu-form-group padding-lr-0">
- <view class="title text-blue">鍚堟牸鏁伴噺:</view>
- <input type="number" placeholder="璇疯緭鍏ュ悎鏍兼暟閲�" v-model="item.safeQty"></input>
- </view>
- </view>
- </view>
-
- <view class="cu-item">
- <view class="content">
- <view class="cu-form-group padding-lr-0">
- <view class="title text-blue">涓嶅悎鏍兼暟閲�:</view>
- <input type="number" placeholder="璇疯緭鍏ヤ笉鍚堟牸鏁伴噺" v-model="item.disQty"></input>
- </view>
- </view>
- </view>
-
- <view class="cu-item">
- <view class="content">
- <view class="cu-form-group padding-lr-0">
- <view class="title text-blue">璐ㄦ缁撹:</view>
-
- <uni-data-select placement='top' v-model="item.isptResult" :localdata="range"
- placeholder="璇疯緭鍏ヨ川妫�缁撹"></uni-data-select>
- </view>
- </view>
- </view>
-
- <view class="cu-form-group align-start">
- <view class="title text-blue">澶囨敞</view>
- <textarea v-model="item.memo" placeholder="璇疯緭鍏ュ娉�"></textarea>
- </view>
-
- <!-- <view class="cu-form-group">
- <uni-file-picker limit="9" title="鐓х墖"></uni-file-picker>
</view> -->
-
+ <view class="margin-top-sm flex">
+ <uni-data-checkbox
+ mode="tag"
+ v-model="item.status"
+ :localdata="types"
+ ></uni-data-checkbox>
</view>
</block>
</view>
+
<view class="cu-bar btn-group foot">
- <button class="cu-btn text-blue line-blue shadow" @click="clear">娓呯┖</button>
- <button class="cu-btn bg-blue shadow-blur" @click="confirm">瑙i攣</button>
+ <button
+ v-if="hasButtonPermission('reset')"
+ class="cu-btn text-blue line-blue shadow"
+ @click="clear"
+ >
+ 娓呯┖
+ </button>
+ <button
+ v-if="hasButtonPermission('submit')"
+ class="cu-btn bg-blue shadow-blur"
+ @click="confirm"
+ >
+ 瑙i攣
+ </button>
</view>
+ <ConfirmModal
+ :visible="showModal"
+ @update:visible="showModal = $event"
+ icon="check"
+ title="瑙i攣纭"
+ message="鏄惁纭畾瑙i攣锛�"
+ cancelText="涓嶉渶瑕�"
+ confirmText="纭畾"
+ :isconfirm="isconfirm"
+ @cancel="handleNo"
+ @confirm="handleYes"
+ ></ConfirmModal>
</view>
</template>
<script>
- import {
- request
- } from '../../common/request.js'
- import {
- mapState,
- mapMutations,
- mapActions,
- mapGetters
- } from 'vuex';
- export default {
- data() {
- return {
- barcode: '',
- isptCode: '',
- list: [],
- range: [{
- value: '1',
- text: '鍚堟牸'
- }, {
- value: '2',
- text: '涓嶅悎鏍�'
- }, {
- value: '3',
- text: '寰呭畾'
- }, {
- value: '4',
- text: '閮ㄥ垎鍚堟牸'
- }],
- }
- },
- computed: {
- ...mapState('user', ['dynamicFields']),
- },
- mounted() {},
- methods: {
- async search() {
- const {
- code,
- data,
- msg
- } = await request('/inspect/query', {
- isptCode: this.isptCode,
- })
- if (code === 200) {
- this.list = data
- } else {
- uni.showToast({
- title: msg,
- icon: "none",
- position: 'top'
- })
+import { request } from '../../common/request.js'
+import ConfirmModal from '../../components/confirm-modal/confirm-modal.vue'
+
+export default {
+ components: {
+ ConfirmModal
+ },
+ data() {
+ return {
+ barcode: '',
+ container: '',
+ list: [],
+ range: [],
+ isconfirm: false,
+ types: [
+ {
+ text: '姝e父',
+ value: 1
+ },
+ {
+ text: '閿佸畾',
+ value: 0
}
-
-
- },
- remove(index) {
- this.list.splice(index, 1);
- },
- clear() {
- this.list = []
- this.barcode = ''
- },
- scrollTo() {
- const ref = this.$refs[`${this.barcode}ref`][0];
- uni.pageScrollTo({
- scrollTop: ref.$el.offsetTop,
- duration: 300
- })
- },
- async confirm() {
- const {
- code,
- data,
- msg
- } = await request('/inspect/check/update', this.list)
+ ],
+ showModal: false,
+ buttonPermissions: [] // 鎸夐挳鏉冮檺鍒楄〃
+ }
+ },
+ computed: {
+ allCount() {
+ return this.list.reduce(
+ (acc, row) => (row.status == 0 ? acc + 1 : acc),
+ 0
+ )
+ }
+ },
+ mounted() {
+ this.buttonPermissions = uni.getStorageSync('buttonPermissions') || []
+ },
+ methods: {
+ // 妫�鏌ユ寜閽潈闄�
+ hasButtonPermission(route) {
+ return this.buttonPermissions.includes(route)
+ },
+ handleNo() {
+ this.showModal = false
+ },
+ async handleYes() {
+ this.isconfirm = true
+ try {
+ const { code, data, msg } = await request(
+ '/other/inspectConfirm2',
+ {
+ matnrList: this.list
+ },
+ 'post'
+ )
if (code === 200) {
uni.showToast({
- title: '璐ㄦ鎴愬姛'
+ title: '鎻愪氦鎴愬姛'
})
this.list = []
this.barcode = ''
+ this.container = ''
} else {
uni.showToast({
title: msg,
- icon: "none",
+ icon: 'none',
+ position: 'top'
})
}
-
-
-
- },
-
+ } finally {
+ this.showModal = false
+ this.isconfirm = false
+ }
+ },
+ // 鍏抽棴AGV纭寮圭獥
+ closeModal() {
+ this.showModal = false
+ },
+ async search() {
+ const { code, data, msg } = await request(
+ '/other/inspectList',
+ {
+ containerNo: this.container,
+ matnrCode: this.barcode
+ },
+ 'post'
+ )
+ if (code === 200) {
+ this.list = data
+ } else {
+ uni.showToast({
+ title: msg,
+ icon: 'none',
+ position: 'top'
+ })
+ }
+ },
+ async confirm() {
+ this.showModal = true
}
}
+}
</script>
<style>
- .index {
- border: 1px solid #e54d42;
- color: #e54d42;
- border-radius: 50%;
- display: block;
- width: 50rpx;
- height: 50rpx;
- line-height: 48rpx;
- text-align: center;
- margin-right: 20rpx;
- font-size: 30rpx;
- }
+.index {
+ border: 1px solid #e54d42;
+ color: #e54d42;
+ border-radius: 50%;
+ display: block;
+ width: 50rpx;
+ height: 50rpx;
+ line-height: 48rpx;
+ text-align: center;
+ margin-right: 20rpx;
+ font-size: 30rpx;
+}
- .text-blue {
- color: #0081ff !important;
+.text-blue {
+ color: #0081ff !important;
+}
- }
-
- .act {
- border: 1px solid #e54d42;
- }
-
- .item {
- position: relative;
- display: flex;
- min-height: 80upx;
- align-items: center;
- }
-
- .uni-file-picker {
- width: 100%;
- margin-bottom: 10px;
- }
-
- .uni-select__selector {
- z-index: 999;
- }
-</style>
\ No newline at end of file
+.item {
+ position: relative;
+ display: flex;
+ min-height: 80upx;
+ align-items: center;
+}
+</style>
--
Gitblit v1.9.1