forked from kongfp/Tp_Web2.0
feat: 代码更新
parent
fc4fe75d24
commit
d810b6abce
@ -0,0 +1,11 @@
|
|||||||
|
import { http } from "@/utils/http";
|
||||||
|
import { baseUrlApi } from "./utils";
|
||||||
|
|
||||||
|
type Result = {
|
||||||
|
count: number;
|
||||||
|
results?: Array<any>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getHomeList = (params?: object) => {
|
||||||
|
return http.request<Result>("get", baseUrlApi(""), { params });
|
||||||
|
};
|
@ -0,0 +1,2 @@
|
|||||||
|
const { VITE_APP_BASE_URL } = import.meta.env;
|
||||||
|
export const baseUrlApi = (url: string) => `${VITE_APP_BASE_URL}/api/${url}`;
|
@ -0,0 +1,81 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="133px" height="143px" viewBox="0 0 133 143" enable-background="new 0 0 133 143" xml:space="preserve"> <image id="image0" width="133" height="143" x="0" y="0"
|
||||||
|
href="data:image/png;base64,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" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.2 KiB |
@ -1,5 +1,6 @@
|
|||||||
import bg from "@/assets/login/bg.png";
|
import bg from "@/assets/login/bg.png";
|
||||||
import avatar from "@/assets/login/avatar.svg?component";
|
import avatar from "@/assets/login/avatar.svg?component";
|
||||||
import illustration from "@/assets/login/illustration.svg?component";
|
import illustration from "@/assets/login/illustration.svg?component";
|
||||||
|
import logo from "@/assets/login/logo.svg?component";
|
||||||
|
|
||||||
export { bg, avatar, illustration };
|
export { bg, avatar, illustration, logo };
|
||||||
|
@ -0,0 +1,138 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { ref } from "vue";
|
||||||
|
import ReCol from "@/components/ReCol";
|
||||||
|
import { formRules } from "./utils/rule";
|
||||||
|
import { FormProps } from "./utils/types";
|
||||||
|
import { usePublicHooks } from "../hooks";
|
||||||
|
|
||||||
|
const props = withDefaults(defineProps<FormProps>(), {
|
||||||
|
formInline: () => ({
|
||||||
|
higherDeptOptions: [],
|
||||||
|
parentId: 0,
|
||||||
|
name: "",
|
||||||
|
principal: "",
|
||||||
|
phone: "",
|
||||||
|
email: "",
|
||||||
|
sort: 0,
|
||||||
|
status: 1,
|
||||||
|
remark: ""
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
const ruleFormRef = ref();
|
||||||
|
const { switchStyle } = usePublicHooks();
|
||||||
|
const newFormInline = ref(props.formInline);
|
||||||
|
|
||||||
|
function getRef() {
|
||||||
|
return ruleFormRef.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
defineExpose({ getRef });
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<el-form
|
||||||
|
ref="ruleFormRef"
|
||||||
|
:model="newFormInline"
|
||||||
|
:rules="formRules"
|
||||||
|
label-width="82px"
|
||||||
|
>
|
||||||
|
<el-row :gutter="30">
|
||||||
|
<re-col>
|
||||||
|
<el-form-item label="上级部门">
|
||||||
|
<el-cascader
|
||||||
|
class="w-full"
|
||||||
|
v-model="newFormInline.parentId"
|
||||||
|
:options="newFormInline.higherDeptOptions"
|
||||||
|
:props="{
|
||||||
|
value: 'id',
|
||||||
|
label: 'name',
|
||||||
|
emitPath: false,
|
||||||
|
checkStrictly: true
|
||||||
|
}"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
placeholder="请选择上级部门"
|
||||||
|
>
|
||||||
|
<template #default="{ node, data }">
|
||||||
|
<span>{{ data.name }}</span>
|
||||||
|
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
|
||||||
|
</template>
|
||||||
|
</el-cascader>
|
||||||
|
</el-form-item>
|
||||||
|
</re-col>
|
||||||
|
|
||||||
|
<re-col :value="12" :xs="24" :sm="24">
|
||||||
|
<el-form-item label="部门名称" prop="name">
|
||||||
|
<el-input
|
||||||
|
v-model="newFormInline.name"
|
||||||
|
clearable
|
||||||
|
placeholder="请输入部门名称"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</re-col>
|
||||||
|
<re-col :value="12" :xs="24" :sm="24">
|
||||||
|
<el-form-item label="部门负责人">
|
||||||
|
<el-input
|
||||||
|
v-model="newFormInline.principal"
|
||||||
|
clearable
|
||||||
|
placeholder="请输入部门负责人"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</re-col>
|
||||||
|
|
||||||
|
<re-col :value="12" :xs="24" :sm="24">
|
||||||
|
<el-form-item label="手机号" prop="phone">
|
||||||
|
<el-input
|
||||||
|
v-model="newFormInline.phone"
|
||||||
|
clearable
|
||||||
|
placeholder="请输入手机号"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</re-col>
|
||||||
|
<re-col :value="12" :xs="24" :sm="24">
|
||||||
|
<el-form-item label="邮箱" prop="email">
|
||||||
|
<el-input
|
||||||
|
v-model="newFormInline.email"
|
||||||
|
clearable
|
||||||
|
placeholder="请输入邮箱"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</re-col>
|
||||||
|
|
||||||
|
<re-col :value="12" :xs="24" :sm="24">
|
||||||
|
<el-form-item label="排序">
|
||||||
|
<el-input-number
|
||||||
|
v-model="newFormInline.sort"
|
||||||
|
:min="0"
|
||||||
|
:max="9999"
|
||||||
|
controls-position="right"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</re-col>
|
||||||
|
<re-col :value="12" :xs="24" :sm="24">
|
||||||
|
<el-form-item label="部门状态">
|
||||||
|
<el-switch
|
||||||
|
v-model="newFormInline.status"
|
||||||
|
inline-prompt
|
||||||
|
:active-value="1"
|
||||||
|
:inactive-value="0"
|
||||||
|
active-text="启用"
|
||||||
|
inactive-text="停用"
|
||||||
|
:style="switchStyle"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</re-col>
|
||||||
|
|
||||||
|
<re-col>
|
||||||
|
<el-form-item label="备注">
|
||||||
|
<el-input
|
||||||
|
v-model="newFormInline.remark"
|
||||||
|
placeholder="请输入备注信息"
|
||||||
|
type="textarea"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</re-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
@ -0,0 +1,151 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { ref } from "vue";
|
||||||
|
import { useDept } from "./utils/hook";
|
||||||
|
import { PureTableBar } from "@/components/RePureTableBar";
|
||||||
|
import { useRenderIcon } from "@/components/ReIcon/src/hooks";
|
||||||
|
import { PureTable } from "@pureadmin/table";
|
||||||
|
|
||||||
|
import Delete from "@iconify-icons/ep/delete";
|
||||||
|
import EditPen from "@iconify-icons/ep/edit-pen";
|
||||||
|
import Search from "@iconify-icons/ep/search";
|
||||||
|
import Refresh from "@iconify-icons/ep/refresh";
|
||||||
|
import AddFill from "@iconify-icons/ri/add-circle-line";
|
||||||
|
|
||||||
|
defineOptions({
|
||||||
|
name: "Dept"
|
||||||
|
});
|
||||||
|
|
||||||
|
const formRef = ref();
|
||||||
|
const tableRef = ref();
|
||||||
|
const {
|
||||||
|
form,
|
||||||
|
loading,
|
||||||
|
columns,
|
||||||
|
dataList,
|
||||||
|
onSearch,
|
||||||
|
resetForm,
|
||||||
|
openDialog,
|
||||||
|
handleDelete,
|
||||||
|
handleSelectionChange
|
||||||
|
} = useDept();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="main">
|
||||||
|
<el-form
|
||||||
|
ref="formRef"
|
||||||
|
:inline="true"
|
||||||
|
:model="form"
|
||||||
|
class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px]"
|
||||||
|
>
|
||||||
|
<el-form-item label="部门名称:" prop="name">
|
||||||
|
<el-input
|
||||||
|
v-model="form.name"
|
||||||
|
placeholder="请输入部门名称"
|
||||||
|
clearable
|
||||||
|
class="!w-[200px]"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="状态:" prop="status">
|
||||||
|
<el-select
|
||||||
|
v-model="form.status"
|
||||||
|
placeholder="请选择状态"
|
||||||
|
clearable
|
||||||
|
class="!w-[180px]"
|
||||||
|
>
|
||||||
|
<el-option label="启用" :value="1" />
|
||||||
|
<el-option label="停用" :value="0" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
:icon="useRenderIcon(Search)"
|
||||||
|
:loading="loading"
|
||||||
|
@click="onSearch"
|
||||||
|
>
|
||||||
|
搜索
|
||||||
|
</el-button>
|
||||||
|
<el-button :icon="useRenderIcon(Refresh)" @click="resetForm(formRef)">
|
||||||
|
重置
|
||||||
|
</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<PureTableBar
|
||||||
|
title="部门列表(仅演示,操作后不生效)"
|
||||||
|
:columns="columns"
|
||||||
|
:tableRef="tableRef?.getTableRef()"
|
||||||
|
@refresh="onSearch"
|
||||||
|
>
|
||||||
|
<template #buttons>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
:icon="useRenderIcon(AddFill)"
|
||||||
|
@click="openDialog()"
|
||||||
|
>
|
||||||
|
新增部门
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
<template v-slot="{ size, dynamicColumns }">
|
||||||
|
<pure-table
|
||||||
|
ref="tableRef"
|
||||||
|
border
|
||||||
|
adaptive
|
||||||
|
:adaptiveConfig="{ offsetBottom: 32 }"
|
||||||
|
align-whole="center"
|
||||||
|
row-key="id"
|
||||||
|
showOverflowTooltip
|
||||||
|
table-layout="auto"
|
||||||
|
default-expand-all
|
||||||
|
:loading="loading"
|
||||||
|
:size="size"
|
||||||
|
:data="dataList"
|
||||||
|
:columns="dynamicColumns"
|
||||||
|
:header-cell-style="{
|
||||||
|
background: 'var(--el-table-row-hover-bg-color)',
|
||||||
|
color: 'var(--el-text-color-primary)'
|
||||||
|
}"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
>
|
||||||
|
<template #operation="{ row }">
|
||||||
|
<el-button
|
||||||
|
class="reset-margin"
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
:size="size"
|
||||||
|
:icon="useRenderIcon(EditPen)"
|
||||||
|
@click="openDialog('编辑', row)"
|
||||||
|
>
|
||||||
|
编辑
|
||||||
|
</el-button>
|
||||||
|
<el-popconfirm
|
||||||
|
:title="`是否确认删除部门名称为${row.name}的这条数据`"
|
||||||
|
@confirm="handleDelete(row)"
|
||||||
|
>
|
||||||
|
<template #reference>
|
||||||
|
<el-button
|
||||||
|
class="reset-margin"
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
:size="size"
|
||||||
|
:icon="useRenderIcon(Delete)"
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-popconfirm>
|
||||||
|
</template>
|
||||||
|
</pure-table>
|
||||||
|
</template>
|
||||||
|
</PureTableBar>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.search-form {
|
||||||
|
:deep(.el-form-item) {
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,16 @@
|
|||||||
|
interface FormItemProps {
|
||||||
|
higherDeptOptions: Record<string, unknown>[];
|
||||||
|
parentId: number;
|
||||||
|
name: string;
|
||||||
|
principal: string;
|
||||||
|
phone: string | number;
|
||||||
|
email: string;
|
||||||
|
sort: number;
|
||||||
|
status: number;
|
||||||
|
remark: string;
|
||||||
|
}
|
||||||
|
interface FormProps {
|
||||||
|
formInline: FormItemProps;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type { FormItemProps, FormProps };
|
Loading…
Reference in New Issue