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