|
@@ -0,0 +1,142 @@
|
|
|
+<template>
|
|
|
+ <div id="app" v-cloak v-loading="state.loading" style="min-height: 300px; padding: 10px">
|
|
|
+ <template v-if="!state.error && isShow">
|
|
|
+ <ElTabs>
|
|
|
+ <ElTabPane label="无地址&未发货&未签收">
|
|
|
+ <CommonReporting :data="orderNums" mode="express" />
|
|
|
+ </ElTabPane>
|
|
|
+
|
|
|
+ <ElTabPane label="采购单">
|
|
|
+ <CommonReporting :data="orderNums" mode="purchaseOrder" />
|
|
|
+ </ElTabPane>
|
|
|
+
|
|
|
+ <ElTabPane label="销售单">
|
|
|
+ <CommonReporting :data="orderNums" mode="saleOrder" />
|
|
|
+ </ElTabPane>
|
|
|
+ </ElTabs>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template v-else-if="!state.loading">
|
|
|
+ <unusual-state :hasPermission="isShow" :message="state.message" path="results" />
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import asyncRequest from "@/api/newEarning"
|
|
|
+import UnusualState from "@/components/unusual/index.vue"
|
|
|
+import { getParameterByName, removeOpenid, getOpenid } from "../utils/auth"
|
|
|
+import CommonReporting from "../components/newReporting/CommonReporting.vue";
|
|
|
+import { addition } from "./_utils";
|
|
|
+
|
|
|
+export default {
|
|
|
+ name:'report',
|
|
|
+ components:{ UnusualState, CommonReporting },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ state:{ error: false, loading: false, message:'' },
|
|
|
+ hasPlatformDimension: false,
|
|
|
+ isShow : false,
|
|
|
+ companyArr:[],
|
|
|
+ orderNums:[],
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async mounted(){
|
|
|
+ document.title = '业务公司订单统计'
|
|
|
+ this.requestUserinfo()
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ async requestOrderNum(){
|
|
|
+ const result = await asyncRequest.orderNum()
|
|
|
+ if (result.code == 0){
|
|
|
+ const data = []
|
|
|
+ result.data.forEach(item => {
|
|
|
+ let total = {
|
|
|
+ "companyName": item.company,
|
|
|
+ 'companyNo': item.companyNo,
|
|
|
+ "year": "合计",
|
|
|
+ "noAddrOrderNum": 0,
|
|
|
+ "waitSendOrderNum": 0,
|
|
|
+ "noSignOrderNum": 0,
|
|
|
+ "noDzCgdNumComon": 0,
|
|
|
+ "noDzCgdNum": 0,
|
|
|
+ "dzNoPayCgdNumCom": 0,
|
|
|
+ "dzNoPayCgdNum": 0,
|
|
|
+ "dzNoInvCgdNumCom": 0,
|
|
|
+ "dzNoInvCgdNum": 0,
|
|
|
+ 'noPayQrdTobNum': 0,
|
|
|
+ 'noPayQrdTocNum': 0,
|
|
|
+ 'noInvQrdTobNum': 0,
|
|
|
+ 'noInvQrdTocNum': 0,
|
|
|
+ 'noSignOrderNoExpressNum': 0,
|
|
|
+ 'noSignOrderExpressNum': 0,
|
|
|
+ 'noSignOrderFailNum': 0
|
|
|
+ }
|
|
|
+
|
|
|
+ const noTotalProp = ['companyName', 'companyNo', 'year']
|
|
|
+ const keys = Object.keys(total).filter(key => !noTotalProp.includes(key))
|
|
|
+
|
|
|
+ item.data.forEach(companyData => {
|
|
|
+ keys.forEach(key => { total[key] = Number(addition(Number(companyData[key]).toFixed(2),Number(total[key]).toFixed(2))) })
|
|
|
+ data.push({ companyName: item.company, ...companyData })
|
|
|
+ })
|
|
|
+
|
|
|
+ data.push(total)
|
|
|
+ })
|
|
|
+
|
|
|
+ this.orderNums = data
|
|
|
+ } else {
|
|
|
+ this.$message.warning(result.message)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async requestData(){
|
|
|
+ this.state.loading = true
|
|
|
+ await this.requestOrderNum()
|
|
|
+ this.state.loading = false
|
|
|
+ },
|
|
|
+ async requestUserinfo(){
|
|
|
+ this.state.loading = true;
|
|
|
+ const openid = getOpenid()
|
|
|
+ const code = getParameterByName('code')
|
|
|
+ const result = await asyncRequest.userinfo({ ...( openid ? { openid } : { code }) })
|
|
|
+ // const result ={
|
|
|
+ // "code": 0,
|
|
|
+ // "message": "获取成功",
|
|
|
+ // "data": {
|
|
|
+ // "id": "1",
|
|
|
+ // "openid": "oOpc26KiZFBKIm7SB8knFGvov1qg",
|
|
|
+ // "mobile": "",
|
|
|
+ // "gender": "0",
|
|
|
+ // "nickname": "雪寒",
|
|
|
+ // "avatar": "",
|
|
|
+ // "subscribe_time": "2022-12-21 15:52:14",
|
|
|
+ // "addr": "\/\/",
|
|
|
+ // "status": "1",
|
|
|
+ // "is_show": ["1", "2", "4", '9'],
|
|
|
+ // "companyArr": [
|
|
|
+ // { "companyNo": "GS2302231125079621", "companyName": "北京百辰荣达国际科贸有限公司", "info": [1,2] },
|
|
|
+ // { "companyNo": "GS2302231323386950", "companyName": "北京泓源广诚国际商贸有限公司", "info": [1,2] },
|
|
|
+ // { "companyNo": "GS2304031312553746","companyName": "北京锦兴弘昌科技有限公司", "info": [1, 2] },
|
|
|
+ // { "companyNo": "GS2302231124114965", "companyName": "北京普润心堂商贸有限公司", "info": [1, 2] },
|
|
|
+ // { "companyNo": "GS2203161855277894","companyName": "北京万宇恒通国际科贸有限公司","info": [1, 2] }
|
|
|
+ // ],
|
|
|
+ // "addtime": "2023-04-10 18:11:07",
|
|
|
+ // "updatetime": "2023-05-09 16:22:33"
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ this.state.loading = false
|
|
|
+ switch(Number(result.code)){
|
|
|
+ case 0:
|
|
|
+ this.isShow = result.data.is_show.includes('9') || result.data.is_show.includes(9)
|
|
|
+ if(this.isShow) this.requestData()
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ this.state.error = true
|
|
|
+ this.state.message = result.message
|
|
|
+ openid && removeOpenid()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|