Browse Source

add logic for tid1509

tid1509
刘嘉炜 3 months ago
parent
commit
a9ee443d69
  1. 4
      src/subpackage/account/components/permission_item.vue
  2. 2
      src/subpackage/account/js/api.js
  3. 28
      src/subpackage/account/js/handle.js
  4. 63
      src/subpackage/account/pages/permission/info.vue
  5. 22
      src/subpackage/account/pages/permission/modules/info/admin_permission.vue
  6. 29
      src/subpackage/account/pages/permission/modules/info/edit_password.vue
  7. 17
      src/subpackage/account/pages/permission/modules/info/min_permission.vue
  8. 17
      src/subpackage/account/pages/permission/modules/info/stadium_permission.vue

4
src/subpackage/account/components/permission_item.vue

@ -1,7 +1,9 @@
<template> <template>
<view class="permission-item"> <view class="permission-item">
<image v-if="active" class="pi-icon" mode="aspectFit" src="/subpackage/account/static/images/selected.png" ></image> <image v-if="active" class="pi-icon" mode="aspectFit" src="/subpackage/account/static/images/selected.png" ></image>
<text class="pi-txt" :class="{ 'pi-active': active }">订单管理</text>
<text class="pi-txt" :class="{ 'pi-active': active }">
<slot></slot>
</text>
</view> </view>
</template> </template>

2
src/subpackage/account/js/api.js

@ -4,4 +4,6 @@ export const ACCOUNT_API = {
userRest:`${ORIGIN}/admin/user/rest`, // 权限管理-获取管理员 userRest:`${ORIGIN}/admin/user/rest`, // 权限管理-获取管理员
userDelete:`${ORIGIN}/admin/user/delete`, // 权限管理-删除权限组 userDelete:`${ORIGIN}/admin/user/delete`, // 权限管理-删除权限组
userGet:`${ORIGIN}/admin/user/get`, // B会员管理-小程序用户管理-用户信息列表-用户信息详情 userGet:`${ORIGIN}/admin/user/get`, // B会员管理-小程序用户管理-用户信息列表-用户信息详情
userEdit:`${ORIGIN}/admin/user/edit`, // 权限管理-编辑管理员信息
stadiumList:`${ORIGIN}/admin/stadium/list`, // A店铺管理-店铺列表-店铺列表/A首页公告-店铺列表
} }

28
src/subpackage/account/js/handle.js

@ -0,0 +1,28 @@
import { ACCOUNT_API } from "./api.js";
import server from "./server.js";
import { showModal, showLoad, hideLoad } from "@/utils/util.js";
// B会员管理-小程序用户管理-用户信息列表-用户信息详情
export function getStadiumList({ brand_id }){
showLoad();
return server.post({
url: ACCOUNT_API.stadiumList,
data: { brand_id },
isDefaultGet: false,
})
.then(res => {
hideLoad();
let _data = res?.data || {};
if(_data.code === 0){
console.log('subpackage account js handle stadiumList res --->', _data);
return _data?.data ?? {};
}else{
return Promise.reject(_data);
}
})
.catch(err => {
showModal({ content: err.message || '加载失败!' });
console.warn('subpackage account js handle stadiumList err --->', err);
// return Promise.reject(err);
})
}

63
src/subpackage/account/pages/permission/info.vue

