|
|
@@ -5,51 +5,22 @@
|
|
|
<p>编辑角色</p>
|
|
|
<p class="en-name"><img :src="`/images/mobile/center/${user.data.enterprise.uu ? 'en' : 'self'}.png`" alt="">{{currentEnName}}</p>
|
|
|
</div>
|
|
|
- <div class="mobile-fix-content mobile-centerfix-content" id="mobile-staff-center">
|
|
|
- <div class="staff-role">
|
|
|
- <div class="staff-header"><span class="active_01"><b></b>管理员</span></div>
|
|
|
- <div class="staff-content">
|
|
|
- <label for="1" class="radio-label active">
|
|
|
- <input type="radio" v-model="selectFlag" name="role" value="" id="1"/>
|
|
|
- </label>
|
|
|
- <p class="staff-des">拥有管理员角色的用户不受权限控制,可以执行任何操作</p>
|
|
|
+ <div class="mobile-fix-content mobile-centerfix-content" id="mobile-staff-center" v-if="roles">
|
|
|
+ <div v-for="role in roles">
|
|
|
+ <div class="staff-role">
|
|
|
+ <div class="staff-header"><span :class="'active_0' + role.color"><b></b>{{role.desc}}</span></div>
|
|
|
+ <div class="staff-content">
|
|
|
+ <label class="radio-label clearfix" @click="checkRole(role)">
|
|
|
+ <input type="checkbox" :id="role.id" v-bind:class="{'checked': role.checked}"/>
|
|
|
+ <label :for="role.id" v-bind:class="{'margin0': role.color === '4'}"></label>
|
|
|
+ <p class="staff-des">{{role.duty}}</p>
|
|
|
+ </label>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="staff-role">
|
|
|
- <div class="staff-header"><span class="active_02"><b></b>店长</span></div>
|
|
|
- <div class="staff-content">
|
|
|
- <label for="2" class="radio-label">
|
|
|
- <input type="radio" v-model="selectFlag" name="role" value="" id="2"/>
|
|
|
- </label>
|
|
|
- <p class="staff-des">店长可以对买/卖家中心的全部模块进行查看和编辑</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="staff-role">
|
|
|
- <div class="staff-header"><span class="active_03"><b></b>普通用户</span></div>
|
|
|
- <div class="staff-content">
|
|
|
- <label for="3" class="radio-label">
|
|
|
- <input type="radio" v-model="selectFlag" name="role" value="" id="3"/>
|
|
|
- </label>
|
|
|
- <p class="staff-des">可以进行交易相关的一般操作,不能进行“员工管理”和“角色权限”的编辑操作</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="staff-role">
|
|
|
- <div class="staff-header"><span class="active_04"><b></b>采购员</span></div>
|
|
|
- <div class="staff-content">
|
|
|
- <label for="4" class="radio-label">
|
|
|
- <input type="radio" v-model="selectFlag" name="role" value="" id="4"/>
|
|
|
- </label>
|
|
|
- <p class="staff-des" style="margin-top: .12rem;">可以查看并操作处理买家中心所有模块</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="staff-role">
|
|
|
- <div class="staff-header"><span class="active_05"><b></b>销售员</span></div>
|
|
|
- <div class="staff-content">
|
|
|
- <label for="5" class="radio-label">
|
|
|
- <input type="radio" v-model="selectFlag" name="role" value="" id="5"/>
|
|
|
- </label>
|
|
|
- <p class="staff-des">可以查看并操作处理卖家中心的基本模块,不能进行 "员工管理" 和 "角色权限" 的编辑操作</p>
|
|
|
- </div>
|
|
|
+ <div class="staff-footer">
|
|
|
+ <div class="cancel handle" @click="cancelBind">取消</div>
|
|
|
+ <div class="agree handle" @click="sureEdit">确定</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -58,9 +29,56 @@
|
|
|
export default {
|
|
|
data () {
|
|
|
return {
|
|
|
+ checked: false,
|
|
|
+ roles: []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ currentData () {
|
|
|
+ return this.$store.state.staff.infoList.edit.data
|
|
|
}
|
|
|
},
|
|
|
+ mounted () {
|
|
|
+ // 获取角色
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.getRoles()
|
|
|
+ })
|
|
|
+ },
|
|
|
methods: {
|
|
|
+ // 获取角色
|
|
|
+ getRoles () {
|
|
|
+ this.$http.get('/account/role')
|
|
|
+ .then(response => {
|
|
|
+ if (response.data) {
|
|
|
+ this.roles = response.data
|
|
|
+ for (let i = 0; i < this.currentData.roles.length; i++) {
|
|
|
+ for (let j = 0; j < this.roles.length; j++) {
|
|
|
+ //判断已绑定角色
|
|
|
+ if (this.currentData.roles[i].id === this.roles[j].id) {
|
|
|
+ this.roles[j].checked = true
|
|
|
+ // console.log(this.roles[j].checked)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 选择角色
|
|
|
+ checkRole (role) {
|
|
|
+ console.log(role)
|
|
|
+ role.checked = !role.checked
|
|
|
+ console.log(this.currentData.roles, 'roles')
|
|
|
+ // this.currentData.roles.push(role)
|
|
|
+ },
|
|
|
+ // 取消编辑
|
|
|
+ cancelBind () {
|
|
|
+ this.$router.push('/mobile/user/staff')
|
|
|
+ },
|
|
|
+ // 确定编辑
|
|
|
+ sureEdit () {
|
|
|
+ this.$http.put(`/basic/user/updaterole/${this.currentData}`)
|
|
|
+ .then(() => {})
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
@@ -105,23 +123,35 @@
|
|
|
}
|
|
|
}
|
|
|
.staff-content {
|
|
|
- overflow: hidden;
|
|
|
padding-top: .25rem;
|
|
|
.radio-label {
|
|
|
- float: left;
|
|
|
- margin: .18rem .1rem 0 0;
|
|
|
- min-width: .36rem;
|
|
|
- height: .36rem;
|
|
|
- background: url(/images/mobile/center/user/car-noChecked.png) no-repeat;
|
|
|
background-size: contain;
|
|
|
vertical-align: middle;
|
|
|
input{
|
|
|
+ float: left;
|
|
|
display: none;
|
|
|
+ margin: .18rem .1rem 0 0;
|
|
|
width: .36rem;
|
|
|
height: .36rem;
|
|
|
border: solid 2px #999999;
|
|
|
}
|
|
|
- &.active {
|
|
|
+ label {
|
|
|
+ float: left;
|
|
|
+ margin: .18rem .1rem 0 0;
|
|
|
+ width: .36rem;
|
|
|
+ height: .36rem;
|
|
|
+ border-radius: 50%;
|
|
|
+ background: url(/images/mobile/center/user/car-noChecked.png) no-repeat;
|
|
|
+ background-size: contain;
|
|
|
+ vertical-align: middle;
|
|
|
+ }
|
|
|
+ label.margin0 {
|
|
|
+ margin: 0.05rem .1rem 0 0;
|
|
|
+ }
|
|
|
+ input:checked + label {
|
|
|
+ background-image: url(/images/mobile/center/user/car-checked.png);
|
|
|
+ }
|
|
|
+ input.checked + label {
|
|
|
background-image: url(/images/mobile/center/user/car-checked.png);
|
|
|
}
|
|
|
}
|
|
|
@@ -129,10 +159,32 @@
|
|
|
float: left;
|
|
|
width: 6rem;
|
|
|
line-height: .42rem;
|
|
|
+ font-weight: normal;
|
|
|
font-size: .28rem;
|
|
|
color: #666666;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ .staff-footer{
|
|
|
+ overflow: hidden;
|
|
|
+ margin-top: .6rem;
|
|
|
+ div.handle{
|
|
|
+ float: left;
|
|
|
+ width: 3.24rem;
|
|
|
+ height: .77rem;
|
|
|
+ line-height: .77rem;
|
|
|
+ font-size: .32rem;
|
|
|
+ color: #fff;
|
|
|
+ text-align: center;
|
|
|
+ border-radius: .08rem;
|
|
|
+ &:first-child{
|
|
|
+ margin: 0 .28rem 0 .35rem;
|
|
|
+ background-color: #acaaab;
|
|
|
+ }
|
|
|
+ &:last-child{
|
|
|
+ background-color: #3f84f6;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|