Forráskód Böngészése

销售数据、客户数据、项目数据列表详情调整弹出方式

qymljy 1 éve
szülő
commit
f1a0dfd2af

+ 7 - 2
src/HDrpManagement/customerData/components/pageTable.vue

@@ -45,7 +45,7 @@
 <script>
 import {mapGetters} from 'vuex'
 export default {
-  props:["tablecols",'param','custom'],
+  props:["tablecols",'param','custom','setName'],
   data () {
     return {
       list:[],
@@ -78,8 +78,13 @@ export default {
       this.total = res.data.length && res.data[0].isEmpty ? 0 : res.total
       this.listqueryid = res.listqueryid
       this.pageTotal = res.pageTotal
+      sessionStorage.setItem('listqueryid',res.listqueryid)
       sessionStorage.setItem('total',res.total)
-      console.log(this.list)
+      if (this.setName){
+        this.$emit('detailSet',res.listqueryid,res.total,this.setName)
+      }
+
+      // console.log(this.list)
     },
     handleSizeChange(val) {
       // console.log(`每页 ${val} 条`);

+ 62 - 7
src/HDrpManagement/customerData/index.vue

@@ -269,14 +269,18 @@
                       ref="customerTypeTable"
                       :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
                       :param="typeTableParam"
+                      setName="typeTable"
                       :custom="true"
+                      @detailSet="detailSet"
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'customerTypeTable',typeTableParam,'sa_customersid')" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'customerTypeTable',typeTableParam,'sa_customersid')" :disabled="isFull">{{$t('详情')}}</el-button>-->
+                          <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data.data" :detailPath="detailPath" :idName="idName"  :disabled="isFull"
+                                      :listqueryid="detailDataSet.typeTable.listqueryid" :total="detailDataSet.typeTable.total" :overview="true"></drawerTemp>
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
@@ -399,14 +403,18 @@
                       ref="customerGradTable"
                       :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
                       :param="gradTableParam"
+                      setName="gradTable"
                       :custom="true"
+                      @detailSet="detailSet"
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'customerGradTable',gradTableParam,'sa_customersid')" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'customerGradTable',gradTableParam,'sa_customersid')" :disabled="isFull">{{$t('详情')}}</el-button>-->
+                          <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data.data" :detailPath="detailPath" :idName="idName"  :disabled="isFull"
+                                      :listqueryid="detailDataSet.gradTable.listqueryid" :total="detailDataSet.gradTable.total" :overview="true"></drawerTemp>
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
@@ -526,14 +534,18 @@
                       ref="customerContactTable"
                       :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
                       :param="contactTableParam"
+                      setName="contactTable"
                       :custom="true"
+                      @detailSet="detailSet"
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'customerContactTable',contactTableParam,'sa_customersid')" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'customerContactTable',contactTableParam,'sa_customersid')" :disabled="isFull">{{$t('详情')}}</el-button>-->
+                          <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data.data" :detailPath="detailPath" :idName="idName"  :disabled="isFull"
+                                      :listqueryid="detailDataSet.contactTable.listqueryid" :total="detailDataSet.contactTable.total" :overview="true"></drawerTemp>
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
@@ -653,14 +665,18 @@
                       ref="customerProjectTable"
                       :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
                       :param="projectTableParam"
+                      setName="projectTable"
                       :custom="true"
+                      @detailSet="detailSet"
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'customerProjectTable',projectTableParam,'sa_customersid')" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'customerProjectTable',projectTableParam,'sa_customersid')" :disabled="isFull">{{$t('详情')}}</el-button>-->
+                          <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data.data" :detailPath="detailPath" :idName="idName"  :disabled="isFull"
+                                      :listqueryid="detailDataSet.projectTable.listqueryid" :total="detailDataSet.projectTable.total" :overview="true"></drawerTemp>
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
@@ -781,13 +797,17 @@
                       :tablecols="tool.tabelCol($route.name).typeTable.tablecols"
                       :param="fllowTableParam"
                       :custom="true"
+                      setName="fllowTable"
+                      @detailSet="detailSet"
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'customerFllowTable',fllowTableParam,'sa_customersid')" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'customerFllowTable',fllowTableParam,'sa_customersid')" :disabled="isFull">{{$t('详情')}}</el-button>-->
+                          <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data.data" :detailPath="detailPath" :idName="idName"  :disabled="isFull"
+                                      :listqueryid="detailDataSet.fllowTable.listqueryid" :total="detailDataSet.fllowTable.total" :overview="true"></drawerTemp>
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
@@ -982,13 +1002,15 @@
                       :tablecols="tool.tabelCol($route.name).typeTable1.tablecols.splice(0,tool.tabelCol($route.name).typeTable1.tablecols.length - 1)"
                       :param="unfllowTableParam"
                       :custom="true"
+                      setName="customerUnfllow"
+                      @detailSet="detailSet"
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'customerUnfllowTable',unfllowTableParam,'sa_customersid')">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'customerUnfllowTable',unfllowTableParam,'sa_customersid')">{{$t('详情')}}</el-button>-->
                         </div>
                         <div v-else-if="scope.data.columnname === 'industry'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.industry" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
