Parcourir la source

feature(报表统计): 转化项目统计表

lk il y a 2 ans
Parent
commit
8dd6ff4970
3 fichiers modifiés avec 153 ajouts et 0 suppressions
  1. 13 0
      src/api/proj/report.js
  2. 70 0
      src/views/report/proj/index.vue
  3. 70 0
      src/views/report/proj/transform.vue

+ 13 - 0
src/api/proj/report.js

@@ -0,0 +1,13 @@
+import micro_request from '@/utils/micro_request'
+
+const basePath = process.env.VUE_APP_ParentPath
+export default {
+  // 业绩指标-当月新增项目
+  queryBusinessNum(query) {
+    return micro_request.postRequest(basePath, 'BusinessReport', 'QueryBusinessNum', query)
+  },
+  // 业绩指标-转化项目统计
+  queryBusinessTransformNum(query) {
+    return micro_request.postRequest(basePath, 'BusinessReport', 'QueryBusinessTransformNum', query)
+  },
+}

+ 70 - 0
src/views/report/proj/index.vue

@@ -0,0 +1,70 @@
+<!--
+ * @Author: niezch@dashoo.cn
+ * @Date: 2023-04-03 09:32:08
+ * @LastEditors: niezch@dashoo.cn
+ * @LastEditTime: 2023-04-06 18:07:13
+ * @Description: file content
+ * @FilePath: \opms_frontend\src\views\report\proj\index.vue
+-->
+<template>
+  <div class="detail">
+    <h2 style="text-align: center">当月新增项目统计报表</h2>
+    <div style="float: right; margin-bottom: 10px">
+      <p>
+        <el-date-picker v-model="month" type="month" value-format="yyyy-MM" @change="fetchData" />
+      </p>
+    </div>
+
+    <el-table ref="businessTable" v-loading="loading" border :data="tableData" :height="$baseTableHeight(1)">
+      <el-table-column
+        v-for="(item, key) in header"
+        :key="key"
+        align="center"
+        :label="item.label"
+        :prop="item.prop"
+        show-overflow-tooltip>
+        <template #default="{ row }">
+          <span>{{ row[item.prop] }}</span>
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+  import reportApi from '@/api/proj/report'
+  import { parseTime } from '@/utils'
+
+  export default {
+    name: 'ContractReport',
+    components: {},
+    data() {
+      return {
+        month: parseTime(new Date(), '{y}-{m}'),
+        loading: false,
+        header: undefined,
+        tableData: undefined,
+      }
+    },
+    mounted() {
+      this.fetchData()
+    },
+    methods: {
+      async fetchData() {
+        this.loading = true
+        const {
+          data: { header, data },
+        } = await reportApi.queryBusinessNum({ date: this.month })
+        this.header = header
+        this.tableData = data
+        this.loading = false
+      },
+    },
+  }
+</script>
+
+<style lang="scss" scoped>
+  .detail {
+    padding: 30px;
+  }
+</style>

+ 70 - 0
src/views/report/proj/transform.vue

@@ -0,0 +1,70 @@
+<!--
+ * @Author: niezch@dashoo.cn
+ * @Date: 2023-04-03 09:32:08
+ * @LastEditors: niezch@dashoo.cn
+ * @LastEditTime: 2023-04-06 18:07:13
+ * @Description: file content
+ * @FilePath: \opms_frontend\src\views\report\proj\index.vue
+-->
+<template>
+  <div class="detail">
+    <h2 style="text-align: center">转化项目统计报表</h2>
+    <div style="float: right; margin-bottom: 10px">
+      <p>
+        <el-date-picker v-model="month" type="month" value-format="yyyy-MM" @change="fetchData" />
+      </p>
+    </div>
+
+    <el-table ref="businessTable" v-loading="loading" border :data="tableData" :height="$baseTableHeight(1)">
+      <el-table-column
+        v-for="(item, key) in header"
+        :key="key"
+        align="center"
+        :label="item.label"
+        :prop="item.prop"
+        show-overflow-tooltip>
+        <template #default="{ row }">
+          <span>{{ row[item.prop] }}</span>
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+  import reportApi from '@/api/proj/report'
+  import { parseTime } from '@/utils'
+
+  export default {
+    name: 'ContractReport',
+    components: {},
+    data() {
+      return {
+        month: parseTime(new Date(), '{y}-{m}'),
+        loading: false,
+        header: undefined,
+        tableData: undefined,
+      }
+    },
+    mounted() {
+      this.fetchData()
+    },
+    methods: {
+      async fetchData() {
+        this.loading = true
+        const {
+          data: { header, data },
+        } = await reportApi.queryBusinessTransformNum({ date: this.month })
+        this.header = header
+        this.tableData = data
+        this.loading = false
+      },
+    },
+  }
+</script>
+
+<style lang="scss" scoped>
+  .detail {
+    padding: 30px;
+  }
+</style>