v1.2.1版本,优化调整了很多,整改验收阶段新加字段

This commit is contained in:
王利强
2026-06-13 08:50:51 +08:00
parent 2af9f1fd59
commit 1fe87ec438
591 changed files with 5072 additions and 2706 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("u-popup")+e.resolveComponent("up-picker")+e.resolveComponent("TabBar"))()}Math||((()=>"../../uni_modules/uview-plus/components/u-input/u-input.js")+(()=>"../../uni_modules/uview-plus/components/u-popup/u-popup.js")+(()=>"../../uni_modules/uview-plus/components/u-picker/u-picker.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?"执行人员":"成员"})),t=e.ref([]),r=async()=>{try{const e=await o.getMemberList();0===e.code&&e.data&&(t.value=e.data,console.log("成员列表:",e.data))}catch(e){console.error("获取成员列表失败:",e)}},u=e.ref(!1),l=e.ref(!1),c=e.ref(""),i=e.reactive({username:"",nickname:"",phone:"",password:"",roleType:""}),d=e.reactive([["管理员","普通成员"]]),p={"管理员":"manage","普通成员":"common"},m=e=>{e.value&&e.value.length>0&&(c.value=e.value[0],i.roleType=p[e.value[0]]),l.value=!1},v=async()=>{if(!i.username)return void e.index.showToast({title:"请输入用户名",icon:"none"});if(!i.password||i.password.length<6||i.password.length>16)return void e.index.showToast({title:"请输入6-16位密码",icon:"none"});if(!i.roleType)return void e.index.showToast({title:"请选择角色类型",icon:"none"});const n={userName:i.username,nickName:i.nickname||"",phonenumber:i.phone||"",password:i.password,roleType:i.roleType};try{const s=await o.addMember(n);0===s.code?(e.index.showToast({title:"添加成功",icon:"success"}),u.value=!1,i.username="",i.nickname="",i.phone="",i.password="",i.roleType="",c.value="",r()):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)}})(),r()})),(n,r)=>({a:e.t(s.value.deptName||"未知部门"),b:e.t(a.value),c:e.f(t.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?"解锁":"锁定",t=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(t)});0===s.code?(e.index.showToast({title:`${a}成功`,icon:"success"}),n.status=t,n.statusName="1"===t?"已锁定":"正常"):e.index.showToast({title:s.msg||`${a}失败`,icon:"none"})}catch(r){console.error(`${a}成员失败:`,r),e.index.showToast({title:"请求失败",icon:"none"})}}})})(n)),n.userId),g:n.userId,h:s<t.value.length-1?1:""}))),d:e.o((e=>u.value=!0)),e:e.o((e=>u.value=!1)),f:e.o((e=>i.username=e)),g:e.p({placeholder:"请输入用户名",border:"surround",modelValue:i.username}),h:e.o((e=>i.nickname=e)),i:e.p({placeholder:"请输入昵称",border:"surround",modelValue:i.nickname}),j:e.o((e=>i.phone=e)),k:e.p({placeholder:"请输入手机号",type:"number",border:"surround",modelValue:i.phone}),l:e.o((e=>i.password=e)),m:e.p({placeholder:"请输入密码6-16位",password:!0,border:"surround",modelValue:i.password}),n:e.t(c.value||"请选择角色类型"),o:e.n(c.value?"":"text-gray"),p:e.o((e=>l.value=!0)),q:e.o((e=>u.value=!1)),r:e.o(v),s:e.o((e=>u.value=!1)),t:e.p({show:u.value,mode:"center",round:"20",safeAreaInsetBottom:!1}),v:e.o(m),w:e.o((e=>l.value=!1)),x:e.o((e=>l.value=!1)),y:e.p({show:l.value,columns:d}),z:e.gei(n,"")})}},s=e._export_sfc(n,[["__scopeId","data-v-a88a19e6"]]);wx.createPage(s);

View File

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

View File

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

View File

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