zhou zhou
2026-03-19 eea08904d36b4ede047f7f08709da5e9046fbde5
pages/AGV/StartInTask.vue
@@ -3,33 +3,46 @@
      <form>
         <view class="cu-form-group margin-top">
            <view class="title">接驳站点</view>
            <input placeholder="请扫描接驳站点条码" v-model="agvStationInput" @input="checkAgvStation"></input>
            <!-- <text class='cuIcon-search text-blue' @click="search"></text> -->
            <input
               placeholder="请扫描接驳站点条码"
               v-model="agvStationInput"
               @input="checkAgvStation"
            />
         </view>
         <view class="cu-form-group" v-if="agvStationName">
         <view
            class="cu-form-group"
            v-if="agvStationName"
         >
            <view class="title">站点编码</view>
            <text >{{agvStationName}}</text>            
         </view>
         <view class="cu-form-group">
            <view class="title">容器号</view>
            <input placeholder="请扫描容器编码" v-model="barcode" @input="search"></input>
            <!-- <text class='cuIcon-search text-blue' @click="search"></text> -->
            <input
               placeholder="请扫描容器编码"
               v-model="barcode"
               @input="search"
            />
         </view>   
<!--          <view class="flex solid-bottom padding-sm justify-between">
            <view class="text-blue margin-left">容器码:{{container}}</view>
         </view> -->
         <view class="cu-form-group">
            <view class="title">目标库区</view>
            <view style="width: 75%;">
               <uni-data-select style="min-width: 50%; max-width: 100%;" v-model="whAreaId" :localdata="range"
                  placement="bottom" @change="selChange"></uni-data-select>
            <view style="width: 75%">
               <uni-data-select
                  style="min-width: 50%; max-width: 100%"
                  v-model="whAreaId"
                  :localdata="range"
                  placement="bottom"
                  @change="selChange"
               ></uni-data-select>
            </view>
         </view>
      </form>
      <view class="cu-list det menu sm-border  padding">
         <block v-for="(item, index) in list" :key="index">
         <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">
@@ -61,7 +74,6 @@
               </view>
            </view>
            <view class="cu-item">
               <view class="content">
                  <text class="text-black">收货数量:</text>
@@ -70,31 +82,32 @@
                  <text class="text-grey ">{{item.anfme}}</text>
               </view>
            </view>
         </block>
      </view>
      <view class="cu-bar btn-group foot">
         <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" :disabled="repeatClick" @click="confirm">入库</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"
            :disabled="repeatClick"
            @click="confirm"
         >
            入库
         </button>
      </view>
   </view>
</template>
<script>
   import {
      request
   } from '../../common/request.js'
   import {
      mapState,
      mapMutations,
      mapActions,
      mapGetters
   } from 'vuex';
import { request } from '../../common/request.js'
import { mapState, mapMutations, mapActions, mapGetters } from 'vuex'
   export default {
      data() {
         return {
@@ -113,15 +126,15 @@
         }
      },
      computed: {
         ...mapState('user', ['dynamicFields']),
      ...mapState('user', ['dynamicFields'])
      },
      mounted() {
         // this.getRece()
         // this.whAreaId = uni.getStorageSync('whAreaId')
         
         // 获取按钮权限
         this.buttonPermissions = uni.getStorageSync('buttonPermissions') || [];
         console.log('当前页面按钮权限:', this.buttonPermissions);
      this.buttonPermissions = uni.getStorageSync('buttonPermissions') || []
      console.log('当前页面按钮权限:', this.buttonPermissions)
      },
      methods: {
         async checkAgvStation() {
@@ -138,7 +151,7 @@
               transferStationNo: this.agvStationInput
            })
            if (code === 200) {
               this.agvStationName = data.stationName
            this.agvStationName = data.stationId
            } else {
               uni.showToast({
                  title: msg,
@@ -152,7 +165,7 @@
            }
         },
         hasButtonPermission(route) {
            return this.buttonPermissions.includes(route);
         return this.buttonPermissions.includes(route)
         },
         selChange(val) {
            uni.setStorageSync('whAreaId', val)
@@ -189,7 +202,7 @@
         },
         remove(index) {
            this.list.splice(index, 1);
         this.list.splice(index, 1)
         },
         clear() {
            this.list = []
@@ -216,36 +229,31 @@
         async confirm() {            
            if(this.agvStationName === '' || this.agvStationName ===null){
               uni.showToast({
                  title: "接驳站点不能为空",
                  icon: "none",
               title: '接驳站点不能为空',
               icon: 'none'
               })
               return ;
            return
            }
            if(this.barcode === '' || this.barcode ===null){
               uni.showToast({
                  title: "容器号不能为空",
                  icon: "none",
               title: '容器号不能为空',
               icon: 'none'
               })
               return ;
            return
            }
            if(this.whAreaId === '' || this.whAreaId ===null){
               uni.showToast({
                  title: "目标库区不能为空",
                  icon: "none",
               title: '目标库区不能为空',
               icon: 'none'
               })
               return ;
            return
            } 
            this.repeatClick = true
            const {
               code,
               data,
               msg
            } = await request('/AGV/task/start',{
                  staNo: this.agvStationName,
         const { code, data, msg } = await request('/AGV/task/start', {
            staNo: this.agvStationInput,
                  area: this.whAreaId,
                  barcode:this.barcode
               }
            )
         })
            if (code === 200) {
               uni.showToast({
                  title: '启动成功'
@@ -254,25 +262,25 @@
            } else {
               uni.showToast({
                  title: msg,
                  icon: "none",
               icon: 'none'
               })
            }
            this.repeatClick = false
         },
         
         async getRece() {            
            const {
               code,
               data,
               msg
            } = await request('/areas/user/all', {}, 'get')
         const { code, data, msg } = await request(
            '/areas/user/all',
            {},
            'get'
         )
            if (code === 200) {
               this.range = data.map(item => ({
            this.range = data.map((item) => ({
                  value: item.id,
                  text: item.warehouseId$ + "-- " + item.name
               }));
               text: item.warehouseId$ + '-- ' + item.name
            }))
            }
         },
      }
      }
   }
</script>
@@ -293,7 +301,6 @@
   .text-blue {
      color: #0081ff !important;
   }
   .item {