优化用户

This commit is contained in:
zjl 2024-12-11 15:26:33 +08:00
parent bd1e01b992
commit 3811a5c8a8
4 changed files with 59 additions and 18 deletions

View File

@ -72,7 +72,7 @@
v-model:visible="editVisible" v-model:visible="editVisible"
@success="reloadTable('noRefresh')" @success="reloadTable('noRefresh')"
/> />
<!-- 上传文件 -->
<userUpload v-if="importVisible" v-model:visible="importVisible" @success="reloadTable()" /> <userUpload v-if="importVisible" v-model:visible="importVisible" @success="reloadTable()" />
</div> </div>
</template> </template>

View File

@ -92,8 +92,7 @@
label-field="name" label-field="name"
value-field="id" value-field="id"
placeholder="请选择角色" placeholder="请选择角色"
> />
</n-select>
</n-form-item> </n-form-item>
<n-form-item <n-form-item
label="部门" label="部门"
@ -135,8 +134,7 @@
:options="optionData.levelList" :options="optionData.levelList"
label-field="name" label-field="name"
value-field="id" value-field="id"
> />
</n-select>
</n-form-item> </n-form-item>
<n-form-item <n-form-item
label="岗位" label="岗位"
@ -157,8 +155,7 @@
class="flex-1" class="flex-1"
clearable clearable
placeholder="请选择岗位" placeholder="请选择岗位"
> />
</n-select>
</n-form-item> </n-form-item>
</div> </div>
<div class="flex"> <div class="flex">
@ -288,6 +285,9 @@
*/ */
const emit = defineEmits(['success', 'update:visible']); const emit = defineEmits(['success', 'update:visible']);
/**
* 定义模态
*/
const [modalRegister, { openModal, setSubLoading }] = useModal({ const [modalRegister, { openModal, setSubLoading }] = useModal({
title: props.userId ? '编辑用户' : '添加用户', title: props.userId ? '编辑用户' : '添加用户',
subBtuText: '确定', subBtuText: '确定',
@ -395,10 +395,18 @@
positionList: [], positionList: [],
}); });
/**
* 上传发生变化
*/
function uploadChange(data: string[]) { function uploadChange(data: string[]) {
formData.avatar = data.fileUrl; formData.avatar = data.fileUrl;
formData.avatarName = data.fileName; formData.avatarName = data.fileName;
} }
/**
* 执行删除
* @param file 文件参数
*/
const handleDelete = async (file) => { const handleDelete = async (file) => {
console.log(file); console.log(file);
}; };
@ -426,7 +434,10 @@
setFormData({ userId: props.userId }); setFormData({ userId: props.userId });
} }
}); });
//
/**
* 定义函数
*/
defineExpose({ defineExpose({
openModal, openModal,
}); });

View File

@ -27,7 +27,6 @@
</template> </template>
新建 新建
</n-button> </n-button>
<n-button <n-button
type="error" type="error"
@click="handleDelete" @click="handleDelete"
@ -73,7 +72,7 @@
v-model:visible="editVisible" v-model:visible="editVisible"
@success="reloadTable('noRefresh')" @success="reloadTable('noRefresh')"
/> />
<!-- 上传文件 -->
<userUpload v-if="importVisible" v-model:visible="importVisible" @success="reloadTable()" /> <userUpload v-if="importVisible" v-model:visible="importVisible" @success="reloadTable()" />
</div> </div>
</template> </template>
@ -101,10 +100,8 @@
ToTopOutlined, ToTopOutlined,
FormOutlined, FormOutlined,
} from '@vicons/antd'; } from '@vicons/antd';
import CreateModal from './CreateModal.vue';
import editDialog from './edit.vue'; import editDialog from './edit.vue';
import userUpload from './userUpload.vue'; import userUpload from './userUpload.vue';
import { basicModal, useModal } from '@/components/Modal';
import { downloadByData } from '@/utils/file/download'; import { downloadByData } from '@/utils/file/download';
import { schemas } from './querySchemas'; import { schemas } from './querySchemas';
import { renderIcon } from '@/utils'; import { renderIcon } from '@/utils';
@ -119,13 +116,20 @@
const rowKeys = ref([]); const rowKeys = ref([]);
const importVisible = ref(false); const importVisible = ref(false);
const exportLoading = ref(false); const exportLoading = ref(false);
const showModal = ref(false); const showModal = ref(false);
/**
* 定义查询参数
*/
const formParams = reactive({ const formParams = reactive({
name: '', realname: '',
role: '',
status: '', status: '',
}); });
/**
* 定义操作栏
*/
const actionColumn = reactive({ const actionColumn = reactive({
width: 400, width: 400,
title: '操作', title: '操作',
@ -171,24 +175,36 @@
}, },
}); });
function addTable() { /**
showModal.value = true; * 加载数据列表
} * @param res 参数
*/
const loadDataTable = async (res) => { const loadDataTable = async (res) => {
rowKeys.value = []; rowKeys.value = [];
const result = await getUserList({ ...formParams, ...res }); const result = await getUserList({ ...formParams, ...res });
return result; return result;
}; };
/**
* 数据行选中事件
* @param keys 参数
*/
function onCheckedRow(keys) { function onCheckedRow(keys) {
rowKeys.value = keys; rowKeys.value = keys;
} }
/**
* 刷新数据列表
* @param noRefresh 参数
*/
function reloadTable(noRefresh = '') { function reloadTable(noRefresh = '') {
basicTableRef.value.reload(noRefresh ? {} : { pageNo: 1 }); basicTableRef.value.reload(noRefresh ? {} : { pageNo: 1 });
} }
/**
* 执行提交表单
* @param values 参数
*/
function handleSubmit(values: Recordable) { function handleSubmit(values: Recordable) {
for (const key in formParams) { for (const key in formParams) {
formParams[key] = ''; formParams[key] = '';
@ -199,6 +215,10 @@
reloadTable(); reloadTable();
} }
/**
* 执行重置
* @param values 参数
*/
function handleReset(values: Recordable) { function handleReset(values: Recordable) {
for (const key in formParams) { for (const key in formParams) {
formParams[key] = ''; formParams[key] = '';
@ -209,6 +229,9 @@
reloadTable(); reloadTable();
} }
/**
* 执行注册
*/
const [register, {}] = useForm({ const [register, {}] = useForm({
gridProps: { cols: '1 s:1 m:2 l:3 xl:4 2xl:4' }, gridProps: { cols: '1 s:1 m:2 l:3 xl:4 2xl:4' },
labelWidth: 80, labelWidth: 80,
@ -232,6 +255,7 @@
}, },
}); });
}; };
/** /**
* 执行添加 * 执行添加
*/ */
@ -241,6 +265,7 @@
await nextTick(); await nextTick();
createModalRef.value.openModal(); createModalRef.value.openModal();
}; };
/** /**
* 执行编辑 * 执行编辑
*/ */
@ -250,6 +275,7 @@
await nextTick(); await nextTick();
createModalRef.value.openModal(); createModalRef.value.openModal();
} }
/** /**
* 执行删除 * 执行删除
* @param id 参数 * @param id 参数
@ -267,6 +293,7 @@
}, },
}); });
} }
/** /**
* 执行导出 * 执行导出
*/ */

View File

@ -125,6 +125,9 @@
window.open(res.filePath); window.open(res.filePath);
}; };
/**
* 执行弹窗提交
*/
const dialogSubmit = async () => { const dialogSubmit = async () => {
uploadRef.value?.submit(); uploadRef.value?.submit();
}; };