<template>
|
<div v-if="display">
|
<orgDeptRefer
|
v-if="refertype == 'dept' || refertype == 'deptGrid'"
|
:refer-type="referConfig.options.type == 'dept' ? 'tree' : 'grid'"
|
:key="typeKey"
|
ref="orgDeptRefer"
|
:data-key="typeKey"
|
:type-key="typeKey"
|
:disabled="disabled"
|
:referConfig="rConfig"
|
:text="textD"
|
:title="title"
|
:value="valueD"
|
:width="width"
|
:height="height"
|
:reloadFormKey="reloadFormKey"
|
@setReferValue="setValue"
|
>
|
</orgDeptRefer>
|
<basicClassifyRefer
|
v-else-if="refertype == 'basicClassify'"
|
:key="typeKey"
|
ref="basicClassifyRefer"
|
:data-key="typeKey"
|
:type-key="typeKey"
|
:disabled="disabled"
|
:referConfig="rConfig"
|
:text="textD"
|
:title="title"
|
:value="valueD"
|
:width="width"
|
:height="height"
|
:reloadFormKey="reloadFormKey"
|
@setReferValue="setValue"
|
>
|
</basicClassifyRefer>
|
<orgUserRefer
|
v-else-if="refertype == 'user'"
|
:refer-type="'grid'"
|
:key="typeKey"
|
ref="orgUserRefer"
|
:data-key="typeKey"
|
:type-key="typeKey"
|
:disabled="disabled"
|
:referConfig="rConfig"
|
:text="textD"
|
:title="title"
|
:value="valueD"
|
:width="width"
|
:height="height"
|
:reloadFormKey="reloadFormKey"
|
@setReferValue="setValue"
|
>
|
</orgUserRefer>
|
|
<vciWebReferTree
|
v-else-if="refertype == 'tree'"
|
:key="typeKey"
|
ref="vciWebReferTree"
|
:data-key="typeKey"
|
:disabled="disabled"
|
:referConfig="rConfig"
|
:text="textD"
|
:title="title"
|
:value="valueD"
|
:width="width"
|
:height="height"
|
:reloadFormKey="reloadFormKey"
|
@setReferValue="setValue"
|
>
|
</vciWebReferTree>
|
|
<vciWebReferTable
|
v-else-if="refertype == 'grid'"
|
:key="typeKey"
|
:data-key="typeKey"
|
:disabled="disabled"
|
:referConfig="rConfig"
|
:referType="referType"
|
:text="textD"
|
:title="title"
|
:value="valueD"
|
:width="width"
|
:height="height"
|
:reloadFormKey="reloadFormKey"
|
@setReferValue="setValue"
|
>
|
</vciWebReferTable>
|
|
<vciWebReferClassify
|
v-else-if="refertype=='classify'"
|
:key="typeKey" :data-key="typeKey"
|
:disabled="disabled"
|
:referConfig="rConfig"
|
:referType="referType"
|
:text="textD"
|
:title="title"
|
:value="valueD"
|
:width="width"
|
:height="height"
|
:reloadFormKey="reloadFormKey"
|
@setReferValue="setValue">
|
</vciWebReferClassify>
|
|
<vciWebReferDefalut
|
v-else
|
:key="typeKey"
|
:data-key="typeKey"
|
:disabled="disabled"
|
:referConfig="rConfig"
|
:referType="referType"
|
:text="textD"
|
:title="title"
|
:value="valueD"
|
:width="width"
|
:height="height"
|
:reloadFormKey="reloadFormKey"
|
@setReferValue="setValue"
|
>
|
</vciWebReferDefalut>
|
</div>
|
</template>
|
|
<script>
|
import vciWebReferTree from "./vciWebReferTree.vue";
|
import vciWebReferTable from "./vciWebReferTable.vue";
|
import vciWebReferDefalut from "./vciWebReferDefalut.vue";
|
import vciWebReferClassify from "./vciWebReferClassify.vue";
|
import orgDeptRefer from "./orgDeptRefer.vue";
|
import orgUserRefer from "./orgUserRefer.vue";
|
import basicClassifyRefer from "./BasicClassifyRefer.vue";
|
import {verifyNull,verifyNotNull} from "@/util/validate";
|
|
export default {
|
name: "vciWebRefer",
|
props: {
|
referConfig: {
|
type: Object,
|
},
|
value: {
|
type: String,
|
default: "",
|
},
|
text: {
|
type: String,
|
default: "",
|
},
|
disabled: {
|
type: Boolean,
|
default: false,
|
},
|
display: {
|
type: Boolean,
|
default: true,
|
},
|
typeKey: {
|
type: String,
|
default: "",
|
},
|
referType: {
|
type: String,
|
default: "",
|
},
|
reloadFormKey: {
|
type: String,
|
default: '',
|
}
|
},
|
components: {
|
vciWebReferTree,
|
vciWebReferTable,
|
vciWebReferDefalut,
|
vciWebReferClassify,
|
orgDeptRefer,
|
orgUserRefer,
|
basicClassifyRefer,
|
},
|
data() {
|
return {
|
refertype: this.referConfig.options.type,
|
emitData: {},
|
width:this.referConfig.options.width,
|
height:this.referConfig.options.height
|
};
|
},
|
computed: {
|
rConfig() {
|
let rConfig = this.referConfig;
|
if (!rConfig.options) {
|
rConfig.options = {};
|
}
|
rConfig.options.isMuti =
|
rConfig.options.muti || rConfig.options.isMuti || false;
|
return rConfig;
|
},
|
title(){
|
let title = this.referConfig.title || "";
|
title = title.replace(":", "");
|
title = title
|
? "为【" + title + "】选取值"
|
: "为【" + this.referConfig.showProp + "】选取值";
|
return title;
|
},
|
textD(){
|
if(verifyNull(this.text)){
|
return (this.referConfig.options.defalutText || '');
|
}else{
|
return this.text;
|
}
|
},
|
valueD(){
|
if(verifyNull(this.value)){
|
if(verifyNotNull( this.referConfig.options.defalutValue)){
|
this.setValue({
|
prop: this.referConfig.prop,
|
showProp: this.referConfig.showProp,
|
value: this.referConfig.options.defalutValue || '',
|
text: this.referConfig.options.defalutText || '',
|
isTreeMuti: this.isMuti,
|
rawData: [],
|
propMap: []
|
});
|
}
|
|
return (this.referConfig.options.defalutValue || '');
|
}else{
|
return this.value;
|
}
|
}
|
},
|
created() {
|
},
|
methods: {
|
setValue(value) {
|
this.emitData = value;
|
},
|
},
|
watch: {
|
// 修改反馈到父组件
|
emitData: {
|
deep: true,
|
immediate:true,
|
handler(newV) {
|
this.$emit("setReferValue", newV);
|
},
|
}
|
},
|
};
|
</script>
|
|
<style scoped></style>
|