소스 검색

菜单重新部署,其他成果

guhongwei 3 년 전
부모
커밋
4c42c16621
31개의 변경된 파일2630개의 추가작업 그리고 21개의 파일을 삭제
  1. 45 0
      src/layout/infoview/achievement/info-1.vue
  2. 94 0
      src/layout/infoview/achievement/list-1.vue
  3. 109 0
      src/layout/infoview/equipment/equipment-total.vue
  4. 49 0
      src/layout/infoview/equipment/info-1.vue
  5. 91 0
      src/layout/infoview/equipment/list-1.vue
  6. 54 0
      src/layout/infoview/laboratory/info-1.vue
  7. 91 0
      src/layout/infoview/laboratory/list-1.vue
  8. 46 0
      src/layout/infoview/research/info-1.vue
  9. 95 0
      src/layout/infoview/research/list-1.vue
  10. 66 0
      src/layout/infoview/task/info-1.vue
  11. 94 0
      src/layout/infoview/task/list-1.vue
  12. 73 0
      src/layout/infoview/task/search-1.vue
  13. 57 0
      src/layout/scientific/award/info-1.vue
  14. 91 0
      src/layout/scientific/award/list-1.vue
  15. 70 0
      src/layout/scientific/award/search-1.vue
  16. 55 0
      src/layout/scientific/otherachieve/info-1.vue
  17. 91 0
      src/layout/scientific/otherachieve/list-1.vue
  18. 68 0
      src/layout/scientific/otherachieve/search-1.vue
  19. 57 0
      src/layout/scientific/paper/info-1.vue
  20. 91 0
      src/layout/scientific/paper/list-1.vue
  21. 71 0
      src/layout/scientific/paper/search-1.vue
  22. 50 1
      src/router/index.js
  23. 17 20
      src/views/index.vue
  24. 79 0
      src/views/infoview/achievement/index.vue
  25. 107 0
      src/views/infoview/equipment/index.vue
  26. 101 0
      src/views/infoview/laboratory/index.vue
  27. 157 0
      src/views/infoview/research/index.vue
  28. 170 0
      src/views/infoview/task/index.vue
  29. 164 0
      src/views/scientific/award/index.vue
  30. 112 0
      src/views/scientific/otherachieve/index.vue
  31. 115 0
      src/views/scientific/paper/index.vue

+ 45 - 0
src/layout/infoview/achievement/info-1.vue

@@ -0,0 +1,45 @@
+<template>
+  <div id="info-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <van-form label-width="4em">
+            <van-field v-model="info.name" name="name" label="成果名称" readonly />
+            <van-field v-model="info.content" name="content" label="成果内容" type="textarea" autosize rows="1" readonly />
+          </van-form>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'info-1',
+  props: {
+    info: { type: Object },
+  },
+  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>

+ 94 - 0
src/layout/infoview/achievement/list-1.vue

