emis-frontend/src/views/emis/EmisBaseTools/EmisPackNoPicker.vue
2024-06-24 22:36:04 +08:00

147 lines
3.1 KiB
Vue

<template>
<!-- :loading="loading" -->
<!-- v-el-select-loadmore="loadmore" -->
<!-- <i class="el-icon-arrow-down select-down" :class="visible&&'rotate180'"></i> -->
<el-select
filterable
clearable
autocomplete="false"
ref="selectDom"
v-model="svalue"
remote
:remote-method="queryData"
:placeholder="placeholder"
style="width: 100%;"
:disabled="disabled"
@focus="onFocus"
class="remote-select"
@change="onChange"
@clear="onClear"
@visible-change="reverseArrow"
>
<el-option v-for="item in dataList" :key="item.packNo" :label="item.packNo" :value="item.packNo" ></el-option>
</el-select>
</template>
<script>
import { listEmisTmsPack } from "@/api/emis/emisTmsPack";
export default {
name: "EmisPackNoPicker",
components: {
},
dicts: [],
props: {
value: {
type: String,
required: false
},
placeholder: {
type: String,
required: false
},
countryCode: {
type: String,
required: false
},
// siteType:{
// type: [String,Number],
// required: false
// },
isInitiated:{
type: [Boolean,String],
required: false,
default:false
},
disabled:{
type: [Boolean,String],
required: false
},
},
data() {
return {
loading:false,
visible:false,
dataList: [],
svalue: this.value,
firstFlag:true,
queryParams:{
pageNum:1,
pageSize:20,
packNo:this.value,
packStatus:0,
params:{
blValid:1,
}
}
};
},
watch: {
value(newVal) {
this.svalue = newVal;
this.queryData(this.svalue);
},
},
created() {
this.queryData();
},
beforeDestroy(){
this.firstFlag = true;
},
methods: {
onChange() {
this.$emit("input", this.svalue);
this.$emit("onChange",this.svalue);
},
onClear(){
this.queryParams.packNo=null;
this.queryData();
},
onFocus(){
this.queryData();
},
queryData(val) {
if(val && this.queryParams.pageNum == 1){
this.dataList=[];
}
this.queryParams.packNo=val;
listEmisTmsPack(this.queryParams).then(response => {
this.dataList=response.rows;
});
},
reverseArrow(flag) {
let rulesDom = this.$refs["selectDom"].$el.querySelector(
".el-input .el-input__suffix .el-input__suffix-inner .el-input__icon"
); // 找到dom
if (flag) {
rulesDom.classList.add("is-reverse"); // 对dom新增class
} else {
rulesDom.classList.remove("is-reverse"); // 对dom新增class
}
},
}
};
</script>
<style lang="scss" scoped>
// right: 30px;
// cursor: pointer;
:deep .el-select.remote-select{
.el-select__caret::before{
content: '\e6e1';
}
.is-focus{
.el-select__caret{
transform: rotateZ(0deg);
}
}
}
</style>