Commit c5d5546f by Kyle_Li

Merge branch 'dev' of http://115.159.76.241/memberTag/memberTag-web into wuyue

parents dde6dc3c 338193e5
<!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>GIC-会员标签</title><link href=./static/css/app.e1b63f939ce0725d2b10916987b3c82c.css rel=stylesheet></head><body style="background-color: #f0f2f5;min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.35.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.55.js></script><script src=//web-1251519181.file.myqcloud.com/components/aside-menu.2.0.11.js></script><script src=//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.95.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script type=text/javascript src=./static/js/manifest.85695e0cd3ad21109427.js></script><script type=text/javascript src=./static/js/vendor.4aa38b9b9bf3652c83db.js></script><script type=text/javascript src=./static/js/app.194528c6f7a42675c1a2.js></script></body></html>
\ No newline at end of file
<<<<<<< HEAD
<!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>GIC-会员标签</title><link href=./static/css/app.e1b63f939ce0725d2b10916987b3c82c.css rel=stylesheet></head><body style="background-color: #f0f2f5;min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.35.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.55.js></script><script src=//web-1251519181.file.myqcloud.com/components/aside-menu.2.0.11.js></script><script src=//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.95.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script type=text/javascript src=./static/js/manifest.85695e0cd3ad21109427.js></script><script type=text/javascript src=./static/js/vendor.4aa38b9b9bf3652c83db.js></script><script type=text/javascript src=./static/js/app.194528c6f7a42675c1a2.js></script></body></html>
=======
<!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>GIC-会员标签</title><link href=./static/css/app.82d74645e0fe07d7c714555edd39d72f.css rel=stylesheet></head><body style="background-color: #f0f2f5;min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.35.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.55.js></script><script src=//web-1251519181.file.myqcloud.com/components/aside-menu.2.0.11.js></script><script src=//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.95.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.7.js></script><script type=text/javascript src=./static/js/manifest.42236b14e5231151ff32.js></script><script type=text/javascript src=./static/js/vendor.4aa38b9b9bf3652c83db.js></script><script type=text/javascript src=./static/js/app.194528c6f7a42675c1a2.js></script></body></html>
>>>>>>> 338193e5ce7e3a1bfef1aabb2897db0ab3e9db1f
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
!function(e){var c=window.webpackJsonp;window.webpackJsonp=function(a,f,t){for(var o,b,d,i=0,u=[];i<a.length;i++)b=a[i],n[b]&&u.push(n[b][0]),n[b]=0;for(o in f)Object.prototype.hasOwnProperty.call(f,o)&&(e[o]=f[o]);for(c&&c(a,f,t);u.length;)u.shift()();if(t)for(i=0;i<t.length;i++)d=r(r.s=t[i]);return d};var a={},n={34:0};function r(c){if(a[c])return a[c].exports;var n=a[c]={i:c,l:!1,exports:{}};return e[c].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.e=function(e){var c=n[e];if(0===c)return new Promise(function(e){e()});if(c)return c[2];var a=new Promise(function(a,r){c=n[e]=[a,r]});c[2]=a;var f=document.getElementsByTagName("head")[0],t=document.createElement("script");t.type="text/javascript",t.charset="utf-8",t.async=!0,t.timeout=12e4,r.nc&&t.setAttribute("nonce",r.nc),t.src=r.p+"static/js/"+e+"."+{0:"435507d34ed28995ca8b",1:"1a66f3452cb905b67755",2:"23fe56e423c088bf4e63",3:"7bf5cb9063c5886bbf66",4:"d17b0665c4456542e03d",5:"2be33bf53b10b3dac255",6:"72fb4b735197255246b9",7:"463c410b570dea893bef",8:"00c99a671866c96c95b7",9:"d6e86c55d9ed30932539",10:"921af27f26a9d92cd622",11:"7696c743e78e8fa58ee3",12:"99fff6ab9874c354ed3f",13:"4cbb12cbf7a9b8c30ba8",14:"fdf29b8ca338cce9942a",15:"999f87f7cd93f3f0f882",16:"efcafb311698b75bedfb",17:"78f89c44d09348275dbd",18:"aff81f0651497a3a0f78",19:"34e7b6016ac35b3b3bfb",20:"c7d5fb4d00858abc4a68",21:"e5e6b6eaea60a744902b",22:"f24920a6257c85f352de",23:"2384a04104dbca370cb5",24:"ec5a8d9cd46f7640a15b",25:"31eae32139e5de8f0233",26:"a1fd375f5a8a3450d77a",27:"8bd8489d74f869554ed7",28:"7e8ce9ee59e705c91770",29:"14583ddcefc3b8dbbad1",30:"6a5ee2a1c27c5a16c485",31:"4581161a7b4779f896f3"}[e]+".js";var o=setTimeout(b,12e4);function b(){t.onerror=t.onload=null,clearTimeout(o);var c=n[e];0!==c&&(c&&c[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return t.onerror=t.onload=b,f.appendChild(t),a},r.m=e,r.c=a,r.d=function(e,c,a){r.o(e,c)||Object.defineProperty(e,c,{configurable:!1,enumerable:!0,get:a})},r.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(c,"a",c),c},r.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},r.p="./",r.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var a=window.webpackJsonp;window.webpackJsonp=function(c,t,f){for(var o,b,d,i=0,u=[];i<c.length;i++)b=c[i],n[b]&&u.push(n[b][0]),n[b]=0;for(o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);for(a&&a(c,t,f);u.length;)u.shift()();if(f)for(i=0;i<f.length;i++)d=r(r.s=f[i]);return d};var c={},n={34:0};function r(a){if(c[a])return c[a].exports;var n=c[a]={i:a,l:!1,exports:{}};return e[a].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.e=function(e){var a=n[e];if(0===a)return new Promise(function(e){e()});if(a)return a[2];var c=new Promise(function(c,r){a=n[e]=[c,r]});a[2]=c;var t=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.timeout=12e4,r.nc&&f.setAttribute("nonce",r.nc),f.src=r.p+"static/js/"+e+"."+{0:"993e7b4ba3695ba6f736",1:"1a66f3452cb905b67755",2:"1e821bca0bf41785011d",3:"5d347a654effdfa41370",4:"d17b0665c4456542e03d",5:"132080cf10a54d12e4d4",6:"bed0d8a518fdd1b20809",7:"463c410b570dea893bef",8:"00c99a671866c96c95b7",9:"d6e86c55d9ed30932539",10:"921af27f26a9d92cd622",11:"7696c743e78e8fa58ee3",12:"9b3cb754fbf7182b31b8",13:"4cbb12cbf7a9b8c30ba8",14:"fdf29b8ca338cce9942a",15:"999f87f7cd93f3f0f882",16:"efcafb311698b75bedfb",17:"78f89c44d09348275dbd",18:"b1a01a8a0ff75323bb68",19:"34e7b6016ac35b3b3bfb",20:"c7d5fb4d00858abc4a68",21:"e5e6b6eaea60a744902b",22:"f24920a6257c85f352de",23:"2384a04104dbca370cb5",24:"ec5a8d9cd46f7640a15b",25:"31eae32139e5de8f0233",26:"a1fd375f5a8a3450d77a",27:"8bd8489d74f869554ed7",28:"7e8ce9ee59e705c91770",29:"14583ddcefc3b8dbbad1",30:"6a5ee2a1c27c5a16c485",31:"4581161a7b4779f896f3"}[e]+".js";var o=setTimeout(b,12e4);function b(){f.onerror=f.onload=null,clearTimeout(o);var a=n[e];0!==a&&(a&&a[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return f.onerror=f.onload=b,t.appendChild(f),c},r.m=e,r.c=c,r.d=function(e,a,c){r.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:c})},r.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(a,"a",a),a},r.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},r.p="./",r.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
<template>
<div id="cycleWrap">
<div class="leftWrap">
<div class="left" :style="{ transform: `rotate(${num1}deg)` }"></div>
</div>
<div class="rightWrap">
<div class="right" :style="{ transform: `rotate(${num2}deg)` }"></div>
</div>
<div class="cover"></div>
</div>
</template>
<script>
export default {
name: 'cycleWrap',
data() {
return {
// num1: 0,
// num2: 0,
}
},
props: {
progress: [Number, String]
},
computed: {
degree() {
return this.progress * 3.6
},
num2() {
return this.degree < 180 ? this.degree : 180;
},
num1() {
return this.degree < 180 ? 0 : this.degree - 180;
},
},
// watch: {
// progress() {
// let degree = this.progress * 3.6;
// if(degree < 180) {
// this.num1 = degree;
// this.num2 = 0;
// } else {
// this.num1 = 180;
// this.num2 = degree - 180;
// }
// }
// }
}
</script>
<style lang="scss" scoped>
#cycleWrap {
display: flex;
width: 26px;
height: 26px;
position: relative;
border-radius: 51%;
background-color: #F5222D;
.leftWrap,
.rightWrap {
width: 13px;
height: 26px;
position: absolute;
top: 0;
overflow: hidden;
}
.leftWrap {
left: 0;
}
.rightWrap {
right: 0;
}
.left {
width: 13px;
height: 26px;
border-radius: 12px 0 0 12px;
background-color: #ffe1e2;
transform-origin: right center;
}
.right {
width: 13px;
height: 26px;
border-radius: 0 12px 12px 0;
background-color: #fde1e2;
transform-origin: left center;
}
.cover {
position: absolute;
top: 4px;
left: 4px;
width: 18px;
height: 18px;
background-color: #fff;
border-radius: 50%;
}
}
</style>
\ No newline at end of file
<template>
<div id="trash">
<div class="trash" @click="dialogVisible=true">
<i class="iconfont icon-shanchu trashIcon"></i>
<span>一键清除废弃标签值</span>
<div class="trashState">
<component :is="stateComponent" :progress="progress"></component>
</div>
</div>
<el-dialog
title="批处理撕标签"
:visible.sync="dialogVisible"
width="600px"
@open="dialogOpen"
@closed="dialogClosed">
<el-alert
title="每次操作一键清除的时间间隔为6小时。"
type="info"
show-icon
:closable="false"
style="width: 535px;margin-bottom:15px">
</el-alert>
<header>已选择删除的标签值</header>
<ul class="tagBox">
<li v-for="item in trashList" :key="item.tagItemId" class="tagItem">
{{ item.tagItemName }}
<i class="el-icon-error delIcon" @click="delCheckTag(item.tagItemId)"></i>
</li>
</ul>
<span slot="footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="doClean" :disabled="delTime">{{ delTime ? getDelTime() : '一键清除' }}</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import CycleWrap from './CycleWrap.vue';
import { getProgress, getTrashList, isCleanTrashList, cleanTrashList, delTrashList } from '@/request/api';
let Success = {
template: '<i class="el-icon-success" style="color:#52C41A;font-size:20px;"></i>'
}
let Pending = {
props: ['progress'],
template: '<div class="pendingClass">{{ progress }}</div>'
}
export default {
name: 'trash',
data() {
return {
progress: 0,
trashList: [],
stateComponent: '',
dialogVisible: false,
delTime: 1,
interval: undefined
}
},
components: { CycleWrap, Success, Pending },
mounted() {
this.getProgress();
},
methods: {
getProgress() {
getProgress().then(res => {
const { errorCode, message, result } = res;
if(errorCode != 1) return this.$message.error(message);
if(result === null) {
this.getTrashList();
} else {
this.progress = result;
this.stateComponent = 'CycleWrap';
}
})
},
getTrashList() {
getTrashList().then(res => {
const { errorCode, message, result = [] } = res;
if(errorCode != 1) return this.$message.error(message);
this.trashList = result;
this.progress = result.length;
this.stateComponent = !result.length ? 'Success' : 'Pending';
})
},
dialogOpen() {
this.getTrashList();
isCleanTrashList().then(res => {
const { errorCode, message, result } = res;
if(errorCode != 1) return this.$message.error(message);
this.delTime = result;
result && (this.interval = setInterval(_ => {
this.delTime -= 1000;
}, 1000))
})
},
dialogClosed() {
if(this.interval) clearInterval(this.interval);
},
getDelTime() {
let s = parseInt(this.delTime % (1000 * 60) / 1000);
let m = parseInt((this.delTime % (1000 * 60 * 60)) / (1000 * 60));
let h = parseInt(this.delTime % (1000 * 60 * 60 * 24) / (1000 * 60 * 60));
return `倒计时: ${h}h:${m}min:${s}s`;
},
doClean() {
if(this.delTime) return;
cleanTrashList().then(res => {
const { errorCode, message } = res;
if(errorCode != 1) return this.$message.error(message);
this.$message.success('已开始执行');
this.dialogVisible = false;
this.getProgress();
})
},
delCheckTag(tagItemId) {
delTrashList({ tagItemId }).then(res => {
const { errorCode, message } = res;
if(errorCode != 1) return this.$message.error(message);
this.getTrashList();
this.$message.success('移除成功');
})
}
}
}
</script>
<style lang="scss" scoped>
.trash {
position: fixed;
right: 0;
bottom: 370px;
z-index: 2;
display: flex;
flex-wrap: nowrap;
font-size: 14px;
padding: 8px 10px 8px 0;
background-color: #fff;
color: #1890ff;
box-shadow: 0 0 3px rgba(85, 85, 85, 0.808);
cursor: pointer;
transform: translateX(170px);
transition: .4s;
&:hover {
transform: translateX(0);
}
.trashIcon {
display: block;
font-size: 28px;
margin: 0 8px 0 10px;
}
span {
display: flex;
align-items: center;
margin-top: -2px;
}
.trashState {
display: flex;
justify-content: center;
align-items: center;
width: 26px;
height: 26px;
margin-left: 8px;
}
.pendingClass {
width: 25px;
height: 25px;
text-align: center;
line-height: 25px;
border-radius: 50%;
background-color: #F5222D;
color: #fff;
}
}
header {
color: #303133;
font-weight: 700;
}
.tagBox {
display: flex;
flex-wrap: wrap;
.tagItem {
position: relative;
margin-top: 10px;
margin-right: 13px;
padding: 5px 10px;
border: 1px solid #DCDFE6;
border-radius: 2px;
background-color: #FAFAFA;
font-size: 13px;
color: #606266;
&:hover .delIcon {
display: block;
}
}
.delIcon {
display: none;
position: absolute;
top: -6px;
right: -6px;
cursor: pointer;
}
}
</style>
\ No newline at end of file
......@@ -226,3 +226,69 @@ export const gradeList = (params = {}) =>
...params
}
});
// 获取垃圾桶进度
export const getProgress = (params = {}) =>
request({
url: '/delTagItem/progress',
method: 'get',
params: {
requestProject: 'gic-member-tag-web',
...params
}
});
// 获取垃圾桶列表
export const getTrashList = (params = {}) =>
request({
url: '/delTagItem/list',
method: 'get',
params: {
requestProject: 'gic-member-tag-web',
...params
}
});
// 添加垃圾桶列表
export const addTrashList = (params = {}) =>
request({
url: '/delTagItem/add',
method: 'get',
params: {
requestProject: 'gic-member-tag-web',
...params
}
});
// 执行垃圾桶
export const cleanTrashList = (params = {}) =>
request({
url: '/delTagItem/execute',
method: 'get',
params: {
requestProject: 'gic-member-tag-web',
...params
}
});
// 距离下次的可以执行时间
export const isCleanTrashList = (params = {}) =>
request({
url: '/delTagItem/remainingTime',
method: 'get',
params: {
requestProject: 'gic-member-tag-web',
...params
}
});
// 清除垃圾桶里的标签
export const delTrashList = (params = {}) =>
request({
url: '/delTagItem/delAll',
method: 'get',
params: {
requestProject: 'gic-member-tag-web',
...params
}
});
......@@ -46,10 +46,10 @@
<!-- 删除的初始状态 -->
<template v-else>
<el-popover placement="top" width="300" trigger="click" v-model="scope.row.showDelPopOver">
<p>删除标签后,符合该标签值的会员对应标签值将同步删除。一旦删除将无法恢复,确认要删除吗?</p>
<p>选择删除后,请去批处理一键清除所有标签值。</p>
<div style="text-align: right; margin: 5px 0 0 0;">
<el-button type="text" size="mini" @click.native="scope.row.showDelPopOver = false">取消</el-button>
<el-button type="primary" size="mini" @click.native="delTagApi(scope.$index, scope.row)">确定
<el-button type="primary" size="mini" @click.native="delTagApi(scope.$index, scope.row, $event)">确定
</el-button>
</div>
<el-button type="text" size="small" slot="reference">删除</el-button>
......@@ -121,7 +121,9 @@
</el-dialog>
</div>
</div>
<Trash ref="Trash" />
<vue-gic-footer></vue-gic-footer>
<i id="aniIcon" class="iconfont icon-shougongbiaoqian aniIcon" :style="{ right: `${animationPos.x}px`, bottom: `${animationPos.y}px` }"></i>
</div>
</template>
<script>
......@@ -131,6 +133,7 @@ import navCrumb from '@/components/nav/nav.vue';
import { export_json_to_excel } from '@/vendor/Export2Excel';
import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error';
import Trash from '@/components/Trash.vue';
/* eslint-disable */
import { getRequest, postRequest, postForm } from '@/api/api';
/**
......@@ -188,7 +191,11 @@ export default {
refreshTag: [],
// 需要显示上传完成的标签值id
uploadedTag: [],
timer: null
timer: null,
animationPos: {
x: 1000,
y: 500
}
};
},
computed: {
......@@ -281,22 +288,26 @@ export default {
},
// 删除标签值
delTagApi(index, item) {
delTagApi(index, item, e) {
this.startAnimation(e)
const para = {
tagItemId: item.tagItemId
itemId: item.tagItemId
};
this.refreshTag.push({
tagItemIndex: index,
tagItemId: item.tagItemId
});
getRequest('/memberTag/delHandTagItem', para).then(res => {
const { errorCode } = res.data;
this.tagValTableData[index].showDelPopOver = false;
getRequest('/delTagItem/add', para).then(res => {
const { errorCode, result } = res.data;
if (errorCode === 1) {
item.delStatus = 0;
this.$refs.Trash.getTrashList();
this.handleRefreshTag();
return;
}
errMsg.errorMsg(res.data);
// errMsg.errorMsg(res.data);
this.$message.error(result)
}).catch(error => {
this.$message.error({
duration: 1000,
......@@ -305,6 +316,17 @@ export default {
});
},
startAnimation(e) {
this.animationPos = {
x: document.body.offsetWidth - e.pageX,
y: document.body.offsetHeight - e.pageY
}
document.querySelector('#aniIcon').style.display = 'block'
setTimeout(_ => {
document.querySelector('#aniIcon').style.display = 'none'
}, 1800)
},
// 获取标签值列表
getValueData() {
const para = {
......@@ -691,7 +713,8 @@ export default {
clearTimeout(this.timer);
},
components: {
navCrumb
navCrumb,
Trash
}
}
</script>
......@@ -871,4 +894,23 @@ export default {
}
}
}
.aniIcon {
display: none;
position: absolute;
z-index: 99999;
color: #1890ff;
font-size: 26px;
animation: toTrash 2s infinite;
opacity: 0;
}
@keyframes toTrash {
0% {
opacity: 1;
}
100% {
right: 0;
bottom: 380px;
font-size: 12px;
}
}
</style>
......@@ -383,23 +383,29 @@ export default {
methods: {
// 失效 删除
effectiveGroup(id) {
const param = {
requestProject: 'gic-member-tag-web',
memberTagGroupIds: id,
effectiveStatus: 0
};
batchModifyEffective(param)
.then(res => {
if (res.errorCode == 1) {
this.$message.success({
message: '修改成功'
});
this.getGroupList();
}
})
.catch(err => {
console.log(err);
});
this.$confirm('确认将分组置为失效吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const param = {
requestProject: 'gic-member-tag-web',
memberTagGroupIds: id,
effectiveStatus: 0
};
batchModifyEffective(param)
.then(res => {
if (res.errorCode == 1) {
this.$message.success({
message: '修改成功'
});
this.getGroupList();
}
})
.catch(err => {
console.log(err);
});
})
},
deleteGroup(id) {
const param = {
......
......@@ -41,7 +41,10 @@
<!-- 我的标签 -->
<div class="my-pop-tagbox" @click="expendsGroupList">
<p class="txt">已选标签</p>
<p class="txt">
<i class="iconfont icon-shougongbiaoqian" style="margin-bottom:2px"></i>
已选标签
</p>
<p class="number-txt">{{ groupListNumber }}</p>
</div>
</div>
......@@ -124,6 +127,7 @@
</div>
<edit-tag :showEditTagPop.sync="showEditTagPop" :tagData="tagData" :title="editPopType === 'add' ? '添加标签' : '更新标签'" @returnTagData="returnTagData" @refersh="refersh"></edit-tag>
<manual-tag-edit :options="manualTagPop" :showPop.sync="manualTagPop.show" @save="addNewTag"></manual-tag-edit>
<Trash />
</div>
</template>
......@@ -138,6 +142,7 @@ import ManualTagEdit from '../manualTag/manualTagEdit';
import { getMemberTag, getMemberTagList, addNewGroup, memberGroupList, groupCount } from '@/request/api';
import EditTag from '../memberGroup/edit-tag';
import { mapState } from 'vuex';
import Trash from '@/components/Trash.vue';
Vue.component(CollapseTransition.name, CollapseTransition);
......@@ -152,7 +157,8 @@ export default {
TagContainer,
TagsGroupList,
EditTag,
ManualTagEdit
ManualTagEdit,
Trash
},
data() {
......@@ -783,19 +789,22 @@ export default {
.my-pop-tagbox {
position: fixed;
z-index: 2;
right: 120px;
bottom: 100px;
height: 70px;
width: 70px;
color: #fff;
background-color: #1890ff;
box-shadow: 0 0 5px #555;
border-radius: 50%;
right: 0;
bottom: 230px;
height: 120px;
width: 45px;
// color: #fff;
background-color: #fff;
color: #1890ff;
box-shadow: 0 0 3px rgba(85, 85, 85, 0.808);
// border-radius: 50%;
cursor: pointer;
.txt {
padding: 10px 13px 0;
text-align: center;
padding-top: 25px;
font-size: 12px;
// padding-top: 25px;
font-size: 14px;
line-height: 17px;
}
.number-txt {
text-align: center;
......@@ -803,8 +812,9 @@ export default {
font-size: 14px;
}
&:hover {
transition: all ease 0.3s;
transform: scale(1.2);
transition: all ease 0.4s;
// transform: scale(1.2);
width: 50px;
}
}
.group-right-list {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment