|
|
|
@ -6,7 +6,7 @@
|
|
|
|
|
:data="list"
|
|
|
|
|
:operation="['create', 'search']"
|
|
|
|
|
:reset="handleReset"
|
|
|
|
|
title="用户"
|
|
|
|
|
title="员工"
|
|
|
|
|
:total="total"
|
|
|
|
|
@create="handleCreate"
|
|
|
|
|
@remove="handleRemove"
|
|
|
|
@ -14,11 +14,8 @@
|
|
|
|
|
>
|
|
|
|
|
<template #search>
|
|
|
|
|
<el-form inline>
|
|
|
|
|
<el-form-item label="员工姓名" prop="employeeName">
|
|
|
|
|
<el-input v-model="state.condition.employeeName" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="手机号码" prop="phone">
|
|
|
|
|
<el-input v-model="state.condition.phone" />
|
|
|
|
|
<el-form-item label="用户名" prop="userName">
|
|
|
|
|
<el-input v-model="state.condition.userName" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
</template>
|
|
|
|
@ -27,28 +24,27 @@
|
|
|
|
|
|
|
|
|
|
<script setup lang="jsx">
|
|
|
|
|
import ElButton from '@/components/extra/ElButton.vue';
|
|
|
|
|
import { ElTag } from 'element-plus/es';
|
|
|
|
|
import { ElSwitch } from 'element-plus/es';
|
|
|
|
|
const { proxy } = getCurrentInstance();
|
|
|
|
|
const router = useRouter();
|
|
|
|
|
const store = useStore();
|
|
|
|
|
const loading = ref(false);
|
|
|
|
|
const code = computed(() => store.state.user.code);
|
|
|
|
|
const list = computed(() => store.state.user.list);
|
|
|
|
|
const total = computed(() => store.state.user.total);
|
|
|
|
|
const opts = computed(() => store.state.user.opts);
|
|
|
|
|
const code = computed(() => store.state.employee.code);
|
|
|
|
|
const list = computed(() => store.state.employee.list);
|
|
|
|
|
const total = computed(() => store.state.employee.total);
|
|
|
|
|
const opts = computed(() => store.state.employee.opts);
|
|
|
|
|
if (!unref(opts).init) {
|
|
|
|
|
store.dispatch('user/load');
|
|
|
|
|
store.dispatch('employee/load');
|
|
|
|
|
}
|
|
|
|
|
const state = reactive({
|
|
|
|
|
condition: {
|
|
|
|
|
employeeName: null,
|
|
|
|
|
phone: null,
|
|
|
|
|
userName: null,
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
watch(
|
|
|
|
|
() => state.condition,
|
|
|
|
|
(value) => {
|
|
|
|
|
store.commit('user/setCondition', _.cloneDeep(value));
|
|
|
|
|
store.commit('employee/setCondition', _.cloneDeep(value));
|
|
|
|
|
},
|
|
|
|
|
{ immediate: true, deep: true }
|
|
|
|
|
);
|
|
|
|
@ -60,7 +56,7 @@
|
|
|
|
|
};
|
|
|
|
|
const handleSearch = async () => {
|
|
|
|
|
loading.value = true;
|
|
|
|
|
await store.dispatch('user/search');
|
|
|
|
|
await store.dispatch('employee/search');
|
|
|
|
|
loading.value = false;
|
|
|
|
|
};
|
|
|
|
|
const handleCreate = () => {
|
|
|
|
@ -70,10 +66,17 @@
|
|
|
|
|
router.push({ name: 'UpdateUser', params: { id: row.id } });
|
|
|
|
|
};
|
|
|
|
|
const handleRemove = async (rows) => {
|
|
|
|
|
store.dispatch(
|
|
|
|
|
'user/remove',
|
|
|
|
|
loading.value = true;
|
|
|
|
|
await store.dispatch(
|
|
|
|
|
'employee/remove',
|
|
|
|
|
rows.map((item) => item.id)
|
|
|
|
|
);
|
|
|
|
|
loading.value = false;
|
|
|
|
|
};
|
|
|
|
|
const handleEnable = async (row) => {
|
|
|
|
|
loading.value = true;
|
|
|
|
|
await store.dispatch('employee/enable', { id: row.id, isEnable: !row.isEnable });
|
|
|
|
|
loading.value = false;
|
|
|
|
|
};
|
|
|
|
|
const config = reactive({
|
|
|
|
|
// 表格列配置
|
|
|
|
@ -114,11 +117,9 @@
|
|
|
|
|
{
|
|
|
|
|
label: '是否启用',
|
|
|
|
|
prop: 'isEnable',
|
|
|
|
|
width: 180,
|
|
|
|
|
width: 100,
|
|
|
|
|
slots: {
|
|
|
|
|
default: ({ row }) => (
|
|
|
|
|
<ElTag type={row.isEnable ? 'success' : 'error'}>{row.isEnable ? '启用' : '禁用'}</ElTag>
|
|
|
|
|
),
|
|
|
|
|
default: ({ row }) => <ElSwitch modelValue={row.isEnable} onInput={() => handleEnable(row)} />,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|