优化后,再次提交

This commit is contained in:
王利强
2026-05-03 09:08:56 +08:00
parent 721ef0ad54
commit 805747d1d9
1243 changed files with 46213 additions and 221 deletions

View File

@@ -0,0 +1 @@
"use strict";const e=require("../../common/vendor.js"),o=require("../../request/api.js");if(!Array){(e.resolveComponent("up-input")+e.resolveComponent("up-picker")+e.resolveComponent("u-popup")+e.resolveComponent("TabBar"))()}Math||((()=>"../../uni_modules/uview-plus/components/u-input/u-input.js")+(()=>"../../uni_modules/uview-plus/components/u-picker/u-picker.js")+(()=>"../../uni_modules/uview-plus/components/u-popup/u-popup.js"))();const n={__name:"membermanagemen",setup(n){const s=e.ref({deptId:"",deptName:"",nickName:"",role:"",userId:"",username:""}),a=e.computed((()=>{const e=s.value.role;return"manage"===e||"admin"===e?"管理人员":"common"===e?"执行人员":"成员"})),r=e.ref([]),t=async()=>{try{const e=await o.getMemberList();0===e.code&&e.data&&(r.value=e.data,console.log("成员列表:",e.data))}catch(e){console.error("获取成员列表失败:",e)}},u=e.ref(!1),l=e.ref(!1),c=e.ref(""),d=e.reactive({username:"",nickname:"",phone:"",password:"",roleType:""}),i=e.reactive([["管理员","普通成员"]]),p={"管理员":"manage","普通成员":"common"},m=e=>{e.value&&e.value.length>0&&(c.value=e.value[0],d.roleType=p[e.value[0]]),l.value=!1},v=async()=>{if(!d.username)return void e.index.showToast({title:"请输入用户名",icon:"none"});if(!d.password||d.password.length<6||d.password.length>16)return void e.index.showToast({title:"请输入6-16位密码",icon:"none"});if(!d.roleType)return void e.index.showToast({title:"请选择角色类型",icon:"none"});const n={userName:d.username,nickName:d.nickname||"",phonenumber:d.phone||"",password:d.password,roleType:d.roleType};try{const s=await o.addMember(n);0===s.code?(e.index.showToast({title:"添加成功",icon:"success"}),u.value=!1,d.username="",d.nickname="",d.phone="",d.password="",d.roleType="",c.value="",t()):e.index.showToast({title:s.msg||"添加失败",icon:"none"})}catch(s){console.error("添加成员失败:",s),e.index.showToast({title:"请求失败",icon:"none"})}};return e.onMounted((()=>{(()=>{try{const o=e.index.getStorageSync("userInfo");o&&(s.value=JSON.parse(o),console.log("用户信息:",s.value))}catch(o){console.error("获取用户信息失败:",o)}})(),t()})),(n,t)=>({a:e.t(s.value.deptName||"未知部门"),b:e.t(a.value),c:e.f(r.value,((n,s,a)=>({a:e.t(n.nickName),b:e.t(n.statusName),c:e.n("正常"===n.statusName?"status-normal":"status-locked"),d:e.t(n.phonenumber||"未设置"),e:e.t("1"===n.status?"解锁":"锁定"),f:e.o((s=>(n=>{const s="1"===n.status,a=s?"解锁":"锁定",r=s?"0":"1";e.index.showModal({title:"提示",content:`确定要${a}该成员吗?`,confirmColor:"#2667E9",success:async s=>{if(s.confirm)try{const s=await o.lockOrUnlockMember({userId:n.userId,lockStatus:Number(r)});0===s.code?(e.index.showToast({title:`${a}成功`,icon:"success"}),n.status=r,n.statusName="1"===r?"已锁定":"正常"):e.index.showToast({title:s.msg||`${a}失败`,icon:"none"})}catch(t){console.error(`${a}成员失败:`,t),e.index.showToast({title:"请求失败",icon:"none"})}}})})(n)),n.userId),g:n.userId,h:s<r.value.length-1?1:""}))),d:e.o((e=>u.value=!0)),e:e.o((e=>u.value=!1)),f:e.o((e=>d.username=e)),g:e.p({placeholder:"请输入用户名",border:"surround",modelValue:d.username}),h:e.o((e=>d.nickname=e)),i:e.p({placeholder:"请输入昵称",border:"surround",modelValue:d.nickname}),j:e.o((e=>d.phone=e)),k:e.p({placeholder:"请输入手机号",type:"number",border:"surround",modelValue:d.phone}),l:e.o((e=>d.password=e)),m:e.p({placeholder:"请输入密码6-16位",password:!0,border:"surround",modelValue:d.password}),n:e.t(c.value||"请选择角色类型"),o:e.n(c.value?"":"text-gray"),p:e.o((e=>l.value=!0)),q:e.o(m),r:e.o((e=>l.value=!1)),s:e.o((e=>l.value=!1)),t:e.p({show:l.value,columns:i}),v:e.o((e=>u.value=!1)),w:e.o(v),x:e.o((e=>u.value=!1)),y:e.p({show:u.value,mode:"center",round:"20"}),z:e.gei(n,"")})}},s=e._export_sfc(n,[["__scopeId","data-v-d2d1400e"]]);wx.createPage(s);

