wuxibotestmason

### 安装 ``` bash npm i wuxibotestmason # 或者 yarn add wuxibotestmason ```

Usage no npm install needed!

<script type="module">
  import wuxibotestmason from 'https://cdn.skypack.dev/wuxibotestmason';
</script>

README

通用模板

安装

npm i wuxibotestmason
# 或者
yarn add wuxibotestmason

引用

import { Integration } from "wuxibotestmason";
export default {
  components: { Integration }
}

使用

<template>
  <Integration :data="modelConf" :fieldConfig="fieldConfig" />
</template>

完整代码

<template>
  <div class="test">
    <Integration
      :data="modelConf"
      :fieldConfig="fieldConfig"
      @batchList="batchFn"
    >
    </Integration>
  </div>
</template>

<script>
import { Integration } from "wuxibotestmason"; // wuxibotestmason模块
import "wuxibotestmason/lib/wuxibotestmason.css"; // wuxibotestmason样式
// 接口请求
const requestModel = {
  sysmanageUserList: () => {
    return new Promise((resolve, reject) => {
      resolve({
        code: 0,
        data: {
          list: [
            {
              id: "DEARSU1233",
              sort: 0,
              phone: "13800138000",
              avater:
                "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1606911128215&di=d5140ea91052702fd6a72e5f43caa733&imgtype=0&src=http%3A%2F%2Fimg.mp.itc.cn%2Fupload%2F20170211%2F36fc94423a1a41968cfe8627bf98caa5.gif",
              gender: "0",
              username: "superadmin",
              password: "123123",
              roleList: [
                "432985",
                "21e4e5e811b857c1a29d2c8499d3ae1f2972a179",
                "3f3e3940acedd8c72e8122830b89f20d32ef267a",
              ],
              isDelete: "1",
              createDate: "2020-12-01 09:09:02",
              updateDate: "2021-02-22 09:50:52",
            },
            {
              id: "DY_USER60b7c295a4c77c883b407af040f2cf5a4cef2aff",
              sort: 1,
              phone: "13800138006",
              avater: "",
              gender: "0",
              username: "mason123",
              password: "DY_USERdfb59f0c8ff950313b5e348b016c8434aeb441c7",
              roleList: ["432985", "21e4e5e811b857c1a29d2c8499d3ae1f2972a179"],
              isDelete: "1",
              createDate: "2020-12-03 17:46:40",
              updateDate: "2021-02-20 20:34:52",
            },
            {
              id: "DY_USERa4b60de1c0ea0534ecd89b2e3a9932e1c7a04863",
              sort: 1,
              phone: "13800138000",
              avater: "",
              gender: "M",
              username: "mason",
              password: "DY_USERdfb59f0c8ff950313b5e348b016c8434aeb441c7",
              roleList: [
                "432985",
                "21e4e5e811b857c1a29d2c8499d3ae1f2972a179",
                "3f3e3940acedd8c72e8122830b89f20d32ef267a",
              ],
              isDelete: "1",
              createDate: "2020-12-03 17:50:32",
              updateDate: "2021-02-02 11:12:07",
            },
            {
              id: "fe655fa35cf29508aad792575a3d684e667f300e",
              sort: 0,
              phone: "13948934572",
              avater: "",
              gender: "0",
              username: "wuieoghqwrfe",
              password: "da39a3ee5e6b4b0d3255bfef95601890afd80709",
              roleList: ["432985"],
              isDelete: "0",
              createDate: "2021-02-18 12:51:05",
              updateDate: "2021-02-18 12:51:05",
            },
          ],
          total: 4,
          pageNum: 1,
          pageSize: 10,
        },
        msg: "获取成功",
      });
    });
  },
  sysmanageUserDelete: () => {
    return new Promise((resolve, reject) => {
      resolve({ code: 0, msg: "删除成功" });
    });
  },
  sysmanageUserEdit: () => {
    return new Promise((resolve, reject) => {
      resolve({ code: 0, msg: "编辑成功" });
    });
  },
  sysmanageUserAdd: () => {
    return new Promise((resolve, reject) => {
      resolve({ code: 0, msg: "新增成功" });
    });
  },

  uploadOnePhotoUrl: () => {
    return "http://locahost:8080/fileManage/uploadImage";
  },
};
// 数据字段 - 性别
const genderOption = [
  {
    label: "男",
    value: "0",
  },
  {
    label: "女",
    value: "1",
  },
  {
    label: "保密",
    value: "2",
  },
];
// 数据字段 - 权限
const getRoleList = [
  {
    value: "432985",
    roleDesc: "这是超级管理员",
    label: "超级管理员",
    code: "superAdmin",
    isDelete: "0",
    createDate: "2020-12-05 00:26:52",
    updateDate: "2020-12-19 19:26:26",
  },
  {
    value: "21e4e5e811b857c1a29d2c8499d3ae1f2972a179",
    roleDesc: "222",
    label: "快速模板使用者",
    code: "file",
    isDelete: "0",
    createDate: "2020-12-05 14:04:40",
    updateDate: "2020-12-05 14:04:40",
  },
  {
    value: "3f3e3940acedd8c72e8122830b89f20d32ef267a",
    roleDesc: "2",
    label: "通用模板使用者",
    code: "2",
    isDelete: "0",
    createDate: "2020-12-05 14:05:00",
    updateDate: "2020-12-05 14:05:00",
  },
];