@ -9,12 +9,16 @@
@click:delete="userDelete" @click:delete="userDelete"
@click:changePSW="changePassword" @click:changePSW="changePassword"
></user-info> ></user-info>
<admin-permission></admin-permission>
<admin-permission
:permission-name="permission.permission_name || ''"
:is-admin="!!permission.id"
></admin-permission>
<min-permission <min-permission
@click:unbind="unbindWXAccount" @click:unbind="unbindWXAccount"
:obtained-permission-arr="permissionMenu"
></min-permission> ></min-permission>
<cashier-permission></cashier-permission> <cashier-permission></cashier-permission>
<stadium-permission></stadium-permission>
<stadium-permission ref="stadiumPermisson"></stadium-permission>
<fixed-button @click="editAuthority">修改权限</fixed-button> <fixed-button @click="editAuthority">修改权限</fixed-button>
<edit-password ref="editPassword"></edit-password> <edit-password ref="editPassword"></edit-password>
@ -46,6 +50,20 @@ export default {
'edit-account': edit_account, 'edit-account': edit_account,
'user-info': user_info 'user-info': user_info
}, },
computed: {
//
permission(){
return this.userInfo?.extension?.permission ?? {};
},
//
permissionMenu(){
return this.userInfo?.extension?.assistant_permission?.menu ?? [];
},
//
stadiumPermissionLs(){
return this.userInfo?.extension?.assistant_permission?.tags ?? [];
}
},
data(){ data(){
return { return {
brand_id: '', brand_id: '',
@ -55,13 +73,24 @@ export default {
onLoad(options){ onLoad(options){
this.brand_id = options?.brand_id || ''; this.brand_id = options?.brand_id || '';
this.userGet({ id: options?.id }); this.userGet({ id: options?.id });
this.$refs.stadiumPermisson?.getStadiumLs?.(options?.brand_id);
}, },
methods: { methods: {
userInfoEdit(){ userInfoEdit(){
this.$refs?.editAccount?.show(); this.$refs?.editAccount?.show();
}, },
changePassword(){ changePassword(){
this.$refs?.editPassword?.show();
let { userInfo, brand_id } = this;
this.$refs?.editPassword?.show({
success: async pRes =>{
console.log('pRes', pRes);
this.userEdit({
id: userInfo?.id ?? '',
brand_id: brand_id ?? '',
password: pRes.new,
});
}
});
}, },
userDelete(){ userDelete(){
showModal({ content: '是否删除该账号?', }); showModal({ content: '是否删除该账号?', });
@ -99,6 +128,34 @@ export default {
// return Promise.reject(err); // return Promise.reject(err);
}) })
}, },
// -
userEdit({ id, brand_id, ...res }){
showLoad();
return server.post({
url: ACCOUNT_API.userEdit,
data: { id, brand_id, ...res },
isDefaultGet: false,
})
.then(res => {
hideLoad();
let _data = res?.data || {};
if(_data.code === 0){
console.log('subpackage account pages permission info userEdit res --->', _data);
showModal({ content: _data.message || '操作成功!' });
return _data;
}else{
return Promise.reject(_data);
}
})
.catch(err => {
showModal({
title: '提示',
content: err.message || '加载失败!'
})
console.warn('subpackage account pages permission info userEdit err --->', err);
// return Promise.reject(err);
})
},
} }
} }
</script> </script>

22
src/subpackage/account/pages/permission/modules/info/admin_permission.vue

@ -4,11 +4,11 @@
<template v-slot:title-right> <template v-slot:title-right>
<view class="ap-title-right"> <view class="ap-title-right">
<view class="atr-name">修改需前往后台定义权限组</view> <view class="atr-name">修改需前往后台定义权限组</view>
<switch color="#009874" style="transform:scale(0.7)"></switch>
<switch disabled color="#009874" style="transform:scale(0.7)" :checked="isAdmin" @click="switchClick"></switch>
</view> </view>
</template> </template>
<template v-slot:content> <template v-slot:content>
<view class="ap-content">权限级别名称超级管理员</view>
<view class="ap-content" v-if="permissionName">权限级别名称{{ permissionName }}</view>
</template> </template>
</info-container> </info-container>
</view> </view>
@ -16,10 +16,28 @@
<script> <script>
import infoContainer from '../../../../components/info_container.vue'; import infoContainer from '../../../../components/info_container.vue';
import { showModal } from "@/utils/util.js";
export default { export default {
components: { components: {
'info-container': infoContainer 'info-container': infoContainer
}, },
props: {
isAdmin: {
type: Boolean,
default: false
},
permissionName: {
type: String,
default: ''
},
},
methods: {
switchClick(e){
console.log(e);
showModal({ content: '请前往后台定义权限组!' });
},
}
} }
</script> </script>

29
src/subpackage/account/pages/permission/modules/info/edit_password.vue

