Files
hht-ynhl-one-uni/pages/SecondPhase/slitting/EmptyAxisReturn.vue
2026-01-21 17:04:22 +08:00

179 lines
5.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="zd_container">
<!-- <nav-bar title="空轴退回"></nav-bar> -->
<nav-bar :title="title"></nav-bar>
<view class="zd_content">
<view class="zd_wrapper">
<view class="filter_item">
<view class="filter_label">{{$t('filter.area')}}</view>
<view class="filter_input_wraper">
<uni-data-select v-model="index2" :placeholder="$t('uni.dataSelect.placeholder')" :localdata="options2" @change="selectChange2"></uni-data-select>
</view>
</view>
<view class="filter_item">
<view class="filter_label">{{$t('filter.point')}}</view>
<view class="filter_input_wraper">
<uni-data-select v-model="index" :placeholder="$t('uni.dataSelect.placeholder')" :searchInput="true" :localdata="newoptions" @change="selectChange" @handleChange="handleChange" @showSelector="showSelector"></uni-data-select>
</view>
</view>
<view class="filter_item">
<view class="filter_label_wraper">
<span class="filter_label">{{$t('filter.staginglocationA')}}</span>
</view>
<view class="filter_input_wraper">
<uni-data-select v-model="size1" :placeholder="$t('uni.dataSelect.placeholder')" :localdata="options1" @change="sizeChange1"></uni-data-select>
</view>
</view>
<view class="filter_item">
<view class="filter_label_wraper">
<span class="filter_label">{{$t('filter.staginglocationB')}}</span>
</view>
<view class="filter_input_wraper">
<uni-data-select v-model="size2" :placeholder="$t('uni.dataSelect.placeholder')" :localdata="options1" @change="sizeChange2"></uni-data-select>
</view>
</view>
<!-- <view class="msg_item">暂存A位{{obj.a_point}}</view>
<view class="msg_item">暂存B位{{obj.b_point}}</view>
<view class="msg_item">状态{{obj.status}}</view> -->
</view>
</view>
<view class="zd-row submitbar">
<button class="zd-col-6 btn-submit btn-default letter-30" @tap="clearUp">{{$t('button.clear')}}</button>
<button class="zd-col-15 btn-submit btn-success letter-30" :class="{'btn-info': !index || (!size1 && !size2)}" :disabled="disabled" @tap="toSure">{{$t('button.returnaxis')}}</button>
</view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
import {queryProductArea} from '@/utils/getData2.js'
import {getCutCacheAgvPoints, queryCacheDownSubVolumeInfos, returnShaft} from '@/utils/getData3.js'
export default {
components: {
NavBar
},
data() {
return {
title: '',
options: [],
index: '',
newoptions: [],
options2: [],
index2: '',
obj: {a_point: '-', b_point: '-', status: '-'},
options1: [{text: this.$t('select.3c4d'), value: '3-4'}, {text: this.$t('select.3c5d'), value: '3-5'}, {text: this.$t('select.6c4d'), value: '6-4'}, {text: this.$t('select.6c5d'), value: '6-5'}],
size1: '',
size2: '',
disabled: false
};
},
onLoad (options) {
this.title = options.title
},
created () {
this._queryProductArea()
},
methods: {
selectChange2(e) {
this.index2 = e
if (e) {
this._getCutCacheAgvPoints(e)
} else {
this.index = ''
}
},
/** 生产区域下拉框查询 */
async _queryProductArea () {
let res = await queryProductArea()
this.options2 = [...res.data]
},
selectChange (e) {
this.index = e
if (e) {
this._queryCacheDownSubVolumeInfos()
} else {
this.obj = {a_point: '-', b_point: '-', status: '-'}
}
},
/** 模糊匹配 */
selectMatchItem (lists, keyWord) {
let resArr = []
lists.filter((item) => {
if (item.text.indexOf(keyWord) > -1) {
resArr.push(item)
}
})
return resArr
},
handleChange (e) {
if (e){
this.index = ''
this.newoptions = this.selectMatchItem(this.options, e)
} else {
this.newoptions = this.options
}
},
showSelector () {
this.newoptions = this.options
},
async _getCutCacheAgvPoints (e) {
let res = await getCutCacheAgvPoints(e)
this.options = [...res]
this.newoptions = [...res]
},
sizeChange1(e) {
this.size1 = e
},
sizeChange2(e) {
this.size2 = e
},
toSure () {
this.disabled = true
if (!this.index || (!this.size1 && !this.size2)) {
this.disabled = false
return
}
uni.showModal({
content: this.$t('toast.confirm-create-AGV-task-to-inner-room'),
confirmColor: '#ff6a00',
success: (res) => {
if (res.confirm) {
this._returnShaft()
} else if (res.cancel) {
this.disabled = false
}
}
})
},
async _returnShaft () {
try {
let res = await returnShaft(this.index, this.size1, this.size2)
uni.showToast({
title: res.message,
icon: 'none'
})
this.clearUp()
this.disabled = false
} catch (e) {
this.disabled = false
}
},
clearUp () {
this.index = ''
this.index2 = ''
this.size1 = ''
this.size2 = ''
this.options = []
this.obj = {a_point: '-', b_point: '-', status: '-'}
},
async _queryCacheDownSubVolumeInfos () {
try {
let res = await queryCacheDownSubVolumeInfos(this.index)
this.obj = res.data
} catch (e) {
console.log(e)
}
}
}
}
</script>