|  |  | 
 |  |  | import { logout } from '@/config.js'; | 
 |  |  | import { formatMessage } from '@/utils/localeUtils.js'; | 
 |  |  | import useTableSearch from '@/utils/tableUtils.jsx'; | 
 |  |  | import { debounce } from 'lodash-es'; | 
 |  |  | const context = getCurrentInstance()?.appContext.config.globalProperties; | 
 |  |  |  | 
 |  |  | const router = useRouter(); | 
 |  |  | 
 |  |  | const openAddDetl = ref(false); | 
 |  |  | const matChecked = ref([]); | 
 |  |  | const matQueryList = ref(null); | 
 |  |  | const matFetching = ref(false); | 
 |  |  | const matSelectList = ref([]); | 
 |  |  | const addDetl = () => { | 
 |  |  |     openAddDetl.value = true; | 
 |  |  | 
 |  |  |     matChecked.value = []; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const handleSearch = val => { | 
 |  |  | const handleSearch = debounce(val => { | 
 |  |  |     matQuery(val); | 
 |  |  | } | 
 |  |  | }, 600) | 
 |  |  |  | 
 |  |  | const handleSelect = (value, option) => { | 
 |  |  |     let flag = true; | 
 |  |  | 
 |  |  |  | 
 |  |  | matQuery(null); | 
 |  |  | function matQuery(condition) { | 
 |  |  |     matFetching.value = true; | 
 |  |  |     post('/api/mat/page', { | 
 |  |  |         current: 1, | 
 |  |  |         pageSize: 100, | 
 |  |  |         pageSize: 10, | 
 |  |  |         condition: condition | 
 |  |  |     }).then((resp) => { | 
 |  |  |         let result = resp.data; | 
 |  |  | 
 |  |  |         result.data.records.forEach((item) => { | 
 |  |  |             tmp.push({ | 
 |  |  |                 value: item.matnr, | 
 |  |  |                 label: item.matnr, | 
 |  |  |                 label: item.matnr + '_' + item.maktx, | 
 |  |  |                 data: item | 
 |  |  |             }) | 
 |  |  |         }) | 
 |  |  |         matQueryList.value = tmp; | 
 |  |  |         matFetching.value = false; | 
 |  |  |     }) | 
 |  |  | } | 
 |  |  |  | 
 |  |  | 
 |  |  | } | 
 |  |  |  | 
 |  |  | watch(orderId, (newVal, oldVal) => { | 
 |  |  |     if(newVal == undefined || newVal == null) { | 
 |  |  |     if (newVal == undefined || newVal == null) { | 
 |  |  |         tableData.value = []; | 
 |  |  |         return; | 
 |  |  |     } | 
 |  |  | 
 |  |  |         }) | 
 |  |  |         tableData.value = tmp; | 
 |  |  |     }) | 
 |  |  |      | 
 |  |  |  | 
 |  |  | }) | 
 |  |  |  | 
 |  |  | defineExpose({ | 
 |  |  | 
 |  |  |             @ok="handleAddDetlOk" @cancel="handleAddDetlCancel"> | 
 |  |  |             <a-select v-model:value="matChecked" :options="matQueryList" mode="multiple" | 
 |  |  |                 :placeholder="formatMessage('component.orderDetl.edit.selectMat', '请选择物料')" @search="handleSearch" | 
 |  |  |                 @select="handleSelect" @deselect="handleDeselect"></a-select> | 
 |  |  |                 :filter-option="false" :not-found-content="matFetching ? undefined : null" @select="handleSelect" | 
 |  |  |                 @deselect="handleDeselect"></a-select> | 
 |  |  |         </a-modal> | 
 |  |  |     </div> | 
 |  |  | </template> |