|
@@ -1,337 +1,57 @@
|
|
|
<template>
|
|
|
<div class="patent-tree-filter">
|
|
|
<el-container>
|
|
|
- <el-header class="patent-query-filter-header">
|
|
|
- <!-- 已读、未读、全部 -->
|
|
|
- <div class="query-read-status" style="margin: 0px 5px 0px 5px;" v-for="(item, key) in readList" :key="key"
|
|
|
- :class="{ 'query-read-status_is-active': readStatus[key].value == returnData.read }"
|
|
|
- @click="handleReadQuery(readStatus[key].value)">
|
|
|
- <span class="a">(<span class="b">{{ item }}</span>)</span>
|
|
|
- <span class="c">{{ readStatus[key].label }}</span>
|
|
|
- </div>
|
|
|
+ <el-header class="basic_header">
|
|
|
+ <el-tabs v-model="activeNameTabs" @tab-click="handleClick" type="card" style="width:100%">
|
|
|
+ <el-tab-pane v-for="item in menu" :key='item.path' :label="item.label" :name="item.path"></el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
</el-header>
|
|
|
- <el-main class="patent-tree-filter-main">
|
|
|
- <template v-if="field.length > 0">
|
|
|
- <el-collapse v-model="activeNames" style="margin: 0px 5px 0px 5px;">
|
|
|
- <el-collapse-item v-for="item in field" :title="item.name" :name="item.id" :key="item.id" :loading="loading"
|
|
|
- @click.stop.prevent.native="handleChange(item)">
|
|
|
- <!-- <div class="patent-query-filter-search">
|
|
|
- <div class="patent-query-filter-search-input">
|
|
|
- <el-input v-if="item.type != 6" v-model="sourceQuery[item.id].name" size="small"
|
|
|
- placeholder="请输入查询内容"></el-input>
|
|
|
- <div v-else-if="!item.type" class="year-data-picker">
|
|
|
- <el-date-picker clear-icon size="small" v-model="sourceQuery[item.id].datePicker[0]" type="year"
|
|
|
- value-format="yyyy" placeholder="请选择时间"></el-date-picker>
|
|
|
- <span style="margin: 5px;">至</span>
|
|
|
- <el-date-picker clear-icon size="small" v-model="sourceQuery[item.id].datePicker[1]" type="year"
|
|
|
- value-format="yyyy" placeholder="请选择时间"></el-date-picker>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <el-button v-if="item.type != 6" @click="handleSearch(item)" size="small" type="primary"
|
|
|
- icon="el-icon-search" circle></el-button>
|
|
|
- </div> -->
|
|
|
- <!-- 日期 -->
|
|
|
- <div v-if="item.type != 6" style="display:flex;margin-bottom: 10px;">
|
|
|
- <el-input v-if="[4, 5].includes(item.type)" size="small" v-model="valObj.valueOne"
|
|
|
- placeholder="请输入查询内容"></el-input>
|
|
|
- <div v-if="[1].includes(item.type)" class="year-data-picker">
|
|
|
- <el-date-picker clear-icon size="small" type="year" v-model="valObj.valueOne" value-format="yyyy"
|
|
|
- placeholder="请选择时间"></el-date-picker>
|
|
|
- <span style="margin: 5px;">至</span>
|
|
|
- <el-date-picker clear-icon size="small" type="year" v-model="valObj.valueTwo" value-format="yyyy"
|
|
|
- placeholder="请选择时间"></el-date-picker>
|
|
|
- </div>
|
|
|
- <el-button v-if="[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="请输入内容" v-model="valObj.description2"
|
|
|
- @blur="handleBlur(item, 0)"></el-input>
|
|
|
- </div>
|
|
|
- <!-- 文本 -->
|
|
|
- <div v-if="item.type == 2">
|
|
|
- <el-input type="textarea" :rows="2" v-model="valObj.description" @blur="handleBlur(item, 1)"
|
|
|
- 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 || 0 }})</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">
|
|
|
- <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 || 0 }})</span>
|
|
|
- </el-checkbox>
|
|
|
- </div>
|
|
|
- </el-checkbox-group>
|
|
|
- <!-- 树类型 -->
|
|
|
- <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 }">
|
|
|
- <span class="name">{{ data.name }}</span>
|
|
|
- <span v-if="isShowNum" class="total">({{ getCount(item.id, data.id) }})</span>
|
|
|
- </div>
|
|
|
- </el-tree>
|
|
|
-
|
|
|
- <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="danger" size="small" @click="handleSelectCancel(item)">取消</el-button>
|
|
|
- <!-- <el-button type="primary" size="small" @click="handleLoadMore(item)"
|
|
|
- >加载更多</el-button> -->
|
|
|
- <!-- <span v-else></span> -->
|
|
|
- </div>
|
|
|
- </el-collapse-item>
|
|
|
-
|
|
|
- </el-collapse>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-else>
|
|
|
- <div class="no-data">暂无数据</div>
|
|
|
- </template>
|
|
|
+ <el-main>
|
|
|
+ <component :is="activeNameTabs" :projectId="projectId"></component>
|
|
|
</el-main>
|
|
|
</el-container>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-// import { patentQueryMixins } from "@/views/task/components/mixins";
|
|
|
-// import { getTreeLastChildren, getTreeDataList } from "@/utils";
|
|
|
-
|
|
|
+import queryPage from './tab1.vue'
|
|
|
+import selectPage from './tab2.vue'
|
|
|
export default {
|
|
|
- // mixins: [patentQueryMixins],
|
|
|
props: {
|
|
|
projectId: {
|
|
|
- default: 0
|
|
|
- },
|
|
|
- // 是否显示栏位相关专利数量
|
|
|
- isShowNum: {
|
|
|
- type: Boolean,
|
|
|
- default: true
|
|
|
- },
|
|
|
- // 是否显示栏位
|
|
|
- isShowCustom: {
|
|
|
- type: Boolean,
|
|
|
- default: true,
|
|
|
+ default: null
|
|
|
},
|
|
|
},
|
|
|
+ components: {
|
|
|
+ queryPage,
|
|
|
+ selectPage,
|
|
|
+ },
|
|
|
data() {
|
|
|
return {
|
|
|
- // isHidden: true,// 是都显示已读、未读、全部
|
|
|
- readList: [],//已读未读全部
|
|
|
- activeNames: [],//展示哪一个面板
|
|
|
- // 面板的loading
|
|
|
- loading: false,
|
|
|
- // 已读未读状态信息
|
|
|
- readStatus: {
|
|
|
- all: {
|
|
|
- label: "全部",
|
|
|
- value: "3"
|
|
|
- },
|
|
|
- read: {
|
|
|
- label: "已读",
|
|
|
- value: "1"
|
|
|
+ activeNameTabs: 'queryPage',
|
|
|
+ menu:[
|
|
|
+ {
|
|
|
+ label:'查询筛选',
|
|
|
+ path:'queryPage'
|
|
|
},
|
|
|
- noRead: {
|
|
|
- label: "未读",
|
|
|
- value: "0"
|
|
|
+ {
|
|
|
+ label:'分类选择',
|
|
|
+ path:'selectPage'
|
|
|
},
|
|
|
- },
|
|
|
- // sourceQuery: [],
|
|
|
- // 分页信息
|
|
|
- queryParams: {
|
|
|
- current: 1,
|
|
|
- size: 10,
|
|
|
-
|
|
|
- },
|
|
|
- total: 0,
|
|
|
- // 自定义栏位
|
|
|
- field: [],
|
|
|
- // 处理数据
|
|
|
- valObj: {
|
|
|
- treeArr: [],
|
|
|
- check: [],
|
|
|
- radio: '',
|
|
|
- valueOne: '',
|
|
|
- valueTwo: '',
|
|
|
- },
|
|
|
- // 总数据
|
|
|
- customFields: [],
|
|
|
-
|
|
|
+ ],
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
|
|
|
|
},
|
|
|
mounted() {
|
|
|
- this.getList()
|
|
|
+
|
|
|
},
|
|
|
methods: {
|
|
|
- // 查询自定义栏位数据
|
|
|
- getList() {
|
|
|
- var params = {
|
|
|
- ...this.queryParams,
|
|
|
- searchQuery: `projectId=${this.projectId}`,
|
|
|
- orderDTOList: [],
|
|
|
- }
|
|
|
- this.loading = true
|
|
|
- this.$api.queryCustomField(params).then(response => {
|
|
|
- if (response.code == 200) {
|
|
|
- let data = response.data.data
|
|
|
- this.handleFiled(data)
|
|
|
- this.loading = false
|
|
|
- }
|
|
|
- }).catch(error => {
|
|
|
- this.loading = false
|
|
|
- })
|
|
|
- },
|
|
|
- handleFiled(data) {
|
|
|
- data.forEach(item => {
|
|
|
- this.queryCustomOption(item)
|
|
|
- })
|
|
|
- },
|
|
|
- // 查询自定义栏位选项数据
|
|
|
- queryCustomOption(row) {
|
|
|
-
|
|
|
- let params = {
|
|
|
- customFieldId: row.id,
|
|
|
- }
|
|
|
- this.$api.queryCustomOption(params).then(response => {
|
|
|
- if (response.code == 200) {
|
|
|
- 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 => {
|
|
|
-
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- // 处理树类型的文件数字
|
|
|
- getCount(rowId, childId) {
|
|
|
- return 0
|
|
|
- },
|
|
|
- // 加载更多
|
|
|
- // handleLoadMore() { },
|
|
|
- // 全选
|
|
|
- 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(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(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)
|
|
|
- }
|
|
|
- this.$emit('customFields', this.customFields)
|
|
|
- },
|
|
|
- // 处理数字、文字
|
|
|
- handleBlur(item, type) {
|
|
|
- if (type == 0) {//数字
|
|
|
- this.customFields[item.id] = [valObj.description2]
|
|
|
- } else {
|
|
|
- this.customFields[item.id] = [valObj.description]
|
|
|
- }
|
|
|
- this.$emit('customFields', this.customFields)
|
|
|
- },
|
|
|
- // 点击当前面版
|
|
|
- handleChange(val) {
|
|
|
- this.esCountSearch(val)
|
|
|
- },
|
|
|
|
|
|
- // 点击搜索自定义栏位的选项
|
|
|
- handleSearch(val) {
|
|
|
- this.esCountSearch(val,)
|
|
|
+ handleClickTab(tab, event) {
|
|
|
+ // this.activeNameTabs = tab.name
|
|
|
},
|
|
|
- // 获取统计数字
|
|
|
- esCountSearch(val) {
|
|
|
- let params = {
|
|
|
- filed: 'filed',
|
|
|
- fieldId: val.id,
|
|
|
- valueOne:this.valObj.valueOne || '',
|
|
|
- valueTwo:this.valObj.valueTwo || '',
|
|
|
- }
|
|
|
- console.log(params);
|
|
|
- return
|
|
|
- this.$api.esCountSearch(params).then(response => {
|
|
|
- if (response.code == 200) {
|
|
|
-
|
|
|
- }
|
|
|
- }).catch(error => {
|
|
|
-
|
|
|
- })
|
|
|
- },
|
|
|
- // 点击已读、未读、全部
|
|
|
- handleReadQuery(val) { },
|
|
|
|
|
|
}
|
|
|
}
|
|
@@ -464,4 +184,5 @@ export default {
|
|
|
.query-read-status_is-active {
|
|
|
background: #409EFF !important;
|
|
|
color: #ffffff !important;
|
|
|
-}</style>
|
|
|
+}
|
|
|
+</style>
|