Files
hht-ynhl-one-uni/pages/SecondPhase/slitting/CacheCut.vue
2026-01-30 10:17:58 +08:00

159 lines
4.4 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')" :emptyTips="$t('uni.dataSelect.emptyTips')" :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" :localdata="options" @change="selectChange"></uni-data-select> -->
<uni-data-select v-model="index" :placeholder="$t('uni.dataSelect.placeholder')" :emptyTips="$t('uni.dataSelect.emptyTips')" :searchInput="true" :localdata="newoptions" @change="selectChange" @handleChange="handleChange" @showSelector="showSelector"></uni-data-select>
</view>
</view>
<view class="msg_item">{{$t('grid.staginglocationA')}}{{obj.a_point}}</view>
<view class="msg_item">{{$t('grid.staginglocationB')}}{{obj.b_point}}</view>
<view class="msg_item">{{$t('grid.status')}}{{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}" :disabled="disabled" @tap="toSure(1)">{{$t('button.privateroom')}}</button>
</view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
import {queryProductArea} from '@/utils/getData2.js'
import {getCutCacheAgvPoints, sendSubVolumeToNBJ, queryCacheDownSubVolumeInfos} from '@/utils/getData3.js'
export default {
components: {
NavBar
},
data() {
return {
title: '',
options: [],
index: '',
newoptions: [],
options2: [],
index2: '',
obj: {a_point: '-', b_point: '-', status: '-'},
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]
},
toSure (type) {
this.disabled = true
if (!this.index && type === 1) {
this.disabled = false
return
}
if ((!this.index || this.index2 !== 'B2') && type === 2) {
this.disabled = false
return
}
if (type === 1) {
uni.showModal({
content: this.$t('toast.confirm-create-AGV-task-to-inner-room'),
confirmColor: '#ff6a00',
success: (res) => {
if (res.confirm) {
this._sendSubVolumeToNBJ()
} else if (res.cancel) {
this.disabled = false
}
}
})
}
},
async _sendSubVolumeToNBJ () {
try {
let res = await sendSubVolumeToNBJ(this.index)
uni.showToast({
title: res.message,
icon: 'none'
})
this.clearUp()
this.disabled = false
} catch (e) {
this.disabled = false
}
},
clearUp () {
this.index = ''
this.index2 = ''
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>