Merge branch 'xiaozy_产品列表' of http://121.196.213.68:3000/xiaozhiyong/refinery-admin into lixuan
commit
235b7a36ff
12 changed files with 384 additions and 167 deletions
@ -0,0 +1,55 @@ |
||||
<template> |
||||
<el-autocomplete |
||||
v-model="text" |
||||
:fetch-suggestions="querySearchAsync" |
||||
:value-key="config.valueKey" |
||||
:placeholder="config.placeholder" |
||||
clearable |
||||
@select="selectAutocomplete" |
||||
@clear="params[config.querykey] = ''" |
||||
></el-autocomplete> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
props: { |
||||
params: Object, |
||||
config: Object, |
||||
// config: { |
||||
// serveTarget: {}, // 接口 |
||||
// autocomplateKey: "", //远程搜索接口参数名 |
||||
// querykey: "", //查询接口参数名 |
||||
// }, |
||||
}, |
||||
data() { |
||||
return { |
||||
text: "", |
||||
}; |
||||
}, |
||||
created() { |
||||
console.log("params", this.params); |
||||
}, |
||||
methods: { |
||||
// 远程搜索 |
||||
querySearchAsync(queryString, cb) { |
||||
if (queryString) { |
||||
let params = {}; |
||||
params[this.config.autocompleteKey] = queryString; |
||||
this.config.serveTarget(params).then((res) => { |
||||
let timeInstance = setTimeout(() => { |
||||
clearTimeout(timeInstance); |
||||
if (res.data.length) { |
||||
cb(res.data); |
||||
} else cb([]); |
||||
}, 1000 * Math.random()); |
||||
}); |
||||
} else cb([]); |
||||
}, |
||||
selectAutocomplete(item) { |
||||
this.params[this.config.querykey] = item.id; |
||||
}, |
||||
}, |
||||
}; |
||||
</script> |
||||
|
||||
<style lang="scss" scoped></style> |
@ -1,18 +1,28 @@ |
||||
import Vue from "vue"; |
||||
|
||||
const handle = (e, vNode) => { |
||||
let val = e.target.value; |
||||
let qualifiedNum = val |
||||
.replace(/[^\d.]/g, "") |
||||
.replace(/^\./g, "") |
||||
.replace(/\.{2,}/g, ".") |
||||
.replace(/^0{2,}/g, "0") |
||||
.replace(".", "$#$") |
||||
.replace(/\./g, "") |
||||
.replace("$#$", "."); |
||||
vNode.componentInstance.$emit("input", qualifiedNum); |
||||
}; |
||||
|
||||
Vue.directive("checkNum", { |
||||
update(el, binding, vNode) { |
||||
if (el.children.length) { |
||||
let val = el.children[0].value; |
||||
let qualifiedNum = val |
||||
.replace(/[^\d.]/g, "") |
||||
.replace(/^\./g, "") |
||||
.replace(/\.{2,}/g, ".") |
||||
.replace(/^0{2,}/g, "0") |
||||
.replace(".", "$#$") |
||||
.replace(/\./g, "") |
||||
.replace("$#$", "."); |
||||
vNode.componentInstance.$emit("input", qualifiedNum); |
||||
bind(el, binding, vNode) { |
||||
if (!el.children.length) { |
||||
return; |
||||
} |
||||
el.children[0].addEventListener("keyup", (e) => { |
||||
handle(e, vNode); |
||||
}); |
||||
}, |
||||
unbind(el) { |
||||
el.children[0].removeEventListener("keyup"); |
||||
}, |
||||
}); |
||||
|
Loading…
Reference in new issue