|
@@ -13,9 +13,8 @@
|
|
<el-main class="patent-tree-filter-main">
|
|
<el-main class="patent-tree-filter-main">
|
|
<template v-if="field.length > 0">
|
|
<template v-if="field.length > 0">
|
|
<el-collapse v-model="activeNames" @change="handleChange" style="margin: 0px 5px 0px 5px;">
|
|
<el-collapse v-model="activeNames" @change="handleChange" style="margin: 0px 5px 0px 5px;">
|
|
- <el-collapse-item v-for="item in field" :title="item.name" :name="item.id" :key="item.id"
|
|
|
|
- v-if="sourceQuery[item.id] && item.type != 2">
|
|
|
|
- <div class="patent-query-filter-search">
|
|
|
|
|
|
+ <el-collapse-item v-for="item in field" :title="item.name" :name="item.id" :key="item.id" :loading="loading">
|
|
|
|
+ <!-- <div class="patent-query-filter-search">
|
|
<div class="patent-query-filter-search-input">
|
|
<div class="patent-query-filter-search-input">
|
|
<el-input v-if="item.type != 6" v-model="sourceQuery[item.id].name" size="small"
|
|
<el-input v-if="item.type != 6" v-model="sourceQuery[item.id].name" size="small"
|
|
placeholder="请输入查询内容"></el-input>
|
|
placeholder="请输入查询内容"></el-input>
|
|
@@ -29,30 +28,62 @@
|
|
</div>
|
|
</div>
|
|
<el-button v-if="item.type != 6" @click="handleSearch(item)" size="small" type="primary"
|
|
<el-button v-if="item.type != 6" @click="handleSearch(item)" size="small" type="primary"
|
|
icon="el-icon-search" circle></el-button>
|
|
icon="el-icon-search" circle></el-button>
|
|
|
|
+ </div> -->
|
|
|
|
+ <!-- 日期 -->
|
|
|
|
+ <div v-if="item.type != 6" style="display:flex">
|
|
|
|
+ <el-input v-if="[0,4,5].includes(item.type)" size="small"
|
|
|
|
+ placeholder="请输入查询内容"></el-input>
|
|
|
|
+ <div v-if="[1].includes(item.type)" class="year-data-picker">
|
|
|
|
+ <el-date-picker clear-icon size="small" type="year"
|
|
|
|
+ value-format="yyyy" placeholder="请选择时间"></el-date-picker>
|
|
|
|
+ <span style="margin: 5px;">至</span>
|
|
|
|
+ <el-date-picker clear-icon size="small" type="year"
|
|
|
|
+ value-format="yyyy" placeholder="请选择时间"></el-date-picker>
|
|
|
|
+ </div>
|
|
|
|
+ <el-button v-if="[0,1,4,5].includes(item.type)" @click="handleSearch(item)" size="small" type="primary" class="margin-left_10"
|
|
|
|
+ icon="el-icon-search" circle></el-button>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 数字 -->
|
|
|
|
+ <div v-if="item.type == 0">
|
|
|
|
+ <!-- <el-input type="textarea" :rows="2" placeholder="请输入内容"></el-input> -->
|
|
</div>
|
|
</div>
|
|
- <el-checkbox-group v-if="item.type != 6" v-model="sourceQuery[item.id].checked" @change="onChange(item.id)">
|
|
|
|
|
|
+ <!-- 文本 -->
|
|
|
|
+ <div v-if="item.type == 2">
|
|
|
|
+ <el-input type="textarea" :rows="2" v-model="valObj.description" placeholder="请输入内容"></el-input>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 单选 -->
|
|
|
|
+ <div v-if="item.type == 4">
|
|
|
|
+ <el-radio v-for="radio in item.options" :key="radio.id" v-model="valObj.radio"
|
|
|
|
+ @change="radioChange($event, item.id)" :label="radio.id" style="width: 100%;">
|
|
|
|
+ <span>{{ radio.name }}</span>
|
|
|
|
+ <span v-if="isShowNum">({{ radio.count }})</span>
|
|
|
|
+ </el-radio>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 多选 -->
|
|
|
|
+ <el-checkbox-group v-if="item.type == 5" v-model="valObj.check" @change="onChange($event, item.id)">
|
|
<div class="source-checkbox">
|
|
<div class="source-checkbox">
|
|
- <el-checkbox v-for="source in sourceData[item.id]" :label="source.key" :key="source.id">
|
|
|
|
- <span class="source-checkbox-label" :title="source.label">{{ source.label }}</span>
|
|
|
|
- <span class="source-checkbox-count">({{ source.count }})</span>
|
|
|
|
|
|
+ <el-checkbox v-for="source in item.options" :label="source.id" :key="source.id">
|
|
|
|
+ <span class="source-checkbox-label" :title="source.name">{{ source.name }}</span>
|
|
|
|
+ <span v-if="isShowNum" class="source-checkbox-count">({{ source.count }})</span>
|
|
</el-checkbox>
|
|
</el-checkbox>
|
|
</div>
|
|
</div>
|
|
</el-checkbox-group>
|
|
</el-checkbox-group>
|
|
-
|
|
|
|
- <el-tree v-else @check-change="onChangeTree" :ref="item.id" :data="item.option" show-checkbox node-key="id"
|
|
|
|
- check-strictly default-expand-all>
|
|
|
|
|
|
+ <!-- 树类型 -->
|
|
|
|
+ <el-tree v-if="item.type == 6" @check-change="onChangeTree($event, item.id)" :ref="item.id"
|
|
|
|
+ :data="item.child" show-checkbox node-key="id" check-strictly default-expand-all
|
|
|
|
+ :props="{ children: 'child', label: 'name' }">
|
|
<div class="custom-filter-tree-node" slot-scope="{ node, data }">
|
|
<div class="custom-filter-tree-node" slot-scope="{ node, data }">
|
|
<span class="name">{{ data.name }}</span>
|
|
<span class="name">{{ data.name }}</span>
|
|
- <span class="total">({{ getCount(item.id, data.id) }})</span>
|
|
|
|
|
|
+ <span v-if="isShowNum" class="total">({{ getCount(item.id, data.id) }})</span>
|
|
</div>
|
|
</div>
|
|
</el-tree>
|
|
</el-tree>
|
|
|
|
|
|
- <div class="patent-query-filter-search-bottom" v-if="item.type != 6">
|
|
|
|
|
|
+ <div class="patent-query-filter-search-bottom" v-if="item.type == 5">
|
|
<el-button type="success" size="small" @click="handleSelectAll(item)">全选</el-button>
|
|
<el-button type="success" size="small" @click="handleSelectAll(item)">全选</el-button>
|
|
<el-button type="danger" size="small" @click="handleSelectCancel(item)">取消</el-button>
|
|
<el-button type="danger" size="small" @click="handleSelectCancel(item)">取消</el-button>
|
|
- <el-button v-if="!sourceQuery[item.id].isEnd" type="primary" size="small" @click="handleLoadMore(item)"
|
|
|
|
- :loading="sourceQuery[item.id].loading">加载更多</el-button>
|
|
|
|
- <span v-else></span>
|
|
|
|
|
|
+ <!-- <el-button type="primary" size="small" @click="handleLoadMore(item)"
|
|
|
|
+ >加载更多</el-button> -->
|
|
|
|
+ <!-- <span v-else></span> -->
|
|
</div>
|
|
</div>
|
|
</el-collapse-item>
|
|
</el-collapse-item>
|
|
|
|
|
|
@@ -76,6 +107,16 @@ export default {
|
|
props: {
|
|
props: {
|
|
projectId: {
|
|
projectId: {
|
|
default: 0
|
|
default: 0
|
|
|
|
+ },
|
|
|
|
+ // 是否显示栏位相关专利数量
|
|
|
|
+ isShowNum: {
|
|
|
|
+ type: Boolean,
|
|
|
|
+ default: true
|
|
|
|
+ },
|
|
|
|
+ // 是否显示栏位
|
|
|
|
+ isShowCustom: {
|
|
|
|
+ type: Boolean,
|
|
|
|
+ default: true,
|
|
}
|
|
}
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
@@ -83,31 +124,43 @@ export default {
|
|
// isHidden: true,// 是都显示已读、未读、全部
|
|
// isHidden: true,// 是都显示已读、未读、全部
|
|
readList: [],//已读未读全部
|
|
readList: [],//已读未读全部
|
|
activeNames: '',//展示哪一个面板
|
|
activeNames: '',//展示哪一个面板
|
|
|
|
+ // 面板的loading
|
|
|
|
+ loading: false,
|
|
// 已读未读状态信息
|
|
// 已读未读状态信息
|
|
readStatus: {
|
|
readStatus: {
|
|
all: {
|
|
all: {
|
|
label: "全部",
|
|
label: "全部",
|
|
- value:"3"
|
|
|
|
|
|
+ value: "3"
|
|
},
|
|
},
|
|
- read: {
|
|
|
|
|
|
+ read: {
|
|
label: "已读",
|
|
label: "已读",
|
|
- value:"1"
|
|
|
|
|
|
+ value: "1"
|
|
},
|
|
},
|
|
- noRead: {
|
|
|
|
|
|
+ noRead: {
|
|
label: "未读",
|
|
label: "未读",
|
|
- value:"0"
|
|
|
|
|
|
+ value: "0"
|
|
},
|
|
},
|
|
- },
|
|
|
|
- sourceQuery: [],
|
|
|
|
|
|
+ },
|
|
|
|
+ // sourceQuery: [],
|
|
// 分页信息
|
|
// 分页信息
|
|
queryParams: {
|
|
queryParams: {
|
|
current: 1,
|
|
current: 1,
|
|
size: 10,
|
|
size: 10,
|
|
-
|
|
|
|
|
|
+
|
|
},
|
|
},
|
|
total: 0,
|
|
total: 0,
|
|
// 自定义栏位
|
|
// 自定义栏位
|
|
- field:this.customFieldList||[]
|
|
|
|
|
|
+ field: [],
|
|
|
|
+ // 处理数据
|
|
|
|
+ valObj: {
|
|
|
|
+ treeArr: [],
|
|
|
|
+ check: [],
|
|
|
|
+ radio: '',
|
|
|
|
+ description: '',
|
|
|
|
+ },
|
|
|
|
+ // 总数据
|
|
|
|
+ customFields: [],
|
|
|
|
+
|
|
}
|
|
}
|
|
},
|
|
},
|
|
watch: {
|
|
watch: {
|
|
@@ -117,6 +170,8 @@ export default {
|
|
this.getList()
|
|
this.getList()
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ // 点击搜索自定义栏位的选项
|
|
|
|
+ handleSearch(val){},
|
|
// 查询自定义栏位数据
|
|
// 查询自定义栏位数据
|
|
getList() {
|
|
getList() {
|
|
var params = {
|
|
var params = {
|
|
@@ -124,10 +179,12 @@ export default {
|
|
searchQuery: `projectId=${this.projectId}`,
|
|
searchQuery: `projectId=${this.projectId}`,
|
|
orderDTOList: [],
|
|
orderDTOList: [],
|
|
}
|
|
}
|
|
|
|
+ this.loading = true
|
|
this.$api.queryCustomField(params).then(response => {
|
|
this.$api.queryCustomField(params).then(response => {
|
|
if (response.code == 200) {
|
|
if (response.code == 200) {
|
|
let data = response.data.data
|
|
let data = response.data.data
|
|
this.handleFiled(data)
|
|
this.handleFiled(data)
|
|
|
|
+ this.loading = false
|
|
}
|
|
}
|
|
}).catch(error => {
|
|
}).catch(error => {
|
|
this.loading = false
|
|
this.loading = false
|
|
@@ -135,32 +192,105 @@ export default {
|
|
},
|
|
},
|
|
handleFiled(data) {
|
|
handleFiled(data) {
|
|
data.forEach(item => {
|
|
data.forEach(item => {
|
|
- this.queryCustomOption(item.id)
|
|
|
|
|
|
+ this.queryCustomOption(item)
|
|
})
|
|
})
|
|
},
|
|
},
|
|
// 查询自定义栏位选项数据
|
|
// 查询自定义栏位选项数据
|
|
- queryCustomOption(id) {
|
|
|
|
|
|
+ queryCustomOption(row) {
|
|
|
|
+
|
|
let params = {
|
|
let params = {
|
|
- customFieldId: id,
|
|
|
|
|
|
+ customFieldId: row.id,
|
|
}
|
|
}
|
|
this.$api.queryCustomOption(params).then(response => {
|
|
this.$api.queryCustomOption(params).then(response => {
|
|
if (response.code == 200) {
|
|
if (response.code == 200) {
|
|
- console.log();
|
|
|
|
|
|
+ if (row.type == 6) {//树类型
|
|
|
|
+ row.child = response.data.data
|
|
|
|
+ } else if (row.type == 5) {
|
|
|
|
+ row.options = response.data.data
|
|
|
|
+ } else if (row.type == 4) {
|
|
|
|
+ row.options = response.data.data
|
|
|
|
+ }
|
|
|
|
+ this.field.push(row)
|
|
}
|
|
}
|
|
}).catch(error => {
|
|
}).catch(error => {
|
|
-
|
|
|
|
|
|
+
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
+
|
|
|
|
+ // 处理树类型的文件数字
|
|
|
|
+ getCount(rowId, childId) { },
|
|
// 加载更多
|
|
// 加载更多
|
|
- handleLoadMore(){},
|
|
|
|
|
|
+ // handleLoadMore() { },
|
|
// 全选
|
|
// 全选
|
|
- handleSelectAll(){},
|
|
|
|
|
|
+ handleSelectAll(val) {
|
|
|
|
+ this.valObj.check = []
|
|
|
|
+ val.options.forEach(item => {
|
|
|
|
+ this.valObj.check.push(item.id)
|
|
|
|
+ })
|
|
|
|
+ let obj = {
|
|
|
|
+ [val.id]: this.valObj.check
|
|
|
|
+ }
|
|
|
|
+ this.handleFiledData(obj, val.id)
|
|
|
|
+ },
|
|
// 取消
|
|
// 取消
|
|
- handleSelectCancel(){},
|
|
|
|
|
|
+ handleSelectCancel(val) {
|
|
|
|
+ this.valObj.check = []
|
|
|
|
+ let obj = {
|
|
|
|
+ [val.id]: []
|
|
|
|
+ }
|
|
|
|
+ this.handleFiledData(obj, val.id)
|
|
|
|
+ },
|
|
|
|
+ // 多选类型的change
|
|
|
|
+ onChange(filed, filedId) {
|
|
|
|
+ let obj = {
|
|
|
|
+ [filedId]: filed
|
|
|
|
+ }
|
|
|
|
+ this.handleFiledData(obj, filedId)
|
|
|
|
+ },
|
|
// 点击节点发生的变化
|
|
// 点击节点发生的变化
|
|
- onChangeTree(val){},
|
|
|
|
|
|
+ onChangeTree(filed, filedId) {//当前节点的数据,当前栏位的数据
|
|
|
|
+ if (this.valObj.treeArr && this.valObj.treeArr.length > 0) {
|
|
|
|
+ let index = this.valObj.treeArr.findIndex(item => {
|
|
|
|
+ return item == filed.id
|
|
|
|
+ })
|
|
|
|
+ if (index != -1) {
|
|
|
|
+ this.valObj.treeArr.splice(index, 1)
|
|
|
|
+ } else {
|
|
|
|
+ this.valObj.treeArr.push(filed.id)
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ this.valObj.treeArr.push(filed.id)
|
|
|
|
+ }
|
|
|
|
+ let obj = {
|
|
|
|
+ [filedId]: this.valObj.treeArr
|
|
|
|
+ }
|
|
|
|
+ this.handleFiledData(obj, filedId)
|
|
|
|
+ },
|
|
|
|
+ // 单选的change
|
|
|
|
+ radioChange(filed, filedId) {
|
|
|
|
+ let obj = {
|
|
|
|
+ [filedId]: [filed]
|
|
|
|
+ }
|
|
|
|
+ this.handleFiledData(obj, filedId)
|
|
|
|
+ },
|
|
|
|
+ // 处理customFields中的数据
|
|
|
|
+ handleFiledData(obj, filedId) {
|
|
|
|
+ if (this.customFields && this.customFields.length > 0) {
|
|
|
|
+ this.customFields.forEach(item => {
|
|
|
|
+ for (let k in item) {
|
|
|
|
+ if (k == filedId) {
|
|
|
|
+ item[k] = obj[filedId]
|
|
|
|
+ } else {
|
|
|
|
+ this.customFields.push(obj)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ this.customFields.push(obj)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
// 点击面版
|
|
// 点击面版
|
|
- handleChange(val){},
|
|
|
|
|
|
+ handleChange(val) { },
|
|
// 点击已读、未读、全部
|
|
// 点击已读、未读、全部
|
|
handleReadQuery(val) { },
|
|
handleReadQuery(val) { },
|
|
|
|
|