Browse Source

Merge branch 'master' of http://101.200.220.49:8001/xiuli.gao/playlet

xiuli.gao 2 years ago
parent
commit
a197b74727

+ 4 - 0
project/src/assets/config/interface_api.js

53
   customer_setCustomerTag: "/api/customer/setCustomerTag",
53
   customer_setCustomerTag: "/api/customer/setCustomerTag",
54
   customer_batchMarkTagResult: "/api/customer/batchMarkTagResult",
54
   customer_batchMarkTagResult: "/api/customer/batchMarkTagResult",
55
   departmentList: "/api/user/departments",
55
   departmentList: "/api/user/departments",
56
+  add_tag: "/api/tag/addSingleTag",
57
+  add_tag_group: "/api/tag/addTagGroup",
58
+  order_tag_group: "/api/tag/updateTagGroupOrder",
59
+  dele_tag_group: "/api/tag/deleteTagGroup",
56
 };
60
 };
57
 
61
 
58
 export { api };
62
 export { api };

BIN
project/src/assets/img/down.png


BIN
project/src/assets/img/downNone.png


BIN
project/src/assets/img/edit.png


BIN
project/src/assets/img/fullScreen.png


BIN
project/src/assets/img/info_detial.png


BIN
project/src/assets/img/kefuxinxi@2x.png


BIN
project/src/assets/img/kehu@2x.png


BIN
project/src/assets/img/lable_detial.png


BIN
project/src/assets/img/lianjie copy@2x.png


BIN
project/src/assets/img/shouquan@2x.png


BIN
project/src/assets/img/tupian copy@2x.png


BIN
project/src/assets/img/up.png


BIN
project/src/assets/img/upNone.png


BIN
project/src/assets/img/xiaochengxu copy@2x.png


BIN
project/src/assets/img/确认 copy@2x.png


+ 35 - 13
project/src/components/assembly/tagGroup.vue

36
           <div v-for="(m,mIdx) in moreLable" :key="m.id" class="flex">
36
           <div v-for="(m,mIdx) in moreLable" :key="m.id" class="flex">
37
             <el-input class="ipt_group tMar10" v-model="m.name" placeholder="请输入标签名称"></el-input>
37
             <el-input class="ipt_group tMar10" v-model="m.name" placeholder="请输入标签名称"></el-input>
38
             <span v-if="moreLable&&moreLable.length>1" class="flex">
38
             <span v-if="moreLable&&moreLable.length>1" class="flex">
39
+               <el-tooltip effect="light" content="删除该标签" placement="top-start">
39
                 <span class="minusIptGroup" @click="moreLable.splice(mIdx,1)">-</span>
40
                 <span class="minusIptGroup" @click="moreLable.splice(mIdx,1)">-</span>
40
-                <i class="el-icon-top f18 lMar8 pointer" :class="mIdx == 0 ? 'disCss' : ''" @click="upClick(mIdx)"></i>
41
-                <i class="el-icon-bottom f18 lMar8 pointer" :class="mIdx == moreLable.length-1 ? 'disCss' : ''" @click="downClick(mIdx)"></i>
41
+               </el-tooltip>
42
+                <img src="../../assets/img/upNone.png" alt="" v-if="mIdx == 0" style="width: 20px;margin: 0 8px;cursor: pointer">
43
+               <el-tooltip effect="light" content="上移" placement="top-start">
44
+                 <img src="../../assets/img/up.png" alt="" v-if="mIdx > 0" @click="upClick(mIdx)" style="width: 20px;margin: 0 8px;cursor: pointer">
45
+               </el-tooltip>
46
+                <img src="../../assets/img/downNone.png" alt="" v-if="mIdx == moreLable.length-1" style="width: 20px;cursor: pointer">
47
+               <el-tooltip effect="light" content="下移" placement="top-start">
48
+                 <img src="../../assets/img/down.png" alt="" v-if="mIdx < moreLable.length-1" @click="downClick(mIdx)" style="width: 20px;cursor: pointer">
49
+               </el-tooltip>
42
               </span>
50
               </span>
43
           </div>
51
           </div>
44
           <div class="addIptGroup" @click="moreLable.push({id:moreLable.length,name:''})">+ 添加标签</div>
52
           <div class="addIptGroup" @click="moreLable.push({id:moreLable.length,name:''})">+ 添加标签</div>
47
     </div>
55
     </div>
48
     <div slot="footer">
56
     <div slot="footer">
49
       <el-button size="mini" @click="lableGroup = false">取 消</el-button>
57
       <el-button size="mini" @click="lableGroup = false">取 消</el-button>
