Commit b17a39f6 by fukai

完善码表系列处理

parent 5fae7a01
<template>
<span
:id="id"
v-bind="$attrs"
v-on="$listeners"
v-html="label"
>
</span>
</template>
<script>
import Api from "~/service/Api"
export default {
props: {
value: {
type: [String, Array, Number],
default: undefined,
},
id: {
type: String,
default: undefined,
},
code: {
type: Array,
default: function () {
return [];
},
},
dbCode: {
type: String,
default: undefined,
},
},
data(){
return {
dbCodeList:[],
}
},
watch:{
//动态从服务器上渲染码表
dbCode(){
if(!this.dbCode){
this.dbCodeList=[]
return
}
getDBCode()
}
},
computed: {
mode() {
return this.$store.state.Status.mode;
},
isDisable: {
get() {
return this.mode === "display" || this.disabled;
},
},
highlight() {
return this.$store.state.Status.highlights.indexOf(this.id) !== -1;
},
attrs() {
if (this.mode === "display" || this.disabled) {
let { placeholder, ...rest } = this.$attrs;
rest = { placeholder: " ", ...rest };
return rest;
}
return this.$attrs;
},
combinCodes(){
//取dbcode,和 setvalues的合集
if(!this.dbCodeList || this.dbCodeList.length == 0){
return []
}
return this.dbCodeList.filter(item=>{
if(this.code && this.code.length){
return this.code.findIndex(item2=>item.value == item2.value)>-1
}
return true
})
},
label(){
if(!this.value){
return ""
}
if(this.dbCode && this.dbCodeList && this.dbCodeList.length>0){
let em = this.combinCodes.find(item=>item.value == this.value)
if(em){
return em.label
}else{
return this.value
}
}
if(this.code && this.code.length){
let em = this.code.find(item=>item.value == this.value)
if(em){
return em.label
}else{
return this.value
}
}
return this.value
}
},
methods: {
handleClick: function (e) {
let ev = new Event("click", { bubbles: true });
let node = e.target;
if (node.parentElement) {
node.parentElement.dispatchEvent(ev);
}
},
getDBCode(){
let args = {tbl:this.dbCode,lang:this.$store.state.I18n.lang.toUpperCase()}
if(args.lang == "ZH"){
args.lang = "CN";
}
Api.post("getCodetable",args).then(rtnmsg=>{
if(rtnmsg.respCode==SUCCESS){
this.dbCodeList=rtnmsg.data
}
})
}
},
mounted(){
if(this.dbCode){
this.getDBCode()
}
}
};
</script>
<style>
/* .el-select.highlight .el-input .el-input__inner {
border-color: red;
} */
</style>
\ No newline at end of file
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
> >
<template v-if="dbCodeList && dbCodeList.length > 0"> <template v-if="dbCodeList && dbCodeList.length > 0">
<el-option <el-option
v-for="item in dbCodeList" v-for="item in combinCodes"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
...@@ -106,6 +106,18 @@ export default { ...@@ -106,6 +106,18 @@ export default {
} }
return this.$attrs; return this.$attrs;
}, },
combinCodes(){
//取dbcode,和 setvalues的合集
if(!this.dbCodeList || this.dbCodeList.length == 0){
return []
}
return this.dbCodeList.filter(item=>{
if(this.code && this.code.length){
return this.code.findIndex(item2=>item.value == item2.value)>-1
}
return true
})
}
}, },
methods: { methods: {
handleClick: function (e) { handleClick: function (e) {
......
...@@ -32,6 +32,7 @@ import HighlightContent from "./HighlightContent" ...@@ -32,6 +32,7 @@ import HighlightContent from "./HighlightContent"
import SearchInput from "./SearchInput.vue" import SearchInput from "./SearchInput.vue"
import FormItem from "./FormItem.vue" import FormItem from "./FormItem.vue"
import TableColumnItem from "./TableColumnItem.vue" import TableColumnItem from "./TableColumnItem.vue"
import CodeLabel from "./CodeLabel"
// 循环组件 // 循环组件
import MessageArea from '~/widget/SwfMessage/MessageArea' import MessageArea from '~/widget/SwfMessage/MessageArea'
import CycList from '~/widget/SwfMessage/CycList' import CycList from '~/widget/SwfMessage/CycList'
...@@ -93,5 +94,6 @@ export default { ...@@ -93,5 +94,6 @@ export default {
Vue.component("c-function-btn", FunctionBtn) Vue.component("c-function-btn", FunctionBtn)
Vue.component("c-bus-button", BusinessButon) Vue.component("c-bus-button", BusinessButon)
Vue.component("c-infsearch-group", InfSearchGroup) Vue.component("c-infsearch-group", InfSearchGroup)
Vue.component("c-codelabel", CodeLabel)
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment