export default { data() { return { currentDisplayCount: 2, searchItems: [ {field: 'name', label: '政策名称', value: '', logicalOperator: 'AND', matchType: '精确'}, {field: 'type', label: '政策分类', value: '', logicalOperator: 'AND', matchType: '精确'}, {field: 'category', label: '分类', value: '', logicalOperator: 'AND', matchType: '精确'}, {field: 'range', label: '施行范围', value: '', logicalOperator: 'AND', matchType: '精确'}, {field: 'document', label: '发文字号', value: '', logicalOperator: 'AND', matchType: '精确'}, {field: 'form', label: '颁布形式', value: '', logicalOperator: 'AND', matchType: '精确'}, {field: 'organ', label: '制定机关', value: '', logicalOperator: 'AND', matchType: '精确'}, {field: 'text', label: '全文', value: '', logicalOperator: 'AND', matchType: '精确'}, ], searchForm: { name: '', // 政策名称 type: '', // 政策分类 category: '', // 分类 range: '', // 施行范围 form: '', // 颁布形式 document: '', // 发文字号 organ: '', // 发文机构 text: '', // 全文检索 }, tableData: [], // 统一使用一个tableData,根据是否有搜索条件决定显示数据 currentPage4: 1, // 初始化 currentPage4 pageSize: 10, // 分页大小 total: 0, // 总记录数 SList:[] }; }, computed: { limitedSearchItems() { return this.searchItems.slice(0,this.currentDisplayCount); // 只取前两项 }, }, async created() { await this.fetchPolicies(); }, methods: { async search1() { let isEmpty = true; for (let item of this.searchItems) { if (item.value) { isEmpty = false; break; } } if (isEmpty) { alert("至少需要填写第一个搜索框"); return; } let isAnyLineIncomplete = false; for (let item of this.searchItems) { if (!item.logicalOperator || !item.matchType) { isAnyLineIncomplete = true; break; } } if (isAnyLineIncomplete) { alert("请确保每一行的‘AND/OR’、输入框、精确/模糊都得到填写"); return; } let queryParts = []; for (let item of this.searchItems) { if (item.value) { let conditionPart = `${item.field}=${item.value}matchType=${item.matchType}`; if (queryParts.length >= 0) { conditionPart = `${encodeURIComponent(item.logicalOperator)}${conditionPart}`; } queryParts.push(conditionPart); } } let dp = queryParts.join('&'); console.log(dp); try { const response = await axios.get(`http://localhost:9090/policy/selectDP?dp=${queryParts}`); this.tableData = response.data; } catch (error) { console.error('Search failed:', error); } }, addSearchItem() { // 如果显示的检索项数量未达到最大值,则增加显示一项 if (this.currentDisplayCount < 8) { this.currentDisplayCount++; } else { alert("已达最大检索项数量!"); } }, removeSearchItem(index) { // 只允许从第三项开始删除,并确保至少保留两项 if (index > 1 && this.currentDisplayCount > 2) { this.currentDisplayCount--; } },
标签:logicalOperator,field,6.16,value,label,item,matchType From: https://www.cnblogs.com/zzqq1314/p/18253431