50
-      <el-button size="mini" type="primary" @click="lableGroup = false">确 定</el-button>
58
+      <el-button size="mini" type="primary" @click="addTagGroup()">确 定</el-button>
51
     </div>
59
     </div>
52
   </el-dialog>
60
   </el-dialog>
53
 </template>
61
 </template>
55
 <script>
63
 <script>
56
 export default {
64
 export default {
57
   name: "tagGroup",
65
   name: "tagGroup",
66
+  props:['source'],
58
   data(){
67
   data(){
59
     return{
68
     return{
60
       lableGroup:false,
69
       lableGroup:false,
61
       groupName:'',
70
       groupName:'',
62
-      moreLable:[
63
-        {id:0,name:''}
64
-      ],
71
+      moreLable:[{id:0,name:''}],//添加标签组时,新增标签的数据列表,传给后台
65
     }
72
     }
66
   },
73
   },
67
   methods:{
74
   methods:{
68
-    addTag(){
69
-      this.$axios.post(this.URL.BASEURL + this.URL.addTag, {
75
+    addTagGroup(){
76
+      this.$axios.post(this.URL.BASEURL + this.URL.add_tag_group, {
70
         group_name: this.groupName,
77
         group_name: this.groupName,
71
-        tag_list:[]
78
+        tag_list:this.moreLable
72
       }).then((res) => {
79
       }).then((res) => {
73
         var res = res.data
80
         var res = res.data
74
         if (res && res.errno == 0) {
81
         if (res && res.errno == 0) {
75
-
82
+          this.lableGroup = false
83
+          this.$parent.init(1)
76
         }
84
         }
77
         this.$message({
85
         this.$message({
78
           message: res.err,
86
           message: res.err,
79
           type: "warning"
87
           type: "warning"
80
         })
88
         })
81
       })
89
       })
82
-    }
90
+    },
91
+    // 上移
92
+    upClick(index) {
93
+      if(index == 0){return false}
94
+      this.moreLable = this.swapItems(this.moreLable, index, index - 1)
95
+    },
96
+    // 下移
97
+    downClick(index) {
98
+      if(index == this.moreLable.length-1){return false}
99
+      this.moreLable = this.swapItems(this.moreLable, index, index + 1)
100
+    },
101
+    swapItems(arr, index1, index2) {
102
+      arr[index1] = arr.splice(index2, 1, arr[index1])[0];
103
+      return arr;
104
+    },
83
 
105
 
84
   }
106
   }
85
 }
107
 }
161
         }
183
         }
162
         .minusIptGroup{
184
         .minusIptGroup{
163
           display: inline-block;
185
           display: inline-block;
164
-          border: 1px solid #333;
186
+          border: 1px solid #33c2a1;
165
           border-radius: 50%;
187
           border-radius: 50%;
166
           font-size: 18px;
188
           font-size: 18px;
167
           width: 16px;
189
           width: 16px;
169
           text-align: center;
191
           text-align: center;
170
           line-height: 12px;
192
           line-height: 12px;
171
           margin-left: 10px;
193
           margin-left: 10px;
172
-          color: #333;
194
+          color: #33c2a1;
173
           cursor: pointer;
195
           cursor: pointer;
174
           flex-shrink: 0;
196
           flex-shrink: 0;
175
         }
197
         }

+ 3 - 3
project/src/components/detials/customerProfile.vue

2
 <!--  v-loading="loading"-->
2
 <!--  v-loading="loading"-->
3
   <div >
3
   <div >
4
     <div class="bigTitle">
4
     <div class="bigTitle">
5
-      <i class="el-icon-user-solid"></i>
5
+      <i class="el-icon-user-solid c-00B38A"></i>
6
       <span>添加客服信息</span>
6
       <span>添加客服信息</span>
7
     </div>
7
     </div>
8
     <div class="tableBox_detial">
8
     <div class="tableBox_detial">
52
       </el-skeleton>
52
       </el-skeleton>
53
     </div>
53
     </div>
54
 
54
 
55
-    <div class="bigTitle tMar30">
56
-      <i class="el-icon-user-solid"></i>
55
+    <div class="bigTitle tMar30 flex-align-center">
56
+      <img src="../../assets/img/info_detial.png" alt="" style="width: 14px;margin-right: 4px">
57
       <span>基本信息</span>
57
       <span>基本信息</span>
58
 <!--      <span style="color: #898D92;font-weight: 400;margin-left: 6px">所属员工可在「侧边栏-客户画像」中进行编辑</span>-->
