diff --git a/src/api/system/mpUser.js b/src/api/system/mpUser.js new file mode 100644 index 0000000..99427e2 --- /dev/null +++ b/src/api/system/mpUser.js @@ -0,0 +1,62 @@ +import request from '@/axios'; + +export const getList = (current, size, params) => { + return request({ + url: '/blade-system/mp-user/list', + method: 'get', + params: { + ...params, + current, + size, + }, + }); +}; + +export const getDetail = id => { + return request({ + url: '/blade-system/mp-user/detail', + method: 'get', + params: { + id, + }, + }); +}; + +export const submit = row => { + return request({ + url: '/blade-system/mp-user/submit', + method: 'post', + data: row, + }); +}; + +export const remove = ids => { + return request({ + url: '/blade-system/mp-user/remove', + method: 'post', + params: { + ids, + }, + }); +}; + +export const changeStatus = (id, status) => { + return request({ + url: '/blade-system/mp-user/change-status', + method: 'post', + params: { + id, + status, + }, + }); +}; + +export const resetPassword = userIds => { + return request({ + url: '/blade-system/mp-user/reset-password', + method: 'post', + params: { + userIds, + }, + }); +}; diff --git a/src/option/system/mpUser.js b/src/option/system/mpUser.js new file mode 100644 index 0000000..a5b4b9a --- /dev/null +++ b/src/option/system/mpUser.js @@ -0,0 +1,203 @@ +const identityDic = [ + { label: '司机', value: 'driver' }, + { label: '管理员', value: 'admin' }, +]; + +const statusDic = [ + { label: '启用', value: 1 }, + { label: '停用', value: 0 }, +]; + +const validatePhone = (rule, value, callback) => { + const phone = String(value || '').trim(); + if (!phone) { + callback(new Error('请输入手机号')); + return; + } + if (!/^1\d{10}$/.test(phone)) { + callback(new Error('请输入正确的手机号')); + return; + } + callback(); +}; + +const validateRemark = (rule, value, callback) => { + if (String(value || '').length > 200) { + callback(new Error('备注不能超过200字')); + } else { + callback(); + } +}; + +export default { + height: 'auto', + calcHeight: 22, + dialogWidth: 760, + labelPosition: 'right', + labelWidth: 'auto', + tip: false, + searchBtnText: '查询', + emptyBtnText: '重置', + saveBtnText: '提交', + updateBtnText: '提交', + searchShow: true, + searchIcon: true, + searchLabelWidth: 160, + searchMenuSpan: 24, + searchIndex: 4, + searchMenuPosition: 'right', + border: true, + index: true, + indexLabel: '序号', + indexWidth: 70, + viewBtn: false, + delBtn: false, + editBtn: false, + addBtn: false, + selection: true, + dialogClickModal: false, + menuWidth: 280, + column: [ + { + label: '手机号', + prop: 'phone', + minWidth: 130, + search: true, + searchOrder: 4, + searchSpan: 6, + searchPlaceholder: '请输入', + maxlength: 11, + showWordLimit: true, + order: 100, + rules: [ + { required: true, message: '请输入手机号', trigger: 'blur' }, + { validator: validatePhone, trigger: 'blur' }, + ], + }, + { + label: '账号', + prop: 'account', + minWidth: 130, + search: true, + searchOrder: 3, + searchSpan: 6, + searchPlaceholder: '请输入', + maxlength: 45, + order: 90, + placeholder: '默认与手机号相同', + }, + { + label: '姓名', + prop: 'realName', + minWidth: 100, + search: true, + searchOrder: 2, + searchSpan: 6, + searchPlaceholder: '请输入', + maxlength: 10, + showWordLimit: true, + order: 80, + }, + { + label: '昵称', + prop: 'name', + minWidth: 100, + maxlength: 20, + showWordLimit: true, + order: 70, + }, + { + label: '小程序身份', + prop: 'identities', + type: 'select', + multiple: true, + dataType: 'string', + dicData: identityDic, + minWidth: 140, + search: true, + searchOrder: 1, + searchSpan: 6, + searchPlaceholder: '请选择', + order: 60, + rules: [{ required: true, message: '请选择小程序身份', trigger: 'change' }], + }, + { + label: '性别', + prop: 'sex', + type: 'select', + dicUrl: '/blade-system/dict/dictionary?code=sex', + props: { + label: 'dictValue', + value: 'dictKey', + }, + dataType: 'number', + minWidth: 80, + hide: true, + order: 50, + }, + { + label: 'openid', + prop: 'openid', + minWidth: 180, + overHidden: true, + addDisplay: false, + editDisplay: true, + order: 40, + placeholder: '可清空以解绑微信', + }, + { + label: '状态', + prop: 'status', + type: 'select', + dicData: statusDic, + dataType: 'number', + minWidth: 90, + search: true, + searchOrder: 0, + searchSpan: 6, + addDisplay: false, + editDisplay: false, + value: 1, + order: 30, + }, + { + label: '备注', + prop: 'remark', + type: 'textarea', + span: 24, + minRows: 2, + maxlength: 200, + showWordLimit: true, + hide: true, + order: 20, + rules: [{ validator: validateRemark, trigger: 'blur' }], + }, + { + label: '创建时间', + prop: 'createTime', + minWidth: 170, + addDisplay: false, + editDisplay: false, + viewDisplay: true, + order: 10, + }, + { + label: '更新人', + prop: 'updateUserName', + minWidth: 100, + addDisplay: false, + editDisplay: false, + viewDisplay: true, + order: 5, + }, + { + label: '更新时间', + prop: 'updateTime', + minWidth: 170, + addDisplay: false, + editDisplay: false, + viewDisplay: true, + order: 1, + }, + ], +}; diff --git a/src/option/system/user.js b/src/option/system/user.js index 78401f8..f3956d7 100644 --- a/src/option/system/user.js +++ b/src/option/system/user.js @@ -39,6 +39,7 @@ export const userOption = safe => { label: '账号名', prop: 'account', slot: true, + minWidth: 180, search: true, searchOrder: 2, searchPlaceholder: '支持模糊搜索', @@ -96,7 +97,7 @@ export const userOption = safe => { { label: '账号名', prop: 'account', - span: 6, + span: 12, rules: [ { required: true, diff --git a/src/views/system/mp-user.vue b/src/views/system/mp-user.vue new file mode 100644 index 0000000..bf66361 --- /dev/null +++ b/src/views/system/mp-user.vue @@ -0,0 +1,321 @@ + + + + + diff --git a/src/views/system/user.vue b/src/views/system/user.vue index 7aeee32..533db3e 100644 --- a/src/views/system/user.vue +++ b/src/views/system/user.vue @@ -139,7 +139,7 @@ - +