View File

@@ -0,0 +1,8 @@
{
"navigationBarTitleText": "成员管理",
"usingComponents": {
"up-input": "../../uni_modules/uview-plus/components/u-input/u-input",
"up-picker": "../../uni_modules/uview-plus/components/u-picker/u-picker",
"u-popup": "../../uni_modules/uview-plus/components/u-popup/u-popup"
}
}

View File

@@ -0,0 +1 @@
<view class="{{['page', 'padding', 'data-v-d2d1400e', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{z}}"><view class="member-card bg-white radius data-v-d2d1400e"><view class="card-header data-v-d2d1400e"><view class="flex align-center data-v-d2d1400e"><view class="border-line data-v-d2d1400e"></view><view class="text-bold margin-left-sm data-v-d2d1400e">{{a}}</view></view><view class="role-tag data-v-d2d1400e">{{b}}</view></view><view class="member-list data-v-d2d1400e"><view wx:for="{{c}}" wx:for-item="item" wx:key="g" class="{{['member-item', 'data-v-d2d1400e', item.h && 'border-bottom']}}"><view class="cu-avatar radius lg bg-gray data-v-d2d1400e" style="background-image:url(https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png)"></view><view class="member-info data-v-d2d1400e"><view class="flex align-center data-v-d2d1400e"><text class="member-name data-v-d2d1400e">{{item.a}}</text><view class="{{['status-tag', 'data-v-d2d1400e', item.c]}}">{{item.b}}</view></view><view class="member-phone text-gray data-v-d2d1400e"><text class="data-v-d2d1400e">手机:{{item.d}}</text></view></view><button class="btn-lock bg-blue data-v-d2d1400e" bindtap="{{item.f}}">{{item.e}}</button></view></view><view class="add-btn-wrapper data-v-d2d1400e"><button class="add-btn data-v-d2d1400e" bindtap="{{d}}"><text class="cuIcon-add data-v-d2d1400e"></text><text class="data-v-d2d1400e">添加成员</text></button></view></view><u-popup wx:if="{{y}}" class="data-v-d2d1400e" virtualHostClass="data-v-d2d1400e" u-s="{{['d']}}" bindclose="{{x}}" u-i="d2d1400e-0" bind:__l="__l" u-p="{{y}}"><view class="popup-content data-v-d2d1400e"><view class="popup-header data-v-d2d1400e"><view class="popup-title text-bold data-v-d2d1400e">添加成员</view><view class="popup-close data-v-d2d1400e" bindtap="{{e}}">×</view></view><scroll-view class="popup-body data-v-d2d1400e" scroll-y><view class="form-item data-v-d2d1400e"><view class="form-label data-v-d2d1400e">用户名<text class="text-red data-v-d2d1400e">*</text></view><up-input wx:if="{{g}}" class="data-v-d2d1400e" virtualHostClass="data-v-d2d1400e" u-i="d2d1400e-1,d2d1400e-0" bind:__l="__l" bindupdateModelValue="{{f}}" u-p="{{g}}"></up-input></view><view class="form-item data-v-d2d1400e"><view class="form-label data-v-d2d1400e">昵称</view><up-input wx:if="{{i}}" class="data-v-d2d1400e" virtualHostClass="data-v-d2d1400e" u-i="d2d1400e-2,d2d1400e-0" bind:__l="__l" bindupdateModelValue="{{h}}" u-p="{{i}}"></up-input></view><view class="form-item data-v-d2d1400e"><view class="form-label data-v-d2d1400e">手机号</view><up-input wx:if="{{k}}" class="data-v-d2d1400e" virtualHostClass="data-v-d2d1400e" u-i="d2d1400e-3,d2d1400e-0" bind:__l="__l" bindupdateModelValue="{{j}}" u-p="{{k}}"></up-input></view><view class="form-item data-v-d2d1400e"><view class="form-label data-v-d2d1400e">密码<text class="text-red data-v-d2d1400e">*</text></view><up-input wx:if="{{m}}" class="data-v-d2d1400e" virtualHostClass="data-v-d2d1400e" u-i="d2d1400e-4,d2d1400e-0" bind:__l="__l" bindupdateModelValue="{{l}}" u-p="{{m}}"></up-input></view><view class="form-item data-v-d2d1400e"><view class="form-label data-v-d2d1400e">角色类型<text class="text-red data-v-d2d1400e">*</text></view><view class="form-select data-v-d2d1400e" bindtap="{{p}}"><text class="{{['data-v-d2d1400e', o]}}">{{n}}</text><text class="cuIcon-unfold data-v-d2d1400e"></text></view><up-picker wx:if="{{t}}" class="data-v-d2d1400e" virtualHostClass="data-v-d2d1400e" bindconfirm="{{q}}" bindcancel="{{r}}" bindclose="{{s}}" u-i="d2d1400e-5,d2d1400e-0" bind:__l="__l" u-p="{{t}}"></up-picker></view></scroll-view><view class="popup-footer data-v-d2d1400e"><button class="btn-cancel data-v-d2d1400e" bindtap="{{v}}">取消</button><button class="btn-confirm bg-blue data-v-d2d1400e" bindtap="{{w}}">确定</button></view></view></u-popup><tab-bar class="data-v-d2d1400e" virtualHostClass="data-v-d2d1400e" u-i="d2d1400e-6" bind:__l="__l"/></view>

