123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <template>
- <div class="advancedSearch">
- <div>
- <el-input type="textarea" v-model="condition" :rows="3" placeholder='高级检索语句,例:TI=(石墨烯 NOT 石墨烯薄膜 OR "graphene film") AND AD=2018 AND GD=20180205~20190101'></el-input>
- <div style="display:flex;justify-content: flex-end;margin-top:20px">
- <el-button type="danger" plain size="small" style="width:100px" @click="cancel">清空</el-button>
- <el-button type="primary" size="small" style="width:100px" @click="search">检索</el-button>
- </div>
- </div>
- <div>
- <div>
- <div><b>表达式与语法:</b></div>
- 检索条件表达式,可支持AND、OR、NOT等逻辑运算符号(不区分大小写)和等于(=)比较符号,其中:<br>
- 1、日期栏位的值支持yyyy. yyyyMM、 yyyyMMdd等格式;已知时间的连续范围为“2006-02-02”到“2009-01-01”,应输入:<span class="red">AD=20060202~20090101</span>;注意:日期的范围检索必须精确到日。<br>
- 2、专利类型(PT)栏位的值包括:1、8 为发明 检索发明,2、9 为新型,3 为外观(注意:仅中国专利);例:<span class="red">PT=1</span><br>
- 3、法律状态(LG)栏位的值包括:1:有效、2:失效、3:审中(注意:仅中国专利);例:<span class="red">LG=1</span><br>
- 4、国家〔地区)相关栏位的值为国家地区代码,需要大写,例如:CN代表中国、US代表美国、JP代表日本等;<br>
- 5、搜索条件中有空格把整个搜索条件前后加上英文双引号,例如:<span class="red">TI=(石墨烯 NOT 石墨烯薄膜 OR "graphene film") AND AD=2018 AND GD=20180205~20190101</span>;<br>
- </div>
- <div>
- <div><b>检索栏位包括:</b></div>
- <div class="field">
- <p v-for="item in field.filter(item=>{return item.type != (this.DBType=='WD'?1:2)})" :key="item.label"><span style="color:red">{{ item.value }}</span>:{{ item.label }}</p>
- </div>
- <div><b>省市代码(仅中国专利):</b></div>
- <div v-html="changeRed('province')">
-
- </div>
- <div><b>国别代码:</b></div>
- <div style="display:flex;flex-wrap:wrap;justify-content: space-between;">
- <span v-for="(item) in countryList" :key="item.value"><span class="red">{{ item.value }}</span> {{ item.label }} </span>
- </div>
- </div>
- </div>
- </div>
- </template>
- <script>
- export default {
- name:'AdvancedSearch',
- components: {},
- props:['countryList','DBType','editData'],
- data() {
- return {
- condition:'',
- field:this.$constants.searchField,
- };
- },
- watch: {
- },
- computed: {},
-
- created() {},
- mounted() {
- this.field = [].concat(...this.field.map(item=>{return item.children}))
- if(this.editData && this.editData.component == 'AdvancedSearch'){
- if(this.editData.data){
- this.$set(this,'condition',this.editData.data)
- }
- }
- },
- methods: {
- changeRed(val){
- if(val == 'province'){
- var str = ' 北京 12 天津 13 河北 14 山西 15 内蒙 21 辽宁 22 吉林 23 黑龙江 31 上海 32 江苏 33'
- +'浙江 34 安徽 35 福建 36 江西 37 山东 41 河南 42 湖北 43 湖南 44 广东 45 广西 51 四'
- +'川 52 贵州 53 云南 54 西藏 61 陕西 62 甘肃 63 青海 64 宁夏 65 新疆 66 海南 71 台'
- +'湾 81 广州 83 武汉 85 重庆 87 西安 89 沈阳 91 大连 93 哈尔滨 94 深圳 95 青岛 97 宁'
- +'波 HK 香港'
- var regx = new RegExp("[0-9A-Z]+", "g")
- }
- return "<span style='color:red'>11 </span>"+str.replace(regx,"<span style='color:red'> $& </span>")
- },
- cancel(){
- this.condition = ''
- },
- search(){
- var a = this.condition
- // if(a.trim().indexOf('(')!=0){
- // a = `${a}`
- // }
- var params = {
- DBType:this.DBType,
- component:'AdvancedSearch'
- }
- this.$emit('search',a.trim(),params)
- },
- },
- };
- </script>
- <style lang="scss" scoped>
- .advancedSearch{
- padding: 10px;
- }
- .field{
- display: flex;
- flex-wrap:wrap;
- p{
- width:200px;
- margin:5px;
- }
- }
- .red{
- color:red
- }
- </style>
|