58
 <!--      <span style="color: #898D92;font-weight: 400;margin-left: 6px">所属员工可在「侧边栏-客户画像」中进行编辑</span>-->
59
     </div>
59
     </div>

+ 2 - 1
project/src/components/detials/customerStatus.vue

5
         <div class="dayDate">{{l.create_time&&l.create_time.split(' ')[0]}}{{l.week}}</div>
5
         <div class="dayDate">{{l.create_time&&l.create_time.split(' ')[0]}}{{l.week}}</div>
6
         <div class="subBox" v-for="(s,sIdx) in l.sub" :key="sIdx" :class="idx==0 ? 'tMar17' : ''">
6
         <div class="subBox" v-for="(s,sIdx) in l.sub" :key="sIdx" :class="idx==0 ? 'tMar17' : ''">
7
           <div class="subBox_line">
7
           <div class="subBox_line">
8
-            <i class="el-icon-price-tag f16"></i>
8
+<!--            <i class="el-icon-price-tag f16"></i>-->
9
+            <img src="../../assets/img/lable_detial.png" alt="" style="display: inline-block;width: 16px">
9
             <div class="splitLine"></div>
10
             <div class="splitLine"></div>
10
           </div>
11
           </div>
11
           <div class="lMar8">
12
           <div class="lMar8">

+ 2 - 2
project/src/components/detials/index.vue

16
         </span>
16
         </span>
17
 -->
17
 -->
18
       </div>
18
       </div>
19
-      <div>
20
-        <i class="el-icon-plus pointer" @click="changeWidth"></i>
19
+      <div class="flex-align-center">
20
+        <img src="../../assets/img/fullScreen.png" alt="" style="width: 13px;margin-right: 6px;cursor: pointer"  @click="changeWidth">
21
         <i class="el-icon-close pointer" @click="close"></i>
21
         <i class="el-icon-close pointer" @click="close"></i>
22
       </div>
22
       </div>
23
     </div>
23
     </div>

+ 14 - 9
project/src/components/manage/memberManage.vue

2
   <div>
2
   <div>
3
     <div class="tableInfo">
3
     <div class="tableInfo">
4
       <div class="flex">
4
       <div class="flex">
5
-        <div class="totalCustom">共<span>{{tableData&&tableData.length ? tableData.length : '-'}}</span>个成员</div>
5
+        <div class="totalCustom">
6
+          <i class="el-icon-user-solid"></i>
7
+          共<span>{{tableData&&tableData.length ? tableData.length : '-'}}</span>个成员
8
+        </div>
6
       </div>
9
       </div>
7
       <div class="flex">
10
       <div class="flex">
8
         <selfinput :hasLabel="false" @inputChange="inputChange"></selfinput>
11
         <selfinput :hasLabel="false" @inputChange="inputChange"></selfinput>
14
           部门信息
17
           部门信息
15
         </div>
18
         </div>
16
         <div>
19
         <div>
17
-          <div v-for="c in depart_List" :key="c.id" class="tMar20 flex-align-center">
18
-            <i class="el-icon-circle-check c-00B38A f16 rMar7 pointer" v-if="checkVals.indexOf(c.id)>-1" @click="checkDepartId(c.id)"></i>
19
-            <i class="el-icon-circle rMar7 pointer" @click="checkDepartId(c.id)" v-else></i>
20
-            {{c.name}}
20
+          <div v-for="c in depart_List" :key="c.department_id" class="tMar20 flex-align-center">
21
+            <i class="el-icon-circle-check c-00B38A f16 rMar7 pointer" v-if="checkVals.indexOf(c.department_id)>-1" @click="checkDepartId(c.department_id)"></i>
22
+            <i class="el-icon-circle rMar7 pointer" @click="checkDepartId(c.department_id)" v-else></i>
23
+            {{c.department_id}}
21
           </div>
24
           </div>
22
         </div>
25
         </div>
23
       </div>
26
       </div>
80
       tableData: [],
83
       tableData: [],
81
       checkVals:[],
84
       checkVals:[],
82
       depart_List:[],
85
       depart_List:[],
83
-
86
+      keyword:'',
84
     }
87
     }
85
   },
88
   },
86
   created () {
89
   created () {
90
+    this.init_depart()
87
     this.init(1)
91
     this.init(1)
88
   },
92
   },
