zhangqiOMG 3 gadi atpakaļ
vecāks
revīzija
d01960d4f4

+ 3 - 2
src/Form/competitor/add.vue

@@ -4,13 +4,14 @@
     <el-drawer
         title="创建竞争对手"
         :visible.sync="dialogFormVisible"
-        size="30%"
+        size="600px"
         direction="rtl"
+        :show-close="false"
         append-to-body
         @close="onClose">
       <div class="drawer__panel">
         <el-row :gutter="20">
-          <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="right" size="mini" >
+          <el-form :model="form" :rules="rules" ref="form" label-width="82px" label-position="right" size="mini" >
             <el-col :span="24">
               <el-form-item label="品牌名称:" prop="brandname">
                 <el-input v-model="form.brandname" placeholder="请输入品牌名称"></el-input>

+ 1 - 1
src/Form/projectTask/add.vue

@@ -119,7 +119,7 @@
       </div>
       <div class="fixed__btn__panel">
         <el-button size="small" @click="onClose" class="normal-btn-width">取 消</el-button>
-        <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
+        <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width" :disabled="form.projtaskmag_options.length === 0">确 定</el-button>
       </div>
     </el-drawer>
   </div>

+ 3 - 1
src/HDrpManagement/projectChange/modules/modules/baseInfo/baseInfo.vue

@@ -2,7 +2,9 @@
   <div>
     <div class="normal-margin">
       <el-descriptions :column="2" title="基本信息" labelClassName="my-label" contentClassName="my-content" border>
-        <el-descriptions-item v-for="(item,index) in detailInfo.baseInfo" :key="index" :label="item.label"><span :style="item.style?item.style():''">{{ item.value ? item.value : '--' }}</span></el-descriptions-item>
+        <el-descriptions-item v-for="(item,index) in detailInfo.baseInfo" :key="index" :label="item.label">
+          <span :style="item.style?item.style():''">{{ item.value ? item.value : '--' }}</span>
+        </el-descriptions-item>
       </el-descriptions>
     </div>
 

+ 1 - 1
src/HDrpManagement/projectChange/modules/modules/clue/index.vue

@@ -15,7 +15,7 @@
       </el-input>
     </div>
     <div style="margin-top: 15px">
-      <tableLayout :layout="tablecols" :data="list" :opwidth="200"  :custom="true" width="true"  :height="tableHieght" fixedName="operation">
+      <tableLayout :layout="tablecols" :data="list" :opwidth="200"  :custom="true" :width="false"  :height="tableHieght" fixedName="operation">
         <template v-slot:customcol="scope">
           <p v-if="scope.column.columnname == 'leader'">
             <span v-if="scope.column.data[scope.column.columnname]">

+ 2 - 2
src/HDrpManagement/projectTask/index.vue

@@ -23,7 +23,7 @@
           </div>
           <div v-else>
             <span v-for="item in scope.data.column.data.partiestype" :key="item.index">
-            {{item?item:'--'}},
+            {{item?item + ',':'--'}}
           </span>
           </div>
         </div>
@@ -33,7 +33,7 @@
           </div>
           <div v-else>
             <span v-for="item in scope.data.column.data.stage" :key="item.index">
-            {{item?item:'--'}},
+            {{item?item + ',':'--'}}
           </span>
           </div>
 

+ 22 - 7
src/HDrpManagement/reportcenter/index.vue

@@ -10,9 +10,6 @@
       idName="userid" 
       :apiId="{query:20221213094401,del:20221031141202}"
       :options="options"
-      :detailPath="{
-        path:'/account_details'
-      }"
       @listCreate="listCreate"
       @listData="listData">
       <div slot="custom"></div>
@@ -22,13 +19,13 @@
         </div>
       </template>
       <template v-slot:tbOpreation="scope">
+        <el-button v-if="tool.checkAuth($route.name,'read')" type="text" size="mini" @click="goDetail(scope.data.data)">数 据</el-button>
       </template>
     </basicLayout>
   </div>
 </template>
 
 <script>
