From d2e176fbee4edcca177301374baee508c67b9b45 Mon Sep 17 00:00:00 2001
From: DESKTOP-LMJ82IJ\Eno <creaycat@gmail.com>
Date: 星期六, 19 四月 2025 15:04:50 +0800
Subject: [PATCH] 新增入库上架功能
---
pages/phyz/inStock/inStock.vue | 287 +++++++++++++++++++++++++++++++++++++++++++++++
pages/home/index.vue | 8 +
pages.json | 7 +
common/request.js | 3
4 files changed, 303 insertions(+), 2 deletions(-)
diff --git a/common/request.js b/common/request.js
index 7e0a192..2b08766 100644
--- a/common/request.js
+++ b/common/request.js
@@ -15,7 +15,8 @@
return new Promise((resolve, reject) => {
const token = uni.getStorageSync('token');
// const URL = 'http://47.76.147.249:8080/rsf-server/pda' + url;
- const URL = 'http://192.168.4.24:8080/rsf-server/pda' + url;
+ // const URL = 'http://192.168.4.24:8080/rsf-server/pda' + url;
+ const URL = 'http://127.0.0.1:8080/rsf-server/pda' + url;
uni.request({
url: URL,
data: postData,
diff --git a/pages.json b/pages.json
index 1b9e8c2..d492730 100644
--- a/pages.json
+++ b/pages.json
@@ -524,6 +524,13 @@
"style": {
"navigationBarTitleText": "鍑哄簱纭"
}
+ },
+ {
+ "path" : "pages/phyz/inStock/inStock",
+ "style" :
+ {
+ "navigationBarTitleText" : "鍏ュ簱涓婃灦"
+ }
}
],
diff --git a/pages/home/index.vue b/pages/home/index.vue
index 11fef82..7b28a66 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -91,8 +91,14 @@
<text>涓婃灦</text>
</navigator>
</view>
+ <view class="cu-item">
+ <navigator hover-class='none' url="/pages/phyz/inStock/inStock" navigateTo>
+ <view class="cuIcon-punch text-blue">
+ </view>
+ <text>鍏ュ簱涓婃灦</text>
+ </navigator>
+ </view>
</view>
-
<view class="padding flex flex-direction">
<view class="cu-btn bg-red margin-tb-sm lg round" @click="equit">閫�鍑虹櫥褰�</view>
diff --git a/pages/phyz/inStock/inStock.vue b/pages/phyz/inStock/inStock.vue
new file mode 100644
index 0000000..ce7b76b
--- /dev/null
+++ b/pages/phyz/inStock/inStock.vue
@@ -0,0 +1,287 @@
+<template>
+ <view class="has-foot">
+ <form>
+ <view class="cu-form-group margin-top">
+ <view class="title">瀹瑰櫒缂栧彿</view>
+ <input placeholder="璇锋壂瀹瑰櫒缂栧彿" v-model="barcode"></input>
+ <text class='cuIcon-search text-blue' @click="search"></text>
+ </view>
+ <view class="cu-form-group margin-bottom">
+ <view class="title">鐩爣绔欑偣</view>
+ <uni-data-select v-model="value" :localdata="range" placement="bottom"
+ @change="selChange"></uni-data-select>
+ </view>
+ <view class="cu-form-group ">
+ <view class="title">鐩爣搴撲綅</view>
+ <input placeholder="璇烽�夋嫨鐩爣搴撲綅" v-model="curCode"></input>
+ <text class='cu-btn bg-red tj' @click="open">鎺ㄨ崘</text>
+ </view>
+ </form>
+ <view class="cu-list det menu sm-border padding">
+ <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="action" >
+ <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">ASN:</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.batch}}</text>
+ </view>
+ </view>
+ <view class="cu-item">
+ <view class="content">
+ <text class="text-black">鏀惰揣鏁伴噺:</text>
+ </view>
+ <view class="action">
+ <text class="text-grey ">{{item.anfme}}</text>
+ </view>
+ </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">涓婃灦</button>
+ </view>
+ <uni-popup ref="popup" class="cu-popup">
+ <view class="popup-content">
+ <view class="head">
+ <text>鎺ㄨ崘</text>
+ <text class='cuIcon-close text-red close' @click="close"></text>
+ </view>
+ <div class="body">
+ <view class="cu-list grid col-3 no-border">
+ <view class="item" v-for="el in locs">
+ <view class="cu-btn round sm" :class="[el===curCode?'bg-blue':'line-blue']"
+ @click="itemChange(el)">{{el.text}}</view>
+ </view>
+ </view>
+ </div>
+<!-- <view class="cu-bar btn-group ">
+ <button class="cu-btn bg-blue shadow-blur" @click="popupSubmit">鎻愪氦</button>
+ </view> -->
+ </view>
+ </uni-popup>
+ </view>
+</template>
+
+<script>
+ import {
+ request
+ } from '../../../common/request.js'
+ import {
+ mapState,
+ mapMutations,
+ mapActions,
+ mapGetters
+ } from 'vuex';
+ export default {
+ data() {
+ return {
+ barcode: '',
+ areaName: '',
+ locCode: '',
+ container: '',
+ list: [],
+ range: [],
+ locs: [],
+ curCode: '',
+ selectSite: '',
+ }
+ },
+ computed: {
+ ...mapState('user', ['dynamicFields']),
+ },
+ mounted() {
+ this.getRece();
+ this.getLocs();
+ // this.whAreaId = uni.getStorageSync('whAreaId')
+
+ },
+ methods: {
+ async search() {
+ const {
+ code,
+ data,
+ msg
+ } = await request(`/pakin/info/${this.barcode}`)
+ if (code === 200) {
+ this.list = data;
+ // this.range = data.locArea.locs.map(el => el.code)
+ // this.curCode = this.range[0]
+ // this.areaName = data.locArea.areaName
+ } else {
+ uni.showToast({
+ title: msg,
+ icon: "none",
+ })
+ }
+ },
+
+ remove(index) {
+ this.list.splice(index, 1);
+ },
+ clear() {
+ this.list = []
+ this.range = []
+ this.locs = []
+ this.curCode = ''
+ this.areaName = ''
+ this.barcode = ''
+ },
+
+ open() {
+ this.$refs.popup.open()
+ },
+
+ close() {
+ this.$refs.popup.close()
+ },
+
+ popupSubmit() {
+ this.$refs.popup.close()
+ },
+ itemChange(el) {
+ this.$refs.popup.close()
+ this.curCode = el.text
+ },
+
+ selChange(e) {
+ this.selectSite = e
+ },
+
+ async confirm() {
+ const {
+ code,
+ data,
+ msg
+ } = await request(`/pakin/task/`
+ , {
+ site: this.selectSite,
+ locCode: this.curCode,
+ barcode: this.barcode
+ }
+ )
+ if (code === 200) {
+ uni.showToast({
+ title: '涓婃灦鎴愬姛'
+ })
+ this.clear()
+ } else {
+ uni.showToast({
+ title: msg,
+ icon: "none",
+ })
+ }
+ },
+ async getRece() {
+ const {
+ code,
+ data,
+ msg
+ } = await request('/inStock/sites', {}, 'get')
+ if (code === 200) {
+ this.range = data.map(item => ({
+ value: item.id,
+ text: item.name + " -- " + item.site
+ }));
+ }
+ },
+ async getLocs() {
+ const {
+ code,
+ data,
+ msg
+ } = await request('/locs/list', {}, 'get')
+ if (code === 200) {
+
+ this.locs = data.map(item => ({
+ value: item.id,
+ text: item.code
+ }));
+ }
+ },
+
+ }
+ }
+</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;
+ }
+
+ .text-blue {
+ color: #0081ff !important;
+
+ }
+
+ .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;
+ }
+
+ .tj {
+ height: auto;
+ padding: 6px 8px;
+ display: inline-block;
+ border-radius: 6px;
+ }
+
+ .item {
+ display: flex;
+ justify-content: center;
+ }
+
+ .item .cu-btn {
+ font-size: 26upx;
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.1