guhongwei преди 3 години
родител
ревизия
ce772db26c

+ 7 - 2
src/router/index.js

@@ -10,12 +10,12 @@ Vue.use(VueRouter);
 const market = [
   {
     path: '/market/patentInfo/index',
-    meta: { title: '专利超市-专利展示' },
+    meta: { title: '专利超市-专利检索' },
     component: () => import('../views/market/patentInfo/index.vue'),
   },
   {
     path: '/market/patentInfo/detail',
-    meta: { title: '专利展示-详细信息' },
+    meta: { title: '专利检索-详细信息' },
     component: () => import('../views/market/patentInfo/detail.vue'),
   },
   {
@@ -65,6 +65,11 @@ const service = [
     meta: { title: '法律法规-详细信息' },
     component: () => import('../views/service/law/detail.vue'),
   },
+  {
+    path: '/service/dimension/index',
+    meta: { title: '咨询服务-专利维权' },
+    component: () => import('../views/service/dimension/index.vue'),
+  },
   {
     path: '/service/interflow/index',
     meta: { title: '咨询服务-交流互动' },

+ 5 - 1
src/views/index.vue

@@ -22,7 +22,7 @@ export default {
     return {
       menu: [
         {
-          label: '专利超市-专利展示',
+          label: '专利超市-专利检索',
           router: '/market/patentInfo/index',
         },
         {
@@ -45,6 +45,10 @@ export default {
           label: '咨询服务-法律法规',
           router: '/service/law/index',
         },
+        {
+          label: '咨询服务-专利维权',
+          router: '/service/dimension/index',
+        },
         {
           label: '咨询服务-交流互动',
           router: '/service/interflow/index',

+ 61 - 3
src/views/market/patentInfo/index.vue

@@ -1,30 +1,49 @@
 <template>
   <div id="index">
-    <admin-frame @search="search" :limit="limit" :total="total" :useNav="false">
+    <admin-frame @search="search" :limit="limit" :total="total" topType="2" :leftArrow="false" :rightArrow="false" :useNav="false">
       <template v-slot:info>
-        <list-1 :list="list" @detail="detail"></list-1>
+        <van-col :span="24" class="one">
+          <van-button type="info" size="small" @click="toSearch">查询条件</van-button>
+        </van-col>
+        <van-col :span="24" class="two">
+          <list-1 :list="list" @detail="detail"></list-1>
+        </van-col>
       </template>
     </admin-frame>
+    <van-dialog class="dialog" v-model="show" title="查询条件" :show-cancel-button="false" :show-confirm-button="false">
+      <search-1 :searchForm="searchForm" @toClose="toClose" @reseat="reseat" @onSubmit="onSubmit" @changeCreate="changeCreate"></search-1>
+    </van-dialog>
+    <van-calendar v-model="oneShow" @confirm="oneChange" :min-date="minDate" :max-date="maxDate" />
   </div>
 </template>
 
 <script>
+import search1 from './parts/search-1.vue';
 import list1 from './parts/list-1.vue';
 import adminFrame from '@frame/src/components/mobile-frame/mobile-main.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: patentinfo } = createNamespacedHelpers('patentinfo');
+const moment = require('moment');
 export default {
   name: 'index',
   props: {},
   components: {
     adminFrame,
     list1,
+    search1,
   },
   data: function () {
     return {
       list: [],
       limit: 5,
       total: 0,
+      // 查询条件
+      show: false,
+      searchForm: {},
+      // 选择申请日
+      oneShow: false,
+      minDate: new Date(1900, 1, 1),
+      maxDate: new Date(2050, 1, 1),
     };
   },
   async created() {
@@ -43,6 +62,33 @@ export default {
     detail(data) {
       this.$router.push({ path: '/market/patentInfo/detail', query: { id: data.id } });
     },
+    // 查询
+    toSearch() {
+      this.show = true;
+    },
+    // 取消查询
+    toClose() {
+      this.show = false;
+    },
+    // 重置条件
+    reseat() {
+      this.searchForm = {};
+      this.search();
+    },
+    // 提交查询
+    onSubmit({ data }) {
+      this.search(data);
+      this.show = false;
+    },
+    changeCreate() {
+      this.oneShow = true;
+    },
+    // 选择申请日
+    oneChange(value) {
+      let date = moment(value).format('YYYY-MM-DD');
+      this.$set(this.searchForm, `create_date`, date);
+      this.oneShow = false;
+    },
   },
   computed: {
     ...mapState(['user']),
@@ -60,4 +106,16 @@ export default {
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.one {
+  background-color: #fff;
+  padding: 10px 0;
+  text-align: center;
+}
+.dialog {
+  /deep/.van-dialog__content {
+    // height: 300px;
+    // overflow-y: auto;
+  }
+}
+</style>

+ 95 - 0
src/views/market/patentInfo/parts/search-1.vue

@@ -0,0 +1,95 @@
+<template>
+  <div id="search-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col :span="24" class="one">
+          <van-form>
+            <van-field v-model="searchForm.create_number" name="create_number" label="申请号" placeholder="请输入申请号" />
+            <van-field readonly clickable name="calendar" :value="searchForm.create_date" label="申请日" placeholder="点击选择" @click="changeCreate" />
+            <!-- <van-calendar v-model="oneShow" @confirm="oneChange" /> -->
+            <van-field v-model="searchForm.name" name="name" label="专利名称" placeholder="请输入专利名称" />
+            <van-field name="term" label="专利状态">
+              <template #input>
+                <van-radio-group v-model="searchForm.term" direction="horizontal">
+                  <van-radio name="有效">有效</van-radio>
+                  <van-radio name="审中">审中</van-radio>
+                </van-radio-group>
+              </template>
+            </van-field>
+            <van-field name="type" label="专利类型">
+              <template #input>
+                <van-radio-group v-model="searchForm.type" direction="horizontal">
+                  <van-radio name="发明">发明</van-radio>
+                  <van-radio name="实用新型">实用新型</van-radio>
+                </van-radio-group>
+              </template>
+            </van-field>
+            <div class="btn">
+              <van-button type="danger" size="small" @click="toClose">取消查询</van-button>
+              <van-button type="info" size="small" @click="reseat">重置条件</van-button>
+              <van-button type="primary" size="small" @click="onSubmit">提交查询</van-button>
+            </div>
+          </van-form>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'search-1',
+  props: {
+    searchForm: { type: Object },
+    oneShow: { type: Boolean },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    toClose() {
+      this.$emit('toClose');
+    },
+    reseat() {
+      this.$emit('reseat');
+    },
+    onSubmit() {
+      this.$emit('onSubmit', { data: this.searchForm });
+    },
+    // 选择申请日
+    changeCreate() {
+      this.$emit('changeCreate');
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .one {
+    .btn {
+      text-align: center;
+      margin: 10px 0;
+      .van-button {
+        margin: 0 5px;
+      }
+    }
+  }
+}
+</style>

+ 1 - 1
src/views/patent/mech/patent/navigation/index.vue

@@ -9,7 +9,7 @@
       </template>
     </admin-frame>
     <van-dialog v-model="show" title="查询条件" class="dialog" :showConfirmButton="false">
-      <search-1 :searchForm="searchForm" @reseatBtn="reseatBtn" @search="search" @></search-1>
+      <search-1 :searchForm="searchForm" @reseatBtn="reseatBtn" @search="search"></search-1>
     </van-dialog>
     <van-dialog v-model="twoShow" title="详细信息" class="twodialog" confirmButtonText="取消">
       <detail-1 :form="info"></detail-1>

+ 36 - 0
src/views/service/dimension/index.vue

@@ -0,0 +1,36 @@
+<template>
+  <div id="index">
+    <van-row>
+      <van-col span="24" class="main"> 专利维权 </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>