guhongwei 4 年之前
父节点
当前提交
717ac9a33a

+ 5 - 0
src/components/common/Sidebar.vue

@@ -141,6 +141,11 @@ export default {
             index: '4',
             title: '专家会审管理',
             subs: [
+              {
+                icon: 'el-icon-eleme',
+                index: '/expertPay',
+                title: '待缴费',
+              },
               {
                 icon: 'el-icon-eleme',
                 index: '/expertMeet',

+ 7 - 0
src/router/index.js

@@ -151,6 +151,13 @@ export default new Router({
           meta: { title: '评分修改申请书' },
         },
         // 专家会审
+        // 待缴费
+
+        {
+          path: '/expertPay',
+          component: () => import('../views/userCenter/userMeet/expertPay.vue'),
+          meta: { title: '待缴费' },
+        },
         // 待会审
         {
           path: '/expertMeet',

+ 40 - 12
src/views/userCenter/userMeet/expertMeet.vue

@@ -2,36 +2,64 @@
   <div id="expertMeet">
     <el-row>
       <el-col :span="24" class="main">
-        待会审
+        <el-col :span="24" class="down">
+          <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search"></data-table>
+        </el-col>
       </el-col>
     </el-row>
   </div>
 </template>
 
 <script>
+import dataTable from '@common/src/components/frame/filter-page-table.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: achieveApply } = createNamespacedHelpers('achieveApply');
 export default {
   name: 'expertMeet',
   props: {},
-  components: {},
+  components: { dataTable },
   data: function() {
-    return {};
+    return {
+      opera: [],
+      fields: [
+        { label: '成果编号', prop: 'basic.achieve_num', filter: 'input', showTip: true },
+        { label: '成果名称', prop: 'basic.achieve_name', showTip: true },
+        { label: '成果类别', prop: 'basic.achieve_type', showTip: true },
+        {
+          label: '状态',
+          prop: 'status',
+          format: item => {
+            return item === '2' ? '待缴费' : '未识别';
+          },
+        },
+      ],
+      list: [],
+      total: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    ...achieveApply(['query']),
+    // 查询列表
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      const res = await this.query({ skip, limit, status: 3, user_id: this.user.id, ...info });
+      if (this.$checkRes(res)) {
+        this.$set(this, 'list', res.data);
+        this.$set(this, `total`, res.total);
+      }
+    },
   },
-  created() {},
-  methods: {},
   computed: {
     ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
   },
   metaInfo() {
     return { title: this.$route.meta.title };
   },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
 };
 </script>
 

+ 93 - 0
src/views/userCenter/userMeet/expertPay.vue

@@ -0,0 +1,93 @@
+<template>
+  <div id="expertPay">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="down">
+          <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @pay="toPay"></data-table>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import dataTable from '@common/src/components/frame/filter-page-table.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: achieveApply } = createNamespacedHelpers('achieveApply');
+export default {
+  name: 'expertPay',
+  props: {},
+  components: { dataTable },
+  data: function() {
+    return {
+      opera: [
+        {
+          label: '会审缴费',
+          method: 'pay',
+        },
+      ],
+      fields: [
+        { label: '成果编号', prop: 'basic.achieve_num', filter: 'input', showTip: true },
+        { label: '成果名称', prop: 'basic.achieve_name', showTip: true },
+        { label: '成果类别', prop: 'basic.achieve_type', showTip: true },
+        {
+          label: '状态',
+          prop: 'status',
+          format: item => {
+            return item === '2' ? '待缴费' : '未识别';
+          },
+        },
+      ],
+      list: [],
+      total: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    ...achieveApply(['query', 'update']),
+    // 查询列表
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      const res = await this.query({ skip, limit, status: 2, user_id: this.user.id, ...info });
+      if (this.$checkRes(res)) {
+        this.$set(this, 'list', res.data);
+        this.$set(this, `total`, res.total);
+      }
+    },
+    // 会审缴费
+    toPay({ data }) {
+      this.$alert('<strong><p>确认您是否缴费,如您已缴费,点击确定按钮,等待专家会审</p></strong>', '信息提示', {
+        dangerouslyUseHTMLString: true,
+        showConfirmButton: true,
+        showCancelButton: true,
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+      })
+        .then(async () => {
+          data.status = '3';
+          let res = await this.update(data);
+          if (this.$checkRes(res)) {
+            this.$message({
+              message: '确定成功,等待会审结果',
+              type: 'success',
+            });
+            this.search();
+          }
+        })
+        .catch(() => {});
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 40 - 12
src/views/userCenter/userMeet/noExpertMeet.vue

@@ -2,36 +2,64 @@
   <div id="noExpertMeet">
     <el-row>
       <el-col :span="24" class="main">
-        会审未通过
+        <el-col :span="24" class="down">
+          <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search"></data-table>
+        </el-col>
       </el-col>
     </el-row>
   </div>
 </template>
 
 <script>
+import dataTable from '@common/src/components/frame/filter-page-table.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: achieveApply } = createNamespacedHelpers('achieveApply');
 export default {
   name: 'noExpertMeet',
   props: {},
-  components: {},
+  components: { dataTable },
   data: function() {
-    return {};
+    return {
+      opera: [],
+      fields: [
+        { label: '成果编号', prop: 'basic.achieve_num', filter: 'input', showTip: true },
+        { label: '成果名称', prop: 'basic.achieve_name', showTip: true },
+        { label: '成果类别', prop: 'basic.achieve_type', showTip: true },
+        {
+          label: '状态',
+          prop: 'status',
+          format: item => {
+            return item === '2' ? '待缴费' : '未识别';
+          },
+        },
+      ],
+      list: [],
+      total: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    ...achieveApply(['query']),
+    // 查询列表
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      const res = await this.query({ skip, limit, status: -5, user_id: this.user.id, ...info });
+      if (this.$checkRes(res)) {
+        this.$set(this, 'list', res.data);
+        this.$set(this, `total`, res.total);
+      }
+    },
   },
-  created() {},
-  methods: {},
   computed: {
     ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
   },
   metaInfo() {
     return { title: this.$route.meta.title };
   },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
 };
 </script>