@@ -1137,9 +1159,38 @@ import btnSelect from "@/components/btn_select/btnSelect";
 import dataDetail from '@/template/dataDetail/index'
 export default {
   name:'customerData',
-  components:{borderTemp,pageTable,FullScroll,exportFile,btnSelect,dataDetail},
+  components:{
+    borderTemp,pageTable,FullScroll,exportFile,btnSelect,dataDetail,
+    drawerTemp:() =>  import('@/components/normal-basic-layout/drawerDetail/index'),
+  },
   data () {
     return {
+      detailPath:{
+        path:'/customerCustomerDetail'
+      },
+      idName:'sa_customersid',
+      detailDataSet:{
+        fllowTable:{
+          listqueryid:'',
+          total:'',
+        },
+        projectTable:{
+          listqueryid:'',
+          total:'',
+        },
+        contactTable:{
+          listqueryid:'',
+          total:'',
+        },
+        gradTable:{
+          listqueryid:'',
+          total:'',
+        },
+        typeTable:{
+          listqueryid:'',
+          total:'',
+        }
+      },
       dateType:'本年',
       isFull:false,
       deplist:[],
@@ -1537,6 +1588,10 @@ export default {
       this.dataAllParam.content.dateType = data
       this.getdataAll()
     },
+    detailSet(listqueryid,total,setName){
+      this.detailDataSet[setName].listqueryid = listqueryid
+      this.detailDataSet[setName].total = total
+    },
     goDetail (data,refData,paramData,fieldname) {
       sessionStorage.setItem('listqueryid',this.$refs[refData].listqueryid)
       sessionStorage.setItem('isGo','1')

+ 0 - 1
src/HDrpManagement/projectChange/modules/detail.vue

@@ -270,7 +270,6 @@ export default {
       projectType:() => this.projectType,
       projectLead:() => this.projectLead,
       projectPanl:() => this.projectPanl,
-      detailData:() => this.mainData,
       projectAddress:() => this.projectAddress,
       detailData:() => this.mainData,
     }

+ 5 - 1
src/HDrpManagement/projectData/components/pageTable.vue

@@ -46,7 +46,7 @@
 <script>
 import {mapGetters} from 'vuex'
 export default {
-  props:["tablecols",'param','custom'],
+  props:["tablecols",'param','custom','setName'],
   data () {
     return {
       list:[],
@@ -79,7 +79,11 @@ export default {
       this.total = res.data.length && res.data[0].isEmpty ? 0 : res.total
       this.listqueryid = res.listqueryid
       this.pageTotal = res.pageTotal
+      sessionStorage.setItem('listqueryid',res.listqueryid)
       sessionStorage.setItem('total',res.total)
+      if (this.setName){
+        this.$emit('detailSet',res.listqueryid,res.total,this.setName)
+      }
     },
     handleSizeChange(val) {
       // console.log(`每页 ${val} 条`);

+ 74 - 8
src/HDrpManagement/projectData/index.vue

@@ -279,13 +279,17 @@
                       :param="typeTableParam"
                       :custom="true"
                       fixedName="operation"
+                      setName="typeTable"
+                      @detailSet="detailSet"
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'typeTable',typeTableParam,'sa_projectid')" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'typeTable',typeTableParam,'sa_projectid')" :disabled="isFull">{{$t('详情')}}</el-button>-->
+                          <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data.data" :detailPath="detailPath" :idName="idName"  :disabled="isFull"
+                                      :listqueryid="detailDataSet.typeTable.listqueryid" :total="detailDataSet.typeTable.total" :overview="true"></drawerTemp>
                         </div>
                         <div v-else-if="scope.data.columnname == 'signamount_due'">
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
@@ -425,13 +429,17 @@
                       :param="gradTableParam"
                       :custom="true"
                       fixedName="operation"
+                      setName="gradTable"
+                      @detailSet="detailSet"
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'gradTable',gradTableParam,'sa_projectid')" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'gradTable',gradTableParam,'sa_projectid')" :disabled="isFull">{{$t('详情')}}</el-button>-->
+                          <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data.data" :detailPath="detailPath" :idName="idName"  :disabled="isFull"
+                                      :listqueryid="detailDataSet.gradTable.listqueryid" :total="detailDataSet.gradTable.total" :overview="true"></drawerTemp>
                         </div>
                         <div v-else-if="scope.data.columnname == 'signamount_due'">
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
@@ -571,7 +579,7 @@
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'scoreTable',scoreTableParam1,'sa_projectid')">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'scoreTable',scoreTableParam1,'sa_projectid')">{{$t('详情')}}</el-button>-->
                         </div>
                         <div v-else-if="scope.data.columnname == 'signamount_due'">
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
@@ -955,13 +963,17 @@
                       :param="fllowTableParam"
                       :custom="true"
                       fixedName="operation"
+                      setName="fllowTable"
+                      @detailSet="detailSet"
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'projectFllowTable',fllowTableParam,'sa_projectid')" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'projectFllowTable',fllowTableParam,'sa_projectid')" :disabled="isFull">{{$t('详情')}}</el-button>-->
+                          <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data.data" :detailPath="detailPath" :idName="idName"  :disabled="isFull"
+                                      :listqueryid="detailDataSet.fllowTable.listqueryid" :total="detailDataSet.fllowTable.total" :overview="true"></drawerTemp>
                         </div>
                         <div v-else-if="scope.data.columnname == 'signamount_due'">
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
@@ -1101,13 +1113,17 @@
                       :param="contactTableParam"
                       :custom="true"
                       fixedName="operation"
+                      setName="contactTable"
+                      @detailSet="detailSet"
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'projectContactTable',contactTableParam,'sa_projectid')" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'projectContactTable',contactTableParam,'sa_projectid')" :disabled="isFull">{{$t('详情')}}</el-button>-->
+                          <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data.data" :detailPath="detailPath" :idName="idName"  :disabled="isFull"
+                                      :listqueryid="detailDataSet.contactTable.listqueryid" :total="detailDataSet.contactTable.total" :overview="true"></drawerTemp>
                         </div>
                         <div v-else-if="scope.data.columnname == 'signamount_due'">
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
@@ -1247,13 +1263,17 @@
                       :param="customerTableParam"
                       :custom="true"
                       fixedName="operation"
+                      setName="customerTable"
+                      @detailSet="detailSet"
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'projectCustomerTable',customerTableParam,'sa_projectid')" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'projectCustomerTable',customerTableParam,'sa_projectid')" :disabled="isFull">{{$t('详情')}}</el-button>-->
+                          <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data.data" :detailPath="detailPath" :idName="idName"  :disabled="isFull"
+                                      :listqueryid="detailDataSet.customerTable.listqueryid" :total="detailDataSet.customerTable.total" :overview="true"></drawerTemp>
                         </div>
                         <div v-else-if="scope.data.columnname == 'signamount_due'">
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
@@ -1393,13 +1413,17 @@
                       :param="scoreTableParam"
                       :custom="true"
                       fixedName="operation"
+                      setName="scoreTable"
+                      @detailSet="detailSet"
                     >
                       <template v-slot:custom="scope">
                         <div v-if="scope.data.columnname == 'sys_tag'">
                           <el-tag size="small" v-for="(item,index) in scope.data.data.sys_tag" :key="index" style="margin-right: 5px">{{ $t(item) }}</el-tag>
                         </div>
                         <div v-else-if="scope.data.columnname == 'operation'">
-                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'projectScoreTable',scoreTableParam,'sa_projectid')" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--                          <el-button type="text" size="small" @click="goDetail(scope.data.data,'projectScoreTable',scoreTableParam,'sa_projectid')" :disabled="isFull">{{$t('详情')}}</el-button>-->
+                          <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data.data" :detailPath="detailPath" :idName="idName"  :disabled="isFull"
+                                      :listqueryid="detailDataSet.scoreTable.listqueryid" :total="detailDataSet.scoreTable.total" :overview="true"></drawerTemp>
                         </div>
                         <div v-else-if="scope.data.columnname == 'signamount_due'">
                           {{ tool.formatAmount(scope.data.data.signamount_due,2,'¥') }}
@@ -1799,7 +1823,10 @@ import btnSelect from "@/components/btn_select/btnSelect";
 import dataDetail from '@/template/dataDetail/index'
 export default {
   name:'projectData',
-  components:{borderTemp,pageTable,selectProject,FullScroll,exportFile,btnSelect,dataDetail},
+  components:{
+    borderTemp,pageTable,selectProject,FullScroll,exportFile,btnSelect,dataDetail,
+    drawerTemp:() =>  import('@/components/normal-basic-layout/drawerDetail/index'),
+  },
   provide () {
     return {
       projectType:() => this.projectType,
@@ -1807,6 +1834,36 @@ export default {
   },
   data () {
     return {
+      detailPath:{
+        path:'/projectProjectDetail'
+      },
+      idName:'sa_projectid',
+      detailDataSet:{
+        typeTable:{
+          listqueryid:'',
+          total:'',
+        },
+        gradTable:{
+          listqueryid:'',
+          total:'',
+        },
+        fllowTable:{
+          listqueryid:'',
+          total:'',
+        },
+        contactTable:{
+          listqueryid:'',
+          total:'',
+        },
+        customerTable:{
+          listqueryid:'',
+          total:'',
+        },
+        scoreTable:{
+          listqueryid:'',
+          total:'',
+        }
+      },
       dateType:'本年',
       isFull:false,
       isAppend:true,
@@ -2314,6 +2371,15 @@ export default {
       this.dataAllParam.content.dateType = data
       this.getdataAll()
     },
+    detailSet(listqueryid,total,setName){
+      console.log('输出内容listqueryid')
+      console.log( this.detailDataSet[setName],'d*********')
+      console.log(listqueryid,'listqueryid')
+      console.log(setName,'setName')
+      this.detailDataSet[setName].listqueryid = listqueryid
+      this.detailDataSet[setName].total = total
+      console.log(this.detailDataSet,'detailDataSet')
+    },
     goDetail (data,refData,paramData,fieldname) {
       sessionStorage.setItem('listqueryid',this.$refs[refData].listqueryid)
       sessionStorage.setItem('isGo','1')

+ 11 - 4
src/components/normal-basic-layout/drawerDetail/index.vue

@@ -1,12 +1,12 @@
 <template>
   <div>
-    <el-button size="small" type="text" @click="onShow">{{$t('详 情')}}</el-button>
+    <el-button size="small" type="text" @click="onShow" :disabled="disabled">{{$t('详 情')}}</el-button>
   </div>
 </template>
 
 <script>
 export default {
-  props:['data','detailPath','idName'],
+  props:['data','detailPath','idName','disabled','overview','listqueryid','total'],
   components:{
   },
   computed:{
@@ -24,8 +24,15 @@ export default {
         key = this.idName
       }
       sessionStorage.setItem('isGo','0')
-      let listqueryid = sessionStorage.getItem('listqueryid')
-      let query = {id:this.data[key],rowindex:this.data.rowindex,listqueryid:listqueryid}
+      let  query = {}
+      if (this.overview){
+        sessionStorage.setItem('listqueryid',this.listqueryid)
+        sessionStorage.setItem('total',this.total)
+        query = {id:this.data[key],rowindex:this.data.rowindex,listqueryid:this.listqueryid}
+      }else {
+        let listqueryid = sessionStorage.getItem('listqueryid')
+        query = {id:this.data[key],rowindex:this.data.rowindex,listqueryid:listqueryid}
+      }
       this.$router.push({path:this.detailPath.path,query:Object.assign({},query,this.detailPath.param)})
       this.$store.dispatch('changeDetailDrawer',true)
     }

+ 22 - 0
src/router/HDrpManagement.js

@@ -1152,6 +1152,17 @@ const HDrpManagement = [
       keeproute: true,
     },
     component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/customerData/index'),
+    children:[
+      {
+        path: '/customerCustomerDetail',
+        name: 'customerData',
+        meta: {
+          title: '客户数据客户详情',
+          ast_nav:false
+        },
+        component: () => import(/* webpackChunkName: "about" */ '@/SDrpManagement/salerPrivatecustomer/detail/customerDetail')
+      },
+    ]
   },
   {
     path: '/projectData',
@@ -1162,6 +1173,17 @@ const HDrpManagement = [
       keeproute: true,
     },
     component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/projectData/index'),
+    children:[
+      {
+        path: '/projectProjectDetail',
+        name: 'projectData',
+        meta: {
+          title: '项目数据项目详情',
+          ast_nav:false
+        },
+        component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/projectChange/modules/detail')
+      },
+    ]
   },
   {
     path: '/salerpriceData',

+ 12 - 1
src/router/index.js

@@ -120,7 +120,18 @@ let routes = [
           title: '销售数据',
           ast_nav:true
         },
-        component: () => import(/* webpackChunkName: "about" */ '@/views/salesData/index')
+        component: () => import(/* webpackChunkName: "about" */ '@/views/salesData/index'),
+        children:[
+          {
+            path: '/salesOrderDetail',
+            name: 'salesData',
+            meta: {
+              title: '销售数据订单详情',
+              ast_nav:false
+            },
+            component: () => import(/* webpackChunkName: "about" */ '@/template/detailTemplate/orderDetail')
+          },
+        ]
       },{
         path: '/clueData',
         name: 'clueData',

+ 14 - 0
src/template/detailTemplate/customerDetail.vue

@@ -0,0 +1,14 @@
+<template>
+  <div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "customerDetail"
+}
+</script>
+
+<style scoped>
+
+</style>

+ 590 - 0
src/template/detailTemplate/orderDetail.vue

@@ -0,0 +1,590 @@
+<template>
+  <div >
+    <basicDetails
+        ref="details"
+        :titleText="`${mainData.sonum}`"
+        :editData="mainData"
+        :mainAreaData="mainAreaData"
+        turnPageId="20230105143002"
+        idname="sa_orderid"
+        ownertable="sa_order"
+        delApiId="20221108152102"
+        tags=""
+        :statusCheck="[{key:'status',value:'审核'},{key:'status',value:'提交'},{key:'status',value:'关闭'}]"
+        :tabs="['订单明细','基本信息','订单进度','居间费明细','发货单','物流单','发票记录','收支明细','核销记录','erp对接记录','变更记录']"
+        @pageChange="pageChange"
+        @onEditSuccess="queryMainData($route.query.id)">
+      <div slot="customOperation"  v-if="Object.keys(mainData).length > 0">
+        <!-- <Edit class="inline-16" v-if="tool.checkAuth($route.name,'update') && (mainData.status == '新建')" :data="mainData" @onSuccess="queryMainData();$refs.prod && $refs.prod.listData()" /> -->
+        <Edit style="display: inline-block !important;"   v-if="mainData.status === '新建'" :data="mainData" @onSuccess="queryMainData();$refs.prod && $refs.prod.listData()" />
+        <!--          <Edit class="inline-16" v-if="mainData.status !== '新建' && mainData.status !== '关闭'" :data="mainData" @onSuccess="queryMainData();$refs.prod && $refs.prod.listData()" />-->
+        <EditRemark style="margin-right: 20px !important;"  :data="mainData" @onSuccess="queryMainData"></EditRemark>
+        <changeSaler class="inline-16" style="margin-left: -10px" ref="saler" @selectRow="salerChange">
+          <el-button v-if="tool.checkAuth($route.name,'changeSaler')" type="primary" slot="input" size="mini" @click="$refs.saler.visible=true;$refs.saler.listData()">{{$t(`变更业务员`)}}</el-button>
+        </changeSaler>
+        <el-button v-if="tool.checkAuth($route.name,'confirmDate') && mainData.status === '交期待确认'"  class="inline-16"  type="primary" size="mini" @click="confirmdate">{{$t(`确认交期`)}}</el-button>
+        <el-button v-if="tool.checkAuth($route.name,'backconfirmDate') && mainData.status === '交期待确认' || mainData.status === '交期确认'"  class="inline-16"  type="primary" size="mini" @click="backconfirmdate">{{$t(`交期退回`)}}</el-button>
+        <confirmDate v-if="tool.checkAuth($route.name,'replyDate')" class="inline-16" :data="mainData" @onSuccess="queryMainData();$refs.prod.listData()"></confirmDate>
+        <el-popover
+            placement="top"
+            trigger="click">
+          <p  class="mt-10 normal-title">{{$t(`选择评审类型`)}}</p>
+          <el-select class="mt-10" v-model="value" :placeholder="$t('请选择')" size="mini">
+            <el-option
+                v-for="item in options"
+                :key="item.value "
+                :label="$t(item.value) + '-' + $t(item.remarks)"
+                :value="item.value">
+              <span style="float: left">{{ $t(item.value) }}</span>
+              <span style="float: right; color: #8492a6; font-size: 12px">{{ item.remarks?$t(item.remarks):$t('暂无描述') }}</span>
+            </el-option>
+          </el-select>
+          <div style="text-align: right; margin: 0">
+            <el-button  type="primary" size="mini" @click="onSubmit('审核')">{{$t(`确定`)}}</el-button>
+          </div>
+          <el-button :disabled="mainData.status !== '提交' && mainData.status !== '交期确认'" class="inline-16" @click="visible=true" v-if="tool.checkAuth($route.name,'examine')"   type="primary" size="mini" slot="reference">{{$t(`审 核`)}}</el-button>
+        </el-popover>
+        <el-button v-if="tool.checkAuth($route.name,'examine') && mainData.status === '审核'"  type="primary" size="mini" @click="onReturnCheck">{{$t(`反审核`)}}</el-button>
+        <el-button v-if="tool.checkAuth($route.name,'reback') && mainData.status === '提交'"  type="primary" size="mini" @click="dialogVisible = true">{{$t('退 回')}}</el-button>
+        <el-button v-if="tool.checkAuth($route.name,'submit') && mainData.status === '新建' " :disabled="mainData.qty === 0"  type="primary" size="mini" @click="onSubmit('提交')">{{$t(`提 交`)}}</el-button>
+        <el-button v-if="tool.checkAuth($route.name,'finishOrder') && mainData.status === '审核'"  type="primary" size="mini" @click="closeOrder">{{$t(`结 案`)}}</el-button>
+        <el-button v-if="tool.checkAuth($route.name,'insert')" class="inline-16"  type="primary" size="mini" @click="onCopy">{{$t(`复 制`)}}</el-button>
+      </div>
+      <template #headerBottom>
+        <div style="display:flex" v-if="Object.keys(mainData).length > 0">
+          <div class="account_info">
+            <div>
+              <p class="normal-title" style="margin-bottom:10px">{{$t(`支付信息`)}}</p>
+            </div>
+            <div class="reveive__panel inline-16">
+              <p class="flex-align-center"><small>{{$t(`结算企业`)}}:</small>&nbsp;<b>{{mainData.finance.enterprisename}}</b></p>
+              <div class="flex-align-center">
+                <p class="inline-16"><small>{{$t(`账户名称`)}}:&nbsp;</small>{{mainData.accountclass.accountname?$t(mainData.accountclass.accountname):$t('未选择账户')}}</p>
+                <p class="inline-16"><small>{{$t(`账户余额`)}}:&nbsp;</small><b>¥{{tool.formatAmount(mainData.accountclass.balance?mainData.accountclass.balance:0,2)}}</b></p>
+
+                <p><small>{{$t(`信用额度`)}}:&nbsp;</small>{{mainData.accountclass.creditquota ? tool.formatAmount(mainData.accountclass.creditquota,2) : tool.formatAmount(mainData.accountclass.creditquota)}}</p>&nbsp;
+                <p><small>{{$t(`本单金额`)}}:&nbsp;</small>{{mainData.rebate_used ? tool.formatAmount(mainData.defaultamount - rebateamount,2) : tool.formatAmount(mainData.defaultamount)}}</p>
+              </div>
+              <div v-if="(mainData.type === '标准订单' ||  mainData.type === '特殊订单') && isusedrebate === 1">
+                <div v-if="checked" class="flex-align-center">
+                  <p class="inline-16"><small>{{$t(`返利金余额`)}}:&nbsp;</small><b>{{tool.formatAmount(mainData.rebatebalance,2)}}</b></p>
+                  <p class="inline-16"><small>{{$t(`已使用返利金金额`)}}:&nbsp;</small><b>{{tool.formatAmount(mainData.rebateamount,2)}}</b></p>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="address_info">
+            <div>
+              <p class="normal-title" style="margin-bottom:10px">{{$t(`收货信息`)}}</p>
+            </div>
+            <div class="reveive__panel inline-16">
+              <div>
+                <p class="inline-16"><b>{{mainData.contactsEnterprise.enterprisename}}</b></p>
+                <p class="inline-16"><span class="inline-16"><b>{{mainData.contacts.name}}</b></span><small>{{mainData.contacts.phonenumber}}</small></p>
+              </div>
+              <small>{{mainData.contacts.province?mainData.contacts.province:'--'}}{{mainData.contacts.city}}{{mainData.contacts.county}}{{mainData.contacts.address?mainData.contacts.address:''}}</small>
+            </div>
+          </div>
+        </div>
+
+      </template>
+      <div slot="slot1">
+        <default-info :mainData="mainData"></default-info>
+      </div>
+      <div slot="slot0">
+        <product-list @select="select" @onSuccess="queryMainData()" :data="mainData"  ref="prod">
+          <div slot="operation">
+            <importFile v-if="mainData.status == '新建'" ref="importFile" class="inline-16" :bindData="{ownertable:'sa_order',ownerid:$route.query.id,usetype:'default'}" :ordertype="mainData.type" :errorUrl="errorUrl" @clearUrl="errorUrl = null" @onSuccess="bindImportOrder"></importFile>
+            <changeOrderMx v-if="mainData.status === '审核'" :tableData="selection" class="inline-16" :data="mainData" @onSuccess="$refs['prod'].listData();queryMainData"></changeOrderMx>
+            <el-button :disabled="mainData.status !== '审核' || selection.length === 0"  size="small" type="primary" style="margin-bottom:12px" @click="adddispatch">{{$t(`一键发货`)}}</el-button>
+          </div>
+        </product-list>
+      </div>
+      <div slot="slot2">
+        <orderprogress></orderprogress>
+      </div>
+      <div slot="slot3">
+        <rebat></rebat>
+      </div>
+      <div slot="slot4">
+        <dispatch></dispatch>
+      </div>
+      <div slot="slot5">
+        <logistics></logistics>
+      </div>
+      <div slot="slot6">
+        <invoiceTable></invoiceTable>
+      </div>
+      <div slot="slot7">
+        <revenue :data="mainData"></revenue>
+      </div>
+      <div slot="slot8">
+        <writeOff :data="mainData"></writeOff>
+      </div>
+      <div slot="slot9">
+        <erpHistory :data="mainData"></erpHistory>
+      </div>
+      <div slot="slot10">
+        <changeHistory :data="mainData"></changeHistory>
+      </div>
+    </basicDetails>
+    <el-dialog append-to-body :title="$t(`退回原因`)" :visible.sync="dialogVisible" width="400px">
+      <el-input v-model="backreason" type="textarea" :placeholder="$t(`请输入退回原因`)"></el-input>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false" size="small">{{$t('取 消')}}</el-button>
+        <el-button type="primary" @click="onRebanck" size="small">{{$t('确 定')}}</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import Edit from '@/HDrpManagement/orderManage/modules/edit'
+import defaultInfo from '@/HDrpManagement/orderManage/details/tabs/defaultInfo.vue';
+import productList from '@/HDrpManagement/orderManage/details/tabs/productlist.vue'
+import confirmDate from '@/HDrpManagement/orderManage/modules/confirmDate.vue'
+import rebat from '@/HDrpManagement/orderManage/details/tabs/rebatesettlement.vue'
+import orderprogress from '@/HDrpManagement/orderManage/details/tabs/orderpProgress.vue'
+import dispatch from '@/HDrpManagement/orderManage/details/tabs/dispatch.vue'
+import logistics from '@/HDrpManagement/orderManage/details/tabs/logistics.vue'
+import invoiceTable from '@/HDrpManagement/orderManage/details/tabs/invoiceTable.vue'
+import changeSaler from '@/template/selectSaler/index'
+import revenue from '@/HDrpManagement/orderManage/details/tabs/revenueAndExp.vue'
+import changeOrderMx from '@/HDrpManagement/orderManage/details/tabs/changeOrderMx.vue'
+import writeOff from '@/HDrpManagement/orderManage/details/tabs/writeoff.vue'
+import erpHistory from '@/HDrpManagement/orderManage/details/tabs/erpHistory.vue'
+import changeHistory from '@/HDrpManagement/orderManage/details/tabs/changeHistory.vue'
+import importFile from '@/HDrpManagement/orderManage/details/importFile.vue'
+import EditRemark from '@/HDrpManagement/orderManage/modules/EditRemark.vue'
+export default {
+  name: "orderDetail",
+  data() {
+    return {
+      mainData:{},
+      mainAreaData:{},
+      backreason:'',
+      options:[],
+      dialogVisible:false,
+      visible:false,
+      value:'',
+      selection:[],
+      errorUrl:null,
+      rebateamount:'',
+      isusedrebate:'',
+      checked:0,
+
+    }
+  },
+  provide () {
+    return {
+      thisDetail:() => this
+    }
+  },
+  components:{
+    Edit,
+    defaultInfo,
+    productList,
+    confirmDate,
+    rebat,
+    orderprogress,
+    dispatch,
+    logistics,
+    invoiceTable,
+    changeSaler,
+    revenue,
+    changeOrderMx,
+    writeOff,
+    erpHistory,
+    changeHistory,
+    importFile,
+    EditRemark
+  },
+  methods:{
+    async orderreviewtype () {
+      const res = await this.$store.dispatch('optiontypeselect','orderreviewtype')
+      this.options = res.data
+      this.value = res.data[0].value
+    },
+    async queryMainData(id) {
+      return new Promise(async (re,rj) => {
+        const res = await this.$api.requested({
+          "id":'20221108151302',
+          "content": {
+            "nocache":true,
+            "sa_orderid": this.$route.query.id
+          }
+        })
+        this.mainData = res.data
+        this.checked = this.mainData.rebate_used
+        if (this.mainData.rebateamount > this.mainData.defaultamount) {
+          this.rebateamount = this.tool.formatAmount(+this.mainData.defaultamount / 2)
+        } else {
+          this.rebateamount = this.mainData.rebateamount
+        }
+        console.log(this.mainData);
+        this.$refs.prod.listData(this.$refs.prod.param.content.pageNumber = 1)
+        this.queryUsedrebate()
+        this.changeDataStructure()
+        this.orderreviewtype()
+        re()
+      })
+
+    },
+    changeDataStructure() {
+      let that = this
+      this.mainAreaData = [
+        {
+          label:'订单状态',
+          value:this.$t(this.mainData.status),
+          style:function () {
+            let style = {}
+            switch (that.mainData.status) {
+              case '新建':
+                style = {color:"#000000"}
+                break;
+              case '提交':
+                style = {color:"#d90a0a"}
+                break;
+              case '交期待确认':
+                style = {color:"#e09a1a"}
+                break;
+              case '交期确认':
+                style = {color:"#3874f6"}
+                break;
+              case '审核':
+                style = {color:"#52C41A"}
+                break;
+              case '关闭':
+                style = {color:"#b2c0ea"}
+                break;
+              default:
+                break;
+            }
+            return style
+          }
+        },
+        {
+          label:'订单类型',
+          value:this.mainData.type
+        },
+        {
+          label:'明细分类',
+          value:this.mainData.typemx
+        },
+        {
+          label:'单据日期',
+          value:this.mainData.billdate
+        },
+        {
+          label:'企业名称',
+          value:this.mainData.enterprisename
+        },
+        {
+          label:'订单总金额',
+          value:this.tool.formatAmount(this.mainData.defaultamount,2),
+          style:function () {
+            let style = {color:"#ff0000"}
+            return style
+          }
+        },
+        {
+          label:'折后总金额',
+          value:this.tool.formatAmount(this.mainData.amount,2),
+          style:function () {
+            let style = {color:"#ff0000"}
+            return style
+          }
+        },
+        {
+          label:'合计数量',
+          value:this.mainData.qty,
+          style:function () {
+            let style = {color:"#ff0000"}
+            return style
+          }
+        },
+        {
+          label:'品牌',
+          value:this.mainData.brandname
+        },
+        {
+          label:'领域',
+          value:this.mainData.tradefield
+        },
+        {
+          label:'领域明细',
+          value:this.mainData.tradefieldmx
+        },
+        {
+          label:'评审类型',
+          value:this.mainData.optiontyperemarks?this.mainData.reviewtype + '-' + this.mainData.optiontyperemarks : this.mainData.reviewtype
+        },
+        {
+          label:'业务员',
+          value:this.mainData.saler_name
+        },
+        {
+          label:'项目信息',
+          value:this.mainData.projectname
+        },
+        {
+          label:'销售分类',
+          value:`${this.mainData.saletype}${this.mainData.saletyperemarks?'-':''}${this.mainData.saletyperemarks}`
+        },
+        {
+          label:'运费状态',
+          value:this.$t(this.mainData.freightstatus)
+        },
+        {
+          label:'备注',
+          value:this.mainData.remarks
+        },
+        /*{
+          label:'返利金使用比例(%)',
+          value:this.mainData.rebate_userate
+        },*/
+        {
+          label:'退回原因',
+          value:this.mainData.backreason
+        },
+        {
+          label:'核销状态',
+          value:this.mainData.writeoffstatus
+        },
+        {
+          label:'开票状态',
+          value:this.mainData.invoicestatus
+        },
+        {
+          label:'erp单号',
+          value:this.mainData.erpbillno
+        },
+        {
+          label:'回签单',
+          value:this.mainData.signbackstatus
+        },
+        {
+          label:'项目备注',
+          value:this.mainData.projectnote
+        }
+      ]
+    },
+    // 监听切换数据,上一页,下一页
+    pageChange (id,rowindex,tabIndex) {
+      /*this.$router.replace({path:'/orderdetail',query:{id:id,rowindex:rowindex}})*/
+      this.queryMainData(id)
+    },
+    // 查询站点是否使用返利金
+    async queryUsedrebate () {
+      const res = await this.$api.requested({
+        "classname": "webmanage.site.site",
+        "method": "querySite_Parameter",
+        "content": {
+        }
+      })
+      this.isusedrebate = res.data.order_rebate_used
+    },
+    /* 变更业务员 */
+    salerChange (data) {
+      console.log(data);
+      this.$confirm(`${this.$t(`确定把`)} ${data.name} ${this.$t(`设置为业务员吗`)}`,this.$t('提示'),{
+        confirmButtonText:this.$t('确定'),
+        cancelButtonText:this.$t('取消')
+      }).then(async () => {
+        let res = await this.$api.requested({
+          "id":20230213154802,
+          "content": {
+            saler_hrid:data.hrid,
+            sa_orderid:this.$route.query.id
+          }
+        })
+        console.log(res);
+        this.tool.showMessage(res,() => {
+          this.$refs.saler.visible = false
+          this.queryMainData()
+        })
+      })
+    },
+    // 提交审核订单
+    onSubmit (type) {
+      this.$confirm(`${this.$t(`是否`)} ${this.$t(type)} ${this.$t(`该订单`)}`, this.$t('提示'), {
+        confirmButtonText: this.$t('确定'),
+        cancelButtonText: this.$t('取消'),
+        type: 'warning'
+      }).then(async () => {
+        const res = await this.$api.requested({
+          "id": type === '审核'?20221108153502:20221108153402,
+          "content": {
+            "sa_orderid": this.mainData.sa_orderid,
+            "sys_enterpriseid": this.mainData.sys_enterpriseid,
+            "sa_accountclassid": this.mainData.accountclass.sa_accountclassid,
+            "reviewtype":type === '审核'?this.value:''
+          },
+        })
+        this.tool.showMessage(res,async ()=>{
+          this.visible = false
+          this.queryMainData()
+        })
+      }).catch((err) => {
+        this.$message({
+          type: 'info',
+          message: this.$t('已取消')
+        });
+      });
+    },
+    // 反审核订单
+    onReturnCheck () {
+      this.$confirm(this.$t(`是否反审核该订单`), this.$t('提示'), {
+        confirmButtonText: this.$t('确定'),
+        cancelButtonText: this.$t('取消'),
+        type: 'warning'
+      }).then(async () => {
+        const res = await this.$api.requested({
+          "id": 20230102141502,
+          "content": {
+            "sa_orderid": this.mainData.sa_orderid,
+          },
+        })
+        this.tool.showMessage(res,()=>{
+          this.$store.dispatch('changeDetailDrawer',false)
+        })
+      }).catch((err) => {
+        this.$message({
+          type: 'info',
+          message: this.$t('已取消')
+        });
+      });
+    },
+    async onRebanck () {
+      const res = await this.$api.requested({
+        "id": 20221108161902,
+        "content": {
+          "sys_enterpriseid":this.mainData.sys_enterpriseid,
+          "sa_accountclassid":this.mainData.accountclass.sa_accountclassid,
+          "sa_orderid": this.mainData.sa_orderid,
+          "backreason": this.backreason //退回原因,可选
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.queryMainData()
+        this.dialogVisible = false
+        this.$store.dispatch('changeDetailDrawer',false)
+      })
+    },
+    async closeOrder () {
+      const res = await this.$api.requested({
+        "id": 20221108164502,
+        "content": {
+          "sa_orderid":this.$route.query.id
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.queryMainData()
+        this.dialogVisible = false
+      })
+    },
+    async confirmdate () {
+      const res = await this.$api.requested({
+        "id": 20221230094802,
+        "content": {
+          "sa_orderid": this.$route.query.id
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.queryMainData()
+      })
+    },
+    async backconfirmdate () {
+      const res = await this.$api.requested({
+        "id": 20230227160002,
+        "content": {
+          "sa_orderid": this.$route.query.id
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.queryMainData()
+      })
+    },
+    async onCopy () {
+      const res = await this.$api.requested({
+        "id": 20230102144502,
+        "content": {
+          "sa_orderid": this.$route.query.id
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        /*this.tool.showMessage(res)*/
+        /* this.$store.dispatch('changeDetailDrawer',false)
+         this.$store.dispatch('changeDetailDrawer',true)
+         this.$router.push({path:'/orderdetail',query:{id:res.data.sa_orderid,rowindex:res.data.rowindex}})*/
+
+        this.$store.dispatch('changeDetailDrawer',false)
+        setTimeout(()=>{
+          this.$router.replace({
+            path:'/orderdetail',
+            query:{
+              id:res.data.sa_orderid
+            }
+          })
+          this.$store.dispatch('changeDetailDrawer',true)
+        },500)
+      })
+    },
+    select (data) {
+      this.selection = data
+    },
+    async adddispatch () {
+      const res = await this.$api.requested({
+        "id": "20230220100604",
+        "content": {
+          "sa_orderid":this.mainData.sa_orderid,
+          "sa_orderitemsids": this.selection.map(e=>{
+            return e.sa_orderitemsid
+          })
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        let route = this.$route
+
+        this.oldRoute = {path:route.path,query:route.query}
+
+        this.$store.dispatch('setHistoryRouter',this.oldRoute)
+
+        this.$router.replace({path:'/dispatchdetail',query:{id:res.data.sa_dispatchid,rowindex:res.data.rowindex}})
+      })
+    },
+    async bindImportOrder (id) {
+      const res = await this.$api.requested({
+        "id": this.$refs.importFile.orderType == 1?20230308155803:20230227194803,
+        "content": {
+          "sa_orderid":this.$route.query.id,
+          "attachmentid":id
+        }
+      })
+      this.$refs['prod'].listData()
+      if (res.data !== '成功') {
+        this.errorUrl = res.data
+      }
+      this.queryMainData()
+    }
+  },
+  mounted () {
+    this.queryMainData(this.$route.query.id)
+  },
+  created() {
+  }
+}
+</script>
+
+<style scoped>
+.reveive__panel{
+  font-size: 16px;
+  line-height: 30px;
+  padding: 0 10px;
+  background: #d9ecff;
+  border: 1px dashed #0676e7;
+}
+.account__panel small,.reveive__panel small{
+  color:#888
+}
+</style>

+ 18 - 4
src/views/mediaStatistics/modules/salesfunnel.vue

@@ -2,11 +2,11 @@
 <template>
   <div class="container normal-panel">
     <div class="inline-16" style="margin-top:0px;margin-bottom: 20px">
-      <label  class="search__label" >{{$t('部门')}}:</label>
+      <label  class="search__label" >{{$t('部门') +':'}}</label>
       <el-cascader ref="selectdep" size="small" v-model="depment" :options="deplist" :props="{emitPath:true,expandTrigger:'hover',checkStrictly:true,label:'label',value:'departmentid',children:'children'}"  @change="selectDep"  clearable></el-cascader>
     </div>
     <div class="inline-16">
-      <label  class="search__label" >{{$t('业务员')}}:</label>
+      <label  class="search__label" >{{$t('业务员' +':')}}</label>
       <el-select v-model="person" filterable :placeholder="$t('请选择')" size="small" clearable @change="selectPerson">
         <el-option
             v-for="item in personnelList"
@@ -17,14 +17,14 @@
       </el-select>
     </div>
     <div class="inline-16">
-      <p class="search__label">{{$t('状态')}}:</p>
+      <p class="search__label">{{$t('状态') +':'}}</p>
       <el-select v-model="isleave" clearable style="margin-right:10px" size="small" :placeholder="$t('请选择状态')" @change="leaveChange" >
         <el-option :label="$t('在职')" value="1"></el-option>
         <el-option :label="$t('离职')" value="2"></el-option>
       </el-select>
     </div>
     <div class="inline-16">
-      <p class="search__label">{{$t('领域')}}:</p>
+      <p class="search__label">{{$t('领域') +':'}}</p>
       <el-select v-model="tradefield" clearable style="margin-right:10px" size="small" :placeholder="$t('请选择领域')" @change="dataParam.content.where.tradefield = tradefield;projectParam.content.where.tradefield = tradefield;getProportionOfFileModel()">
         <el-option v-for="item in tradefields" :label="$t(item.value)" :key="item.rowindex" :value="item.value">
         </el-option>
@@ -88,6 +88,13 @@
         </el-col>
       </el-row>
     </div>
+<!--    <div>-->
+<!--      <p class="title">{{$t(`项目预计成交统计`)}}</p>-->
+<!--      <div style="display: flex;justify-content: space-between">-->
+<!--        <div></div>-->
+<!--        <div></div>-->
+<!--      </div>-->
+<!--    </div>-->
     <div>
       <p class="title">{{projectTile}}</p>
       <tableTemp :layout="tablecols" :data="projectList" :opwidth="200" :custom="true" :height="tableHieght">
@@ -844,4 +851,11 @@ export default {
 .container{
  /* height:calc(100vh)*/
 }
+.statistics-box{
+  width: 12.500vw;
+  height: 14.688vw;
+  background: #FFFFFF;
+  box-shadow: 0.000vw 0.052vw 0.313vw 0.052vw rgba(0,0,0,0.16);
+  border-radius: 0.521vw 0.521vw 0.521vw 0.521vw;
+}
 </style>

+ 14 - 2
src/views/salesData/modules/orderProductCategory.vue

@@ -104,7 +104,8 @@
               <p v-else>{{scope.column.data[scope.column.columnname]?$t(scope.column.data[scope.column.columnname]):'--'}}</p>
             </template>
             <template v-slot:opreation="scope">
-              <el-button size="mini" type="text"  @click="goDetail(scope.data)" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--              <el-button size="mini" type="text"  @click="goDetail(scope.data)" :disabled="isFull">{{$t('详情')}}</el-button>-->
+              <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data" :detailPath="detailPath" :idName="idName" @onSuccess="listData" :disabled="isFull" :overview="true" :listqueryid="listqueryid" :total="total"></drawerTemp>
             </template>
           </tableTemplate>
           <div  class="container normal-panel" style="text-align:right;float: right">
@@ -137,9 +138,16 @@ const G = G2.getEngine('canvas');
 export default {
   name: "orderProductCategory", //订单产品类别
   props:['dataid','scrollHeight','windowWidth'],
-  components:{tableTemplate,fullScreen,exportFile,departmentSalesperson},
+  components:{
+    tableTemplate,fullScreen,exportFile,departmentSalesperson,
+    drawerTemp:() =>  import('@/components/normal-basic-layout/drawerDetail/index'),
+  },
   data(){
     return {
+      detailPath:{
+        path:'/salesOrderDetail'
+      },
+      idName:'sa_orderid',
       chartPie:null,
       type:'金额',
       dateType:'本年',
@@ -198,6 +206,7 @@ export default {
           this.currentPage = res.pageNumber
           this.pageTotal = res.pageTotal
           this.listqueryid = res.listqueryid
+          sessionStorage.setItem('listqueryid',res.listqueryid)
           sessionStorage.setItem('total',res.total)
         }
       }else {
@@ -206,6 +215,7 @@ export default {
         this.currentPage = res.pageNumber
         this.pageTotal = res.pageTotal
         this.listqueryid = res.listqueryid
+        sessionStorage.setItem('listqueryid',res.listqueryid)
         sessionStorage.setItem('total',res.total)
       }
       if (this.type === '金额'){
@@ -245,6 +255,7 @@ export default {
           this.currentPage = res.pageNumber
           this.pageTotal = res.pageTotal
           this.listqueryid = res.listqueryid
+          sessionStorage.setItem('listqueryid',res.listqueryid)
           sessionStorage.setItem('total',res.total)
         }
       }else {
@@ -253,6 +264,7 @@ export default {
         this.currentPage = res.pageNumber
         this.pageTotal = res.pageTotal
         this.listqueryid = res.listqueryid
+        sessionStorage.setItem('listqueryid',res.listqueryid)
         sessionStorage.setItem('total',res.total)
       }
       if (this.type === '金额'){

+ 16 - 3
src/views/salesData/modules/orderType.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="div-box-new-margin">
+  <div class="div-box-new-margin" >
     <div class="div-border-box" id="orderTypeFull">
       <div class="out">
         <div>
@@ -71,7 +71,8 @@
               <p v-else>{{scope.column.data[scope.column.columnname]?$t(scope.column.data[scope.column.columnname]):'--'}}</p>
             </template>
             <template v-slot:opreation="scope">
-              <el-button size="mini" type="text"  @click="goDetail(scope.data)" :disabled="isFull">{{$t('详情')}}</el-button>
+<!--              <el-button size="mini" type="text"  @click="goDetail(scope.data)" :disabled="isFull">{{$t('详情')}}</el-button>-->
+              <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data" :detailPath="detailPath" :idName="idName" @onSuccess="listData" :disabled="isFull" :overview="true" :listqueryid="listqueryid" :total="total"></drawerTemp>
             </template>
           </tableTemplate>
           <div  class="container normal-panel" style="text-align:right;float: right">
@@ -100,13 +101,21 @@ import tableTemplate from '@/views/salesData/components/table';
 import fullScreen from "@/views/salesData/components/fullScreen";
 import exportFile from '@/components/export_file/index'
 import departmentSalesperson from "@/views/salesData/components/departmentSalesperson";
+
 const G = G2.getEngine('canvas');
 export default {
   name: "orderType",
   props:['dataid','scrollHeight','windowWidth'],
-  components:{tableTemplate,fullScreen,exportFile,departmentSalesperson},
+  components:{
+    tableTemplate,fullScreen,exportFile,departmentSalesperson,
+    drawerTemp:() =>  import('@/components/normal-basic-layout/drawerDetail/index'),
+  },
   data(){
     return {
+      detailPath:{
+        path:'/salesOrderDetail'
+      },
+      idName:'sa_orderid',
       chartPie:null,
       type:'金额',
       dateType:'本年',
@@ -158,6 +167,7 @@ export default {
           this.currentPage = res.pageNumber
           this.pageTotal = res.pageTotal
           this.listqueryid = res.listqueryid
+          sessionStorage.setItem('listqueryid',res.listqueryid)
           sessionStorage.setItem('total',res.total)
         }
       }else {
@@ -166,6 +176,7 @@ export default {
         this.currentPage = res.pageNumber
         this.pageTotal = res.pageTotal
         this.listqueryid = res.listqueryid
+        sessionStorage.setItem('listqueryid',res.listqueryid)
         sessionStorage.setItem('total',res.total)
       }
 
@@ -206,6 +217,7 @@ export default {
           this.currentPage = res.pageNumber
           this.pageTotal = res.pageTotal
           this.listqueryid = res.listqueryid
+          sessionStorage.setItem('listqueryid',res.listqueryid)
           sessionStorage.setItem('total',res.total)
         }
       }else {
@@ -214,6 +226,7 @@ export default {
         this.currentPage = res.pageNumber
         this.pageTotal = res.pageTotal
         this.listqueryid = res.listqueryid
+        sessionStorage.setItem('listqueryid',res.listqueryid)
         sessionStorage.setItem('total',res.total)
       }
       if (this.type === '金额'){