export default {
  name: "App",
  components: { Integration },
  data() {
    return {
      fieldConfig: [
        { label: "手机", prop: "phone", maxlength: 11 },
        { label: "用户", prop: "username", isSeek: false },
        {
          label: "性别",
          prop: "gender",
          type: "select",
          option: genderOption,
          isTable: false,
        },
        {
          label: "日期",
          prop: "daterange",
          dateType: "daterange",
          type: "date",
          isTable: false,
        },
        {
          label: "权限",
          prop: "roleList",
          type: "select_multiple",
          option: getRoleList,
          isTable: false,
          isSeek: false,
        },
        {
          label: "头像",
          prop: "avater",
          type: "img",
          isTable: false,
          required: false,
        },
      ],
      // 核心模板
      modelConf: {
        mainButton: [
          {
            type: "add",
            label: "新增",
          },
          {
            type: "export",
            label: "导出",
          },
          {
            type: "import",
            label: "导入",
          },
          {
            type: "batch",
            label: "批量删除mason",
            value: "del",
          },
        ],
        // 表格自定义配置
        tabelCustomConf: [
          // 图片
          {
            label: "图片", // 表头名称
            tableType: "image", // 类型
            width: "130", // 宽度
            prop: "avater", // 字段名称
          },
          // Tag
          {
            label: "性别", // 表头名称
            tableType: "tag", // 类型
            width: "68", // 宽度
            prop: "genderLabel", // 字段名称
          },
        ],
        // 处理查询请求参数
        setQueryRequest: (data) => {
          if (Array.isArray(data.daterange)) {
            data.startDate = data.daterange[0];
            data.endDate = data.daterange[1];
          } else {
            data.startDate = "";
            data.endDate = "";
          }
          return data;
        },
        // 处理查询返回数据
        setQueryResponse: (res) => {
          res.data.list.forEach((e, index) => {
            // 设置性别标签
            e.genderLabel = [];
            if (e.gender == "0") {
              e.genderLabel[0] = {
                label: "男",
                type: "success",
              };
            } else if (e.gender == "1") {
              e.genderLabel[0] = {
                label: "女",
                type: "danger",
              };
            } else {
              e.genderLabel[0] = {
                label: "保密",
                type: "",
              };
            }
            e.imgList = e.avater.split(",").filter((s) => {
              return s && s.trim();
            });
          });
          return res;
        },
        setEditRequest: (data) => {
          return data;
        },
        // 设置请求参数 - 删除
        setDeleteReqBody: (data) => {
          return { id: data.id };
        },
        // 接口名称
        requestName: {
          getList: requestModel.sysmanageUserList, // 查询
          deleteOne: requestModel.sysmanageUserDelete, // 删除
          editOne: requestModel.sysmanageUserEdit, // 编辑
          addOne: requestModel.sysmanageUserAdd, // 新增
          upload: requestModel.uploadOnePhotoUrl, // 上传图片
          uploadHeaders: { Authorization: "token-test-001" }, // 上传头部数据
        },
      },
    };
  },
  methods: {
    // 批量处理
    batchFn(data) {
      console.log(data);
    },
    addseekDataFn() {
      console.log("按钮区域");
    },
  },
  created() {},
};
</script>

可用参数

/* 按钮区: 新增,导出,导入,批量。支持扩展。
 * 搜索区: 输入框,下拉(多、单选),搜索
 * 列表区: 常规字段,图片,标签(带颜色,单标签,多标签)
 * 新增&编辑区: 输入框,下拉(多、单选),上传图片
 */
Integration // 详细使用方法,请参考上面完整代码。