View File

@@ -0,0 +1 @@
.page.data-v-d2d1400e{min-height:100vh;background:#ebf2fc}.member-card.data-v-d2d1400e{padding:0;overflow:hidden}.card-header.data-v-d2d1400e{display:flex;justify-content:space-between;align-items:center;padding:30rpx;border-bottom:1rpx solid #f0f0f0}.card-header .border-line.data-v-d2d1400e{width:8rpx;height:32rpx;background:#2667e9;border-radius:8rpx}.role-tag.data-v-d2d1400e{padding:8rpx 24rpx;background:#eef3ff;color:#2667e9;font-size:24rpx;border-radius:24rpx 0 0 24rpx;margin-right:-30rpx}.member-list.data-v-d2d1400e{padding:0 30rpx}.member-item.data-v-d2d1400e{display:flex;align-items:center;padding:24rpx 0}.member-item.border-bottom.data-v-d2d1400e{border-bottom:1rpx solid #f5f5f5}.member-item .cu-avatar.data-v-d2d1400e{flex-shrink:0}.member-info.data-v-d2d1400e{flex:1;margin-left:20rpx;overflow:hidden}.member-info .member-name.data-v-d2d1400e{font-size:30rpx;color:#333;font-weight:500}.member-info .member-phone.data-v-d2d1400e{font-size:24rpx;margin-top:8rpx}.status-tag.data-v-d2d1400e{margin-left:12rpx;padding:4rpx 12rpx;font-size:22rpx;border-radius:6rpx}.status-tag.status-normal.data-v-d2d1400e{background:#e8f5e9;color:#4caf50}.status-tag.status-locked.data-v-d2d1400e{background:#ffebee;color:#f44336}.btn-lock.data-v-d2d1400e{width:120rpx;height:56rpx;line-height:56rpx;padding:0;font-size:26rpx;border-radius:28rpx;flex-shrink:0}.add-btn-wrapper.data-v-d2d1400e{padding:30rpx;border-top:1rpx solid #f0f0f0}.add-btn.data-v-d2d1400e{display:flex;align-items:center;justify-content:center;width:100%;height:88rpx;background:#fff;border:2rpx dashed #2667E9;border-radius:12rpx;color:#2667e9;font-size:30rpx}.add-btn .cuIcon-add.data-v-d2d1400e{margin-right:10rpx;font-size:32rpx}.add-btn.data-v-d2d1400e:after{border:none}.popup-content.data-v-d2d1400e{width:600rpx;background:#fff;border-radius:20rpx;overflow:hidden}.popup-header.data-v-d2d1400e{display:flex;justify-content:space-between;align-items:center;padding:30rpx;border-bottom:1rpx solid #eee}.popup-title.data-v-d2d1400e{font-size:34rpx;color:#333}.popup-close.data-v-d2d1400e{font-size:48rpx;color:#999;line-height:1}.popup-body.data-v-d2d1400e{padding:30rpx;max-height:700rpx;overflow-y:auto}.form-item.data-v-d2d1400e{margin-bottom:24rpx}.form-label.data-v-d2d1400e{font-size:28rpx;color:#333;margin-bottom:12rpx;display:flex;align-items:center}.form-select.data-v-d2d1400e{display:flex;align-items:center;justify-content:space-between;height:80rpx;border:2rpx solid #dadbde;border-radius:8rpx;padding:0 24rpx;font-size:28rpx}.popup-footer.data-v-d2d1400e{display:flex;border-top:1rpx solid #eee}.popup-footer button.data-v-d2d1400e{flex:1;height:90rpx;line-height:90rpx;border-radius:0;font-size:30rpx}.popup-footer button.data-v-d2d1400e:after{border:none}.btn-cancel.data-v-d2d1400e{background:#fff;color:#666}.btn-confirm.data-v-d2d1400e{color:#fff}