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

Merge branch 'xiaoqin' into mergeBranch

codeMan 2 éve
szülő
commit
f92d4449d3

+ 52 - 0
src/HManagement/clueManage/clue_public/index copy.vue

@@ -0,0 +1,52 @@
+<template>
+  <div>
+    <div class="flex-align-center container normal-panel normal-margin">
+      <distribution class="inline-16" v-if="tool.checkAuth($route.name,'distribution')" @onSuccess="onSuccess"></distribution>
+      <distributionSaler v-if="tool.checkAuth($route.name,'distribution')" @onSuccess="onSuccess"></distributionSaler>
+    </div>
+    <list ref="list">
+      <template v-slot:detail="scope">
+        <el-button class="inline-16" size="small" type="text" @click="$router.push({path:'/clueDetail',query:{id:scope.data.data.sat_orderclueid}})">详 情</el-button>
+      </template>
+      <template v-slot:edit="scope">
+        <edit v-if="tool.checkAuth($route.name,'update')" :data="scope.data.data" type="text" @onSuccess="onSuccess"></edit>
+      </template>
+      <template v-slot:recall="scope">
+        <recall v-if="tool.checkAuth($route.name,'recall')" :data="scope.data.data" @onSuccess="onSuccess"></recall>
+      </template>
+      <template v-slot:del="scope">
+        <on-del v-if="tool.checkAuth($route.name,'delete')" :data="scope.data.data" @onSuccess="onSuccess"></on-del>
+      </template>
+    </list>
+  </div>
+</template>
+
+<script>
+import distribution from './modules/distribution.vue'
+import distributionSaler from './modules/distribution_saler.vue'
+
+import list from './modules/list.vue'
+import recall from './modules/recall.vue'
+import onDel from './modules/del.vue'
+
+import edit from './modules/edit.vue'
+
+export default {
+  components:{
+    distribution,
+    distributionSaler,
+    list,
+    edit,
+    recall,
+    onDel
+  },
+  methods:{
+    onSuccess () {
+      this.$refs['list'].listData()
+    }
+  }
+}
+
+</script>
+<style>
+</style>

+ 24 - 36
src/HManagement/clueManage/clue_public/index.vue

@@ -1,49 +1,37 @@
+
 <template>
   <div>
-    <div class="flex-align-center container normal-panel normal-margin">
-      <distribution class="inline-16" v-if="tool.checkAuth($route.name,'distribution')" @onSuccess="onSuccess"></distribution>
-      <distributionSaler v-if="tool.checkAuth($route.name,'distribution')" @onSuccess="onSuccess"></distributionSaler>
-    </div>
-    <list ref="list">
-      <template v-slot:detail="scope">
-        <el-button class="inline-16" size="small" type="text" @click="$router.push({path:'/clueDetail',query:{id:scope.data.data.sat_orderclueid}})">详 情</el-button>
-      </template>
-      <template v-slot:edit="scope">
-        <edit v-if="tool.checkAuth($route.name,'update')" :data="scope.data.data" type="text" @onSuccess="onSuccess"></edit>
-      </template>
-      <template v-slot:recall="scope">
-        <recall v-if="tool.checkAuth($route.name,'recall')" :data="scope.data.data" @onSuccess="onSuccess"></recall>
+    <basicLayout 
+      ref="basicLayout" 
+      :oldFormPath="{
+        add:'HManagement/clueManage/clue_public/modules',
+        edit:'HManagement/clueManage/clue_public/modules'
+      }"
+      tableName="cluePublicTable" 
+      idName="sat_orderclueid" 
+      :apiId="{query:20221101094402,del:''}" 
+      :options="options"
+      :detailPath="{path:'/clueDetail'}"
+    >
+      <div slot="custom"></div>
+      <template v-slot:tbList="scope">
+        <div>
+          {{scope.data.column.data[[scope.data.column.columnname]]}}
+        </div>
       </template>
