123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- import { ref } from "vue";
- import dayjs from "dayjs";
- import { message } from "@/utils/message";
- import { ElMessageBox } from "element-plus";
- export function useColumns() {
- const switchLoadMap = ref({});
- const columns: TableColumnList = [
- {
- type: "selection",
- width: 55,
- align: "left",
- hide: ({ checkList }) => !checkList.includes("勾选列")
- },
- {
- label: "序号",
- type: "index",
- width: 70,
- hide: ({ checkList }) => !checkList.includes("序号列")
- },
- {
- label: "用户编号",
- prop: "id"
- },
- {
- label: "用户名称",
- prop: "username"
- },
- {
- label: "用户昵称",
- prop: "nickname"
- },
- {
- label: "性别",
- prop: "sex",
- cellRenderer: ({ row, props }) => (
- <el-tag
- size={props.size}
- type={row.sex === 1 ? "danger" : ""}
- effect="plain"
- >
- {row.sex === 1 ? "女" : "男"}
- </el-tag>
- )
- },
- {
- label: "部门",
- prop: "dept",
- formatter: ({ dept }) => dept.name
- },
- {
- label: "手机号码",
- prop: "mobile"
- },
- {
- label: "状态",
- prop: "status",
- width: 130,
- cellRenderer: scope => (
- <el-switch
- size={scope.props.size === "small" ? "small" : "default"}
- loading={switchLoadMap.value[scope.index]?.loading}
- v-model={scope.row.status}
- active-value={1}
- inactive-value={0}
- active-text="已开启"
- inactive-text="已关闭"
- inline-prompt
- onChange={() => onChange(scope as any)}
- />
- )
- },
- {
- label: "创建时间",
- width: 180,
- prop: "createTime",
- formatter: ({ createTime }) =>
- dayjs(createTime).format("YYYY-MM-DD HH:mm:ss")
- },
- {
- label: "操作",
- fixed: "right",
- width: 180,
- slot: "operation"
- }
- ];
- function onChange({ row, index }) {
- ElMessageBox.confirm(
- `确认要<strong>${
- row.status === 0 ? "停用" : "启用"
- }</strong><strong style='color:var(--el-color-primary)'>${
- row.username
- }</strong>用户吗?`,
- "系统提示",
- {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- dangerouslyUseHTMLString: true,
- draggable: true
- }
- )
- .then(() => {
- switchLoadMap.value[index] = Object.assign(
- {},
- switchLoadMap.value[index],
- {
- loading: true
- }
- );
- setTimeout(() => {
- switchLoadMap.value[index] = Object.assign(
- {},
- switchLoadMap.value[index],
- {
- loading: false
- }
- );
- message("已成功修改用户状态", "success");
- }, 300);
- })
- .catch(() => {
- row.status === 0 ? (row.status = 1) : (row.status = 0);
- });
- }
- return {
- columns
- };
- }
|