Commit ce62fc32 authored by 赵啸非's avatar 赵啸非

修改添加名片相关处理

parent c9a1531e
...@@ -8,25 +8,27 @@ ...@@ -8,25 +8,27 @@
size="50%"> size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="名片所属关联员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入名片所属关联员工ID"/> <Field :span="20" label="所属关联员工" prop="staffId" v-model="form.staffId" type="select" :enumData="dict.staffId" placeholder="请输入名片所属关联员工ID"/>
<Field label="名片所属关联员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入名片所属关联员工姓名"/>
<Field label="名片姓名" prop="name" v-model="form.name" placeholder="请输入名片姓名"/> <Field :span="20" label="名片姓名" prop="name" v-model="form.name" placeholder="请输入名片姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="select" :enumData="dict.gender" placeholder="请选择性别"/> <Field :span="20" label="性别" prop="gender" v-model="form.gender" type="select" :enumData="dict.gender" placeholder="请选择性别"/>
<Field label="出生日期" prop="birthday" v-model="form.birthday" type="date" /> <Field :span="20" label="出生日期" prop="birthday" v-model="form.birthday" type="date" />
<Field label="照片" prop="photoPath" v-model="form.photoPath" type="textarea" placeholder="请输入照片"/> <Field :span="20" label="照片" prop="photoPath" placeholder="请输入照片"><imageUpload v-model="form.photoPath" prePath="/file/preview"/> </Field>
<Field label="邮件地址" prop="email" v-model="form.email" placeholder="请输入邮件地址"/>
<Field label="联系电话" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/>
<Field label="身份证号码" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号码"/> <Field :span="20" label="邮件地址" prop="email" v-model="form.email" placeholder="请输入邮件地址"/>
<Field label="记录名片持有者所在公司或组织的名称ID" prop="companyId" v-model="form.companyId" placeholder="请输入记录名片持有者所在公司或组织的名称ID"/> <Field :span="20" label="联系电话" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/>
<Field label="记录名片持有者所在公司或组织的名称" prop="companyName" v-model="form.companyName" placeholder="请输入记录名片持有者所在公司或组织的名称"/> <Field :span="20" label="身份证号码" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号码"/>
<Field label="职位ID" prop="positionId" v-model="form.positionId" placeholder="请输入职位ID"/> <Field :span="20" label="所在公司" prop="companyId" v-model="form.companyId" type="select" :enumData="dict.companyId" placeholder="请输入记录名片持有者所在公司或组织的名称ID"/>
<Field label="职位名称" prop="positionName" v-model="form.positionName" placeholder="请输入职位名称"/> <Field :span="20" label="职位" prop="positionId" v-model="form.positionId" type="select" :enumData="dict.positionId" placeholder="请输入职位ID"/>
<Field label="简介" prop="bio" v-model="form.bio" type="textarea" placeholder="请输入简介"/>
<Field label="社交媒体链接, 可以是一个包含社交媒体账号的JSON对象或单独的字段" prop="socialMedia" v-model="form.socialMedia" type="textarea" placeholder="请输入社交媒体链接, 可以是一个包含社交媒体账号的JSON对象或单独的字段"/> <Field :span="20" label="简介" prop="bio" v-model="form.bio" type="textarea" placeholder="请输入简介"/>
<Field label="二维码图片, 可以是一个图片链接或存储路径" prop="qRCode" v-model="form.qRCode" type="textarea" placeholder="请输入二维码图片, 可以是一个图片链接或存储路径"/> <Field :span="20" label="社交媒体链接" prop="socialMedia" v-model="form.socialMedia" type="textarea" placeholder="请输入社交媒体链接, 可以是一个包含社交媒体账号的JSON对象或单独的字段"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
<Field label="累计查看次数" prop="sumViews" v-model="form.sumViews" placeholder="请输入累计查看次数"/> <Field :span="20" label="二维码图片" prop="qRCode" placeholder="请输入二维码图片"><imageUpload v-model="form.qRCode" prePath="/file/preview"/> </Field>
<Field label="当日查看次数" prop="viewsByDay" v-model="form.viewsByDay" placeholder="请输入当日查看次数"/>
<Field :span="20" label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row> </el-row>
...@@ -58,16 +60,29 @@ ...@@ -58,16 +60,29 @@
direction:"rtl", direction:"rtl",
toString:[ toString:[
"gender", "gender",
"staffId",
"companyId",
"positionId",
], ],
toDate:[ toDate:[
"birthday", "birthday",
], ],
// 表单校验 // 表单校验
rules: { rules: {
staffId: [
{required: true,message: "请选择员工", trigger: "blur" },
],
name: [ name: [
{required: true,message: "请输入名片姓名", trigger: "blur" }, {required: true,message: "请输入名片姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",}, {max: 64,message: "最多只能录入64个字符",trigger: "blur",},
], ],
companyId: [
{required: true,message: "请选择所在公司", trigger: "blur" },
],
positionId: [
{required: true,message: "请选择职位", trigger: "blur" },
],
} }
}; };
}, },
......
...@@ -50,13 +50,23 @@ ...@@ -50,13 +50,23 @@
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50}, {type: "index",label: "序号",width: 50},
{label: "名片所属关联员工姓名", prop: "staffName"}, {label: "员工姓名", prop: "staffName"},
{label: "名片姓名", prop: "name"}, {label: "名片姓名", prop: "name"},
{label: "性别", prop: "gender",formatter: this.formatter}, {label: "性别", prop: "gender",formatter: this.formatter},
{label: "照片", prop: "photoPath"}, {label: "照片", prop: "photoPath",formatter: (row) => {
return row.photoPath != "" ? (
<el-image
style="width: 70px; height: 70px"
src={row.photoPath}
preview-src-list={[row.photoPath]}
></el-image>
) : (
"--"
);
},},
{label: "邮件地址", prop: "email"}, {label: "邮件地址", prop: "email"},
...@@ -77,4 +87,4 @@ ...@@ -77,4 +87,4 @@
}; };
} }
}; };
</script> </script>
\ No newline at end of file
package com.mortals.xhx.module.bussinesscard.web; package com.mortals.xhx.module.bussinesscard.web;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.company.model.CompanyQuery;
import com.mortals.xhx.module.company.service.CompanyService;
import com.mortals.xhx.module.position.model.PositionQuery;
import com.mortals.xhx.module.position.service.PositionService;
import com.mortals.xhx.module.staff.model.StaffQuery;
import com.mortals.xhx.module.staff.service.StaffService;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.bussinesscard.model.BussinesscardEntity; import com.mortals.xhx.module.bussinesscard.model.BussinesscardEntity;
import com.mortals.xhx.module.bussinesscard.service.BussinesscardService; import com.mortals.xhx.module.bussinesscard.service.BussinesscardService;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils; import com.mortals.framework.util.StringUtils;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import java.util.Arrays; import java.util.Arrays;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*; import static com.mortals.framework.ap.SysConstains.*;
/** /**
* * 名片基本信息
* 名片基本信息 *
* * @author zxfei
* @author zxfei * @date 2023-10-10
* @date 2023-10-10 */
*/
@RestController @RestController
@RequestMapping("bussinesscard") @RequestMapping("bussinesscard")
public class BussinesscardController extends BaseCRUDJsonBodyMappingController<BussinesscardService,BussinesscardEntity,Long> { public class BussinesscardController extends BaseCRUDJsonBodyMappingController<BussinesscardService, BussinesscardEntity, Long> {
@Autowired @Autowired
private ParamService paramService; private ParamService paramService;
@Autowired
private StaffService staffService;
@Autowired
private CompanyService companyService;
@Autowired
private PositionService positionService;
public BussinesscardController(){ public BussinesscardController() {
super.setModuleDesc( "名片基本信息"); super.setModuleDesc("名片基本信息");
} }
@Override @Override
protected void init(Map<String, Object> model, Context context) { protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "gender", paramService.getParamBySecondOrganize("Bussinesscard","gender")); this.addDict(model, "gender", paramService.getParamBySecondOrganize("Bussinesscard", "gender"));
this.addDict(model, "staffId", staffService.find(new StaffQuery()).stream().collect(Collectors.toMap(x -> x.getId().toString(), y -> y.getName(), (o, n) -> n)));
this.addDict(model, "companyId", companyService.find(new CompanyQuery()).stream().collect(Collectors.toMap(x -> x.getId().toString(), y -> y.getCompanyName(), (o, n) -> n)));
this.addDict(model, "positionId", positionService.find(new PositionQuery()).stream().collect(Collectors.toMap(x -> x.getId().toString(), y -> y.getPositionName(), (o, n) -> n)));
super.init(model, context); super.init(model, context);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment