|
@@ -1,395 +1,410 @@
|
|
|
import * as api from './api';
|
|
|
import {
|
|
|
- dict,
|
|
|
- UserPageQuery,
|
|
|
- AddReq,
|
|
|
- DelReq,
|
|
|
- EditReq,
|
|
|
- compute,
|
|
|
- CreateCrudOptionsProps,
|
|
|
- CreateCrudOptionsRet
|
|
|
+ AddReq,
|
|
|
+ compute,
|
|
|
+ CreateCrudOptionsProps,
|
|
|
+ CreateCrudOptionsRet,
|
|
|
+ DelReq,
|
|
|
+ dict,
|
|
|
+ EditReq,
|
|
|
+ UserPageQuery
|
|
|
} from '@fast-crud/fast-crud';
|
|
|
-import {request} from '/@/utils/service';
|
|
|
-import {dictionary} from '/@/utils/dictionary';
|
|
|
-import {successMessage} from '/@/utils/message';
|
|
|
-import {auth} from '/@/utils/authFunction';
|
|
|
-import {SystemConfigStore} from "/@/stores/systemConfig";
|
|
|
-import {storeToRefs} from "pinia";
|
|
|
-import {computed} from "vue";
|
|
|
+import { dictionary } from '/@/utils/dictionary';
|
|
|
+import { successMessage } from '/@/utils/message';
|
|
|
+import { auth } from '/@/utils/authFunction';
|
|
|
+import { SystemConfigStore } from '/@/stores/systemConfig';
|
|
|
+import { storeToRefs } from 'pinia';
|
|
|
+import { computed } from 'vue';
|
|
|
import { Md5 } from 'ts-md5';
|
|
|
-import {commonCrudConfig} from "/@/utils/commonCrud";
|
|
|
-export const createCrudOptions = function ({crudExpose}: CreateCrudOptionsProps): CreateCrudOptionsRet {
|
|
|
- const pageRequest = async (query: UserPageQuery) => {
|
|
|
- return await api.GetList(query);
|
|
|
- };
|
|
|
- const editRequest = async ({form, row}: EditReq) => {
|
|
|
- form.id = row.id;
|
|
|
- return await api.UpdateObj(form);
|
|
|
- };
|
|
|
- const delRequest = async ({row}: DelReq) => {
|
|
|
- return await api.DelObj(row.id);
|
|
|
- };
|
|
|
- const addRequest = async ({form}: AddReq) => {
|
|
|
- return await api.AddObj(form);
|
|
|
- };
|
|
|
+import { commonCrudConfig } from '/@/utils/commonCrud';
|
|
|
+import emitter from '/@/utils/emitter';
|
|
|
|
|
|
- const exportRequest = async (query: UserPageQuery) => {
|
|
|
- return await api.exportData(query)
|
|
|
- }
|
|
|
|
|
|
- const resetToDefaultPasswordRequest = async (row:EditReq)=>{
|
|
|
- await api.resetToDefaultPassword(row.id)
|
|
|
- successMessage("重置密码成功")
|
|
|
- }
|
|
|
+export const createCrudOptions = function({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet {
|
|
|
+ const pageRequest = async (query: UserPageQuery) => {
|
|
|
+ return await api.GetList(query);
|
|
|
+ };
|
|
|
+ const editRequest = async ({ form, row }: EditReq) => {
|
|
|
+ form.id = row.id;
|
|
|
+ return await api.UpdateObj(form);
|
|
|
+ };
|
|
|
+ const delRequest = async ({ row }: DelReq) => {
|
|
|
+ return await api.DelObj(row.id);
|
|
|
+ };
|
|
|
+ const addRequest = async ({ form }: AddReq) => {
|
|
|
+ return await api.AddObj(form);
|
|
|
+ };
|
|
|
|
|
|
- const systemConfigStore = SystemConfigStore()
|
|
|
- const {systemConfig} = storeToRefs(systemConfigStore)
|
|
|
- const getSystemConfig = computed(() => {
|
|
|
- // console.log(systemConfig.value)
|
|
|
- return systemConfig.value
|
|
|
- })
|
|
|
+ const exportRequest = async (query: UserPageQuery) => {
|
|
|
+ return await api.exportData(query);
|
|
|
+ };
|
|
|
|
|
|
+ const resetToDefaultPasswordRequest = async (row: EditReq) => {
|
|
|
+ await api.resetToDefaultPassword(row.id);
|
|
|
+ successMessage('重置密码成功');
|
|
|
+ };
|
|
|
|
|
|
- return {
|
|
|
- crudOptions: {
|
|
|
- table: {
|
|
|
- remove: {
|
|
|
- confirmMessage: '是否删除该用户?',
|
|
|
- },
|
|
|
- },
|
|
|
- request: {
|
|
|
- pageRequest,
|
|
|
- addRequest,
|
|
|
- editRequest,
|
|
|
- delRequest,
|
|
|
- },
|
|
|
- form: {
|
|
|
- initialForm: {
|
|
|
- password: computed(() => {
|
|
|
- return systemConfig.value['base.default_password']
|
|
|
- }),
|
|
|
- }
|
|
|
- },
|
|
|
- actionbar: {
|
|
|
- buttons: {
|
|
|
- add: {
|
|
|
- show: auth('user:Create')
|
|
|
- },
|
|
|
- export: {
|
|
|
- text: "导出",//按钮文字
|
|
|
- title: "导出",//鼠标停留显示的信息
|
|
|
- show: auth('user:Export'),
|
|
|
- click() {
|
|
|
- return exportRequest(crudExpose!.getSearchFormData())
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ const systemConfigStore = SystemConfigStore();
|
|
|
+ const { systemConfig } = storeToRefs(systemConfigStore);
|
|
|
+ const getSystemConfig = computed(() => {
|
|
|
+ // console.log(systemConfig.value)
|
|
|
+ return systemConfig.value;
|
|
|
+ });
|
|
|
+
|
|
|
+ return {
|
|
|
+ crudOptions: {
|
|
|
+ table: {
|
|
|
+ remove: {
|
|
|
+ confirmMessage: '是否删除该用户?'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ request: {
|
|
|
+ pageRequest,
|
|
|
+ addRequest,
|
|
|
+ editRequest,
|
|
|
+ delRequest
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ initialForm: {
|
|
|
+ password: computed(() => {
|
|
|
+ return systemConfig.value['base.default_password'];
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ actionbar: {
|
|
|
+ buttons: {
|
|
|
+ add: {
|
|
|
+ show: auth('user:Create')
|
|
|
+ },
|
|
|
+ export: {
|
|
|
+ text: '导出',//按钮文字
|
|
|
+ title: '导出',//鼠标停留显示的信息
|
|
|
+ show: auth('user:Export'),
|
|
|
+ click() {
|
|
|
+ return exportRequest(crudExpose!.getSearchFormData());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ rowHandle: {
|
|
|
+ //固定右侧
|
|
|
+ fixed: 'right',
|
|
|
+ width: 150,
|
|
|
+ buttons: {
|
|
|
+ view: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ edit: {
|
|
|
+ iconRight: 'Edit',
|
|
|
+ type: 'text',
|
|
|
+ show: auth('user:Update')
|
|
|
+ },
|
|
|
+ remove: {
|
|
|
+ iconRight: 'Delete',
|
|
|
+ type: 'text',
|
|
|
+ show: auth('user:Delete')
|
|
|
+ },
|
|
|
+ custom: {
|
|
|
+ text: '重设密码',
|
|
|
+ type: 'text',
|
|
|
+ show: auth('user:ResetPassword'),
|
|
|
+ tooltip: {
|
|
|
+ placement: 'top',
|
|
|
+ content: '重设密码'
|
|
|
},
|
|
|
- rowHandle: {
|
|
|
- //固定右侧
|
|
|
- fixed: 'right',
|
|
|
- width: 200,
|
|
|
- buttons: {
|
|
|
- view: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- edit: {
|
|
|
- iconRight: 'Edit',
|
|
|
- type: 'text',
|
|
|
- show: auth('user:Update'),
|
|
|
- },
|
|
|
- remove: {
|
|
|
- iconRight: 'Delete',
|
|
|
- type: 'text',
|
|
|
- show: auth('user:Delete'),
|
|
|
- },
|
|
|
- custom: {
|
|
|
- text: '重设密码',
|
|
|
- type: 'text',
|
|
|
- show: auth('user:ResetPassword'),
|
|
|
- tooltip: {
|
|
|
- placement: 'top',
|
|
|
- content: '重设密码',
|
|
|
- },
|
|
|
- //@ts-ignore
|
|
|
- click: (ctx: any) => {
|
|
|
- const {row} = ctx;
|
|
|
- resetToDefaultPasswordRequest(row)
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
+ //@ts-ignore
|
|
|
+ click: (ctx: any) => {
|
|
|
+ const { row } = ctx;
|
|
|
+ resetToDefaultPasswordRequest(row);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ custom2: {
|
|
|
+ text: '店铺授权',
|
|
|
+ type: 'text',
|
|
|
+ // show: auth('user:ResetPassword'),
|
|
|
+ tooltip: {
|
|
|
+ placement: 'top',
|
|
|
+ content: '店铺授权'
|
|
|
},
|
|
|
- columns: {
|
|
|
- _index: {
|
|
|
- title: '序号',
|
|
|
- form: {show: false},
|
|
|
- column: {
|
|
|
- type: 'index',
|
|
|
- align: 'center',
|
|
|
- width: '70px',
|
|
|
- columnSetDisabled: true, //禁止在列设置中选择
|
|
|
- },
|
|
|
- },
|
|
|
- username: {
|
|
|
- title: '账号',
|
|
|
- search: {
|
|
|
- show: true,
|
|
|
- },
|
|
|
- type: 'input',
|
|
|
- column: {
|
|
|
- minWidth: 100, //最小列宽
|
|
|
- },
|
|
|
- form: {
|
|
|
- rules: [
|
|
|
- // 表单校验规则
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '账号必填项',
|
|
|
- },
|
|
|
- ],
|
|
|
- component: {
|
|
|
- placeholder: '请输入账号',
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- password: {
|
|
|
- title: '密码',
|
|
|
- type: 'password',
|
|
|
- column: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- editForm: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- form: {
|
|
|
- rules: [
|
|
|
- // 表单校验规则
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '密码必填项',
|
|
|
- },
|
|
|
- ],
|
|
|
- component: {
|
|
|
+ //@ts-ignore
|
|
|
+ click: (ctx: any) => {
|
|
|
+ const { row } = ctx;
|
|
|
+ emitter.emit('shop-authorize', row);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ columns: {
|
|
|
+ _index: {
|
|
|
+ title: '序号',
|
|
|
+ form: { show: false },
|
|
|
+ column: {
|
|
|
+ type: 'index',
|
|
|
+ align: 'center',
|
|
|
+ width: '70px',
|
|
|
+ columnSetDisabled: true //禁止在列设置中选择
|
|
|
+ }
|
|
|
+ },
|
|
|
+ username: {
|
|
|
+ title: '账号',
|
|
|
+ search: {
|
|
|
+ show: true
|
|
|
+ },
|
|
|
+ type: 'input',
|
|
|
+ column: {
|
|
|
+ minWidth: 100 //最小列宽
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ rules: [
|
|
|
+ // 表单校验规则
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '账号必填项'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ component: {
|
|
|
+ placeholder: '请输入账号'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ password: {
|
|
|
+ title: '密码',
|
|
|
+ type: 'password',
|
|
|
+ column: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ editForm: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ rules: [
|
|
|
+ // 表单校验规则
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '密码必填项'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ component: {
|
|
|
|
|
|
- span: 12,
|
|
|
- showPassword: true,
|
|
|
- placeholder: '请输入密码',
|
|
|
- },
|
|
|
- },
|
|
|
- valueResolve({form}) {
|
|
|
- if (form.password) {
|
|
|
- form.password = Md5.hashStr(form.password)
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- name: {
|
|
|
- title: '姓名',
|
|
|
- search: {
|
|
|
- show: true,
|
|
|
- },
|
|
|
- type: 'input',
|
|
|
- column: {
|
|
|
- minWidth: 100, //最小列宽
|
|
|
- },
|
|
|
- form: {
|
|
|
- rules: [
|
|
|
- // 表单校验规则
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '姓名必填项',
|
|
|
- },
|
|
|
- ],
|
|
|
- component: {
|
|
|
- span: 12,
|
|
|
- placeholder: '请输入姓名',
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- dept: {
|
|
|
- title: '部门',
|
|
|
- search: {
|
|
|
- disabled: true,
|
|
|
- },
|
|
|
- type: 'dict-tree',
|
|
|
- dict: dict({
|
|
|
- isTree: true,
|
|
|
- url: '/api/system/dept/all_dept/',
|
|
|
- value: 'id',
|
|
|
- label: 'name'
|
|
|
- }),
|
|
|
- column: {
|
|
|
- minWidth: 150, //最小列宽
|
|
|
- },
|
|
|
- form: {
|
|
|
- rules: [
|
|
|
- // 表单校验规则
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '必填项',
|
|
|
- },
|
|
|
- ],
|
|
|
- component: {
|
|
|
- filterable: true,
|
|
|
- placeholder: '请选择',
|
|
|
- props: {
|
|
|
- checkStrictly:true,
|
|
|
- props: {
|
|
|
- value: 'id',
|
|
|
- label: 'name',
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- role: {
|
|
|
- title: '角色',
|
|
|
- search: {
|
|
|
- disabled: true,
|
|
|
- },
|
|
|
- type: 'dict-select',
|
|
|
- dict: dict({
|
|
|
- url: '/api/system/role/',
|
|
|
- value: 'id',
|
|
|
- label: 'name',
|
|
|
- }),
|
|
|
- column: {
|
|
|
- minWidth: 100, //最小列宽
|
|
|
- },
|
|
|
- form: {
|
|
|
- rules: [
|
|
|
- // 表单校验规则
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '必填项',
|
|
|
- },
|
|
|
- ],
|
|
|
- component: {
|
|
|
- multiple: true,
|
|
|
- filterable: true,
|
|
|
- placeholder: '请选择角色',
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- mobile: {
|
|
|
- title: '手机号码',
|
|
|
- search: {
|
|
|
- show: true,
|
|
|
- },
|
|
|
- type: 'input',
|
|
|
- column: {
|
|
|
- minWidth: 120, //最小列宽
|
|
|
- },
|
|
|
- form: {
|
|
|
- rules: [
|
|
|
- {
|
|
|
- max: 20,
|
|
|
- message: '请输入正确的手机号码',
|
|
|
- trigger: 'blur',
|
|
|
- },
|
|
|
- {
|
|
|
- pattern: /^1[3-9]\d{9}$/,
|
|
|
- message: '请输入正确的手机号码',
|
|
|
- },
|
|
|
- ],
|
|
|
- component: {
|
|
|
- placeholder: '请输入手机号码',
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- email: {
|
|
|
- title: '邮箱',
|
|
|
- column: {
|
|
|
- width: 260,
|
|
|
- },
|
|
|
- form: {
|
|
|
- rules: [
|
|
|
- {
|
|
|
- type: 'email',
|
|
|
- message: '请输入正确的邮箱地址',
|
|
|
- trigger: ['blur', 'change'],
|
|
|
- },
|
|
|
- ],
|
|
|
- component: {
|
|
|
- placeholder: '请输入邮箱',
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- gender: {
|
|
|
- title: '性别',
|
|
|
- type: 'dict-select',
|
|
|
- dict: dict({
|
|
|
- data: dictionary('gender'),
|
|
|
- }),
|
|
|
- form: {
|
|
|
- value: 1,
|
|
|
- component: {
|
|
|
- span: 12,
|
|
|
- },
|
|
|
- },
|
|
|
- component: {props: {color: 'auto'}}, // 自动染色
|
|
|
- },
|
|
|
- user_type: {
|
|
|
- title: '用户类型',
|
|
|
- search: {
|
|
|
- show: true,
|
|
|
- },
|
|
|
- type: 'dict-select',
|
|
|
- dict: dict({
|
|
|
- data: dictionary('user_type'),
|
|
|
- }),
|
|
|
- column: {
|
|
|
- minWidth: 100, //最小列宽
|
|
|
- },
|
|
|
- form: {
|
|
|
- show: false,
|
|
|
- value: 0,
|
|
|
- component: {
|
|
|
- span: 12,
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- is_active: {
|
|
|
- title: '状态',
|
|
|
- search: {
|
|
|
- show: true,
|
|
|
- },
|
|
|
- type: 'dict-radio',
|
|
|
- column: {
|
|
|
- component: {
|
|
|
- name: 'fs-dict-switch',
|
|
|
- activeText: '',
|
|
|
- inactiveText: '',
|
|
|
- style: '--el-switch-on-color: var(--el-color-primary); --el-switch-off-color: #dcdfe6',
|
|
|
- onChange: compute((context) => {
|
|
|
- return () => {
|
|
|
- api.UpdateObj(context.row).then((res: APIResponseData) => {
|
|
|
- successMessage(res.msg as string);
|
|
|
- });
|
|
|
- };
|
|
|
- }),
|
|
|
- },
|
|
|
- },
|
|
|
- dict: dict({
|
|
|
- data: dictionary('button_status_bool'),
|
|
|
- }),
|
|
|
- },
|
|
|
- avatar: {
|
|
|
- title: '头像',
|
|
|
- type: 'avatar-cropper',
|
|
|
- form: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- column: {
|
|
|
- minWidth: 400, //最小列宽
|
|
|
- },
|
|
|
- },
|
|
|
- ...commonCrudConfig({
|
|
|
- dept_belong_id: {
|
|
|
- form: true,
|
|
|
- table: true
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
+ span: 12,
|
|
|
+ showPassword: true,
|
|
|
+ placeholder: '请输入密码'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ valueResolve({ form }) {
|
|
|
+ if (form.password) {
|
|
|
+ form.password = Md5.hashStr(form.password);
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
- };
|
|
|
+ name: {
|
|
|
+ title: '姓名',
|
|
|
+ search: {
|
|
|
+ show: true
|
|
|
+ },
|
|
|
+ type: 'input',
|
|
|
+ column: {
|
|
|
+ minWidth: 100 //最小列宽
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ rules: [
|
|
|
+ // 表单校验规则
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '姓名必填项'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ component: {
|
|
|
+ span: 12,
|
|
|
+ placeholder: '请输入姓名'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ dept: {
|
|
|
+ title: '部门',
|
|
|
+ search: {
|
|
|
+ disabled: true
|
|
|
+ },
|
|
|
+ type: 'dict-tree',
|
|
|
+ dict: dict({
|
|
|
+ isTree: true,
|
|
|
+ url: '/api/system/dept/all_dept/',
|
|
|
+ value: 'id',
|
|
|
+ label: 'name'
|
|
|
+ }),
|
|
|
+ column: {
|
|
|
+ minWidth: 150 //最小列宽
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ rules: [
|
|
|
+ // 表单校验规则
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '必填项'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ component: {
|
|
|
+ filterable: true,
|
|
|
+ placeholder: '请选择',
|
|
|
+ props: {
|
|
|
+ checkStrictly: true,
|
|
|
+ props: {
|
|
|
+ value: 'id',
|
|
|
+ label: 'name'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ role: {
|
|
|
+ title: '角色',
|
|
|
+ search: {
|
|
|
+ disabled: true
|
|
|
+ },
|
|
|
+ type: 'dict-select',
|
|
|
+ dict: dict({
|
|
|
+ url: '/api/system/role/',
|
|
|
+ value: 'id',
|
|
|
+ label: 'name'
|
|
|
+ }),
|
|
|
+ column: {
|
|
|
+ minWidth: 100 //最小列宽
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ rules: [
|
|
|
+ // 表单校验规则
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '必填项'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ component: {
|
|
|
+ multiple: true,
|
|
|
+ filterable: true,
|
|
|
+ placeholder: '请选择角色'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mobile: {
|
|
|
+ title: '手机号码',
|
|
|
+ search: {
|
|
|
+ show: true
|
|
|
+ },
|
|
|
+ type: 'input',
|
|
|
+ column: {
|
|
|
+ minWidth: 120 //最小列宽
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ max: 20,
|
|
|
+ message: '请输入正确的手机号码',
|
|
|
+ trigger: 'blur'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ pattern: /^1[3-9]\d{9}$/,
|
|
|
+ message: '请输入正确的手机号码'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ component: {
|
|
|
+ placeholder: '请输入手机号码'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ email: {
|
|
|
+ title: '邮箱',
|
|
|
+ column: {
|
|
|
+ width: 260
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ type: 'email',
|
|
|
+ message: '请输入正确的邮箱地址',
|
|
|
+ trigger: [ 'blur', 'change' ]
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ component: {
|
|
|
+ placeholder: '请输入邮箱'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ gender: {
|
|
|
+ title: '性别',
|
|
|
+ type: 'dict-select',
|
|
|
+ dict: dict({
|
|
|
+ data: dictionary('gender')
|
|
|
+ }),
|
|
|
+ form: {
|
|
|
+ value: 1,
|
|
|
+ component: {
|
|
|
+ span: 12
|
|
|
+ }
|
|
|
+ },
|
|
|
+ component: { props: { color: 'auto' } } // 自动染色
|
|
|
+ },
|
|
|
+ user_type: {
|
|
|
+ title: '用户类型',
|
|
|
+ search: {
|
|
|
+ show: true
|
|
|
+ },
|
|
|
+ type: 'dict-select',
|
|
|
+ dict: dict({
|
|
|
+ data: dictionary('user_type')
|
|
|
+ }),
|
|
|
+ column: {
|
|
|
+ minWidth: 100 //最小列宽
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ show: false,
|
|
|
+ value: 0,
|
|
|
+ component: {
|
|
|
+ span: 12
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ is_active: {
|
|
|
+ title: '状态',
|
|
|
+ search: {
|
|
|
+ show: true
|
|
|
+ },
|
|
|
+ type: 'dict-radio',
|
|
|
+ column: {
|
|
|
+ component: {
|
|
|
+ name: 'fs-dict-switch',
|
|
|
+ activeText: '',
|
|
|
+ inactiveText: '',
|
|
|
+ style: '--el-switch-on-color: var(--el-color-primary); --el-switch-off-color: #dcdfe6',
|
|
|
+ onChange: compute((context) => {
|
|
|
+ return () => {
|
|
|
+ api.UpdateObj(context.row).then((res: APIResponseData) => {
|
|
|
+ successMessage(res.msg as string);
|
|
|
+ });
|
|
|
+ };
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ dict: dict({
|
|
|
+ data: dictionary('button_status_bool')
|
|
|
+ })
|
|
|
+ },
|
|
|
+ avatar: {
|
|
|
+ title: '头像',
|
|
|
+ type: 'avatar-cropper',
|
|
|
+ form: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ column: {
|
|
|
+ minWidth: 400 //最小列宽
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ...commonCrudConfig({
|
|
|
+ dept_belong_id: {
|
|
|
+ form: true,
|
|
|
+ table: true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
};
|