-import { log } from '@antv/g2plot/lib/utils';
 export default {
   data () {
     return {
@@ -38,8 +35,6 @@ export default {
   },
   methods:{
     listCreate (params) {
-      console.log(params,JSON.parse(sessionStorage.getItem('activeApp')).systemappid,'create');
-      
       params.content.systemappid = JSON.parse(sessionStorage.getItem('activeApp')).systemappid
       console.log(params);
       
@@ -47,8 +42,28 @@ export default {
     listData (data) {
       console.log(data);
       
+    },
+    async goDetail (data) {
+      
+      let res = await this.$api.requested({
+        "id":20221213094501,
+        "content": {
+          sys_reportid:data.sys_reportid,
+          dataid:0
+        }
+      })
+      console.log(res);
+      this.tool.showMessage(res,() => {
+        window.open(this.$baseUrl + res.data)  
+      })
+      
     }
-  }
+  },
+  // created () {
+  //   setTimeout(() => {
+      
+  //   },2000)
+  // }
 }
 
 </script>

+ 14 - 0
src/HManagement/clueManage/clue_import/detailPage/index.vue

@@ -133,6 +133,20 @@ export default {
           {
             label:'状态',
             value:this.mainData.status,
+            style:function () {
+              let style = {}
+              switch (that.mainData.status) {
+                case '待审核':
+                  style = {color: '#3874f6'}
+                  break;
+                case '已审核':
+                  style = {color: '#333333'}
+                  break;
+                default:
+                  break;
+              }
+              return style
+            }
           },
           {
             label:'导入人',

+ 45 - 2
src/HManagement/clueManage/clue_private/modules/detail.vue

@@ -222,8 +222,51 @@ export default {
             value:this.mainData.enterprisename
           },
           {
-            label:'状态',
-            value:this.mainData.status
+            label:'跟进状态',
+            value:this.mainData.status,
+            style:function () {
+              let style = {}
+              switch (that.mainData.status) {
+                case '已过期':
+                  style = {color:'#999999'}
+                  break;
+                case '跟进中':
+                  style = {color:'#52c41a'}
+                  break;
+                case '待跟进':
+                  style = {color:'#3874f6'}
+                  break;
+                case '已转化':
+                  style = {color:'#fa8c16'}
+                  break;
+                case '已无效':
+                  style = {color:'#333333'}
+                  break;
+                default:
+                  break;
+              }
+              return style
+
+            }
+          },
+          {
+            label:'分配状态',
+            value:this.mainData.allocationstatus,
+            style:function () {
+              let style = {}
+              switch (that.mainData.allocationstatus) {
+                case '已分配':
+                  style = {color:'#333333'}
+                  break;
+                case '待分配':
+                  style = {color:'#3874f6'}
+                  break;
+                default:
+                  break;
+              }
+              return style
+            }
+
           },
         ],
         systemInfo: [

+ 1 - 1
src/HManagement/clueManage/clue_private/modules/recall.vue

@@ -3,7 +3,7 @@
     <el-popconfirm
       title="确定撤回当前线索吗?"
       @confirm="revoke()">
-      <el-button slot="reference" size="mini">撤 回</el-button>
+      <el-button slot="reference" type="primary" size="mini">撤 回</el-button>
     </el-popconfirm>
     
   </div>

+ 14 - 3
src/HManagement/clueManage/clue_public/modules/detail.vue

@@ -241,12 +241,23 @@ export default {
           },
           {
           label:'分配状态',
-          value:this.mainData.allocationstatus
+          value:this.mainData.allocationstatus,
+            style:function () {
+              let style = {}
+              switch (that.mainData.allocationstatus) {
+                case '待分配':
+                  style = {color:'#3874f6'}
+                  break;
+                default:
+                  break;
+              }
+              return style
+            }
         },
-        {
+        /*{
           label:'跟进状态',
           value:this.mainData.status
-        },
+        },*/
         ],
         systemInfo: [
           {label:'创建人',value:this.mainData.createBy},

+ 6 - 0
src/HManagement/clueManage/m_activity/modules/details.vue

@@ -108,6 +108,9 @@ export default {
               case '发布':
                 style = {color:"rgb(82, 196, 26)"}
                 break;
+              case '结束':
+                style = {color:"#cccccc"}
+                break;
               default:
                 break;
             }
@@ -154,6 +157,9 @@ export default {
                 case '发布':
                   style = {color:"rgb(82, 196, 26)"}
                   break;
+                case '结束':
+                  style = {color:"#cccccc"}
+                  break;
                 default:
                   break;
               }

+ 6 - 7
src/SManagement/orderclue/components/edit.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="edit">
-    <el-button size="mini" type="primary" :disabled="!isHandle" @click="editBtn">编 辑</el-button>
+    <el-button size="mini" :type="!isHandle?'':'primary'" :disabled="!isHandle" @click="editBtn">编 辑</el-button>
     <el-drawer title="编辑线索" :visible.sync="drawer" size="30%" direction="rtl" append-to-body>
       <div class="drawer__panel">
         <el-form :model="param" :rules="rules" ref="ruleForm" label-width="80px" class="demo-ruleForm"
@@ -50,6 +50,7 @@
 
 <script>
 import selectActivity from '@/SManagement/orderclue/components/selectActivity/selectActivity'
+import { log } from '@antv/g2plot/lib/utils'
 export default {
   components: {selectActivity},
   data () {
@@ -108,8 +109,8 @@ export default {
   watch: {
    data(val) {
      let is 
-      if(this.data.leader.length <= 0 ) return
-      if(JSON.parse(window.sessionStorage.getItem('userInfo')).userid == this.data.leader[0].userid) {
+      if (!Object.keys(this.data).length) return
+      if(this.data.leader.length > 0 && JSON.parse(window.sessionStorage.getItem('userInfo')).userid == this.data.leader[0].userid) {
         is = true
         if(this.data.status == '待跟进' || this.data.status == '跟进中') {
           is = true
@@ -126,10 +127,8 @@ export default {
   methods: {
     isHandleFun () {
       let is 
-      console.log(this.data);
-      
-      if(this.data.leader.length <= 0 ) return
-      if(JSON.parse(window.sessionStorage.getItem('userInfo')).userid == this.data.leader[0].userid) {
+      if (!Object.keys(this.data).length) return
+      if(this.data.leader.length > 0 && JSON.parse(window.sessionStorage.getItem('userInfo')).userid == this.data.leader[0].userid) {
         is = true
         if(this.data.status == '待跟进' || this.data.status == '跟进中') {
           is = true

+ 1 - 1
src/SManagement/orderclue/components/follow.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="follow" style="margin-right:10px">
-    <el-button size="mini" type="primary" @click="followBtn" :disabled="disabled">跟进</el-button>
+    <el-button size="mini" :type="disabled?'':'primary'" @click="followBtn" :disabled="disabled">跟进</el-button>
     <el-drawer title="线索跟进" append-to-body :visible.sync="dialogVisible" size="30%" :before-close="handleClose">
       <div class="drawer__panel">
         <el-form :model="param" :rules="rules" ref="ruleForm" label-width="110px" class="demo-ruleForm"

+ 1 - 1
src/SManagement/orderclue_detail/components/changeData.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button size="mini" type="primary" @click="dialog=true" :disabled="disabled">转 化</el-button>
+    <el-button size="mini" :type="disabled?'':'primary'" @click="dialog=true" :disabled="disabled">转 化</el-button>
     <el-dialog append-to-body width="30%" title="转化为项目商机" :visible.sync="dialog">
       <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="right" size="mini">
           <el-col :span="24">

+ 1 - 1
src/SManagement/orderclue_detail/components/delete.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button size="mini" type="primary" @click="dialog=true" :disabled="disabled">作 废</el-button>
+    <el-button size="mini" :type="disabled?'':'primary'" @click="dialog=true" :disabled="disabled">作 废</el-button>
     <el-dialog append-to-body width="30%" title="作废" :visible.sync="dialog">
       <el-input type="textarea" v-model="deletereason" size="small" :autosize="{minRows:6}" placeholder="作废原因"></el-input>
       <div class="dialog-footer">

+ 1 - 1
src/SManagement/orderclue_detail/components/noNull.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="inline-16">
-    <el-button size="mini" type="primary" :disabled="disabled" @click="dialog=true">无 效</el-button>
+    <el-button size="mini" :type="disabled?'':'primary'" :disabled="disabled" @click="dialog=true">无 效</el-button>
     <el-dialog append-to-body width="30%" title="无效" :visible.sync="dialog">
       <el-input type="textarea" v-model="deletereason" size="small" placeholder="无效原因"></el-input>
       <div class="dialog-footer">

+ 47 - 8
src/SManagement/orderclue_detail/index.vue

@@ -25,7 +25,7 @@
           :teamList="teamList()"  
           v-if="userInfo.isAuth == 1 ? mainData.status == '待跟进' || mainData.status == '跟进中' : ''"></move> -->
         <changeData v-if="tool.checkAuth($route.name,'change')" :data="mainData" :disabled="!isHandle" class="inline-16"/>
-        <el-button type="primary" v-if="tool.checkAuth($route.name,'goBack')" :disabled="!isHandle" class="inline-16" size="mini" @click="goBack">退 回</el-button>
+        <el-button :type="!isHandle?'':'primary'" v-if="tool.checkAuth($route.name,'goBack')" :disabled="!isHandle" class="inline-16" size="mini" @click="goBack">退 回</el-button>
         <noNull v-if="tool.checkAuth($route.name,'change')" class="inline-16" :disabled="!isHandle" @onSuccess="$store.dispatch('changeDetailDrawer',false);$router.replace('/orderclue')" :id="mainData.sat_orderclueid"/>
         <Del v-if="tool.checkAuth($route.name,'delete')" class="inline-16" :disabled="!isHandle" :idName="20221123193702" @onSuccess="$store.dispatch('changeDetailDrawer',false);$router.replace('/orderclue')" :id="mainData.sat_orderclueid" idKey="sat_orderclueids"/>
       </div>
@@ -149,13 +149,13 @@ export default {
                 style = {color:'#52C41A'}
                 break;
               case '待跟进':
-                style = {color:'#FA8C16'}
+                style = {color:'#3874f6'}
                 break;
-              case '已成交':
-                style = {color:'#F60909'}
+              case '已无效':
+                style = {color:'#333333'}
                 break; 
-              case '无效':
-                style = {color:'#BBBBBB'}
+              case '已转化':
+                style = {color:'#fa8c16'}
                 break; 
               default:
                 break;
@@ -198,11 +198,50 @@ export default {
           
           {
             label:'跟进状态',
-            value:this.mainData.status
+            value:this.mainData.status,
+            style:function () {
+              let style = {}
+              switch (that.mainData.status) {
+                case '已过期':
+                  style = {color:'#333'}
+                  break;
+                case '跟进中':
+                  style = {color:'#52C41A'}
+                  break;
+                case '待跟进':
+                  style = {color:'#3874f6'}
+                  break;
+                case '已无效':
+                  style = {color:'#333333'}
+                  break;
+                case '已转化':
+                  style = {color:'#fa8c16'}
+                  break;
+                default:
+                  break;
+              }
+              return style
+
+            }
           },
           {
             label:'分配状态',
-            value:this.mainData.allocationstatus
+            value:this.mainData.allocationstatus,
+            style:function () {
+              let style = {}
+              switch (that.mainData.status) {
+                case '已分配':
+                  style = {color:'#333333'}
+                  break;
+                case '待分配':
+                  style = {color:'#3874f6'}
+                  break;
+                default:
+                  break;
+              }
+              return style
+
+            }
           },
           {
             label:'备注',

+ 37 - 1
src/components/normal-basic-layout/index.vue

@@ -51,6 +51,13 @@
            
             <template v-slot:opreation="scope">
               <drawerTemp class="inline-16" v-if="detailPath" :data="scope.data" :detailPath="detailPath" :idName="idName" @onSuccess="listData"></drawerTemp>
+
+              <reportCenter class="inline-16" :data="reportCenterLsit" v-if="reportCenterLsit.length > 0">
+                <template v-slot:print="scope2">
+                  <el-button @click="printBtn(scope.data,scope2.data)" type="text" size="mini">打 印</el-button>
+                </template>
+              </reportCenter>
+
               <slot :data="scope" name="tbOpreation"></slot>
             </template>
           </tableTemp>
@@ -74,6 +81,7 @@
 
 <script>
 import {mapGetters} from 'vuex'
+import { log } from '@antv/g2plot/lib/utils'
 export default {
   componentName:'normalTable',
   props:['tableName','idName','tableData','apiId','formPath','oldFormPath','options','autoQuery','detailPath','customTitle','hidePagination'],
@@ -87,6 +95,7 @@ export default {
     excel:() =>  import('@/components/export_excel/index.vue'),
     cardTemp:() => import('./modules/cardList.vue'),
     drawer:() =>  import('./drawerDetail/drawer'),
+    reportCenter:() =>  import('./reportCenter/index'),
 
   },
   computed:{
@@ -122,7 +131,9 @@ export default {
       currentPage:0,
       refreshTable:true,
       title:'',
-      name:''
+      name:'',
+      systemappid:JSON.parse(sessionStorage.getItem('activeApp')).systemappid,
+      reportCenterLsit:[]
     }
   },
   methods:{
@@ -230,6 +241,29 @@ export default {
       this.param.content.pageNumber = 1
       this.param.content.where.tablefilter[key] = val
       this.listData()
+    },
+    /* 获取是否有报表数据 */
+    async getSystemAppid () {
+      let res = await this.$api.requested({
+        "id":20221213094401,
+        "content": {
+          "systemappid":this.systemappid,
+        }
+      })
+      this.reportCenterLsit = res.data
+      console.log(res,'报表数据');
+    },
+    async printBtn (data,data2) {
+      let res = await this.$api.requested({
+        "id":20221213094501,
+        "content": {
+          sys_reportid:data2.sys_reportid,
+          dataid:data[this.idName]
+        }
+      })
+      this.tool.showMessage(res,() => {
+        window.open(this.$baseUrl + res.data)  
+      })
     }
   },
   watch:{
@@ -242,6 +276,8 @@ export default {
     this.layout = this.tool.tabelCol(this.$route.name)[this.tableName].tablecols
     this.tableLayout = this.layout
     this.$emit('listCreate',this.param)
+
+    this.getSystemAppid()
   }
 }
 

+ 57 - 0
src/components/normal-basic-layout/reportCenter/index.vue

@@ -0,0 +1,57 @@
+<template>
+  <div>
+    <el-button type="text" size="mini" @click="drawer=true">报 表</el-button>
+    <el-drawer
+    :visible.sync="drawer"
+    :with-header="false"
+    direction="rtl"
+    size="50%"
+    append-to-body>
+    <div class="detail__panel container">
+      <p class="normal-title" style="margin-bottom:16px">报表数据</p>
+      <el-table
+        :data="data"
+        height="250"
+        border
+        style="width: 100%">
+        <el-table-column
+          prop="name"
+          label="报表名称">
+        </el-table-column>
+        <el-table-column
+          prop="operation"
+          label="操作"
+          width="150px">
+          <template slot-scope="scope">
+            <slot name="print" :data="scope.row"></slot>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+  </el-drawer>
+  </div>
+</template>
+
+<script>
+export default {
+  props:['data'],
+  name: '',
+  data() {
+    return {
+      drawer:false,
+    };
+  },
+  created () {
+
+  },
+  computed:{
+  },
+  watch:{
+  },
+  methods: {},
+};
+</script>
+
+<style scoped>
+
+</style>

+ 2 - 0
src/main.js

@@ -30,6 +30,8 @@ import {hiPrintPlugin} from './index'
 Vue.use(hiPrintPlugin)
 Vue.prototype.$api = api
 
+Vue.prototype.$baseUrl = 'http://61.164.207.46:8000'
+
 Vue.prototype.$upload = upload
 
 Vue.prototype.tool = tool