@ -2,15 +2,15 @@
<fixed-modal title="修改密码" :show="isShow" close @click:close="hide"> <fixed-modal title="修改密码" :show="isShow" close @click:close="hide">
<view class="edit-password"> <view class="edit-password">
<view class="ep-item"> <view class="ep-item">
<view class="ei-label"><text class="el-star">*</text>密码</view>
<input class="ei-input" type="password" placeholder="请输入原密码" />
<view class="ei-label"><text class="el-star">*</text>密码</view>
<input class="ei-input" type="password" placeholder="请输入新密码" v-model="password.new" />
</view> </view>
<view class="ep-item"> <view class="ep-item">
<view class="ei-label"><text class="el-star">*</text>确认新密码</view> <view class="ei-label"><text class="el-star">*</text>确认新密码</view>
<input class="ei-input" type="password" placeholder="请输入新密码" />
<input class="ei-input" type="password" placeholder="请确认新密码" v-model="password.confirm" />
</view> </view>
</view> </view>
<modal-button green>确认修改</modal-button>
<modal-button green @click="confirmModify">确认修改</modal-button>
</fixed-modal> </fixed-modal>
</template> </template>
@ -18,6 +18,7 @@
<script> <script>
import fixedModal from "../../../../components/fixed_modal.vue"; import fixedModal from "../../../../components/fixed_modal.vue";
import modalButton from "../../../../components/modal_button.vue"; import modalButton from "../../../../components/modal_button.vue";
import { showNone, showModal } from "@/utils/util";
export default { export default {
components: { components: {
'fixed-modal': fixedModal, 'fixed-modal': fixedModal,
@ -25,18 +26,34 @@ export default {
}, },
data(){ data(){
return { return {
isShow: false
isShow: false,
initData: {},
password: {
new: '',
confirm: ''
}
} }
}, },
onLoad(){ onLoad(){
}, },
methods: { methods: {
show(){
show(data){
this.isShow = true; this.isShow = true;
this.initData = data ?? {};
this.password = {new: '', confirm: ''};
}, },
hide(){ hide(){
this.isShow = false; this.isShow = false;
},
confirmModify(){
let { initData, password } = this;
let { new: nPsw, confirm: cPsw } = password;
if(!nPsw)return showNone('请输入新密码!');
if(nPsw?.length < 6)return showNone('新密码不能小于6位!');
if(nPsw !== cPsw)return showNone('密码不一致!');
this.hide();
initData?.success?.(password);
} }
} }
} }

17
src/subpackage/account/pages/permission/modules/info/min_permission.vue

@ -9,8 +9,8 @@
</template> </template>
<template v-slot:content> <template v-slot:content>
<view class="mp-content"> <view class="mp-content">
<view class="mc-item" v-for="i in 7" :key="i">
<permission-item :active="i%3 === 0"></permission-item>
<view class="mc-item" v-for="(e, i) in permissionArr" :key="i">
<permission-item :active="obtainedPermissionArr.includes(+e.key)">{{ e.name || '' }}</permission-item>
</view> </view>
</view> </view>
</template> </template>
@ -21,11 +21,24 @@
<script> <script>
import infoContainer from '../../../../components/info_container.vue'; import infoContainer from '../../../../components/info_container.vue';
import permissionItem from '../../../../components/permission_item.vue'; import permissionItem from '../../../../components/permission_item.vue';
import { mapGetters } from "vuex";
export default { export default {
components: { components: {
'info-container': infoContainer, 'info-container': infoContainer,
'permission-item': permissionItem 'permission-item': permissionItem
}, },
computed: {
...mapGetters(['permissionArr'])
},
props: {
obtainedPermissionArr: {
type: Array,
default: () => []
}
},
onLoad(){
}
} }
</script> </script>

17
src/subpackage/account/pages/permission/modules/info/stadium_permission.vue

@ -3,8 +3,8 @@
<info-container title="门店权限"> <info-container title="门店权限">
<template v-slot:content> <template v-slot:content>
<view class="sp-content"> <view class="sp-content">
<view class="sp-item" v-for="i in 4" :key="i">
<permission-item :active="i%3 === 0"></permission-item>
<view class="sp-item" v-for="(e, i) in stadiumLs" :key="i">
<permission-item :active="i%3 === 0">{{ e.name || '-' }}</permission-item>
</view> </view>
</view> </view>
@ -16,11 +16,24 @@
<script> <script>
import infoContainer from '../../../../components/info_container.vue'; import infoContainer from '../../../../components/info_container.vue';
import permissionItem from '../../../../components/permission_item.vue'; import permissionItem from '../../../../components/permission_item.vue';
import { getStadiumList } from "../../../../js/handle";
export default { export default {
components: { components: {
'info-container': infoContainer, 'info-container': infoContainer,
'permission-item': permissionItem 'permission-item': permissionItem
}, },
data(){
return {
stadiumLs: []
}
},
methods: {
async getStadiumLs(bid){
let _res = await getStadiumList({ brand_id: bid });
let _ls = _res?.list ?? [];
this.stadiumLs = _ls;
}
},
} }
</script> </script>

Loading…
Cancel
Save