emis-frontend/src/views/emis/EmisBaseTools/EmisMoneyUserPicker.vue
2025-12-19 13:28:39 +08:00

116 lines
3.1 KiB
Vue

<template>
<el-select :loading="loading" filterable remote clearable v-model="svalue" :placeholder="placeholder"
style="width: 100%;" :disabled="disabled" :remote-method="dataFilter" @change="onChange" >
<el-option v-for="item in optionItems" :key="item.customerCode" :label="item.company"
:value="item.customerCode"></el-option>
</el-select>
</template>
<script>
import { listMoneyUserAll } from "@/api/emis/emisCustomerUser";
export default {
name: "EmisMoneyUserPicker",
props: {
value: {
type: [String, Number],
required: false
},
sideCode: {
type: String,
required: false
},
payee: {
type: String,
required: false
},
salesmen: {
type: String,
required: false
},
postCode: {
type: String,
required: false
},
isInitiated: {
type: [Boolean, String],
required: false,
default: false
},
placeholder: {
type: String,
required: false
},
disabled: {
type: [Boolean, String],
required: false
},
},
data() {
return {
loading: false,
bakOptionItems: [],
optionItems: [],
svalue: this.value,
optionDefault: null,
dataMap: new Map(),
};
},
watch: {
value(newVal) {
this.svalue = newVal;
},
svalue(newVal, oldVal) {
// this.$emit("input", this.svalue);
},
postCode(newVal) {
}
},
created() {
this.initData();
},
methods: {
onChange() {
this.$emit("input", this.svalue);
let itemData = null;
this.optionItems.forEach(item => {
if (item.customerCode === this.svalue) {
itemData = item;
}
});
this.$emit("onChange", itemData);
this.optionItems = this.bakOptionItems;
},
initData() {
this.loading = true;
let queryParams = {
pageNum: 1,
pageSize: 10,
};
this.bakOptionItems = [];
this.optionItems = [];
listMoneyUserAll(queryParams).then(response => {
this.loading = false;
console.log('listMoneyUserAll', response);
this.bakOptionItems = response.rows;
this.optionItems = this.bakOptionItems;
});
},
dataFilter(val) {
let params = {
pageNum: 1,
pageSize: 10,
searchValue: val
};
listMoneyUserAll(params).then(response => {
this.loading = false;
console.log('listMoneyUserAll', response);
this.bakOptionItems = response.rows;
this.optionItems = this.bakOptionItems;
});
}
}
};
</script>