|
|
<template> <div> <div style="display: flex;"> <div :style="'width:' + (window.pageWidth - 200 - 120 - 90) + 'px;'"> <el-table :data="customerOrg.contactPersonList" border :height="(window.pageHeight < 600 ? 54:window.pageHeight - 492)/2" size="small" highlight-current-row @row-click="rowClick" ref="customerOrg.contactPersonList"> <el-table-column prop="displayName" label="姓名" /> <el-table-column prop="title" label="职务" /> <el-table-column prop="remark" label="备注" /> <el-table-column prop="creatorName" label="创建者" width="" /> <el-table-column prop="creationTime" label="创建时间" width="180"> <template slot-scope="scope"> <div v-if="scope.row.creationTime"> {{ moment(scope.row.creationTime).format('yyyy-MM-DD HH:mm:ss') }} </div> </template> </el-table-column> <el-table-column prop="lastModifierName" label="修改者" /> <el-table-column prop="lastModificationTime" label="修改时间" width="180"> <template slot-scope="scope"> <div v-if="scope.row.lastModificationTime"> {{ moment(scope.row.lastModificationTime).format('yyyy-MM-DD HH:mm:ss') }} </div> </template> </el-table-column> </el-table>
<el-table :data="customerOrg.contactMethodList" border :height="(window.pageHeight < 600 ? 54:window.pageHeight - 492)/2" size="small" highlight-current-row @row-click="rowClickMethod" ref="customerOrg.contactMethodList"> <el-table-column prop="contactMethodType" label="类型"> <template slot-scope="scope"> <div> {{ scope.row.contactMethodType === "0" ? "手机" : "邮箱" }} </div> </template> </el-table-column> <el-table-column prop="contactMethodValue" label="联系方式" width="150"/> <el-table-column prop="creatorName" label="创建者" width="" /> <el-table-column prop="creationTime" label="创建时间" width="180"> <template slot-scope="scope"> <div v-if="scope.row.creationTime"> {{ moment(scope.row.creationTime).format('yyyy-MM-DD HH:mm:ss') }} </div> </template> </el-table-column> <el-table-column prop="lastModifierName" label="修改者" /> <el-table-column prop="lastModificationTime" label="修改时间" width="180"> <template slot-scope="scope"> <div v-if="scope.row.lastModificationTime"> {{ moment(scope.row.lastModificationTime).format('yyyy-MM-DD HH:mm:ss') }} </div> </template> </el-table-column> </el-table> </div> <div style="margin-left: 10px; margin-top: 20px"> <div style="margin-top: 10px"> <el-button type="primary" @click="add" class="btnClass">新增</el-button> </div> <div style="margin-top: 10px"> <el-button type="success" @click="edit" class="btnClass">编辑</el-button> </div> <div style="margin-top: 10px"> <el-button type="danger" @click="del" class="btnClass">删除</el-button> </div> </div> </div> <!-- 联系人 --> <el-dialog :title="formTitle" :visible.sync="dialogContactPerson" width="800px"> <el-form :model="form" ref="form" label-width="70px" :rules="rules" style="margin-top: -30px;"> <el-row> <el-col :span="12"> <el-form-item prop="displayName" label="联系人"> <el-input v-model="form.displayName" size="small"></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="职务"> <el-input v-model="form.title" size="small"></el-input> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="备注"> <el-input type="textarea" v-model="form.remark" size="small" maxlength="50" show-word-limit></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="5"> <el-form-item label="创建者"> <el-input v-model="form.creatorName" disabled size="small"></el-input> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="创建时间" label-width="80px" style="margin-left:-10px;"> <el-date-picker v-model="form.creationTime" type="datetime" size="small" style="width: 100%" disabled /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="修改者" > <el-input v-model="form.creatorName" disabled size="small"></el-input> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="修改时间" label-width="80px" style="margin-left:-10px;"> <el-date-picker v-model="form.lastModificationTime" type="datetime" size="small" style="width: 100%" disabled /> </el-form-item> </el-col> </el-row> <el-table :data="customerOrg.contactMethodList" border height="300" row-key="id" size="small" highlight-current-row ref="contactMethod" style="margin-top: 20px;"> <el-table-column prop="contactMethodType" label="类型" width="200"> <template slot-scope="scope"> <el-select v-model="scope.row.contactMethodType" size="small"> <el-option v-for="item in Methodtypes" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </template> </el-table-column> <el-table-column prop="contactMethodValue" label="联系方式"> <template slot-scope="scope"> <el-input v-model="scope.row.contactMethodValue" required size="small" /> </template> </el-table-column> <el-table-column fixed="right" label="操作" width="60" align="center"> <template slot-scope="scope"> <i class="el-icon-delete" @click="deleteRow(scope.$index)" style="font-size: 24px;color: red;cursor:pointer;"></i> </template> </el-table-column> </el-table> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="dialogContactPerson = false">取 消</el-button> <el-button type="success" @click="addMethod">新增联系方式</el-button> <el-button type="primary" @click="submit('form')">确 定</el-button> </span> </el-dialog> </div></template><script>import moment from "moment";import { mapState } from "vuex";import { getapi, postapi, putapi, deletapi } from "@/api/api";import { objCopy } from "../../utlis/proFunc";export default { components: {}, data() { return { personId: "", form: {}, //联系人表单信息
formTitle: "新增", dialogContactPerson: false, //联系人弹窗 显示控制
Methodtypes: [ //{ value: '',label: '所有订单状态' },
{ value: "0", label: "电话" }, { value: "1", label: "邮箱" }, ],
rules: { displayName: [ { required: true, message: "请输入名称", trigger: "blur" }, ], }, }; },
created() { },
//挂载完成
mounted() { },
computed: { ...mapState(["window", "customerOrg"]), },
methods: { moment, //获取联系人列表
getContactPersonList(customerOrgId) { getapi( `/api/app/contact-person/in-customer-org-id/${customerOrgId}` ).then((res) => { //console.log('res.data',res.data)
this.customerOrg.contactPersonList = res.data; }); },
//获取联系方式列表
//api/app/contact-method/in-contact-person-id?ContactPersonId=3a0c08ad-4304-138b-d9e6-a7338739dfc4' \
getContactMethodList(ContactPersonId) { getapi("/api/app/contact-method/in-contact-person-id", { ContactPersonId, }).then((res) => { //console.log('res.data',res.data)
this.customerOrg.contactMethodList = res.data; }); },
//联系人 相关操作
add() { //this.$message.success("新增 addContactPerson");
if (!this.customerOrg.customerOrgId) { alert("没有体检单位信息"); return; } this.form = { customerOrgId: this.customerOrg.customerOrgId }; this.dialogContactPerson = true; this.formTitle = "新增"; this.personId = ""; this.customerOrg.contactMethodList = []; },
edit() { //this.$message.success("编辑 editContactPerson");
if (!this.customerOrg.customerOrgId) { alert("没有体检单位信息"); return; } else if (!this.personId) { alert("请先选择要编辑的联系人"); return; } this.dialogContactPerson = true; this.formTitle = "编辑"; },
//删除联系人行
del() { //this.$message.success("删除 delContactPerson");
if (!this.personId) { alert("请先选择要编辑的联系人"); return; }
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", { confirmButtonText: "是", cancelButtonText: "否", type: "warning", }).then(() => { //console.log('{patientRegisterIds}',{patientRegisterIds})
return deletapi(`/api/app/contact-person/${this.personId}`); }).then((res) => { if(res.code != -1) { this.personId = ""; this.getContactPersonList(this.customerOrg.customerOrgId); this.customerOrg.contactMethodList = []; this.$message.success("操作成功!"); } }).catch((err) => { console.log(`deletapi:/api/app/contact-person/${this.personId}`,err); }); },
//删除联系方式行
deleteRow(index) { this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", { confirmButtonText: "是", cancelButtonText: "否", type: "warning", }).then(() => { this.customerOrg.contactMethodList.splice(index, 1); this.submit('form'); }).catch((err) => { if(err == 'cancel'){ this.$message.info("已取消删除"); }else{ this.$message.error("操作失败,原因:" + err); } }); },
//联系人信息提交
submit(formName) { let body = { customerOrgId: "", displayName: "", title: "", remark: "", }; this.$refs[formName].validate((valid, failField) => { if (valid) { objCopy(this.form, body); console.log("body", body); if (this.formTitle === "新增") { postapi("/api/app/contact-person", body) .then((res) => { //console.log('api/app/contact-person')
this.personId = res.data.id; this.formTitle = "编辑"; return deletapi(`/api/app/contact-method/many/${this.personId}`); }) .then((res) => { //console.log(`deletapi api/app/contact-method/${this.personId}`)
let contactMethod = []; //联系方式form表单数据
this.customerOrg.contactMethodList.forEach((item, index) => { contactMethod.push({ contactMethodValue: item.contactMethodValue, contactMethodType: item.contactMethodType, contactPersonId: this.personId, }); }); if(contactMethod.length > 0) return postapi("/api/app/contact-method/many", contactMethod); }) .then((res) => { //console.log('api/app/contact-method/many')
this.getContactPersonList(this.customerOrg.customerOrgId); this.$message.success("操作成功!"); }); } else { putapi(`/api/app/contact-person/${this.personId}`, body) .then((res) => { //console.log(`/api/app/contact-person/${this.personId}`)
return deletapi(`/api/app/contact-method/many/${this.personId}`); }) .then((res) => { console.log(`deletapi api/app/contact-method/${this.personId}`); let contactMethod = []; //联系方式form表单数据
this.customerOrg.contactMethodList.forEach((item, index) => { contactMethod.push({ contactMethodValue: item.contactMethodValue, contactMethodType: item.contactMethodType, contactPersonId: this.personId, }); }); if(contactMethod.length > 0) return postapi("/api/app/contact-method/many", contactMethod); }) .then((res) => { //console.log('api/app/contact-method/many')
this.getContactPersonList(this.customerOrg.customerOrgId); this.$message.success("操作成功!"); }); } } else { //console.log('failField',failField)
this.$message.warning("未通过数据校验!"); return false; } }) },
//新增联系方式
addMethod() { this.customerOrg.contactMethodList.push({ contactMethodValue: "", contactMethodType: "0", contactPersonId: this.personId, }); },
rowClick(row) { console.log("row", row); // this.$message.success("rowClick");
this.form = row; this.personId = row.id; this.getContactMethodList(row.id); },
rowClickMethod(row) { //this.$message.success("rowClickMethod");
}, },};</script><style scoped>.btnClass { width: 110px;}::v-deep .el-form-item { margin-bottom: 2px;}::v-deep .el-input__inner { /*text-align: center;*/ padding-left: 2px; padding-right: 15px;}::v-deep .el-input__icon{ width: 15px; /* 输入框下拉箭头或清除图标 默认 25 */}
/* 表格 表头 列间距控制 */::v-deep .el-table th.el-table__cell>.cell{ text-align: center; /* 表格 表头 对齐方式,默认 left */ padding-right: 2px; /* 表格 表头 列间距控制,默认 10px */ padding-left: 2px; /* 表格 表头 列间距控制,默认 10px */}
/* 表格 表体 首列左间距控制 */::v-deep .el-table--border .el-table__cell:first-child .cell { padding-left: 2px; /* 表格 表体 首列左间距控制,默认 10px */}
/* 表格 行列间距控制 ,默认 10 px*/::v-deep .el-table__cell { padding: 2px 2px 2px 2px; /* 上,右,下,左 */}
/* 表格单元格 .el-table .cell ,默认 10 px*/::v-deep .cell { padding-left: 2px; padding-right: 2px;}
::v-deep .el-icon-date:before { content: ""}</style>
|