Browse Source

Merge branch 'mergeBranch' of http://124.70.211.186:3000/zhangqi/yos_web into mergeBranch

zhangqi 2 years ago
parent
commit
36875f482c

+ 7 - 3
src/HDrpManagement/projectTask/detail/index.vue

@@ -21,9 +21,10 @@
       <div slot="customOperation" >
       </div>
       <div slot="slot0" >
-        <evaluationItems></evaluationItems>
+        <evaluationItems :data="mainData.projtaskmag_options" v-if="flag === 1"></evaluationItems>
       </div>
       <div slot="slot1" >
+        <associatedObjects :data="mainData" v-if="flag === 1"></associatedObjects>
       </div>
     </basicDetails>
   </div>
@@ -31,13 +32,15 @@
 
 <script>
 import evaluationItems from './modules/evaluationItems'
+import associatedObjects from './modules/associatedObjects'
 export default {
   name: "index",
-  components:{evaluationItems},
+  components:{evaluationItems,associatedObjects},
   data(){
     return {
       mainData:{},
-      mainAreaData:{}
+      mainAreaData:{},
+      flag: 0
     }
   },
   methods:{
@@ -50,6 +53,7 @@ export default {
       })
       this.mainData = res.data
       console.log(this.mainData,"工作内容")
+      this.flag = 1
       this.changeDataStructure()
     },
     changeDataStructure() {

+ 65 - 0
src/HDrpManagement/projectTask/detail/modules/associatedObjects.vue

@@ -0,0 +1,65 @@
+<template>
+  <div>
+    <el-table
+        :header-cell-style="{background:'#EEEEEE',color:'#333'}"
+        :data="tableData"
+        stripe
+        size="mini"
+        style="width: 100%"
+        border>
+      <el-table-column
+          prop="partiestype"
+          label="客户对象">
+        <template slot-scope="scope">
+          <div v-for="(item,index) in scope.row.projtaskmag_optionscore" :key="index">
+            {{item.partiestype}}
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column
+          prop="enterprisename"
+          label="项目阶段">
+        <template slot-scope="scope">
+          <div v-for="(item,index) in scope.row.projtaskmag_optionscore" :key="index">
+            {{item.stagename}}
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column
+          prop="enterprisename"
+          label="分值">
+        <template slot-scope="scope">
+          <div v-for="(item,index) in scope.row.projtaskmag_optionscore" :key="index">
+            {{item.score}}
+          </div>
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "associatedObjects",
+  props:["data"],
+  data(){
+    return {
+      tableData:[]
+    }
+  },
+  mounted() {
+    console.log(this.data,"关联对象数据")
+    if (this.data.partiestype.length === 0 && this.data.stage.length === 0){
+      this.tableData = []
+    }else {
+      this.tableData = this.data.projtaskmag_options
+      console.log(this.tableData,"关联对象")
+    }
+
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 3 - 1
src/HDrpManagement/projectTask/detail/modules/evaluationItems.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true"  :height="tableHieght" >
+    <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true"   >
       <template v-slot:customcol="scope">
 <!--        <div v-if="scope.column.columnname === 'province'">
           <p>{{ scope.column.data.province + '-' + scope.column.data.city + '-' + scope.column.data.county}}</p>
@@ -16,6 +16,7 @@
 <script>
 export default {
   name: "evaluationItems",
+  props:["data"],
   data(){
     return {
       tableHieght:"600px",
@@ -27,6 +28,7 @@ export default {
   },
   created() {
     this.tablecols = this.tool.tabelCol(this.$route.name).evaluationItems.tablecols
+    this.list = this.data
   },
 }
 </script>

+ 11 - 13
src/HManagement/clueManage/clue_import/detailPage/modules/add.vue

@@ -18,11 +18,11 @@
           <el-form-item label="手机号" prop="phonenumber">
             <el-input v-model="form.phonenumber" autocomplete="off" placeholder="输入手机号"></el-input>
           </el-form-item>
-          <el-form-item label="省市县" prop="value">
+          <el-form-item label="省市县" prop="province">
             <el-cascader
               style="width:100%"
               class="width-240"
-              v-model="form.value"
+              v-model="form.province"
               :options="basicData.data().areaData"
               @change="cascaderChange">
             </el-cascader>
@@ -55,13 +55,10 @@ export default {
       drawer:false,
       rule:{
         phonenumber:[
-          { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
-        ],
-        enterprisename:[{ required: true, message: '请输入企业名称', trigger: 'blur' }],
-        value:[
-          { required: true, message: '请选择省市县', trigger: 'blur' },
-          { required: true, message: '请选择省市县', trigger: 'change' }
+          { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' },
+          { required: true, message: '请输入手机号', trigger: 'blur' }
         ],
+        province:[{ required: true, message: '请选择', trigger: 'blur' }],
       },
       form:{
         "sat_orderclueuploadbillmxid": 0,
@@ -71,7 +68,8 @@ export default {
         "notes":'',
         "phonenumber":'',
         "address":'',
-        "cluesource":''
+        "cluesource":'',
+        "province":''
       },
       arealist:[],
       options:[]
@@ -84,6 +82,9 @@ export default {
     onSubmit () {
        this.$refs['form'].validate(async (valid) => {
         if (!valid) return false;
+        this.form.city = this.form.province[1]
+        this.form.county = this.form.province[2]
+        this.form.province = this.form.province[0]
         const res = await this.$api.requested({
           "classname":"webmanage.saletool.orderclue.orderclue",
           "method": "insertormodify_Orderclueuploadbillmx",
@@ -97,10 +98,7 @@ export default {
       });
     },
     cascaderChange (val) {
-      if (val.length === 1) 
-        return this.form = Object.assign({},this.form,{province:val[0],city:'',county:''})
-      this.form = Object.assign({},this.form,{province:val[0],city:val[1],county:val[2]})
-      
+      this.form.province = val
     }
   }
 }

+ 12 - 17
src/HManagement/clueManage/clue_import/detailPage/modules/edit.vue

@@ -18,11 +18,11 @@
         <el-form-item label="手机号" prop="phonenumber">
           <el-input v-model="form.phonenumber" autocomplete="off"></el-input>
         </el-form-item>
-        <el-form-item label="省市县" prop="value">
+        <el-form-item label="省市县" prop="province">
           <el-cascader
             style="width:100%"
             class="width-240"
-            v-model="form.value"
+            v-model="form.province"
             :options="basicData.data().areaData"
             @change="cascaderChange">
           </el-cascader>
@@ -55,13 +55,10 @@ export default {
       drawer:false,
       rule:{
         phonenumber:[
-          { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
-        ],
-        enterprisename:[{ required: true, message: '请输入企业名称', trigger: 'blur' }],
-        value:[
-          { required: true, message: '请选择省市县', trigger: 'blur' },
-          { required: true, message: '请选择省市县', trigger: 'change' }
+          { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' },
+          { required: true, message: '请输入手机号', trigger: 'blur' }
         ],
+        province:[{ required: true, message: '请选择', trigger: 'blur' }],
       },
       form:{
         "sat_orderclueuploadbillmxid": 0,
@@ -71,7 +68,8 @@ export default {
         "notes":'',
         "phonenumber":'',
         "address":'',
-        "cluesource":''
+        "cluesource":'',
+        "province":''
       },
       arealist:[],
       options:[]
@@ -80,12 +78,11 @@ export default {
   methods:{
     onShow () {
       this.drawer = true
-      let arr = ['province','city','county']
-      this.data.value = []
-      arr.forEach(e=>{
-        this.data[e] !== '' ?this.data.value.push(this.data[e]):''
-      })
       this.form = Object.assign({},this.form,this.data)
+      this.form.enterprisename = this.data.enterprisename_customer
+      this.form.province = [this.data.province,this.data.city,this.data.county]
+      console.log(this.form.province);
+      
     },
     async onSubmit () {
       this.$refs['form'].validate(async (valid) => {
@@ -103,9 +100,7 @@ export default {
       });
     },
     cascaderChange (val) {
-      if (val.length === 1) 
-        return this.form = Object.assign({},this.form,{province:val[0],city:'',county:''})
-      this.form = Object.assign({},this.form,{province:val[0],city:val[1],county:val[2]})
+      this.form.province = val
     }
   }
 }

+ 0 - 1
src/HManagement/clueManage/clue_import/index.vue

@@ -4,7 +4,6 @@
     <basicLayout 
       ref="basicLayout" 
       :oldFormPath="{
-        add:'HManagement/clueManage/clue_public/modules',
         edit:'HManagement/clueManage/clue_public/modules'
       }"
       tableName="clueImportList" 

+ 0 - 3
src/HManagement/clueManage/clue_private/modules/add.vue

@@ -66,9 +66,6 @@ export default {
           {required:true,message:'请输入手机号',trigger:'blur'},
           { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
         ],
-        enterprisename:[
-          {required:true,message:'请输入客户名称',trigger:'blur'},
-        ],
         province:[
           {required:true,message:'请选择省市县',trigger:'blur'},
         ],

+ 0 - 3
src/HManagement/clueManage/clue_private/modules/edit.vue

@@ -67,9 +67,6 @@ export default {
           {required:true,message:'请输入手机号',trigger:'blur'},
           { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
         ],
-        enterprisename:[
-          {required:true,message:'请输入客户名称',trigger:'blur'},
-        ],
         province:[
           {required:true,message:'请选择省市县',trigger:'blur'},
         ],

+ 0 - 3
src/HManagement/clueManage/clue_public/modules/add.vue

@@ -65,9 +65,6 @@ export default {
           {required:true,message:'请输入手机号',trigger:'blur'},
           { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
         ],
-        enterprisename:[
-          {required:true,message:'请输入客户名称',trigger:'blur'},
-        ],
         province:[
           {required:true,message:'请选择省市县',trigger:'blur'},
         ],

+ 41 - 22
src/HManagement/clueManage/clue_public/modules/detail.vue

@@ -25,7 +25,7 @@
       </div>
       <div slot="slot1" 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>
+          <div slot="title">跟进记录 &nbsp;<i @click="followRecord(param.content.sort[0].reversed = param.content.sort[0].reversed == 1 ? 0 : 1)" :class="param.content.sort[0].reversed == 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>
@@ -43,19 +43,21 @@
             clearable>
           </el-date-picker>
         </div>
-        <div class="item" v-for="(item,index) in recordlist" :key="index">
-          <p>{{index + 1}}.{{item.createdate}},由经销商端<span style="font-weight:bold;margin:0 6px;font-size:13px">{{item.createby}}</span>开始跟进,跟进方式:<span style="font-weight:bold;margin:0 5px">{{item.followupmode}}</span>,{{handleTxt[item.logtype]}}</p>
-          <div class="content">
-            <div style="margin-bottom:10px">
-              <p v-if="item.competitor">已购买品牌:{{item.competitor}}</p>
-              {{item.content}}
+        <div class="detail">
+          <div class="item" v-for="(item,index) in recordlist" :key="index">
+            <p>{{index + 1}}.{{item.createdate}},由经销商端<span style="font-weight:bold;margin:0 6px;font-size:13px">{{item.createby}}</span>开始跟进,跟进方式:<span style="font-weight:bold;margin:0 5px">{{item.followupmode}}</span>,{{handleTxt[item.logtype]}}</p>
+            <div class="content">
+              <div style="margin-bottom:10px">
+                <p v-if="item.competitor">已购买品牌:{{item.competitor}}</p>
+                {{item.content}}
+              </div>
+              <file-item 
+                :marginRight="10"
+                :rowCount="5"
+                :isDownLoad="true" 
+                :fileData="item.attinfo">
+              </file-item>
             </div>
-            <file-item 
-              :rowCount="5"
-              :isDownLoad="true" 
-              :fileData="item.attinfo"
-              @deleteSuccess="deleteFile">
-            </file-item>
           </div>
         </div>
       </div>
@@ -87,6 +89,22 @@ export default {
         '丢单':'丢单操作,具体原因如下',
         '无效':'无效操作,具体原因如下',
       },
+      param: {
+        "classname": "webmanage.saletool.orderclue.publicclue.PublicClue",
+        "method": "getFollowList",
+        "content": {
+          "sat_orderclueid": this.$route.query.id,
+          "where": this.dateParam,
+          "sort": [
+            {
+              "reversed":0,
+              "sorted":1,
+              "sortid":0,
+              "sortname":'默认'
+            }
+          ]
+        }
+      }
     }
   },
   components:{
@@ -95,19 +113,15 @@ export default {
   },
   methods:{
     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.param.content.sat_orderclueid = this.$route.query.id
+      this.param.content.where = this.dateParam
+      const res = await this.$api.requested(this.param)
+      this.param.content.sort = res.sort
       this.recordlist = res.data
       this.recordlist.forEach(item => {
         item.attinfo = this.fileType.fileList(item.attinfo)
       })
+      
     },
     dateChange (val) {
       if (!val) {val = []}
@@ -243,4 +257,9 @@ export default {
   border-radius: 5px;
   font-size: 14px;
 }
+.detail {
+  overflow-y: scroll;
+  height: calc(100vh - 400px);
+  padding-right: 10px;
+}
 </style>

+ 1 - 4
src/HManagement/clueManage/clue_public/modules/edit.vue

@@ -1,5 +1,5 @@
 <template>
-  <div v-if="data.status === '待分配'">
+  <div>
     <el-button size="mini" :type="type" @click="onShow">编 辑</el-button>
     <el-drawer title="编编辑线索" append-to-body :visible.sync="dialogFormVisible" size="40%">
       <div class="drawer__panel">
@@ -53,9 +53,6 @@ export default {
           { required: true, message: '请输入联系人手机号', trigger: 'blur' },
           { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
         ],
-        enterprisename:[
-          {required:true,message:'请输入客户名称',trigger:'blur'},
-        ],
         province:[
           {required:true,message:'请选择省市县',trigger:'blur'},
         ],

+ 2 - 5
src/HManagement/clueManage/m_activity/modules/addClue.vue

@@ -71,11 +71,8 @@ export default {
         phonenumber:[
           { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
         ],
-        enterprisename:[
-          { required: true, message: '请输入客户名称', trigger: 'blur' },
-        ],
-        cluesource:[
-          { required: true, message: '请输入来源', trigger: 'change' }
+        province:[
+          { required: true, message: '请选择', trigger: 'blur' },
         ],
       },
       options:[]

+ 2 - 5
src/HManagement/clueManage/m_activity/modules/editClue.vue

@@ -70,11 +70,8 @@ export default {
         phonenumber:[
           { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
         ],
-        enterprisename:[
-          { required: true, message: '请输入客户名称', trigger: 'blur' },
-        ],
-        cluesource:[
-          { required: true, message: '请输入来源', trigger: 'change' }
+        province:[
+          { required: true, message: '请选择', trigger: 'blur' },
         ],
       },
       options:[]

+ 2 - 2
src/SManagement/orderclue/components/add.vue

@@ -65,8 +65,8 @@ export default {
           {required:true,message:'请输入手机号',trigger:'blur'},
           { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
         ],
-        enterprisename:[
-          {required:true,message:'请输入客户名称',trigger:'blur'},
+        province:[
+          {required:true,message:'请选择',trigger:'blur'},
         ],
       },
       areaSelectResult:'',

+ 2 - 4
src/SManagement/orderclue/components/edit.vue

@@ -62,8 +62,8 @@ export default {
           { required: true, message: '请输入手机号', trigger: 'blur' },
           { pattern: /^1[3-9]\d{9}$/, message: '请输入正确手机号码', trigger: 'blur' }
         ],
-        enterprisename: [
-          {required:true,message:'请输入客户名称',trigger:'blur'},
+        province: [
+          {required:true,message:'请选择',trigger:'blur'},
         ],
       },
       areaSelectResult: '',
@@ -127,8 +127,6 @@ export default {
       this.isHandle = is
     },
     editBtn () {
-      console.log(this.data);
-      
       this.drawer = true
       this.param = Object.assign({}, this.param, this.data)
       this.param.province = [this.data.province, this.data.city, this.data.county]

+ 2 - 2
src/SManagement/orderclue/components/file/index2.vue

@@ -7,7 +7,8 @@
       :key="index"
       :style="[
         {'width': auto ? '100%' : '300px'},
-        {'margin-right':marginRight + 'px'}
+        {'margin-right':marginRight + 'px'},
+        {'margin-bottom':marginRight + 'px'}
       ]"
     >
       <div class="left">
@@ -135,7 +136,6 @@ export default {
   transition: .2s linear;
   cursor: pointer;
   border-radius: 5px;
-  margin-bottom: 20px;
   background: #ffffff;
   height: 80px;
 }

+ 0 - 2
src/SManagement/orderclue/components/follow.vue

@@ -143,8 +143,6 @@ export default {
           this.loading = false
           this.$emit('onSuccess')
           this.dialogVisible = false
-          console.log('上传完成');
-          
         })
       })
     },

+ 1 - 0
src/SManagement/orderclue/components/upload.vue

@@ -94,6 +94,7 @@ export default {
       })
     },
     toUpload (callback) {
+      if (this.fileList.length == 0) callback() 
       this.fileList.forEach(file=>{
         let index = file.name.lastIndexOf(".");
         let ext = file.name.substr(index + 1);

+ 15 - 4
src/SManagement/orderclue_detail/components/followDetail.vue

@@ -1,6 +1,8 @@
 <template>
   <div class="normal-card" style="padding-right:0">
-    <p class="title">跟进记录<i class="el-icon-sort" @click="sortFun"></i></p>
+    <el-descriptions>
+      <div slot="title">跟进记录 &nbsp;<i @click="sortFun" :class="param.content.sort[0].reversed == 1?'fa fa-sort-amount-asc':'fa fa-sort-amount-desc'"></i></div>
+    </el-descriptions>
     <div class="select">
       <span class="demonstration">日期范围:</span>
       <time-select @clearSelect="clearSelect" @timeChange="timeChange"></time-select>
@@ -14,7 +16,7 @@
             {{item.content}}
           </div>
           <file-item 
-            :marginRight="20"
+            :marginRight="10"
             :rowCount="5"
             :isDownLoad="true" 
             :fileData="item.attinfo"
@@ -59,7 +61,15 @@ export default {
             "where": {
                 "start": "",
                 "end": ""
-            }
+            },
+            "sort": [
+              {
+                "reversed":0,
+                "sorted":1,
+                "sortid":0,
+                "sortname":'默认'
+              }
+            ]
         }
       },
       handleTxt:{
@@ -89,6 +99,7 @@ export default {
       this.follow.forEach(item => {
         item.attinfo = this.fileType.fileList(item.attinfo)
       })
+      this.param.content.sort = res.sort
       console.log(this.follow);
       
     },
@@ -109,7 +120,7 @@ export default {
       this.getFollowDetail()  
     },
     sortFun() {
-      this.param.content.isdesc = this.param.content.isdesc == 1 ? this.param.content.isdesc = 0 : this.param.content.isdesc = 1
+      this.param.content.sort[0].reversed = this.param.content.sort[0].reversed == 0 ? 1 : 0
       this.getFollowDetail()
     },
     deleteFile (data) {

+ 2 - 1
src/SManagement/orderclue_detail/index.vue

@@ -210,7 +210,8 @@ export default {
           }
         })
         this.tool.showMessage(res , () => {
-          this.queryMainData()
+          this.$store.dispatch('changeDetailDrawer',false)
+          this.$router.push('/orderclue')
         })
       })
     },