@@ -0,0 +1,94 @@
+<template>
+  <div id="list-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="list" v-for="(item, index) in list" :key="index">
+          <van-col span="24" class="title textOver">
+            {{ item.name }}
+          </van-col>
+          <van-col span="24" class="other">
+            <van-col span="24" class="otherInfo">
+              成果内容:<span>{{ item.content || '暂无' }}</span>
+            </van-col>
+          </van-col>
+          <van-col span="24" class="btn">
+            <van-button type="info" size="small" @click="toView(item)">详细信息</van-button>
+          </van-col>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'list-1',
+  props: {
+    list: { type: Array },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    // 查看详情
+    toView(data) {
+      this.$emit('toView', data);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .list {
+    background-color: #fff;
+    margin: 0 0 8px 0;
+    padding: 8px;
+    border-radius: 5px;
+    .title {
+      font-size: 16px;
+      font-weight: bold;
+      margin: 0 0 5px 0;
+    }
+    .other {
+      margin: 0 0 5px 0;
+      .otherInfo {
+        font-size: 14px;
+        color: #666;
+        margin: 0 0 5px 0;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        -webkit-line-clamp: 3;
+        word-break: break-all;
+        display: -webkit-box;
+        -webkit-box-orient: vertical;
+        span {
+          color: #000;
+        }
+      }
+    }
+    .btn {
+      text-align: center;
+      .van-button {
+        margin: 0 5px;
+      }
+    }
+  }
+}
+</style>

+ 109 - 0
src/layout/infoview/equipment/equipment-total.vue

@@ -0,0 +1,109 @@
+<template>
+  <div id="equipment-total">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <p>实验室30万元以上设备情况</p>
+          <p>
+            *注:每台设备标准机时为K=1800小时/年;研究工作总机时(D)是指每台仪器每年本实验室研究人员使用的总时间;服务工作机时(E)是指每台仪器每年非本实验室工作人员使用的总时间;机时率(%)=(D+E)/K。*
+          </p>
+        </van-col>
+        <van-col span="24" class="two">
+          <van-col span="24" class="two_1">
+            <p>设备总台数(台)</p>
+            <p>{{ totalInfo.p1 }}</p>
+          </van-col>
+          <van-col span="24" class="two_1">
+            <p>大型仪器服务共享平台(台)</p>
+            <p>{{ totalInfo.p1 }}</p>
+          </van-col>
+          <van-col span="24" class="two_1">
+            <p>设备总价值(万元)</p>
+            <p>{{ totalInfo.p1 }}</p>
+          </van-col>
+          <van-col span="24" class="two_1">
+            <p>平均每台仪器研究工作总时(小时)</p>
+            <p>{{ totalInfo.p1 }}</p>
+          </van-col>
+          <van-col span="24" class="two_1">
+            <p>平均每台仪器服务工作总时(小时)</p>
+            <p>{{ totalInfo.p1 }}</p>
+          </van-col>
+          <van-col span="24" class="two_1">
+            <p>机时率(%)</p>
+            <p>{{ totalInfo.p1 }}</p>
+          </van-col>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'equipment-total',
+  props: {
+    totalInfo: { type: Object },
+  },
+  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>
+.main {
+  background-color: #fff;
+  margin: 0 0 5px 0;
+  .one {
+    padding: 5px;
+
+    p:first-child {
+      text-align: center;
+      font-weight: bold;
+      margin: 0 0 5px 0;
+    }
+    p:last-child {
+      font-size: 14px;
+      color: #409eff9f;
+    }
+  }
+  .two {
+    padding: 0 8px;
+    .two_1 {
+      border-radius: 8px;
+      margin: 0 0 5px 0;
+      padding: 8px;
+      p:first-child {
+        text-align: center;
+        font-size: 15px;
+        font-weight: bold;
+        margin: 0px 0 4px 0;
+      }
+      p:last-child {
+        border: 1px solid #ccc;
+        border-radius: 5px;
+        background-color: #f1f1f1;
+        padding: 5px;
+      }
+    }
+  }
+}
+</style>

+ 49 - 0
src/layout/infoview/equipment/info-1.vue

@@ -0,0 +1,49 @@
+<template>
+  <div id="info-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <van-form label-width="11em">
+            <van-field v-model="info.name" name="name" label="设备名称" readonly label-width="4em" />
+            <van-field v-model="info.equipmentMoney" name="equipmentMoney" label="设备价值(万元)" readonly />
+            <van-field v-model="info.instrumentsNumb" name="instrumentsNumb" label="是否加入大型仪器服务共享平台" readonly />
+            <van-field v-model="info.researchHour" name="researchHour" label="仪器研究工作计时(小时)" readonly />
+            <van-field v-model="info.servicesHour" name="servicesHour" label="仪器服务工作计时(小时)" readonly />
+            <van-field v-model="info.rate" name="rate" label="机时率(%)" readonly label-width="5em" />
+          </van-form>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'info-1',
+  props: {
+    info: { type: Object },
+  },
+  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>

+ 91 - 0
src/layout/infoview/equipment/list-1.vue

@@ -0,0 +1,91 @@
+<template>
+  <div id="list-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="list" v-for="(item, index) in list" :key="index">
+          <van-col span="24" class="title textOver">
+            {{ item.name }}
+          </van-col>
+          <van-col span="24" class="other">
+            <van-col span="24" class="otherInfo">
+              是否加入大型仪器服务共享平台:<span>{{ item.instrumentsNumb == 'Y' ? '是' : '否' }}</span>
+            </van-col>
+            <van-col span="24" class="otherInfo">
+              设备价值(万元):<span>{{ item.equipmentMoney || '暂无' }}</span>
+            </van-col>
+          </van-col>
+          <van-col span="24" class="btn">
+            <van-button type="info" size="small" @click="toView(item)">详细信息</van-button>
+          </van-col>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'list-1',
+  props: {
+    list: { type: Array },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    // 查看详情
+    toView(data) {
+      this.$emit('toView', data);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .list {
+    background-color: #fff;
+    margin: 0 0 8px 0;
+    padding: 8px;
+    border-radius: 5px;
+    .title {
+      font-size: 16px;
+      font-weight: bold;
+      margin: 0 0 5px 0;
+    }
+    .other {
+      margin: 0 0 5px 0;
+      .otherInfo {
+        font-size: 14px;
+        color: #666;
+        margin: 0 0 5px 0;
+        span {
+          color: #000;
+        }
+      }
+    }
+    .btn {
+      text-align: center;
+      .van-button {
+        margin: 0 5px;
+      }
+    }
+  }
+}
+</style>

+ 54 - 0
src/layout/infoview/laboratory/info-1.vue

@@ -0,0 +1,54 @@
+<template>
+  <div id="info-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <van-form>
+            <van-field v-model="info.name" name="name" label="实验室名称" readonly />
+            <van-field v-model="info.englishName" name="englishName" label="英文名称" readonly />
+            <van-field v-model="info.chiefName" name="chiefName" label="实验室主任" readonly />
+            <van-field v-model="info.labPerson" name="labPerson" label="实验室联系人" readonly />
+            <van-field v-model="info.labPhone" name="labPhone" label="实验室联系人电话" readonly />
+            <van-field v-model="info.labEmail" name="labEmail" label="E-mail地址" readonly />
+            <van-field v-model="info.unitPerson" name="unitPerson" label="单位联系人" readonly />
+            <van-field v-model="info.unitPhone" name="unitPhone" label="单位联系系电话" readonly />
+            <van-field v-model="info.unitName" name="unitName" label="依托单位名称" readonly />
+            <van-field v-model="info.labAcreage" name="labAcreage" label="实验室面积" readonly />
+            <van-field v-model="info.labAddress" name="labAddress" label="实验室地址" readonly />
+          </van-form>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'info-1',
+  props: {
+    info: { type: Object },
+  },
+  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>

+ 91 - 0
src/layout/infoview/laboratory/list-1.vue

@@ -0,0 +1,91 @@
+<template>
+  <div id="list-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="list" v-for="(item, index) in list" :key="index">
+          <van-col span="24" class="title textOver">
+            {{ item.name }}
+          </van-col>
+          <van-col span="24" class="other">
+            <van-col span="24" class="otherInfo">
+              实验室主任:<span>{{ item.chiefName || '暂无' }}</span>
+            </van-col>
+            <van-col span="24" class="otherInfo">
+              实验室联系人:<span>{{ item.labPerson || '暂无' }}</span>
+            </van-col>
+          </van-col>
+          <van-col span="24" class="btn">
+            <van-button type="info" size="small" @click="toView(item)">详细信息</van-button>
+          </van-col>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'list-1',
+  props: {
+    list: { type: Array },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    // 查看详情
+    toView(data) {
+      this.$emit('toView', data);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .list {
+    background-color: #fff;
+    margin: 0 0 8px 0;
+    padding: 8px;
+    border-radius: 5px;
+    .title {
+      font-size: 16px;
+      font-weight: bold;
+      margin: 0 0 5px 0;
+    }
+    .other {
+      margin: 0 0 5px 0;
+      .otherInfo {
+        font-size: 14px;
+        color: #666;
+        margin: 0 0 5px 0;
+        span {
+          color: #000;
+        }
+      }
+    }
+    .btn {
+      text-align: center;
+      .van-button {
+        margin: 0 5px;
+      }
+    }
+  }
+}
+</style>

+ 46 - 0
src/layout/infoview/research/info-1.vue

@@ -0,0 +1,46 @@
+<template>
+  <div id="info-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <van-form>
+            <van-field v-model="info.name" name="name" label="研究方向" readonly />
+            <van-field v-model="info.personName" name="personName" label="方向带头人" readonly />
+            <van-field v-model="info.persons" name="核心成员" label="核心成员" type="textarea" autosize rows="1" readonly />
+          </van-form>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'info-1',
+  props: {
+    info: { type: Object },
+  },
+  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>

+ 95 - 0
src/layout/infoview/research/list-1.vue

@@ -0,0 +1,95 @@
+<template>
+  <div id="list-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="list" v-for="(item, index) in list" :key="index">
+          <van-col span="24" class="title textOver">
+            {{ item.name }}
+          </van-col>
+          <van-col span="24" class="other">
+            <van-col span="24" class="otherInfo">
+              方向带头人:<span>{{ item.personName || '暂无' }}</span>
+            </van-col>
+            <van-col span="24" class="otherInfo">
+              核心成员:<span>{{ getData(item) || '暂无' }}</span>
+            </van-col>
+          </van-col>
+          <van-col span="24" class="btn">
+            <van-button type="info" size="small" @click="toView(item)">详细信息</van-button>
+          </van-col>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'list-1',
+  props: {
+    list: { type: Array },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    // 查看详情
+    toView(data) {
+      this.$emit('toView', data);
+    },
+    // 整理数据
+    getData(data) {
+      return JSON.stringify(data.persons.map((i) => i.personName));
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .list {
+    background-color: #fff;
+    margin: 0 0 8px 0;
+    padding: 8px;
+    border-radius: 5px;
+    .title {
+      font-size: 16px;
+      font-weight: bold;
+      margin: 0 0 5px 0;
+    }
+    .other {
+      margin: 0 0 5px 0;
+      .otherInfo {
+        font-size: 14px;
+        color: #666;
+        margin: 0 0 5px 0;
+        span {
+          color: #000;
+        }
+      }
+    }
+    .btn {
+      text-align: center;
+      .van-button {
+        margin: 0 5px;
+      }
+    }
+  }
+}
+</style>

+ 66 - 0
src/layout/infoview/task/info-1.vue

@@ -0,0 +1,66 @@
+<template>
+  <div id="info-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <van-form label-width="5em">
+            <van-field v-model="info.name" name="name" label="项目名称" readonly />
+            <van-field v-model="info.time" name="time" label="起止时间" readonly />
+            <van-field v-model="info.laiyuancontent" name="laiyuancontent" label="项目来源" type="textarea" autosize rows="1" readonly />
+            <van-field v-model="info.projectlevelone" name="projectlevelone" label="项目编号" readonly />
+            <van-field v-model="info.money" name="money" label="经费(万元)" readonly />
+            <van-field v-model="info.userName" name="userName" label="负责人" readonly />
+            <van-field v-model="info.persons" name="persons" label="主要参加人" type="textarea" autosize rows="1" readonly />
+            <van-field v-model="info.userproportion" name="userproportion" label="核心成员比例(%)" readonly />
+            <van-field v-model="info.directionName" name="directionName" label="研究方向" type="textarea" autosize rows="1" readonly />
+            <van-field v-model="info.cooperativeunit" name="cooperativeunit" label="合作单位" type="textarea" autosize rows="1" readonly />
+            <van-field v-model="info.projectsource" name="projectsource" label="转态/转化效益(万元)" readonly />
+            <van-field v-model="info.projectsourcetwo" name="projectsourcetwo" label="项目来源2" type="textarea" autosize rows="1" readonly />
+            <van-field v-model="info.usernum" name="usernum" label="项目总人数" readonly />
+            <van-field v-model="info.laiyuancontent" name="laiyuancontent" label="项目来源文本" type="textarea" autosize rows="1" readonly />
+            <van-field v-model="info.labname" name="labname" label="立项标准部门(单位)" type="textarea" autosize rows="1" readonly />
+          </van-form>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'info-1',
+  props: {
+    info: { type: Object },
+  },
+  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>
+.main {
+  .one {
+    .van-divider {
+      margin: 10px 0;
+    }
+  }
+}
+</style>

+ 94 - 0
src/layout/infoview/task/list-1.vue

@@ -0,0 +1,94 @@
+<template>
+  <div id="list-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="list" v-for="(item, index) in list" :key="index">
+          <van-col span="24" class="title textOver">
+            {{ item.name }}
+          </van-col>
+          <van-col span="24" class="other">
+            <van-col span="24" class="otherInfo">
+              项目(课题)编号:<span>{{ item.projectlevelone || '暂无' }}</span>
+            </van-col>
+            <van-col span="24" class="otherInfo">
+              起止时间:<span>{{ item.time || '暂无' }}</span>
+            </van-col>
+            <van-col span="24" class="otherInfo">
+              项目来源:<span>{{ item.laiyuancontent || '暂无' }}</span>
+            </van-col>
+          </van-col>
+          <van-col span="24" class="btn">
+            <van-button type="info" size="small" @click="toView(item)">详细信息</van-button>
+          </van-col>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'list-1',
+  props: {
+    list: { type: Array },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    // 查看详情
+    toView(data) {
+      this.$emit('toView', data);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .list {
+    background-color: #fff;
+    margin: 0 0 8px 0;
+    padding: 8px;
+    border-radius: 5px;
+    .title {
+      font-size: 16px;
+      font-weight: bold;
+      margin: 0 0 5px 0;
+    }
+    .other {
+      margin: 0 0 5px 0;
+      .otherInfo {
+        font-size: 14px;
+        color: #666;
+        margin: 0 0 5px 0;
+        span {
+          color: #000;
+        }
+      }
+    }
+    .btn {
+      text-align: center;
+      .van-button {
+        margin: 0 5px;
+      }
+    }
+  }
+}
+</style>

+ 73 - 0
src/layout/infoview/task/search-1.vue

@@ -0,0 +1,73 @@
+<template>
+  <div id="search-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <van-form label-width="4em">
+            <van-field v-model="form.name" name="name" label="项目(课题)名称" placeholder="请输入项目(课题)名称" />
+            <van-field v-model="form.laiyuancontent" name="laiyuancontent" label="项目来源" placeholder="请输入项目来源" />
+            <van-field v-model="form.projectlevelone" name="projectlevelone" label="项目(课题)编号" placeholder="请输入项目(课题)编号" />
+            <van-field v-model="form.money" name="money" type="number" label="经费(万元)" placeholder="请输入经费(万元)" />
+            <van-field v-model="form.userName" name="userName" label="负责人" placeholder="请输入负责人" />
+            <van-field v-model="form.directionName" name="directionName" label="所属研究方向" placeholder="请输入所属研究方向" />
+            <van-field v-model="form.cooperativeunit" name="cooperativeunit" label="合作单位" placeholder="请输入合作单位" />
+            <van-field v-model="form.projectsource" name="projectsource" type="number" label="转化效益(万元)" placeholder="请输入转化效益(万元)" />
+            <div class="btn">
+              <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';
+const moment = require('moment');
+export default {
+  name: 'search-1',
+  props: { form: { type: Object } },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    reseat() {
+      this.$emit('reseat');
+    },
+    onSubmit() {
+      this.$emit('onSubmit', { data: this.form });
+    },
+  },
+  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>

+ 57 - 0
src/layout/scientific/award/info-1.vue

@@ -0,0 +1,57 @@
+<template>
+  <div id="info-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <van-form label-width="4em">
+            <van-field v-model="info.name" name="name" label="成果名称" readonly />
+            <van-field v-model="info.resulnumber" name="resulnumber" label="成果编号" readonly />
+            <van-field v-model="info.type" name="type" label="类别" readonly />
+            <van-field v-model="info.level" name="level" label="获奖等级" readonly />
+            <van-field v-model="info.directionName" name="directionName" label="研究方向" readonly />
+            <van-field v-model="info.person" name="person" label="获奖人" readonly />
+          </van-form>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'info-1',
+  props: {
+    info: { type: Object },
+  },
+  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>
+.main {
+  .one {
+    .van-divider {
+      margin: 10px 0;
+    }
+  }
+}
+</style>

+ 91 - 0
src/layout/scientific/award/list-1.vue

@@ -0,0 +1,91 @@
+<template>
+  <div id="list-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="list" v-for="(item, index) in list" :key="index">
+          <van-col span="24" class="title textOver">
+            {{ item.name }}
+          </van-col>
+          <van-col span="24" class="other">
+            <van-col span="24" class="otherInfo">
+              成果编号:<span>{{ item.resulnumber || '暂无' }}</span>
+            </van-col>
+            <van-col span="24" class="otherInfo">
+              获奖等级:<span>{{ item.level || '暂无' }}</span>
+            </van-col>
+          </van-col>
+          <van-col span="24" class="btn">
+            <van-button type="info" size="small" @click="toView(item)">详细信息</van-button>
+          </van-col>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'list-1',
+  props: {
+    list: { type: Array },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    // 查看详情
+    toView(data) {
+      this.$emit('toView', data);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .list {
+    background-color: #fff;
+    margin: 0 0 8px 0;
+    padding: 8px;
+    border-radius: 5px;
+    .title {
+      font-size: 16px;
+      font-weight: bold;
+      margin: 0 0 5px 0;
+    }
+    .other {
+      margin: 0 0 5px 0;
+      .otherInfo {
+        font-size: 14px;
+        color: #666;
+        margin: 0 0 5px 0;
+        span {
+          color: #000;
+        }
+      }
+    }
+    .btn {
+      text-align: center;
+      .van-button {
+        margin: 0 5px;
+      }
+    }
+  }
+}
+</style>

+ 70 - 0
src/layout/scientific/award/search-1.vue

@@ -0,0 +1,70 @@
+<template>
+  <div id="search-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <van-form label-width="4em">
+            <van-field v-model="form.type" name="type" label="类别" placeholder="请输入类别" />
+            <van-field v-model="form.resulnumber" name="resulnumber" label="成果编号" placeholder="请输入成果编号" />
+            <van-field v-model="form.unit" name="unit" label="成果名称" placeholder="请输入成果名称" />
+            <van-field v-model="form.level" name="level" label="获奖等级" placeholder="请输入获奖等级" />
+            <van-field v-model="form.directionName" name="directionName" label="研究方向" placeholder="请输入研究方向" />
+            <div class="btn">
+              <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';
+const moment = require('moment');
+export default {
+  name: 'search-1',
+  props: { form: { type: Object } },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    reseat() {
+      this.$emit('reseat');
+    },
+    onSubmit() {
+      this.$emit('onSubmit', { data: this.form });
+    },
+  },
+  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>

+ 55 - 0
src/layout/scientific/otherachieve/info-1.vue

@@ -0,0 +1,55 @@
+<template>
+  <div id="info-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <van-form label-width="5em">
+            <van-field v-model="info.name" name="name" label="成果名称" readonly />
+            <van-field v-model="info.type" name="type" label="成果类型" readonly />
+            <van-field v-model="info.directionName" name="directionName" label="研究方向" readonly />
+            <van-field v-model="info.content" name="content" label="成果简介" type="textarea" autosize rows="1" readonly />
+          </van-form>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'info-1',
+  props: {
+    info: { type: Object },
+  },
+  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>
+.main {
+  .one {
+    .van-divider {
+      margin: 10px 0;
+    }
+  }
+}
+</style>

+ 91 - 0
src/layout/scientific/otherachieve/list-1.vue

@@ -0,0 +1,91 @@
+<template>
+  <div id="list-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="list" v-for="(item, index) in list" :key="index">
+          <van-col span="24" class="title textOver">
+            {{ item.name }}
+          </van-col>
+          <van-col span="24" class="other">
+            <van-col span="24" class="otherInfo">
+              成果类型:<span>{{ item.type || '暂无' }}</span>
+            </van-col>
+            <van-col span="24" class="otherInfo">
+              研究方向:<span>{{ item.directionName || '暂无' }}</span>
+            </van-col>
+          </van-col>
+          <van-col span="24" class="btn">
+            <van-button type="info" size="small" @click="toView(item)">详细信息</van-button>
+          </van-col>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'list-1',
+  props: {
+    list: { type: Array },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    // 查看详情
+    toView(data) {
+      this.$emit('toView', data);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .list {
+    background-color: #fff;
+    margin: 0 0 8px 0;
+    padding: 8px;
+    border-radius: 5px;
+    .title {
+      font-size: 16px;
+      font-weight: bold;
+      margin: 0 0 5px 0;
+    }
+    .other {
+      margin: 0 0 5px 0;
+      .otherInfo {
+        font-size: 14px;
+        color: #666;
+        margin: 0 0 5px 0;
+        span {
+          color: #000;
+        }
+      }
+    }
+    .btn {
+      text-align: center;
+      .van-button {
+        margin: 0 5px;
+      }
+    }
+  }
+}
+</style>

+ 68 - 0
src/layout/scientific/otherachieve/search-1.vue

@@ -0,0 +1,68 @@
+<template>
+  <div id="search-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <van-form label-width="4em">
+            <van-field v-model="form.name" name="name" label="成果名称" placeholder="请输入成果名称" />
+            <van-field v-model="form.type" name="type" label="成果类型" placeholder="请输入成果类型" />
+            <van-field v-model="form.directionName" name="directionName" label="研究方向" placeholder="请输入研究方向" />
+            <div class="btn">
+              <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';
+const moment = require('moment');
+export default {
+  name: 'search-1',
+  props: { form: { type: Object } },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    reseat() {
+      this.$emit('reseat');
+    },
+    onSubmit() {
+      this.$emit('onSubmit', { data: this.form });
+    },
+  },
+  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>

+ 57 - 0
src/layout/scientific/paper/info-1.vue

@@ -0,0 +1,57 @@
+<template>
+  <div id="info-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <van-form label-width="5em">
+            <van-field v-model="info.title" name="title" label="论文题目" readonly />
+            <van-field v-model="info.number" name="number" label="期刊及卷号" readonly />
+            <van-field v-model="info.startnum" name="startnum" label="起止页码" readonly />
+            <van-field v-model="info.type" name="type" label="论文类别" readonly />
+            <van-field v-model="info.directionName" name="directionName" label="研究方向" readonly />
+            <van-field v-model="info.userName" name="userName" label="作者" readonly />
+          </van-form>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'info-1',
+  props: {
+    info: { type: Object },
+  },
+  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>
+.main {
+  .one {
+    .van-divider {
+      margin: 10px 0;
+    }
+  }
+}
+</style>

+ 91 - 0
src/layout/scientific/paper/list-1.vue

@@ -0,0 +1,91 @@
+<template>
+  <div id="list-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="list" v-for="(item, index) in list" :key="index">
+          <van-col span="24" class="title textOver">
+            {{ item.title }}
+          </van-col>
+          <van-col span="24" class="other">
+            <van-col span="24" class="otherInfo">
+              期刊及卷号:<span>{{ item.number || '暂无' }}</span>
+            </van-col>
+            <van-col span="24" class="otherInfo">
+              作者:<span>{{ item.userName || '暂无' }}</span>
+            </van-col>
+          </van-col>
+          <van-col span="24" class="btn">
+            <van-button type="info" size="small" @click="toView(item)">详细信息</van-button>
+          </van-col>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'list-1',
+  props: {
+    list: { type: Array },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    // 查看详情
+    toView(data) {
+      this.$emit('toView', data);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .list {
+    background-color: #fff;
+    margin: 0 0 8px 0;
+    padding: 8px;
+    border-radius: 5px;
+    .title {
+      font-size: 16px;
+      font-weight: bold;
+      margin: 0 0 5px 0;
+    }
+    .other {
+      margin: 0 0 5px 0;
+      .otherInfo {
+        font-size: 14px;
+        color: #666;
+        margin: 0 0 5px 0;
+        span {
+          color: #000;
+        }
+      }
+    }
+    .btn {
+      text-align: center;
+      .van-button {
+        margin: 0 5px;
+      }
+    }
+  }
+}
+</style>

+ 71 - 0
src/layout/scientific/paper/search-1.vue

@@ -0,0 +1,71 @@
+<template>
+  <div id="search-1">
+    <van-row>
+      <van-col span="24" class="main">
+        <van-col span="24" class="one">
+          <van-form label-width="4em">
+            <van-field v-model="form.name" name="name" label="论文题目" placeholder="请输入论文题目" />
+            <van-field v-model="form.name" name="name" label="期刊卷号" placeholder="请输入期刊卷号" />
+            <van-field v-model="form.name" name="name" label="起止页码" placeholder="请输入起止页码" />
+            <van-field v-model="form.name" name="name" label="论文类别" placeholder="请输入论文类别" />
+            <van-field v-model="form.name" name="name" label="研究方向" placeholder="请输入研究方向" />
+            <van-field v-model="form.name" name="name" label="作者" placeholder="请输入作者" />
+            <div class="btn">
+              <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';
+const moment = require('moment');
+export default {
+  name: 'search-1',
+  props: { form: { type: Object } },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    reseat() {
+      this.$emit('reseat');
+    },
+    onSubmit() {
+      this.$emit('onSubmit', { data: this.form });
+    },
+  },
+  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>

+ 50 - 1
src/router/index.js

@@ -5,13 +5,62 @@ VueRouter.prototype.push = function push(location) {
   return originalPush.call(this, location).catch((err) => err);
 };
 Vue.use(VueRouter);
-
+// 信息展示
+const infoview = [
+  {
+    path: '/infoview/laboratory/index',
+    meta: { title: '重点实验室信息展示' },
+    component: () => import('../views/infoview/laboratory/index.vue'),
+  },
+  {
+    path: '/infoview/research/index',
+    meta: { title: '研究方向信息展示' },
+    component: () => import('../views/infoview/research/index.vue'),
+  },
+  {
+    path: '/infoview/equipment/index',
+    meta: { title: '设备信息展示' },
+    component: () => import('../views/infoview/equipment/index.vue'),
+  },
+  {
+    path: '/infoview/achievement/index',
+    meta: { title: '重要成果信息展示' },
+    component: () => import('../views/infoview/achievement/index.vue'),
+  },
+  {
+    path: '/infoview/task/index',
+    meta: { title: '实验室建设期内承担项目明细' },
+    component: () => import('../views/infoview/task/index.vue'),
+  },
+];
+// 科研信息
+const scientific = [
+  {
+    path: '/scientific/award/index',
+    meta: { title: '实验室建设期内获奖明细' },
+    component: () => import('../views/scientific/award/index.vue'),
+  },
+  {
+    path: '/scientific/paper/index',
+    meta: { title: '实验室建设期内发表学术论文明细' },
+    component: () => import('../views/scientific/paper/index.vue'),
+  },
+  {
+    path: '/scientific/otherachieve/index',
+    meta: { title: '其他成果' },
+    component: () => import('../views/scientific/otherachieve/index.vue'),
+  },
+];
 const web = [
   {
     path: '/',
     meta: { title: '网站首页' },
     component: () => import('../views/index.vue'),
   },
+  // 信息展示
+  ...infoview,
+  // 科研信息
+  ...scientific,
 ];
 const routes = [...web];
 const router = new VueRouter({

+ 17 - 20
src/views/index.vue

@@ -24,40 +24,37 @@ export default {
       menu: [
         // 信息展示
         {
-          label: '信息展示-重点实验室信息展示',
-          router: '/infoview-laboratory/index',
+          label: '信息展示-重点实验室',
+          router: '/infoview/laboratory/index',
         },
         {
-          label: '信息展示-研究方向信息展示',
-          router: '/infoview-research/index',
+          label: '信息展示-研究方向',
+          router: '/infoview/research/index',
         },
         {
-          label: '信息展示-设备信息展示',
-          router: '/infoview-equipment/index',
+          label: '信息展示-设备信息',
+          router: '/infoview/equipment/index',
         },
         {
-          label: '信息展示-重要成果信息展示',
-          router: '/infoview-achievement/index',
+          label: '信息展示-重要成果',
+          router: '/infoview/achievement/index',
         },
-        // 科研信息
         {
-          label: '科研信息',
-          router: '/scientific/index',
+          label: '信息展示-承担科研任务',
+          router: '/infoview/task/index',
         },
-        // 学术交流
+        // 科研信息
         {
-          label: '学术交流',
-          router: '/learning/index',
+          label: '科研信息-获奖信息',
+          router: '/scientific/award/index',
         },
-        // 队伍建设与人才培养
         {
-          label: '队伍建设与人才培养',
-          router: '/ranks/index',
+          label: '科研信息-论文发表情况',
+          router: '/scientific/paper/index',
         },
-        // 平台活动时间段公式
         {
-          label: '平台活动时间段公示',
-          router: '/activity-time/index',
+          label: '科研信息-其他成果',
+          router: '/scientific/otherachieve/index',
         },
       ],
     };

+ 79 - 0
src/views/infoview/achievement/index.vue

@@ -0,0 +1,79 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" :useNav="false">
+      <template v-slot:info>
+        <list-1 :list="list" @toView="toView"></list-1>
+      </template>
+    </admin-frame>
+    <van-dialog class="dialog" v-model="dialog.show" :title="dialog.title" :show-confirm-button="false" show-cancel-button cancel-button-text="返回">
+      <info-1 :info="info" v-if="dialog.type == '1'"></info-1>
+    </van-dialog>
+  </div>
+</template>
+
+<script>
+import list1 from '@/layout/infoview/achievement/list-1.vue';
+import info1 from '@/layout/infoview/achievement/info-1.vue';
+import adminFrame from '@common/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+    list1,
+    info1,
+  },
+  data: function () {
+    return {
+      list: [
+        {
+          name: '成果名称',
+          content: '成果内容成果内容成果内容成果内容成果内容成果内容成果内容成果内容成果内容成果内容成果内容成果内容成果内容成果内容成果内容成果内容成果内容',
+        },
+      ],
+      total: 0,
+      limit: 5,
+      // 弹框
+      dialog: { show: false, title: '详细信息', type: '1' },
+      // 详细信息
+      info: {},
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = this.limit, searchName, ...info } = {}) {
+      if (searchName) info.name = searchName;
+    },
+    // 查看信息
+    async toView(data) {
+      this.$set(this, `info`, data);
+      this.dialog = { show: true, title: '详细信息', type: '1' };
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.dialog {
+  /deep/.van-dialog__content {
+    max-height: 350px;
+    overflow-y: auto;
+  }
+}
+</style>

+ 107 - 0
src/views/infoview/equipment/index.vue

@@ -0,0 +1,107 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" :usePage="active == '0' ? false : true" :useNav="false">
+      <template v-slot:info>
+        <van-tabs v-model="active" color="#409eff">
+          <van-tab title="设备情况"><equipment-total :totalInfo="totalInfo"></equipment-total></van-tab>
+          <van-tab title="设备信息"><list-1 :list="list" @toView="toView"></list-1></van-tab>
+        </van-tabs>
+      </template>
+    </admin-frame>
+    <van-dialog class="dialog" v-model="dialog.show" :title="dialog.title" :show-confirm-button="false" show-cancel-button cancel-button-text="返回">
+      <info-1 :info="info" v-if="dialog.type == '1'"></info-1>
+    </van-dialog>
+  </div>
+</template>
+
+<script>
+import equipmentTotal from '@/layout/infoview/equipment/equipment-total.vue';
+import list1 from '@/layout/infoview/equipment/list-1.vue';
+import info1 from '@/layout/infoview/equipment/info-1.vue';
+import adminFrame from '@common/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+    equipmentTotal,
+    list1,
+    info1,
+  },
+  data: function () {
+    return {
+      active: 0,
+      list: [
+        {
+          count1: null,
+          count2: null,
+          count3: null,
+          count4: null,
+          count5: null,
+          count6: null,
+          createBy: '1',
+          createTime: '2021-10-17 16:14:42',
+          delFlag: '0',
+          equipmentMoney: 50,
+          equipmentNumb: null,
+          id: '42d852f2bc9944feaca6671630b38aa0',
+          instrumentsNumb: 'Y',
+          name: '特种设备3',
+          params: {},
+          rate: 0.07778,
+          remark: null,
+          researchHour: 60,
+          searchValue: null,
+          servicesHour: 80,
+          updateBy: '特种设备3',
+          updateTime: '2021-10-17 16:25:37',
+        },
+      ],
+      total: 0,
+      limit: 5,
+      // 设备总数信息
+      totalInfo: { p1: 1, p2: 1, p3: 50.0, p4: 60.0, p5: 80.0, p6: 0.0778 },
+      // 弹框
+      dialog: { show: false, title: '详细信息', type: '1' },
+      // 详细信息
+      info: {},
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = this.limit, searchName, ...info } = {}) {
+      if (searchName) info.name = searchName;
+    },
+    // 查看信息
+    async toView(data) {
+      this.$set(this, `info`, data);
+      this.dialog = { show: true, title: '详细信息', type: '1' };
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.dialog {
+  /deep/.van-dialog__content {
+    max-height: 350px;
+    overflow-y: auto;
+  }
+}
+</style>

+ 101 - 0
src/views/infoview/laboratory/index.vue

@@ -0,0 +1,101 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" :useNav="false">
+      <template v-slot:info>
+        <list-1 :list="list" @toView="toView"></list-1>
+      </template>
+    </admin-frame>
+    <van-dialog class="dialog" v-model="dialog.show" :title="dialog.title" :show-confirm-button="false" show-cancel-button cancel-button-text="返回">
+      <info-1 :info="info" v-if="dialog.type == '1'"></info-1>
+    </van-dialog>
+  </div>
+</template>
+
+<script>
+import list1 from '@/layout/infoview/laboratory/list-1.vue';
+import info1 from '@/layout/infoview/laboratory/info-1.vue';
+import adminFrame from '@common/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+    list1,
+    info1,
+  },
+  data: function () {
+    return {
+      list: [],
+      total: 0,
+      limit: 5,
+      // 弹框
+      dialog: { show: false, title: '详细信息', type: '1' },
+      // 详细信息
+      info: {},
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = this.limit, searchName, ...info } = {}) {
+      if (searchName) info.name = searchName;
+      let data = [
+        {
+          buildTime: null,
+          chiefName: '梁建民',
+          createBy: '1',
+          createTime: '2021-09-16 00:00:00',
+          delFlag: '0',
+          englishName: '',
+          id: '1',
+          labAcreage: '',
+          labAddress: '',
+          labEmail: 'jackyliangjm@163.com',
+          labPerson: '梁建民',
+          labPhone: '13578652528',
+          name: '儿科神经吉林省重点实验室',
+          numb: '0',
+          params: {},
+          remark: null,
+          searchValue: null,
+          unitName: '吉林大学白求恩第一医院',
+          unitPerson: '孙宇飞 ',
+          unitPhone: '13944843792',
+          updateBy: 'userid001',
+          updateTime: '2021-09-30 14:09:43',
+        },
+      ];
+      this.$set(this, `list`, data);
+    },
+    // 查看信息
+    async toView(data) {
+      this.$set(this, `info`, data);
+      this.dialog = { show: true, title: '详细信息', type: '1' };
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.dialog {
+  /deep/.van-dialog__content {
+    max-height: 350px;
+    overflow-y: auto;
+  }
+}
+</style>

+ 157 - 0
src/views/infoview/research/index.vue

@@ -0,0 +1,157 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" :useNav="false">
+      <template v-slot:info>
+        <list-1 :list="list" @toView="toView"></list-1>
+      </template>
+    </admin-frame>
+    <van-dialog class="dialog" v-model="dialog.show" :title="dialog.title" :show-confirm-button="false" show-cancel-button cancel-button-text="返回">
+      <info-1 :info="info" v-if="dialog.type == '1'"></info-1>
+    </van-dialog>
+  </div>
+</template>
+
+<script>
+import list1 from '@/layout/infoview/research/list-1.vue';
+import info1 from '@/layout/infoview/research/info-1.vue';
+import adminFrame from '@common/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+    list1,
+    info1,
+  },
+  data: function () {
+    return {
+      list: [
+        {
+          createBy: '1',
+          createTime: '2021-09-24 15:10:01',
+          delFlag: '0',
+          id: 'direction001',
+          name: '开创视觉光刺激治疗癫痫研究',
+          params: {},
+          personId: 'person001',
+          personName: '王江涛',
+          persons: [
+            {
+              createBy: null,
+              createTime: '2021-10-11 19:57:29',
+              direction: 'direction001',
+              id: '2896b42a57ec49b4aa2102d324fca81e',
+              params: {},
+              personId: 'person435',
+              personName: '张洪波',
+              remark: null,
+              searchValue: null,
+              updateBy: null,
+              updateTime: null,
+            },
+            {
+              createBy: null,
+              createTime: '2021-10-11 19:57:29',
+              direction: 'direction001',
+              id: '39ec9611c3814f738cf8118522e00c7a',
+              params: {},
+              personId: 'person1119',
+              personName: '李国亮',
+              remark: null,
+              searchValue: null,
+              updateBy: null,
+              updateTime: null,
+            },
+            {
+              createBy: null,
+              createTime: '2021-10-11 19:57:29',
+              direction: 'direction001',
+              id: '509af2c53cfa4a28aa58eab8c7491a19',
+              params: {},
+              personId: 'person579',
+              personName: '张艳凤',
+              remark: null,
+              searchValue: null,
+              updateBy: null,
+              updateTime: null,
+            },
+            {
+              createBy: null,
+              createTime: '2021-10-11 19:57:29',
+              direction: 'direction001',
+              id: '9dfa64d3f9594e509880eded42cabbcf',
+              params: {},
+              personId: 'person986',
+              personName: '杨诺',
+              remark: null,
+              searchValue: null,
+              updateBy: null,
+              updateTime: null,
+            },
+            {
+              createBy: null,
+              createTime: '2021-10-11 19:57:29',
+              direction: 'direction001',
+              id: 'bb3b9aa4c1104833940896349a2d9b05',
+              params: {},
+              personId: 'person004',
+              personName: '张彤',
+              remark: null,
+              searchValue: null,
+              updateBy: null,
+              updateTime: null,
+            },
+          ],
+          remark: null,
+          searchValue: null,
+          updateBy: '1',
+          updateTime: '2021-10-11 19:57:28',
+        },
+      ],
+      total: 0,
+      limit: 5,
+      // 弹框
+      dialog: { show: false, title: '详细信息', type: '1' },
+      // 详细信息
+      info: {},
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = this.limit, searchName, ...info } = {}) {
+      if (searchName) info.name = searchName;
+    },
+    // 查看信息
+    async toView(data) {
+      data.persons = JSON.stringify(data.persons.map((i) => i.personName));
+      this.$set(this, `info`, data);
+      this.dialog = { show: true, title: '详细信息', type: '1' };
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.dialog {
+  /deep/.van-dialog__content {
+    max-height: 350px;
+    overflow-y: auto;
+  }
+}
+</style>

+ 170 - 0
src/views/infoview/task/index.vue

@@ -0,0 +1,170 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" topType="2" :leftArrow="false" @add="toAdd" :useNav="false">
+      <template v-slot:info>
+        <list-1 :list="list" @toView="toView"></list-1>
+      </template>
+    </admin-frame>
+    <van-dialog class="dialog" v-model="dialog.show" :title="dialog.title" :show-confirm-button="false" show-cancel-button cancel-button-text="返回">
+      <info-1 :info="info" v-if="dialog.type == '1'"></info-1>
+      <search-1 :form="searhForm" v-else-if="dialog.type == '2'" @reseat="reseat" @onSubmit="onSubmit"></search-1>
+    </van-dialog>
+  </div>
+</template>
+
+<script>
+import list1 from '@/layout/infoview/task/list-1.vue';
+import info1 from '@/layout/infoview/task/info-1.vue';
+import search1 from '@/layout/infoview/task/search-1.vue';
+import adminFrame from '@common/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+    list1,
+    info1,
+    search1,
+  },
+  data: function () {
+    return {
+      list: [
+        {
+          cooperativeunit: '中心',
+          createBy: '1',
+          createTime: '2021-09-23 10:30:01',
+          delFlag: '0',
+          direction: 'direction001',
+          directionName: '开创视觉光刺激治疗癫痫研究',
+          fzuser: 'person001',
+          id: '6db0514ae17443e0a6017a30381df660',
+          labname: null,
+          laiyuancontent: '横向合作<横向合作',
+          money: 105,
+          name: '名称',
+          params: {},
+          participants: null,
+          persons: [
+            {
+              createBy: null,
+              createTime: '2021-10-09 09:52:14',
+              delFlag: '0',
+              id: '30501382e525433bba47df3ecc0789db',
+              params: {},
+              projectid: '6db0514ae17443e0a6017a30381df660',
+              remark: null,
+              searchValue: null,
+              updateBy: null,
+              updateTime: null,
+              userName: '张彤',
+              userid: 'person004',
+            },
+            {
+              createBy: null,
+              createTime: '2021-10-09 09:52:14',
+              delFlag: '0',
+              id: '4637ac39b76545dfb27718e9d8d169a0',
+              params: {},
+              projectid: '6db0514ae17443e0a6017a30381df660',
+              remark: null,
+              searchValue: null,
+              updateBy: null,
+              updateTime: null,
+              userName: '王江涛',
+              userid: 'person001',
+            },
+            {
+              createBy: null,
+              createTime: '2021-10-09 09:52:14',
+              delFlag: '0',
+              id: '98953aab18c04f3499ca6fafcb823c8d',
+              params: {},
+              projectid: '6db0514ae17443e0a6017a30381df660',
+              remark: null,
+              searchValue: null,
+              updateBy: null,
+              updateTime: null,
+              userName: '刘光耀',
+              userid: 'person002',
+            },
+          ],
+          projectlevelone: 'xm666sss',
+          projectsource: '5',
+          projectsourcetwo: '21',
+          remark: null,
+          searchValue: null,
+          state: null,
+          statemoney: 5,
+          time: '2021-09-22',
+          updateBy: null,
+          updateTime: '2021-10-09 09:52:14',
+          userName: '王江涛',
+          usernum: '10',
+          userproportion: '30%',
+        },
+      ],
+      total: 0,
+      limit: 5,
+      // 查询
+      searhForm: {},
+      // 弹框
+      dialog: { show: false, title: '详细信息', type: '1' },
+      // 详细信息
+      info: {},
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = this.limit, searchName, ...info } = {}) {
+      if (searchName) info.name = searchName;
+      console.log(this.searhForm);
+    },
+    // 查看信息
+    async toView(data) {
+      data.persons = JSON.stringify(data.persons.map((i) => i.userName));
+      this.$set(this, `info`, data);
+      this.dialog = { show: true, title: '详细信息', type: '1' };
+    },
+    // 添加查询条件
+    toAdd() {
+      this.dialog = { show: true, title: '查询条件', type: '2' };
+    },
+    // 重置条件
+    reseat() {
+      this.searhForm = {};
+      this.dialog = { show: false, title: '查询条件', type: '2' };
+      this.search();
+    },
+    // 提交查询
+    onSubmit({ data }) {
+      this.search(data);
+      this.dialog = { show: false, title: '查询条件', type: '2' };
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.dialog {
+  /deep/.van-dialog__content {
+    max-height: 350px;
+    overflow-y: auto;
+  }
+}
+</style>

+ 164 - 0
src/views/scientific/award/index.vue

@@ -0,0 +1,164 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" topType="2" :leftArrow="false" @add="toAdd" :useNav="false">
+      <template v-slot:info>
+        <list-1 :list="list" @toView="toView"></list-1>
+      </template>
+    </admin-frame>
+    <van-dialog class="dialog" v-model="dialog.show" :title="dialog.title" :show-confirm-button="false" show-cancel-button cancel-button-text="返回">
+      <info-1 :info="info" v-if="dialog.type == '1'"></info-1>
+      <search-1 :form="searhForm" v-else-if="dialog.type == '2'" @reseat="reseat" @onSubmit="onSubmit"></search-1>
+    </van-dialog>
+  </div>
+</template>
+
+<script>
+import list1 from '@/layout/scientific/award/list-1.vue';
+import info1 from '@/layout/scientific/award/info-1.vue';
+import search1 from '@/layout/scientific/award/search-1.vue';
+import adminFrame from '@common/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+    list1,
+    info1,
+    search1,
+  },
+  data: function () {
+    return {
+      list: [
+        {
+          createBy: '1',
+          createTime: '2021-10-11 23:11:01',
+          delFlag: '0',
+          direction: 'direction001',
+          directionName: '开创视觉光刺激治疗癫痫研究',
+          id: '45b54288eb0c40abbf6b123735da1445',
+          level: '1',
+          name: '这里是成果名称',
+          params: {},
+          person: [
+            {
+              createBy: '1',
+              createTime: '2021-10-11 23:53:48',
+              delFlag: '0',
+              id: '66da7d92145748f0a8a7b04b8cad4180',
+              level: '1',
+              params: {},
+              patentId: '45b54288eb0c40abbf6b123735da1445',
+              remark: null,
+              searchValue: null,
+              updateBy: null,
+              updateTime: null,
+              userId: 'person003',
+              userName: '付学奇',
+            },
+            {
+              createBy: '1',
+              createTime: '2021-10-11 23:53:48',
+              delFlag: '0',
+              id: '848422552bdc4bcda6e24897c1311362',
+              level: '2',
+              params: {},
+              patentId: '45b54288eb0c40abbf6b123735da1445',
+              remark: null,
+              searchValue: null,
+              updateBy: null,
+              updateTime: null,
+              userId: 'person001',
+              userName: '王江涛',
+            },
+            {
+              createBy: '1',
+              createTime: '2021-10-11 23:53:48',
+              delFlag: '0',
+              id: '109e43caf78d4fe3ae977c2467926548',
+              level: '3',
+              params: {},
+              patentId: '45b54288eb0c40abbf6b123735da1445',
+              remark: null,
+              searchValue: null,
+              updateBy: null,
+              updateTime: null,
+              userId: 'person002',
+              userName: '刘光耀',
+            },
+          ],
+          personlevel: null,
+          remark: null,
+          resulnumber: '这里是成果编号',
+          searchValue: null,
+          type: '2',
+          updateBy: null,
+          updateTime: '2021-10-11 23:53:48',
+          userId: null,
+          userName: null,
+        },
+      ],
+      total: 0,
+      limit: 5,
+      // 查询
+      searhForm: {},
+      // 弹框
+      dialog: { show: false, title: '详细信息', type: '1' },
+      // 详细信息
+      info: {},
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = this.limit, searchName, ...info } = {}) {
+      if (searchName) info.name = searchName;
+      console.log(this.searhForm);
+    },
+    // 查看信息
+    async toView(data) {
+      data.person = JSON.stringify(data.person.map((i) => i.userName));
+      this.$set(this, `info`, data);
+      this.dialog = { show: true, title: '详细信息', type: '1' };
+    },
+    // 添加查询条件
+    toAdd() {
+      this.dialog = { show: true, title: '查询条件', type: '2' };
+    },
+    // 重置条件
+    reseat() {
+      this.searhForm = {};
+      this.dialog = { show: false, title: '查询条件', type: '2' };
+      this.search();
+    },
+    // 提交查询
+    onSubmit({ data }) {
+      this.search(data);
+      this.dialog = { show: false, title: '查询条件', type: '2' };
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.dialog {
+  /deep/.van-dialog__content {
+    max-height: 350px;
+    overflow-y: auto;
+  }
+}
+</style>

+ 112 - 0
src/views/scientific/otherachieve/index.vue

@@ -0,0 +1,112 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" topType="2" :leftArrow="false" @add="toAdd" :useNav="false">
+      <template v-slot:info>
+        <list-1 :list="list" @toView="toView"></list-1>
+      </template>
+    </admin-frame>
+    <van-dialog class="dialog" v-model="dialog.show" :title="dialog.title" :show-confirm-button="false" show-cancel-button cancel-button-text="返回">
+      <info-1 :info="info" v-if="dialog.type == '1'"></info-1>
+      <search-1 :form="searhForm" v-else-if="dialog.type == '2'" @reseat="reseat" @onSubmit="onSubmit"></search-1>
+    </van-dialog>
+  </div>
+</template>
+
+<script>
+import list1 from '@/layout/scientific/otherachieve/list-1.vue';
+import info1 from '@/layout/scientific/otherachieve/info-1.vue';
+import search1 from '@/layout/scientific/otherachieve/search-1.vue';
+import adminFrame from '@common/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+    list1,
+    info1,
+    search1,
+  },
+  data: function () {
+    return {
+      list: [
+        {
+          content: '啊吧啊吧',
+          createBy: '1',
+          createTime: '2021-09-16 10:45:35',
+          delFlag: '0',
+          direction: '173d667ff2c04aa68390fefef2519f95',
+          directionName: null,
+          id: '80624b94ad0d4827b7f15699febe5a2c',
+          name: '成果名称',
+          params: {},
+          remark: null,
+          searchValue: null,
+          type: '1',
+          updateBy: null,
+          updateTime: '2021-09-22 20:07:11',
+        },
+      ],
+      total: 0,
+      limit: 5,
+      // 查询
+      searhForm: {},
+      // 弹框
+      dialog: { show: false, title: '详细信息', type: '1' },
+      // 详细信息
+      info: {},
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = this.limit, searchName, ...info } = {}) {
+      if (searchName) info.name = searchName;
+      console.log(this.searhForm);
+    },
+    // 查看信息
+    async toView(data) {
+      this.$set(this, `info`, data);
+      this.dialog = { show: true, title: '详细信息', type: '1' };
+    },
+    // 添加查询条件
+    toAdd() {
+      this.dialog = { show: true, title: '查询条件', type: '2' };
+    },
+    // 重置条件
+    reseat() {
+      this.searhForm = {};
+      this.dialog = { show: false, title: '查询条件', type: '2' };
+      this.search();
+    },
+    // 提交查询
+    onSubmit({ data }) {
+      this.search(data);
+      this.dialog = { show: false, title: '查询条件', type: '2' };
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.dialog {
+  /deep/.van-dialog__content {
+    max-height: 350px;
+    overflow-y: auto;
+  }
+}
+</style>

+ 115 - 0
src/views/scientific/paper/index.vue

@@ -0,0 +1,115 @@
+<template>
+  <div id="index">
+    <admin-frame @search="search" :limit="limit" :total="total" topType="2" :leftArrow="false" @add="toAdd" :useNav="false">
+      <template v-slot:info>
+        <list-1 :list="list" @toView="toView"></list-1>
+      </template>
+    </admin-frame>
+    <van-dialog class="dialog" v-model="dialog.show" :title="dialog.title" :show-confirm-button="false" show-cancel-button cancel-button-text="返回">
+      <info-1 :info="info" v-if="dialog.type == '1'"></info-1>
+      <search-1 :form="searhForm" v-else-if="dialog.type == '2'" @reseat="reseat" @onSubmit="onSubmit"></search-1>
+    </van-dialog>
+  </div>
+</template>
+
+<script>
+import list1 from '@/layout/scientific/paper/list-1.vue';
+import info1 from '@/layout/scientific/paper/info-1.vue';
+import search1 from '@/layout/scientific/paper/search-1.vue';
+import adminFrame from '@common/src/components/mobile-frame/mobile-main.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    adminFrame,
+    list1,
+    info1,
+    search1,
+  },
+  data: function () {
+    return {
+      list: [
+        {
+          createBy: '1',
+          createTime: '2021-09-16 10:08:17',
+          delFlag: '0',
+          direction: '338fa9ec011644778ffc28040c835f2a',
+          directionName: null,
+          id: '1846e091f4eb4b028ef2219a22fd2fc3',
+          number: '这里是卷号',
+          params: {},
+          remark: null,
+          searchValue: null,
+          startnum: '1-25',
+          title: '这里是题目',
+          type: '2',
+          updateBy: null,
+          updateTime: '2021-09-22 20:05:03',
+          userId: 'person001',
+          userName: '王江涛',
+        },
+      ],
+      total: 0,
+      limit: 5,
+      // 查询
+      searhForm: {},
+      // 弹框
+      dialog: { show: false, title: '详细信息', type: '1' },
+      // 详细信息
+      info: {},
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    async search({ skip = 0, limit = this.limit, searchName, ...info } = {}) {
+      if (searchName) info.name = searchName;
+      console.log(this.searhForm);
+    },
+    // 查看信息
+    async toView(data) {
+      this.$set(this, `info`, data);
+      this.dialog = { show: true, title: '详细信息', type: '1' };
+    },
+    // 添加查询条件
+    toAdd() {
+      this.dialog = { show: true, title: '查询条件', type: '2' };
+    },
+    // 重置条件
+    reseat() {
+      this.searhForm = {};
+      this.dialog = { show: false, title: '查询条件', type: '2' };
+      this.search();
+    },
+    // 提交查询
+    onSubmit({ data }) {
+      this.search(data);
+      this.dialog = { show: false, title: '查询条件', type: '2' };
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.dialog {
+  /deep/.van-dialog__content {
+    max-height: 350px;
+    overflow-y: auto;
+  }
+}
+</style>