<template>
  <el-dialog
    :title="title"
    :center="true"
    align="left"
    top="5vh"
    width="1040px"
    @close="closeModel"
    :close-on-click-modal="false"
    :visible.sync="showModelThis"
    v-loading="loading"
    element-loading-text="拼命加载中"
    element-loading-spinner="el-icon-loading"
    element-loading-background="rgba(0, 0, 0, 0.8)"
  >
    <el-card>
      <el-row :gutter="10">
        <el-col :span="24">
          <ex-table
            v-loading="false"
            :table="table"
            :data="tableData"
            :columns="columns"
            :page="pageInfo"
            :size="size"
            @page-curr-change="handlePageChange"
            @page-size-change="handleSizeChange"
            @screen-reset="
              pageInfo.curr = 1;
              parmValue.page = 1;
              searchList();
            "
            @screen-submit="
              pageInfo.curr = 1;
              parmValue.page = 1;
              searchList();
            "
          >
            <template #table-header="{}">
              <div style="width: 100%; height: 40px"></div>
            </template>
          </ex-table>
        </el-col>
        <el-col :span="24" style="text-align: right; margin-top: 10px">
          <el-button type="primary" @click="save">保 存 </el-button>
          <el-button type="warning" @click="submitForm">123 </el-button>
        </el-col>
      </el-row>
    </el-card>
  </el-dialog>
</template>
   <script>
import asyncRequest from "@/apis/service/stock/newApply";
import resToken from "@/mixins/resToken";