89
   methods: {
93
   methods: {
90
-
91
     inputChange(keyword){
94
     inputChange(keyword){
95
+      this.keyword = keyword
92
       this.init(1,keyword)
96
       this.init(1,keyword)
93
     },
97
     },
94
     init_depart(){
98
     init_depart(){
95
       this.$axios.get(this.URL.BASEURL + this.URL.departmentList, {}).then((res) => {
99
       this.$axios.get(this.URL.BASEURL + this.URL.departmentList, {}).then((res) => {
96
         var res = res.data
100
         var res = res.data
97
         if (res && res.errno == 0) {
101
         if (res && res.errno == 0) {
98
-
102
+          this.depart_List = res.rst
99
         } else if (res.errno != 4002) {
103
         } else if (res.errno != 4002) {
100
           this.$message({
104
           this.$message({
101
             message: res.err,
105
             message: res.err,
132
       });
136
       });
133
     },
137
     },
134
     handleCurrentChange (val) {
138
     handleCurrentChange (val) {
135
-      this.init(val)
139
+      this.init(val,this.keyword)
136
     },
140
     },
137
     checkDepartId(id){
141
     checkDepartId(id){
138
       if(this.checkVals.indexOf(id)==-1){
142
       if(this.checkVals.indexOf(id)==-1){
140
       }else{
144
       }else{
141
         this.checkVals.splice(this.checkVals.indexOf(id),1)
145
         this.checkVals.splice(this.checkVals.indexOf(id),1)
142
       }
146
       }
147
+      this.init(1,this.keyword)
143
     },
148
     },
144
   }
149
   }
145
 }
150
 }

+ 50 - 38
project/src/components/manage/tagManage.vue

11
         </div>
11
         </div>
12
       </div>
12
       </div>
13
       <div class="flex">
13
       <div class="flex">
14
-        <el-button type="primary" size="mini" @click="addLableGroup">添加标签组</el-button>
14
+        <el-button type="primary" size="mini" @click="addLableGroup('add')">添加标签组</el-button>
15
       </div>
15
       </div>
16
     </div>
16
     </div>
17
     <div class="tagListBox">
17
     <div class="tagListBox">
18
       <div class="tagItemBox" v-for="(item,mIdx) in tableData" :key="item.group_id">
18
       <div class="tagItemBox" v-for="(item,mIdx) in tableData" :key="item.group_id">
19
-        <div style="width: 15%">
19
+        <div style="width: 15%;flex-shrink: 0">
20
           <div class="fWeight600 c-333 f14">{{item.group_name?item.group_name:'-'}}</div>
20
           <div class="fWeight600 c-333 f14">{{item.group_name?item.group_name:'-'}}</div>
21
           <div class="c-666 f13 tMar10">共{{item.tag_num?item.tag_num:'-'}}个标签</div>
21
           <div class="c-666 f13 tMar10">共{{item.tag_num?item.tag_num:'-'}}个标签</div>
22
         </div>
22
         </div>
23
-        <div class="flex-align-center">
23
+        <div class="flex-align-center" style="flex-wrap: wrap">
24
           <div class="add" @click="addLable(item)">+ 添加</div>
24
           <div class="add" @click="addLable(item)">+ 添加</div>
25
-          <el-input v-if="item.iptshow" v-focus class="ipt" v-model="item.addLableVal" placeholder="请输入标签" @blur="iptBlur(item)"></el-input>
25
+          <el-input v-if="item.iptshow" v-focus class="ipt" @input="forceUpdate" v-model="item.addLableVal" placeholder="请输入标签" @blur="iptBlur(item)"></el-input>
26
           <div class="lableItem" v-for="t in item.tag_list" :key="t.tag_id">
26
           <div class="lableItem" v-for="t in item.tag_list" :key="t.tag_id">
27
             {{t.tag_name}}
27
             {{t.tag_name}}
28
           </div>
28
           </div>
29
         </div>
29
         </div>
30
-        <div class="flex-align-center lMarauto">
31
-          <span class="pointer rMar7">
32
-               <i class="el-icon-top f14 " :class="mIdx == 0 ? 'disCss' : ''" @click="upClick(mIdx)"></i>上移
33
-          </span>
34
-          <span class="pointer rMar7">
35
-                <i class="el-icon-bottom f14 " :class="mIdx == tableData.length-1 ? 'disCss' : ''" @click="downClick(mIdx)"></i>上移
36
-          </span>
37
-          <span class="pointer rMar7">
38
-            <i class="el-icon-edit f14"></i> 修改
39
-          </span>
30
+        <div class="flex-align-center lMarauto editArea">
31
+          <div class="pointer rMar10 flex-align-center" @click="mIdx>0&&orderList(item.group_id)">
32
+            <img src="../../assets/img/upNone.png" alt="" v-if="mIdx == 0">
33
+            <img src="../../assets/img/up.png" alt="" v-if="mIdx > 0">
34
+            上移
35
+          </div>
36
+          <div class="pointer rMar10 flex-align-center" @click="mIdx < tableData.length-1&&orderList(item.group_id)">
37
+            <img src="../../assets/img/downNone.png" alt="" v-if="mIdx == tableData.length-1">
38
+            <img src="../../assets/img/down.png" alt="" v-if="mIdx < tableData.length-1">
39
+            上移
40
+          </div>
41
+          <div class="pointer flex-align-center" @click="addLableGroup('edit')">
42
+            <img src="../../assets/img/edit.png" alt="">
43
+            修改
44
+          </div>
40
         </div>
45
         </div>
41
 
46
 
42
       </div>
47
       </div>
43
     </div>
48
     </div>
44
-
45
-    <tagGroup ref="tagRef"></tagGroup>
49
+    <tagGroup ref="tagRef" :source="editOpa"></tagGroup>
46
 
50
 
47
   </div>
51
   </div>
48
 </template>
52
 </template>
58
       tableData: [],
62
       tableData: [],
59
       resetFlag: false,//重置
63
       resetFlag: false,//重置
60
       input_keyword: '',
64
       input_keyword: '',
61
-      iptshow:false,
62
-      moreLable:[],
65
+      editOpa:'add',//判断是新增标签组还是修改标签组
63
 
66
 
64
     }
67
     }
65
   },
68
   },
