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"; |
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", { |
Vue.directive("checkNum", { |
||||||
update(el, binding, vNode) { |
bind(el, binding, vNode) { |
||||||
if (el.children.length) { |
if (!el.children.length) { |
||||||
let val = el.children[0].value; |
return; |
||||||
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); |
|
||||||
} |
} |
||||||
|
el.children[0].addEventListener("keyup", (e) => { |
||||||
|
handle(e, vNode); |
||||||
|
}); |
||||||
|
}, |
||||||
|
unbind(el) { |
||||||
|
el.children[0].removeEventListener("keyup"); |
||||||
}, |
}, |
||||||
}); |
}); |
||||||
|
Loading…
Reference in new issue