2024-03-26 11:18:19 +08:00
|
|
|
|
<template>
|
|
|
|
|
<div>
|
|
|
|
|
<template v-if="!lookflag">
|
|
|
|
|
<el-select
|
|
|
|
|
v-loading="selLoading"
|
|
|
|
|
class="w-100"
|
|
|
|
|
v-model="selectValue"
|
|
|
|
|
:placeholder="placeholder"
|
|
|
|
|
:clearable="false"
|
|
|
|
|
style="width: 240px"
|
|
|
|
|
size="mini"
|
|
|
|
|
refs="mySelect"
|
|
|
|
|
:reserve-keyword="true"
|
|
|
|
|
:disabled="disabled"
|
|
|
|
|
filterable
|
|
|
|
|
popper-class="sele"
|
|
|
|
|
:filter-method="filter"
|
|
|
|
|
@change="fun"
|
|
|
|
|
@focus="funx"
|
|
|
|
|
@blur="funb"
|
|
|
|
|
@visible-change="hidden"
|
|
|
|
|
clearable
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in options"
|
|
|
|
|
:key="item.plugId"
|
|
|
|
|
:label="item.plugName"
|
|
|
|
|
remote
|
|
|
|
|
:value="item.plugName"
|
|
|
|
|
placeholder="请输入"
|
|
|
|
|
>
|
|
|
|
|
</el-option>
|
|
|
|
|
|
|
|
|
|
<div style="bottom: -10px">
|
|
|
|
|
<el-pagination
|
|
|
|
|
v-if="pageModel.total > pageModel.limit"
|
|
|
|
|
small
|
|
|
|
|
@current-change="handleCurrentChange"
|
|
|
|
|
:current-page="pageModel.pageIndex"
|
|
|
|
|
:page-size="pageModel.limit"
|
|
|
|
|
layout="prev, pager,next,total"
|
|
|
|
|
:total="pageModel.total"
|
|
|
|
|
>
|
|
|
|
|
</el-pagination>
|
|
|
|
|
</div>
|
|
|
|
|
</el-select>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else
|
2024-03-26 14:21:37 +08:00
|
|
|
|
><div v-loading="selLoading">{{ showValue }}</div></template
|
2024-03-26 11:18:19 +08:00
|
|
|
|
>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
::v-deep .el-input--mini .el-input__inner {
|
|
|
|
|
height: 38px;
|
|
|
|
|
}
|
|
|
|
|
.w-100 {
|
|
|
|
|
width: 100% !important;
|
|
|
|
|
}
|
|
|
|
|
.drop >>> .el-input__inner {
|
|
|
|
|
background: #5183ff !important;
|
|
|
|
|
color: white;
|
|
|
|
|
border: none;
|
|
|
|
|
height: 26px;
|
|
|
|
|
padding: 10px 22px 10px 10px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
.drop {
|
|
|
|
|
width: 250px;
|
|
|
|
|
}
|
|
|
|
|
.drop >>> .el-select .el-input .el-select__caret {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import debounce from "lodash/debounce";
|
|
|
|
|
import { getUserModuleApi } from "@/api/integrationOption/integrationOption.js";
|
|
|
|
|
export default {
|
|
|
|
|
props: {
|
|
|
|
|
ruleForm: {
|
|
|
|
|
type: Object,
|
|
|
|
|
default: {},
|
|
|
|
|
},
|
|
|
|
|
selectInfo: {
|
|
|
|
|
type: Object,
|
|
|
|
|
default: () => {
|
|
|
|
|
return {};
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
// 是否禁用
|
|
|
|
|
disabled: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
placeholder: String,
|
|
|
|
|
value: {
|
|
|
|
|
type: String,
|
|
|
|
|
},
|
|
|
|
|
itemObj: {
|
|
|
|
|
type: Object,
|
|
|
|
|
default: () => {
|
|
|
|
|
return {};
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
lookflag: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
options: [], //当前页码的数据
|
|
|
|
|
pageModel: {
|
|
|
|
|
total: 0,
|
|
|
|
|
pageIndex: 1,
|
|
|
|
|
limit: 10,
|
|
|
|
|
},
|
|
|
|
|
selLoading: false,
|
|
|
|
|
showValue: "",
|
|
|
|
|
lookLoading: false,
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
computed: {
|
|
|
|
|
selectValue: {
|
|
|
|
|
get() {
|
|
|
|
|
return this.value;
|
|
|
|
|
},
|
|
|
|
|
set(val) {
|
|
|
|
|
this.$emit("input", val);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
created() {
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
this.getUserModuleApi()
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
// 请求select信息(分页)
|
|
|
|
|
async getUserModuleApi(obj = {}) {
|
|
|
|
|
this.selLoading = true;
|
|
|
|
|
const res = await getUserModuleApi(
|
|
|
|
|
{
|
|
|
|
|
tl: "sysPlugArgService",
|
|
|
|
|
as: "integrationTaskService",
|
|
|
|
|
dj: "queryPlugArg",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
pageNum: this.pageModel.pageIndex,
|
|
|
|
|
pageSize: this.pageModel.limit,
|
|
|
|
|
...obj,
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
if (res.status === '200') {
|
|
|
|
|
this.pageModel.total = res.attribute.total;
|
|
|
|
|
this.options = res.attribute.list;
|
|
|
|
|
}
|
|
|
|
|
console.log(this.options,'options')
|
|
|
|
|
this.selLoading = false;
|
|
|
|
|
},
|
|
|
|
|
// 根据selectid找到value
|
|
|
|
|
async getSelectdata(id) {
|
|
|
|
|
this.selLoading = true;
|
|
|
|
|
const res = await getUserModuleApi(
|
|
|
|
|
{
|
|
|
|
|
tl: "mdmService",
|
|
|
|
|
as: "mdmService",
|
|
|
|
|
dj: "queryTemplateData",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
tableName: this.itemObj.service,
|
|
|
|
|
id: id,
|
|
|
|
|
label: this.itemObj.label,
|
|
|
|
|
value: this.itemObj.value,
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
if (res.status == 200 && res.attribute.length) {
|
|
|
|
|
this.selLoading = false;
|
|
|
|
|
this.options = res.attribute;
|
|
|
|
|
this.showValue = res.attribute[0][this.itemObj.label];
|
|
|
|
|
} else {
|
|
|
|
|
this.selLoading = false;
|
|
|
|
|
this.options.push({
|
|
|
|
|
[this.itemObj.label]: "请选择",
|
|
|
|
|
[this.itemObj.value]: id,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// 页码改变事件
|
|
|
|
|
handleCurrentChange(val) {
|
|
|
|
|
this.pageModel.pageIndex = val;
|
|
|
|
|
this.getUserModuleApi();
|
|
|
|
|
},
|
|
|
|
|
// select选中更改事件
|
|
|
|
|
fun(val) {
|
|
|
|
|
console.log(val)
|
|
|
|
|
this.$emit("selectChangeHandle",val,this.options)
|
|
|
|
|
// this.$emit(`${this.funName}`, arr);
|
|
|
|
|
},
|
|
|
|
|
// 获得焦点
|
|
|
|
|
funx() {
|
|
|
|
|
this.getUserModuleApi();
|
|
|
|
|
},
|
|
|
|
|
// 失去焦点
|
|
|
|
|
funb() {},
|
|
|
|
|
hidden() {},
|
|
|
|
|
//搜索方法,将符合的数据存入options中,并分页展示
|
|
|
|
|
filter: debounce(function (val) {
|
|
|
|
|
// this.pageModel.pageIndex = 1;
|
|
|
|
|
// this.getUserModuleApi({ lableValue: val });
|
|
|
|
|
}, 300),
|
|
|
|
|
},
|
|
|
|
|
//监听来自父组件的数据,当数据更新时,重置展示
|
|
|
|
|
watch: {},
|
|
|
|
|
};
|
|
|
|
|
</script>
|