74
     this.init(1)
77
     this.init(1)
75
   },
78
   },
76
   methods: {
79
   methods: {
80
+    orderList(){
81
+
82
+    },
83
+    forceUpdate() {
84
+      this.$forceUpdate()
85
+    },
77
     addTag(){
86
     addTag(){
78
 
87
 
79
     },
88
     },
80
-    addLableGroup(){
89
+    addLableGroup(opa){
90
+      this.editOpa = opa
81
       this.$nextTick(()=>{
91
       this.$nextTick(()=>{
82
         this.$refs.tagRef.lableGroup = true
92
         this.$refs.tagRef.lableGroup = true
83
       })
93
       })
91
       item.iptshow = false
101
       item.iptshow = false
92
       this.$forceUpdate()
102
       this.$forceUpdate()
93
       if(item.addLableVal){
103
       if(item.addLableVal){
94
-        this.$axios.post(this.URL.BASEURL + this.URL.addTag, {
95
-          group_name: this.groupName,
96
-          name:item.addLableVal
104
+        this.$axios.post(this.URL.BASEURL + this.URL.add_tag, {
105
+          group_id: item.group_id,
106
+          tag_name:item.addLableVal
97
         }).then((res) => {
107
         }).then((res) => {
98
           var res = res.data
108
           var res = res.data
109
+          if(res&&res.errno == 0){
110
+            item.tag_list.push({tag_name:item.addLableVal})
111
+            item.tag_num+=1
112
+            return
113
+          }
99
           this.$message({
114
           this.$message({
100
             message: res.err,
115
             message: res.err,
101
-            type: "warning"
116
+            type: "info"
102
           })
117
           })
103
         })
118
         })
104
-        // this.lableArr.push({id:this.lableArr.length,name:this.addLableVal})
105
       }
119
       }
106
     },
120
     },
107
     resetEvent () {//重置
121
     resetEvent () {//重置
138
     handleCurrentChange (val) {
152
     handleCurrentChange (val) {
139
       this.init(val)
153
       this.init(val)
140
     },
154
     },
141
-    // 上移
142
-    upClick(index) {
143
-      if(index == 0){return false}
144
-      this.moreLable = this.swapItems(this.moreLable, index, index - 1)
145
-    },
146
-    // 下移
147
-    downClick(index) {
148
-      if(index == this.moreLable.length-1){return false}
149
-      this.moreLable = this.swapItems(this.moreLable, index, index + 1)
150
-    },
151
-    swapItems(arr, index1, index2) {
152
-      arr[index1] = arr.splice(index2, 1, arr[index1])[0];
153
-      return arr;
154
-    },
155
+
155
   }
156
   }
156
 }
157
 }
157
 </script>
158
 </script>
166
       line-height: 30px;
167
       line-height: 30px;
167
     }
168
     }
168
   }
169
   }
170
+  .editArea{
171
+    font-size: 13px;
172
+    flex-shrink: 0;
173
+    padding-left: 30px;
174
+    img{
175
+      width: 14px;
176
+      height: 14px;
177
+      flex-shrink: 0;
178
+      margin-right: 3px;
179
+    }
180
+  }
169
 }
181
 }
170
 
182
 
171
 </style>
183
 </style>