import {
  isnumber,
  isMobile,
  validEmail,
  isAlphanumeric,
  isChinese,
  isEmoticon,
  validAlphabets,
} from "@/utils/validate";
export default {
  name: "newApply",
  props: ["showModel", "id", "isDetail", "sitem"],
  mixins: [resToken],
  data() {
    const validateusername = (rule, value, callback) => {
      // if (value === "") {
      //   callback(new Error("账号不能为空！"));
      // } else {
      //   if (value.length < 6 || value.length > 18) {
      //     callback(new Error("账号规则为6~18位数字与字母组合！"));
      //   } else {
      //     if (isnumber(value)) {
      //       callback(new Error("账号规则为6~18位数字与字母组合！"));
      //     } else if (validAlphabets(value)) {
      //       callback(new Error("账号规则为6~18位数字与字母组合！"));
      //     } else if (!isAlphanumeric(value)) {
      //       callback(new Error("账号规则为6~18位数字与字母组合！"));
      //     } else {
      //       callback();
      //     }
      //   }
      // }
    };
    const validatename = (rule, value, callback) => {
      // if (value === "") {
      //   callback(new Error("真实姓名不能为空！"));
      // } else {
      //   if (value.length < 2 || value.length > 12) {
      //     callback(new Error("真实姓名规则为2~12位汉字！"));
      //   } else {
      //     if (!isChinese(value)) {
      //       console.log(9999);
      //       callback(new Error("真实姓名规则为2~12位汉字！"));
      //     } else if (isEmoticon(value)) {
      //       console.log(2345);
      //       callback(new Error("真实姓名规则为2~12位汉字！"));
      //     } else {
      //       callback();
      //     }
      //   }
      // }
    };
    const validatemobile = (rule, value, callback) => {
      // if (value === "") {
      //   callback(new Error("手机号不能为空！"));
      // } else {
      //   if (!isMobile(value)) {
      //     callback(new Error("手机号格式不正确！"));
      //   } else {
      //     callback();
      //   }
      // }
    };

    const validateEmail = (rule, value, callback) => {
      // if (value === "") {
      //   callback();
      // } else {
      //   if (!validEmail(value)) {
      //     callback(new Error("邮箱格式不正确！"));
      //   } else {
      //     callback();
      //   }
      // }
    };
    return {
      loading: true,
      showModel: false,
      isDetail: false,
      modelId: 0,
      tableData: [], //渲染表格
      //
      // 表格 - 数据
      tableData: [],
      // 表格 - 参数
      table: {
        stripe: true,
        border: true,
        _defaultHeader_: ["setcol"],
      },
      // 表格 - 分页
      pageInfo: {
        size: 15,
        curr: 1,
        total: 0,
      },
      // 表格 - 列参数
      columns: [
        {
          prop: "nickname",
          label: "商品编号",
        },
        {
          prop: "role_name",
          label: "商品名称",
        },
        {
          prop: "mobile",
          label: "数量",
        },
      ],
      loading: false,
      title: "添加账号",
      showModelThis: this.showModel,
      ruleForm: {
        username: "", // 账号
        name: "", // 真实姓名
        mobile: "",
        email: "",
        role_id: "",
        status: "1",
        item: [],
      },
      rulesThis: this.rules,
      rules: {
        name: [
          {
            required: true,
            validator: validatename,
            trigger: "blur",
          },
        ],
        username: [
          {
            required: true,
            validator: validateusername,
            trigger: "blur",
          },
        ],
        mobile: [
          {
            required: true,
            validator: validatemobile,
            trigger: "blur",
          },
        ],
        email: [
          {
            required: false,
            validator: validateEmail,
            trigger: "blur",
          },
        ],
        role_id: [
          {
            required: true,
            message: "请选择角色",
            trigger: "change",
          },
        ],
        item: [
          {
            type: "array",
            required: true,
            message: "请选择所在部门",
            trigger: "change",
          },
        ],
        status: [
          {
            required: true,
            message: "请选择状态",
            trigger: "change",
          },
        ],
      },
    };
  },
  watch: {
    showModel: function (val) {
      this.showModelThis = val;
      if (val) {
        this.initForm();
      }
    },
    showModelThis(val) {
      if (!val) {
        this.$emit("cancel");
      }
    },
  },
  methods: {
    closeModel() {
      console.log("closeModel!!");
    },
    async initForm() {
      this.loading = true;
      this.title = "可调拨的商品";
      {
        //await this.getRole();
        // if (this.id === "add") {
        //   this.title = "添加账号";
        //   this.rulesThis = this.rules;
        //   await this.resetForm();
        // } else {
        //   if (this.isDetail) {
        //     this.title = "账号详情";
        //     this.rulesThis = {};
        //   } else {
        //     this.title = "修改账号";
        //     this.rulesThis = this.rules;
        //   }
        //   await this.resetForm(this.sitem);
        //   // await this.initData()
        //}
      }
      this.loading = false;
    },
    // async getRole() {
    //   const model = {
    //     status: "", // 状态
    //     level: "", // 姓名
    //     role_name: "",
    //   };
    //   const res = await asyncRequest.getRole(model);
    //   if (res && res.code === 0 && res.data) {
    //     this.roleList = res.data;
    //     this.roleList.map((v1) => {
    //       v1.id += "";
    //       v1.status += "";
    //       return v1;
    //     });
    //   }
    // },
    async initData() {
      // const res = await asyncRequest.detail({ id: this.id });
      // if (res && res.code === 0 && res.data) {
      //   this.ruleForm = res.data;
      //   this.ruleForm.role_id = this.ruleForm.role;
      // } else if (res && res.code >= 100 && res.code <= 104) {
      //   await this.logout();
      // } else {
      //   this.$message.warning(res.message);
      // }
    },
    async resetForm(sitem) {
      // 重置
      await this.$nextTick(() => {
        // if (this.$refs.ruleForm) {
        //   this.$refs.ruleForm.resetFields();
        //   this.$refs.ruleForm.clearValidate();
        //   const { username, nickname, mobile, email, roleid, status, item } =
        //     sitem;
        //   this.ruleForm = {
        //     username: username || "", // 账号
        //     name: nickname || "", // 真实姓名
        //     mobile: mobile || "",
        //     email: email || "",
        //     role_id: roleid || "",
        //     status: status || "",
        //     item: item || [],
        //   };
        //   if (this.id === "add" || this.isDetail) {
        //     this.rules.username[0].required = false;
        //   }
        // }
      });
    },
    save() {
      console.log("点击了保存");
    },
    async submitForm() {
      console.log("点击了保存并发起流程");
      // await this.$refs.ruleForm.validate(async (valid) => {
      //   if (valid) {
      //     this.loading = true;
      //     const { username, name, mobile, email, role_id, status } = JSON.parse(
      //       JSON.stringify(this.ruleForm)
      //     );
      //     const model = {
      //       id: this.id,
      //       username: username || "", // 账号
      //       nickname: name || "", // 真实姓名
      //       mobile: mobile || "",
      //       email: email || "",
      //       role: role_id || "",
      //       status: status || "",
      //     };
      //     let res = {};
      //     if (this.id === "add") {
      //       delete model["id"];
      //       res = await asyncRequest.add(model);
      //     } else {
      //       res = await asyncRequest.update(model);
      //     }
      //     this.loading = false;
      //     if (res && res.code === 0) {
      //       const title = this.id === "add" ? "添加成功" : "修改成功";
      //       this.$notify.success({
      //         title,
      //         message: "",
      //       });
      //       this.showModelThis = false;
      //       // 刷新
      //       this.$emit("refresh");
      //     } else if (res && res.code >= 100 && res.code <= 104) {
      //       await this.logout();
      //     } else {
      //       this.$message.warning(res.message);
      //     }
      //   } else {
      //     console.log("error submit!!");
      //     return false;
      //   }
      // });
    },
  },
};
</script>

   <style lang="scss" scoped>
.newApply {
}
</style>
   