-      <template v-slot:del="scope">
-        <on-del v-if="tool.checkAuth($route.name,'delete')" :data="scope.data.data" @onSuccess="onSuccess"></on-del>
-      </template>
-    </list>
+    </basicLayout>
   </div>
 </template>
 
 <script>
-import distribution from './modules/distribution.vue'
-import distributionSaler from './modules/distribution_saler.vue'
-
-import list from './modules/list.vue'
-import recall from './modules/recall.vue'
-import onDel from './modules/del.vue'
-
-import edit from './modules/edit.vue'
-
 export default {
-  components:{
-    distribution,
-    distributionSaler,
-    list,
-    edit,
-    recall,
-    onDel
+  data () {
+    return {
+      options:[]
+      
+    }
   },
   methods:{
-    onSuccess () {
-      this.$refs['list'].listData()
-    }
   }
 }
 

+ 140 - 0
src/HManagement/clueManage/clue_public/modules/detail copy.vue

@@ -0,0 +1,140 @@
+<template>
+  <div>
+    <div  v-if="mainData.status === '待分配'" class="container normal-panel normal-margin">
+      <edit type="default" :data="mainData"></edit>
+    </div>
+    <div class="container normal-panel normal-margin">
+      <el-descriptions :column="5" title="线索详情">
+        <el-descriptions-item label="客户名称">{{mainData.name}}</el-descriptions-item>
+        <el-descriptions-item label="手机号">{{mainData.phonenumber}}</el-descriptions-item>
+        <el-descriptions-item label="省市县">{{mainData.province}}-{{mainData.city}}-{{mainData.county}}</el-descriptions-item>
+        <el-descriptions-item label="地址">{{mainData.address}}</el-descriptions-item>
+        <el-descriptions-item label="来源">{{mainData.cluesource}}</el-descriptions-item>
+        <el-descriptions-item label="负责人">{{mainData.leadername}}</el-descriptions-item>
+        <el-descriptions-item label="备注">{{mainData.notes}}</el-descriptions-item>
+        <el-descriptions-item label="所属经销商">{{mainData.agentname}}</el-descriptions-item>
+        <el-descriptions-item label="状态">
+          <span v-if="mainData.status === '待分配'" style="color:#3874F6">{{mainData.status}}</span>
+          <span v-if="mainData.status === '待跟进'" style="color:#FA8C16">{{mainData.status}}</span>
+          <span v-if="mainData.status === '跟进中'" style="color:#52C41A">{{mainData.status}}</span>
+          <span v-if="mainData.status === '已过期'" style="color:#999999">{{mainData.status}}</span>
+          <span v-if="mainData.status === '丢单'" style="color:#FF3B30">{{mainData.status}}</span>
+          <span v-if="mainData.status === '已成交'" style="color:#333333">{{mainData.status}}</span>
+          <span v-if="mainData.status === '无效'" style="color:#333333">{{mainData.status}}</span>
+        </el-descriptions-item>
+      </el-descriptions>
+    </div>
+    <div class="container normal-panel normal-margin">
+      <el-descriptions :column="5" title="系统信息">
+        <el-descriptions-item label="创建人">{{mainData.createBy}}</el-descriptions-item>
+        <el-descriptions-item label="分配人">{{mainData.assignedBy}}</el-descriptions-item>
+        <el-descriptions-item label="最近跟进人">{{mainData.followBy}}</el-descriptions-item>
+        <el-descriptions-item label="转移人">{{mainData.changeBy}}</el-descriptions-item>
+        <el-descriptions-item label="最近编辑人">{{mainData.editBy}}</el-descriptions-item>
+        <el-descriptions-item label="创建时间">{{mainData.createDate}}</el-descriptions-item>
+        <el-descriptions-item label="分配时间">{{mainData.assignedDate}}</el-descriptions-item>
+        <el-descriptions-item label="最近跟进时间">{{mainData.followDate}}</el-descriptions-item>
+        <el-descriptions-item label="最近转移时间">{{mainData.changeDate}}</el-descriptions-item>
+        <el-descriptions-item label="最近编辑时间">{{mainData.editDate}}</el-descriptions-item>
+      </el-descriptions>
+    </div>
+    <div class="container normal-panel">
+      <el-descriptions>
+        <div slot="title">跟进记录 &nbsp;<i @click="followRecord(isdesc === 1?isdesc = 0:isdesc =1)" :class="isdesc === 1?'fa fa-sort-amount-asc':'fa fa-sort-amount-desc'"></i></div>
+      </el-descriptions>
+      <div class="flex-align-center normal-margin">
+        <p>日期:&nbsp;</p>
+        <el-date-picker
+          v-model="value2"
+          type="daterange"
+          align="right"
+          unlink-panels
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          value-format="yyyy-MM-dd"
+          size="small"
+          @change="dateChange"
+          clearable>
+        </el-date-picker>
+      </div>
+      <div v-for="(item,index) in recordlist" :key="item.index" class="follow-item">
+        <p>{{index + 1}}.&nbsp;{{item.createdate}},由经销商端<b>{{item.createby}}</b>{{item.logtype}},跟进方式:<b>{{item.followupmode}}</b>,跟进内容:</p>
+        <div class="content-panel">
+         <p>{{item.content}}</p>
+         <p>{{item.competitor}}</p> 
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import edit from './edit.vue'
+export default {
+  components:{
+    edit
+  },
+  data () {
+    return {
+      mainData:{},
+      recordlist:[],
+      value2:'',
+      isdesc:1,
+      dateParam:{
+        "start": "",
+        "end": ""
+      }
+    }
+  },
+  methods:{
+    async clueDetail () {
+      const res = await this.$api.requested({
+        "classname": "webmanage.saletool.orderclue.publicclue.PublicClue",
+        "method": "selectDetail",
+        "content": {
+          "sat_orderclueid": this.$route.query.id
+        }
+      })
+      this.mainData  = res.data
+    },
+    async followRecord () {
+      const res = await this.$api.requested({
+        "classname": "webmanage.saletool.orderclue.publicclue.PublicClue",
+        "method": "getFollowList",
+        "content": {
+          "sat_orderclueid": this.$route.query.id,
+          "isdesc": this.isdesc,
+          "where": this.dateParam
+        }
+      })
+      this.recordlist = res.data
+    },
+    dateChange (val) {
+      console.log(val)
+      if (!val) {val = []}
+      this.dateParam.start = val[0]
+      this.dateParam.end = val[1]
+      this.followRecord()
+    },
+  },
+  mounted () {
+    this.clueDetail()
+    this.followRecord()
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.follow-item{
+  font-size: 14px;
+}
+.content-panel{
+  background: #f1f2f3;
+  padding: 16px;
+  margin: 10px 0 16px 15px;
+  line-height: 25px;
+}
+</style>

+ 14 - 11
src/router/HManagement.js

@@ -386,17 +386,20 @@ const HManagement = [
       title: '公海线索',
       ast_nav: true,
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/HManagement/clueManage/clue_public/index.vue')
-  }, {
-    path: '/clueDetail',
-    name: 'orderclue_public',
-    meta: {
-      title: '线索详情',
-      ast_nav: true,
-      keeproute: true
-    },
-    component: () => import(/* webpackChunkName: "about" */ '@/HManagement/clueManage/clue_public/modules/detail.vue')
-  }, {
+    component: () => import(/* webpackChunkName: "about" */ '@/HManagement/clueManage/clue_public/index.vue'),
+    children:[
+      {
+        path: '/clueDetail',
+        name: 'orderclue_public',
+        meta: {
+          title: '线索详情',
+          ast_nav:true,
+          keeproute: true
+        },
+        component: () => import(/* webpackChunkName: "about" */ '@/HManagement/clueManage/clue_public/modules/detail.vue')
+      }
+    ]
+  },{
     path: '/clue_private',
     name: 'orderclue_private',
     meta: {