From 78a2c4c89654d905e8578a0a94b103224b5cc777 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期五, 06 十二月 2024 17:36:50 +0800 Subject: [PATCH] add: 供应商子账号 --- pages/supplier/sub-list.vue | 228 ++++++++++++++++++++++++++++++++++++++ pages/log/operation-record.vue | 77 ++++++++++++ 2 files changed, 305 insertions(+), 0 deletions(-) diff --git a/pages/log/operation-record.vue b/pages/log/operation-record.vue new file mode 100644 index 0000000..360f3bb --- /dev/null +++ b/pages/log/operation-record.vue @@ -0,0 +1,77 @@ +<template> + <el-bus-crud ref="crud" v-bind="tableConfig" /> +</template> + +<script> +export default { + data() { + return { + tableConfig: { + url: 'flower/api/operationRecord/list', + dialogNeedRequest: true, + persistSelection: true, + hasOperation: false, + hasNew: false, + columns: [ + { label: '页面', prop: 'moduleName' }, + { label: '动作', prop: 'function' }, + { label: '操作人', prop: 'createName' }, + { label: '操作时间', prop: 'createTime' }, + { label: 'IP地址', prop: 'ipAddress' }, + { label: '操作内容', prop: 'content' }, + ], + searchForm: [ + { + type: 'row', + items: [ + { + label: '页面', + id: 'module', + type: 'bus-select-dict', + el: { + code: 'OPERATION_RECORD_MODULE', + style: 'width:100%', + }, + }, + { label: '动作', id: 'function', type: 'input' }, + { label: '操作人', id: 'createName', type: 'input' }, + { label: '操作内容', id: 'content', type: 'input', width: 500 }, + { + label: '创建日期', + id: 'createDateBeginStr', + component: 'el-bus-date-range', + commonFormat: true, + commonFormatProps: ['createDateBeginStr', 'createDateEndStr'], + customClass: 'in-bus-form', + }, + ], + }, + ], + form: [], + extraButtons: [], + headerButtons: [], + }, + } + }, + head() { + return { + title: '操作日志', + } + }, +} +</script> + +<style lang="scss" scoped> +::v-deep { + .el-upload { + &-list__item { + width: 345px; + height: 128px; + } + &.el-upload--picture-card { + width: 345px; + height: 128px; + } + } +} +</style> diff --git a/pages/supplier/sub-list.vue b/pages/supplier/sub-list.vue new file mode 100644 index 0000000..4840f6d --- /dev/null +++ b/pages/supplier/sub-list.vue @@ -0,0 +1,228 @@ +<template> + <el-bus-crud ref="crud" v-bind="tableConfig" /> +</template> + +<script> +export default { + data() { + return { + tableConfig: { + url: 'flower/api/supplierSub/page', + editUrl: 'flower/api/supplierSub/addOrUpdate', + deleteUrl: 'flower/api/supplierSub/delete', + deleteOnPath: true, + deleteMethodType: 'post', + hasNew: false, + hasDelete: true, + operationAttrs: { + width: '200px', + fixed: 'right', + }, + columns: [ + { label: '序号', type: 'index' }, + { label: '供应商ID', prop: 'supplierId', minWidth: '120px' }, + { + label: '供应商名称', + prop: 'supplierName', + minWidth: '120px', + }, + { label: '供应商联系人', prop: 'contactName', minWidth: '100px' }, + { label: '主账号手机号', prop: 'contactTel', minWidth: '120px' }, + { label: '子账号手机号', prop: 'phone', minWidth: '120px' }, + { label: '子账号名', prop: 'name', minWidth: '120px' }, + { label: '子账号联系人', prop: 'contact', minWidth: '120px' }, + { label: '创建时间', prop: 'createTime', minWidth: '120px' }, + { + label: '启用/禁用', + formatter: (row) => ( + <el-switch + value={row.isEnabled} + onChange={this.onEnabledChange.bind(this, row)} + ></el-switch> + ), + minWidth: 120, + fixed: 'right', + }, + ], + searchForm: [ + { + type: 'row', + items: [ + { + label: '供应商ID', id: 'supplierId', type: 'input', + rules: { + required: false, + pattern: /^\d*$/, + message: '请输入合法的供应商ID', + trigger: 'blur', + }, + }, + { label: '供应商名称', id: 'supplierName', type: 'input' }, + { label: '主账号手机号', id: 'supplierPhone', type: 'input', + rules: { + required: false, + pattern: this.$elBusUtil.REG.MOBILEPHONE, + message: '请输入合法的手机号', + trigger: 'blur', + }, + }, + { label: '子账号手机号', id: 'phone', type: 'input', + rules: { + required: false, + pattern: this.$elBusUtil.REG.MOBILEPHONE, + message: '请输入合法的手机号', + trigger: 'blur', + }, + }, + { + label: '启用/禁用', + id: 'isEnabled', + type: 'bus-select-dict', + default: '1', + el: { + code: 'USER_ENABLED_OR_DISABLED', + clearable: true, + style: 'width:100%', + }, + }, + ], + }, + ], + form: [ + { + label: '供应商ID:', + id: 'supplierId', + type: 'input', + span: 12, + hidden: (row, item, mode) => mode !== 'view', + }, + { + label: '供应商名称:', + id: 'supplierName', + type: 'input', + span: 12, + hidden: (row, item, mode) => mode !== 'view', + }, + { + label: '供应商联系人:', + id: 'contactName', + type: 'input', + span: 12, + hidden: (row, item, mode) => mode !== 'view', + }, + { + label: '主账号手机号:', + id: 'contactTel', + type: 'input', + span: 12, + hidden: (row, item, mode) => mode !== 'view', + }, + { + type: 'row', + span: 12, + items: [ + { + label: '子账号手机号:', + id: 'phone', + type: 'input', + rules: { + required: true, + pattern: this.$elBusUtil.REG.MOBILEPHONE, + message: '请输入合法的手机号', + trigger: 'blur', + }, + }, + { + label: '子账号名:', + id: 'name', + type: 'input', + rules: { + required: true, + message: '请输入子账号名', + trigger: 'blur', + }, + }, + { + label: '子账号联系人:', + id: 'contact', + type: 'input', + rules: { + required: true, + message: '请输入子账号联系人', + trigger: 'blur', + }, + }, + ], + }, + + ], + extraButtons: [ + { + text: '密码修改', + atClick: (row) => { + this.$refs.crud.$refs.extraDialog[0].show(row) + return false + }, + }, + ], + extraDialogs: [ + { + title: '密码修改', + hiddenReverseItems: [], + form: [ + { + label: '请输入新密码:', + id: 'password', + type: 'input', + rules: { + required: true, + pattern: /^(?:(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[-_!@#$%^&*? ]))\S{8,20}$/, + message: '请输入正确的密码(8-20位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符)', + trigger: 'blur', + }, + }, + ], + atConfirm: async (val) => { + const { code } = await this.$elBusHttp.request( + 'flower/api/supplierSub/addOrUpdate', + { + method: 'post', + data: val, + } + ) + if (code === 0) { + this.$message.success('操作成功') + } + }, + }, + ], + }, + } + }, + head() { + return { + title: '子账号列表', + } + }, + methods: { + onEnabledChange(row, e) { + const url = 'flower/api/supplierSub/page/isEnable' + const text = e ? '启用' : '禁用' + this.$elBusUtil + .confirm(`确定要${text}这个供应商吗?`) + .then(async () => { + const { code } = await this.$elBusHttp.request(url, { + params: { + id: row.id, + }, + }) + if (code === 0) { + this.$message.success(`${text}成功`) + this.$refs.crud.getList() + } + }) + .catch(() => {}) + }, + }, +} +</script> -- Gitblit v1.9.3