| | |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="客户编号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入客户编号" v-decorator="['custCode', {rules: [{required: true, message: '请输入客户编号!'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="客户中文名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入客户中文名称" v-decorator="['custChinaName', {rules: [{required: true, message: '请输入客户中文名称!'}]}]" /> |
| | | </a-form-item> |
| | |
| | | <a-form-item label="助记码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入助记码" v-decorator="['mnemonicCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="类型" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请输入类型" style="width: 100%" v-decorator="['custType', {rules: [{required: true, message: '请输入类型!'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="类型名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入类型名称" v-decorator="['custTypeName']" /> |
| | | <a-form-item label="类型" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-select style="width: 100%" placeholder="请选择类型" v-decorator="['custType', {rules: [{ required: true, message: '请选择类型!' }]}]"> |
| | | <a-select-option v-for="(item,index) in custTypeData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | <a-form-item label="联系人" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入联系人" v-decorator="['linkMan']" /> |
| | |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | custTypeData: [], |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | |
| | | this.$nextTick(() => { |
| | | |
| | | }); |
| | | const custTypeOption = this.$options |
| | | this.custTypeData = custTypeOption.filters['dictData']('base_customer_type') |
| | | }, |
| | | /** |
| | | * 提交表单 |
| | |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="客户编号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入客户编号" v-decorator="['custCode', {rules: [{required: true, message: '请输入客户编号!'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="客户中文名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入客户中文名称" v-decorator="['custChinaName', {rules: [{required: true, message: '请输入客户中文名称!'}]}]" /> |
| | | </a-form-item> |
| | |
| | | <a-form-item label="助记码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入助记码" v-decorator="['mnemonicCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="类型" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请输入类型" style="width: 100%" v-decorator="['custType', {rules: [{required: true, message: '请输入类型!'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="类型名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入类型名称" v-decorator="['custTypeName']" /> |
| | | <a-form-item label="类型" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-select style="width: 100%" placeholder="请选择类型" v-decorator="['custType', {rules: [{ required: true, message: '请选择类型!' }]}]"> |
| | | <a-select-option v-for="(item,index) in custTypeData" :key="index" :value="Number(item.code)">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | <a-form-item label="联系人" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入联系人" v-decorator="['linkMan']" /> |
| | |
| | | sm: { span: 15 } |
| | | }, |
| | | record: {}, |
| | | custTypeData: [], |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | |
| | | }); |
| | | //深度拷贝 移除VUE的监听,防止INDEX页面值变动 |
| | | this.record = JSON.parse(JSON.stringify(record)) |
| | | const custTypeOption = this.$options |
| | | this.custTypeData = custTypeOption.filters['dictData']('base_customer_type') |
| | | this.$nextTick(() => { |
| | | this.form.setFieldsValue( |
| | | { |
| | | id: record.id, |
| | | custCode: record.custCode, |
| | | custChinaName: record.custChinaName, |
| | | custEnglishName: record.custEnglishName, |
| | | mnemonicCode: record.mnemonicCode, |
| | | custType: record.custType, |
| | | custTypeName: record.custTypeName, |
| | | linkMan: record.linkMan, |
| | | phone: record.phone, |
| | | email: record.email, |
| | |
| | | </a-form-item> |
| | | </a-col><a-col :md="8" :sm="24"> |
| | | <a-form-item label="类型"> |
| | | <a-input-number v-model="queryParam.custType" style="width: 100%" allow-clear placeholder="请输入类型"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="类型名称"> |
| | | <a-input v-model="queryParam.custTypeName" allow-clear placeholder="请输入类型名称"/> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.custType" placeholder="请选择类型"> |
| | | <a-select-option v-for="(item,index) in custTypeData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | |
| | | <a-button type="primary" v-if="hasPerm('BaseCustomer:add')" icon="plus" @click="$refs.addForm.add()">新增客户档案</a-button> |
| | | </div> |
| | | </template> |
| | | <span slot="custTypescopedSlots" slot-scope="text"> |
| | | {{ 'base_customer_type' | dictType(text) }} |
| | | </span> |
| | | <span slot="isDisabledscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">是</a-tag> |
| | |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//最小列宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//最小列宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'custType' |
| | | }, |
| | | { |
| | | title: '类型名称', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//最小列宽设置 |
| | | } |
| | | } |
| | |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'custTypeName' |
| | | dataIndex: 'custType', |
| | | scopedSlots: { customRender: 'custTypescopedSlots' } |
| | | }, |
| | | { |
| | | title: '联系人', |
| | |
| | | return res.data |
| | | }) |
| | | }, |
| | | custTypeData: [], |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | |
| | | } |
| | | }); |
| | | } |
| | | const custTypeOption = this.$options |
| | | this.custTypeData = custTypeOption.filters['dictData']('base_customer_type') |
| | | const isDisabledOption = this.$options |
| | | this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') |
| | | |
| | |
| | | { |
| | | var baseCustomers = await _baseCustomerRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(input.CustCode), u => u.CustCode == input.CustCode) |
| | | .Where(!string.IsNullOrEmpty(input.CustChinaName), u => EF.Functions.Like(u.CustChinaName, $"%{input.CustChinaName.Trim()}%")) |
| | | .Where(!string.IsNullOrEmpty(input.CustChinaName), u => u.CustChinaName == input.CustChinaName) |
| | | .Where(!string.IsNullOrEmpty(input.CustEnglishName), u => u.CustEnglishName == input.CustEnglishName) |
| | | .Where(!string.IsNullOrEmpty(input.MnemonicCode), u => u.MnemonicCode == input.MnemonicCode) |
| | | .Where(input.CustType != null, u => u.CustType == input.CustType) |
| | | .Where(!string.IsNullOrEmpty(input.CustTypeName), u => u.CustTypeName == input.CustTypeName) |
| | | .Where(!string.IsNullOrEmpty(input.LinkMan), u => u.LinkMan == input.LinkMan) |
| | | .Where(!string.IsNullOrEmpty(input.Phone), u => u.Phone == input.Phone) |
| | | .Where(!string.IsNullOrEmpty(input.Email), u => u.Email == input.Email) |
| | |
| | | var pCustEnglishName = input.CustEnglishName?.Trim() ?? ""; |
| | | var pMnemonicCode = input.MnemonicCode?.Trim() ?? ""; |
| | | var pCustType = input.CustType; |
| | | var pCustTypeName = input.CustTypeName?.Trim() ?? ""; |
| | | var pLinkMan = input.LinkMan?.Trim() ?? ""; |
| | | var pPhone = input.Phone?.Trim() ?? ""; |
| | | var pEmail = input.Email?.Trim() ?? ""; |
| | |
| | | var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? ""; |
| | | var baseCustomers = await _baseCustomerRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(pCustCode), u => u.CustCode == pCustCode) |
| | | .Where(!string.IsNullOrEmpty(pCustChinaName), u => EF.Functions.Like(u.CustChinaName, $"%{pCustChinaName}%")) |
| | | .Where(!string.IsNullOrEmpty(pCustChinaName), u => u.CustChinaName == pCustChinaName) |
| | | .Where(!string.IsNullOrEmpty(pCustEnglishName), u => u.CustEnglishName == pCustEnglishName) |
| | | .Where(!string.IsNullOrEmpty(pMnemonicCode), u => u.MnemonicCode == pMnemonicCode) |
| | | .Where(pCustType != null, u => u.CustType == pCustType) |
| | | .Where(!string.IsNullOrEmpty(pCustTypeName), u => u.CustTypeName == pCustTypeName) |
| | | .Where(!string.IsNullOrEmpty(pLinkMan), u => u.LinkMan == pLinkMan) |
| | | .Where(!string.IsNullOrEmpty(pPhone), u => u.Phone == pPhone) |
| | | .Where(!string.IsNullOrEmpty(pEmail), u => u.Email == pEmail) |
| | |
| | | public async Task Add(AddBaseCustomerInput input) |
| | | { |
| | | var baseCustomer = input.Adapt<BaseCustomer>(); |
| | | //验证 |
| | | await CheckExisit(baseCustomer); |
| | | baseCustomer.CustCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 要调用生成 编号的方法 先用雪花ID |
| | | baseCustomer.CustTypeName = baseCustomer.CustType.ToString(); |
| | | |
| | | //验证 |
| | | await CheckExisit(baseCustomer); |
| | | baseCustomer.CreatedUserId = baseCustomer.UpdatedUserId = SysHelper.GetUserId(); |
| | | baseCustomer.CreatedUserName = baseCustomer.UpdatedUserName = SysHelper.GetUserName(); |
| | | baseCustomer.CreatedTime = baseCustomer.UpdatedTime = SysHelper.GetNowTime(); |
| | |
| | | |
| | | var addItem = new BaseCustomer() |
| | | { |
| | | CustCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString(),//TODO 要调用生成 编号的方法 先用雪花ID |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | |
| | | }; |
| | | #region 定义变量 |
| | | var _CustCode = "";//客户编号 |
| | | var _CustChinaName = "";//客户中文名称 |
| | | var _CustEnglishName = "";//客户英文名称 |
| | | var _MnemonicCode = "";//助记码 |
| | | var _CustType = "";//类型 |
| | | var _CustTypeName = "";//类型名称 |
| | | var _LinkMan = "";//联系人 |
| | | var _Phone = "";//电话 |
| | | var _Email = "";//电子邮件 |
| | |
| | | var _City = "";//城市 |
| | | var _Address = "";//地址 |
| | | var _IsDisabled = "";//是否禁用 |
| | | var _Id = "";//Id主键 |
| | | #endregion |
| | | |
| | | |
| | | #region 取值 |
| | | _CustCode = row["客户编号"]?.ToString() ; |
| | | _CustChinaName = row["客户中文名称"]?.ToString() ; |
| | | _CustEnglishName = row["客户英文名称"]?.ToString() ; |
| | | _MnemonicCode = row["助记码"]?.ToString() ; |
| | | _CustType = row["类型"]?.ToString() ; |
| | | _CustTypeName = row["类型名称"]?.ToString() ; |
| | | _LinkMan = row["联系人"]?.ToString() ; |
| | | _Phone = row["电话"]?.ToString() ; |
| | | _Email = row["电子邮件"]?.ToString() ; |
| | |
| | | _Province = row["省份"]?.ToString() ; |
| | | _City = row["城市"]?.ToString() ; |
| | | _Address = row["地址"]?.ToString() ; |
| | | _IsDisabled = row["是否禁用"]?.ToString() ; |
| | | _Id = row["Id主键"]?.ToString() ; |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #region 验证 |
| | | |
| | | if (string.IsNullOrEmpty(_CustCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[客户编号]{_CustCode}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_CustCode)) |
| | | { |
| | | addItem.CustCode = (string)_CustCode; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_CustChinaName)) |
| | | { |
| | |
| | | |
| | | if(!string.IsNullOrEmpty(_CustType)) |
| | | { |
| | | if (!int.TryParse(_CustType, out int outCustType)&&!string.IsNullOrEmpty(_CustType)) |
| | | Admin.NET.Core.BaseCustomerTypeEnum enumCustType = default(Admin.NET.Core.BaseCustomerTypeEnum); |
| | | |
| | | if(!Enum.TryParse<Admin.NET.Core.BaseCustomerTypeEnum>(_CustType, out enumCustType)&&!string.IsNullOrEmpty(_CustType)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[类型]{_CustType}值不正确!"); |
| | | } |
| | | if (outCustType <= 0&&!string.IsNullOrEmpty(_CustType)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[类型]{_CustType}值不能小于等于0!"); |
| | | throw Oops.Oh($"第{index}行[类型]{_CustType}值不正确!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.CustType = outCustType; |
| | | addItem.CustType = enumCustType; |
| | | addItem.CustTypeName = addItem.CustType.ToString(); |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_CustTypeName)) |
| | | { |
| | | addItem.CustTypeName = (string)_CustTypeName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_LinkMan)) |
| | | { |
| | |
| | | bool outIsDisabled = _IsDisabled.Equals("是") ? true : false; |
| | | addItem.IsDisabled = outIsDisabled; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[Id主键]{_Id}值不正确!"); |
| | | } |
| | | if (outId <= 0&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[Id主键]{_Id}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Id = outId; |
| | | } |
| | | |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | |
| | | { |
| | | //数据是否存在重复 |
| | | isExist = await _baseCustomerRep.AnyAsync(u => |
| | | u.CustCode.Equals(input.CustCode) |
| | | u.CustChinaName.Equals(input.CustChinaName) |
| | | ,false); |
| | | } |
| | | else//编辑 |
| | |
| | | //当前编辑数据以外是否存在重复 |
| | | isExist = await _baseCustomerRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | &&u.CustCode.Equals(input.CustCode) |
| | | &&u.CustChinaName.Equals(input.CustChinaName) |
| | | ,false); |
| | | } |
| | | |
| | |
| | | } |
| | | //数据是否重复 |
| | | var existExcelItem = inputs.GroupBy(g => new { |
| | | g.CustCode |
| | | g.CustChinaName |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new { |
| | | s.Key.CustCode |
| | | s.Key.CustChinaName |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem != null) |
| | | { |
| | | var baseCustomer = existExcelItem.Adapt<BaseCustomer>(); |
| | | var item= existExcelItem.Adapt<BaseCustomer>(); |
| | | throw Oops.Oh($"导入的表格中,客户编号[{item.CustCode}]已存在"); |
| | | throw Oops.Oh($"导入的表格中,客户中文名称[{item.CustChinaName}]已存在"); |
| | | } |
| | | |
| | | |
| | |
| | | //根据联合主键验证数据库中是否已存在相同数据 |
| | | var existDBItem = await _baseCustomerRep.DetachedEntities.FirstOrDefaultAsync(w=> |
| | | inputs.Select(s=>"" |
| | | +s.CustCode |
| | | +s.CustChinaName |
| | | ) |
| | | .Contains("" |
| | | +w.CustCode |
| | | +w.CustChinaName |
| | | )); |
| | | if (existDBItem != null) |
| | | { |
| | | var baseCustomer = existExcelItem.Adapt<BaseCustomer>(); |
| | | var item= existExcelItem.Adapt<BaseCustomer>(); |
| | | throw Oops.Oh($"系统中,客户编号[{item.CustCode}]已存在"); |
| | | var item= existDBItem.Adapt<BaseCustomer>(); |
| | | throw Oops.Oh($"系统中,客户中文名称[{item.CustChinaName}]已存在"); |
| | | } |
| | | } |
| | | |
| | |
| | | using System.ComponentModel.DataAnnotations; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 客户档案查询参数 |
| | | /// </summary> |
| | |
| | | /// 客户编号 |
| | | /// </summary> |
| | | public virtual string CustCode { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 客户中文名称 |
| | | /// </summary> |
| | | public virtual string CustChinaName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 客户英文名称 |
| | | /// </summary> |
| | | public virtual string CustEnglishName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 助记码 |
| | | /// </summary> |
| | | public virtual string MnemonicCode { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 类型 |
| | | /// </summary> |
| | | public virtual int? CustType { get; set; } |
| | | |
| | | public virtual Admin.NET.Core.BaseCustomerTypeEnum? CustType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 类型名称 |
| | | /// </summary> |
| | | public virtual string CustTypeName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 联系人 |
| | | /// </summary> |
| | | public virtual string LinkMan { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 电话 |
| | | /// </summary> |
| | | public virtual string Phone { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 电子邮件 |
| | | /// </summary> |
| | | public virtual string Email { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 邮编 |
| | | /// </summary> |
| | | public virtual string ZipCode { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 省份 |
| | | /// </summary> |
| | | public virtual string Province { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 城市 |
| | | /// </summary> |
| | | public virtual string City { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 地址 |
| | | /// </summary> |
| | | public virtual string Address { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否禁用 |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 创建时间 |
| | | /// </summary> |
| | | public virtual List<string> CreatedTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 更新时间 |
| | | /// </summary> |
| | | public virtual List<string> UpdatedTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 创建者名称 |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 修改者名称 |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// <summary> |
| | | /// 客户档案不分页查询参数 |
| | | /// </summary> |
| | | public class BaseCustomerSearchNonPage : PageInputNonPageBase |
| | |
| | | /// 客户编号 |
| | | /// </summary> |
| | | public virtual string CustCode { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 客户中文名称 |
| | | /// </summary> |
| | | public virtual string CustChinaName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 客户英文名称 |
| | | /// </summary> |
| | | public virtual string CustEnglishName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 助记码 |
| | | /// </summary> |
| | | public virtual string MnemonicCode { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 类型 |
| | | /// </summary> |
| | | public virtual int? CustType { get; set; } |
| | | |
| | | public virtual Admin.NET.Core.BaseCustomerTypeEnum? CustType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 类型名称 |
| | | /// </summary> |
| | | public virtual string CustTypeName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 联系人 |
| | | /// </summary> |
| | | public virtual string LinkMan { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 电话 |
| | | /// </summary> |
| | | public virtual string Phone { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 电子邮件 |
| | | /// </summary> |
| | | public virtual string Email { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 邮编 |
| | | /// </summary> |
| | | public virtual string ZipCode { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 省份 |
| | | /// </summary> |
| | | public virtual string Province { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 城市 |
| | | /// </summary> |
| | | public virtual string City { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 地址 |
| | | /// </summary> |
| | | public virtual string Address { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否禁用 |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 创建时间 |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? CreatedTime { get; set; } |
| | | |
| | | public virtual List<DateTimeOffset>? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 更新时间 |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? UpdatedTime { get; set; } |
| | | |
| | | public virtual List<DateTimeOffset>? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 创建者名称 |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 修改者名称 |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | public class BaseCustomerInput |
| | | { |
| | | /// <summary> |
| | | /// 客户编号 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "客户编号不能为空")] |
| | | public virtual string CustCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客户中文名称 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "客户中文名称不能为空")] |
| | | public virtual string CustChinaName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 客户英文名称 |
| | | /// </summary> |
| | | public virtual string CustEnglishName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 助记码 |
| | | /// </summary> |
| | | public virtual string MnemonicCode { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 类型 |
| | | /// </summary> |
| | | [Required(ErrorMessage = "类型不能为空")] |
| | | public virtual BaseCustomerTypeEnum CustType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 类型名称 |
| | | /// </summary> |
| | | public virtual string CustTypeName { get; set; } |
| | | |
| | | public virtual Admin.NET.Core.BaseCustomerTypeEnum CustType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 联系人 |
| | | /// </summary> |
| | | public virtual string LinkMan { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 电话 |
| | | /// </summary> |
| | | public virtual string Phone { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 电子邮件 |
| | | /// </summary> |
| | | public virtual string Email { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 邮编 |
| | | /// </summary> |
| | | public virtual string ZipCode { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 省份 |
| | | /// </summary> |
| | | public virtual string Province { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 城市 |
| | | /// </summary> |
| | | public virtual string City { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 地址 |
| | | /// </summary> |
| | | public virtual string Address { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否禁用 |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | [Required(ErrorMessage = "Id主键不能为空")] |
| | | public long? Id { get; set; } |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <summary> |
| | | /// 类型 |
| | | /// </summary> |
| | | public int CustType { get; set; } |
| | | public Admin.NET.Core.BaseCustomerTypeEnum CustType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 类型名称 |
| | |
| | | [Comment("类型")] |
| | | [Required] |
| | | |
| | | public int CustType { get; set; } |
| | | public BaseCustomerTypeEnum CustType { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | |
| | | new SysDictData{Id=539751869472837, TypeId=539751788187717, Value="B", Code="2", Sort=100, Remark="", Status=0 }, |
| | | new SysDictData{Id=539751888134213, TypeId=539751788187717, Value="C", Code="3", Sort=100, Remark="", Status=0 }, |
| | | |
| | | new SysDictData{Id=539751888134214, TypeId=539751788187718, Value="货主", Code="1", Sort=100, Remark="", Status=0 }, |
| | | new SysDictData{Id=539751888134215, TypeId=539751788187718, Value="收货人", Code="2", Sort=100, Remark="", Status=0 }, |
| | | new SysDictData{Id=539751888134216, TypeId=539751788187718, Value="供应商", Code="3", Sort=100, Remark="", Status=0 }, |
| | | new SysDictData{Id=539751888134217, TypeId=539751788187718, Value="承运人", Code="3", Sort=100, Remark="", Status=0 }, |
| | | new SysDictData{Id=539751888134218, TypeId=539751788187718, Value="其他", Code="3", Sort=100, Remark="", Status=0 }, |
| | | new SysDictData{Id=540028409995333, TypeId=540028296155205, Value="货主", Code="1", Sort=100, Remark="", Status=0 }, |
| | | new SysDictData{Id=540028593905733, TypeId=540028296155205, Value="收货人", Code="2", Sort=100, Remark="", Status=0 }, |
| | | new SysDictData{Id=540028612407365, TypeId=540028296155205, Value="供应商", Code="3", Sort=100, Remark="", Status=0 }, |
| | | new SysDictData{Id=540028658511941, TypeId=540028296155205, Value="承运人", Code="4", Sort=100, Remark="", Status=0 }, |
| | | new SysDictData{Id=540028759924805, TypeId=540028296155205, Value="其他", Code="5", Sort=100, Remark="", Status=0 }, |
| | | }; |
| | | } |
| | | } |
| | |
| | | |
| | | new SysDictType{Id=539751788187717, Name="物料ABC分类", Code="abc_class_type", Sort=100, Remark="", Status=0 }, |
| | | |
| | | new SysDictType{Id=539751788187718, Name="往来关系类型", Code="base_customer_type", Sort=100, Remark="", Status=0 }, |
| | | new SysDictType{Id=540028296155205, Name="往来关系类型", Code="base_customer_type", Sort=100, Remark="", Status=0 }, |
| | | }; |
| | | } |
| | | } |
| | |
| | | @:}).FirstOrDefault(); |
| | | @:if (existExcelItem != null) |
| | | @:{ |
| | | @:var @(@Model.CamelizeClassName) = existExcelItem.Adapt<@(@Model.ClassName)>(); |
| | | @:var item= existExcelItem.Adapt<@(@Model.ClassName)>(); |
| | | @:throw Oops.Oh($"导入的表格中@(@message)已存在"); |
| | | @:} |
| | |
| | | @: )); |
| | | @: if (existDBItem != null) |
| | | @:{ |
| | | @:var @(@Model.CamelizeClassName) = existExcelItem.Adapt<@(@Model.ClassName)>(); |
| | | @:var item= existExcelItem.Adapt<@(@Model.ClassName)>(); |
| | | @:var item= existDBItem.Adapt<@(@Model.ClassName)>(); |
| | | @:throw Oops.Oh($"系统中@(@message)已存在"); |
| | | @:} |
| | | } |