import {
  isnumber,
  isMobile,
  isChinese,
  isEmoticon,
  isSpecialSymbol,
  hasSpace,
  isAddr,
} from "@/utils/validate";
const validatemobile = (rule, value, callback) => {
  if (value === "") {
    callback(new Error("收货电话不能为空！"));
  } else {
    if (!isMobile(value)) {
      callback(new Error("收货电话格式不正确！"));
    } else {
      callback();
    }
  }
};
const validate_num = (rule, value, callback) => {
  const { required } = rule;
  if (required && value === "") {
    callback(new Error("单价不能为空！"));
  } else {
    callback();
  }
};
const validate_num_0 = (rule, value, callback) => {
  const { required } = rule;
  if (required && value === "") {
    callback(new Error("数量不能为空！"));
  } else if (required && value === "0") {
    callback(new Error("数量不能为零！"));
  } else {
    callback();
  }
};
const validatecontactor = (rule, value, callback) => {
  if (value === "") {
    callback(new Error("联系人不能为空！"));
  } else {
    if (value.length < 2 || value.length > 10) {
      callback(new Error("联系人规则为2~10位汉字！"));
    } else {
      if (!isChinese(value)) {
        callback(new Error("联系人规则为2~10位汉字！"));
      } else if (isEmoticon(value)) {
        callback(new Error("联系人规则为2~10位汉字！"));
      } else {
        callback();
      }
    }
  }
};
const validateAddr = (rule, value, callback) => {
  if (value === "") {
    callback(new Error("详细地址不能为空！"));
  } else {
    if (hasSpace(value)) {
      callback(new Error("不能出现/回车/换行符！"));
    } else if (isSpecialSymbol(value)) {
      callback(new Error("不能使用英文特殊字符！"));
    } else if (isAddr(value)) {
      callback();
    } else {
      callback(new Error("详细地址填写不规范！"));
    }
  }
};
const options = [
  {
    value: "1",
    label: "卡券支付",
  },
  {
    value: "2",
    label: "现金支付",
  },
  {
    value: "3",
    label: "混合支付",
  },
]
const ruleForm = {
  id: "",
  platform_code: "", //平台订单号
  po_code: "", //其他单号
  platform_time: "", //平台下单时间
  plat_code: "", //平台商品编号
  sale_source: "", //销售渠道
  mode: "", //收费模式
  contactor: "", ///收货人
  mobile: "", //联系电话
  price: "", //单价
  num: "", //数量
  before_discount_all_price: "", //优惠前总金额
  activity_id: "", //优惠活动名称
  order_remark: "", //订单备注
  addr: "", //联系地址
  addr_code: [], //省市区
}
const rules = {
  platform_code: [
    {
      required: true,
      trigger: "blur",
      message: "平台订单号不能为空",
    },
  ],
  platform_time: [
    {
      required: true,
      trigger: "change",
      message: "平台订单下单时间不能为空",
    },
  ],
  plat_code: [
    {
      required: true,
      trigger: "blur",
      message: "平台商品编号不能为空",
    },
  ],
  mode: [
    {
      required: true,
      trigger: "change",
      message: "收费模式不能为空",
    },
  ],
  sale_source: [
    {
      required: true,
      trigger: "change",
      message: "销售渠道不能为空",
    },
  ],
  contactor: [
    {
      required: true,
      trigger: "blur",
      validator: validatecontactor,
    },
  ],
  mobile: [
    {
      required: true,
      validator: validatemobile,
      trigger: "blur",
    },
  ],

  addr_code: [
    {
      type: "array",
      required: false,
      message: "收货省市区不能为空",
      trigger: "change",
    },
  ],
  addr: [
    {
      required: true,
      validator: validateAddr,
      trigger: "blur",
    },
  ],
  num: [
    {
      required: true,
      validator: validate_num_0,
      trigger: "blur",
    },
  ],
  price: [
    {
      required: true,
      validator: validate_num,
      trigger: "blur",
    },
  ],
  order_remark: [
    {
      required: true,
      message: "订单备注不能为空",
      trigger: "blur",
    },
  ],
}
//是否定制
const options1 = [
  { id: "0", name: "否" },
  { id: "1", name: "是" },
]
//专属类型
const options2 = [
  { id: "0", name: "非泰康" },
  { id: "1", name: "泰康" },
]
//销售权限
const options3 = [
  { id: "0", name: "无销售权限" },
  { id: "1", name: "有销售权限" },
]

//是否库存品
const options4 = [
  { id: "0", name: "非库存品" },
  { id: "1", name: "库存品" },
]
//是否启用实时金价
const options5 = [
  { id: "0", name: "否" },
  { id: "1", name: "是" },
]
//供货区域
const options6 = [
  { id: "1", name: "全国" },
  { id: "2", name: "全国除偏远" },
]
//是否启用阶梯
const options7 = [
  { id: "0", name: "否" },
  { id: "1", name: "是" },
]
const options8 = [
  // { id: "0", name: "待提交" },
  { id: "1", name: "待完善成本" },
  { id: "2", name: "待产品审核" },
  { id: "3", name: "待财务定价" },
  { id: "4", name: "待财务审核定价" },
  { id: "5", name: "待上线" },
  { id: "6", name: "上线成功" },
  { id: "7", name: "审核失败" },
  { id: "8", name: "已下线" },
]

const options9 = [
  { id: "0", name: "现结" },
  { id: "1", name: "月清" },
  { id: "2", name: "双月清" },
]
const onlineColumns = [
  {
    prop: "good_name",
    label: "商品名称",
    _slot_: "good_name",
    span: 24,
  },

  // {
  //   prop: "speclist",
  //   label: "规格",
  //   _slot_: "speclist",
  // },
  // {
  //   prop: "supplierName",
  //   label: "供应商名称",
  // },

  // {
  //   prop: "good_img",
  //   _slot_: "good_img",
  //   label: "商品主图",
  // },

  // {
  //   prop: "good_info_img",
  //   _slot_: "good_info_img",
  //   label: "详情图",
  // },
  {
    prop: "company",
    label: "业务企业名称",
    _slot_: "company",
    span: 24
  },
  // {
  //   prop: "online_reason",
  //   label: "上线原因",
  // },



  // {
  //   prop: "creater",
  //   label: "申请人",
  //   span: 6,
  // },
  {
    prop: "platform_name",
    label: "所属平台",
    span: 24
  },
  {
    prop: "brand_name",
    label: "品牌",
    span: 24
  },
  // {
  //   prop: "platform_code_en",
  //   label: "平台商品编码",
  //   span: 6,
  // },
  // {
  //   prop: "online_time",
  //   label: "上线时间",
  //   span: 8,
  // },
  {
    prop: "cat_info",
    label: "分类",
    _slot_: 'cat_info',
    span: 24
  },


  {
    prop: "unit",
    label: "单位",
    span: 10
  },


  // {
  //   prop: "is_auth",
  //   label: "供应商权限",
  //   _slot_: "is_auth",
  //   span: 6,
  // },

  {
    prop: "is_stock",
    label: "是否库存品",
    _slot_: "is_stock",
    span: 14
  },
  {
    prop: "tax",
    label: "税点",
    append: '%',
    span: 10
  },


  {
    prop: "exclusive",
    label: "专属类型",
    _slot_: "exclusive",
    span: 14
  },
]
export {
  options1,
  options2,
  options3,
  options4,
  options5,
  options6,
  options7,
  options8,
  options9,
  onlineColumns,
  options,
  ruleForm,
  rules,
}
