| 
						 | 
						<template>  <div>    <div :style="customerOrg.orgDetailStyle">      <div :style="'width:'+(window.pageWidth - 200 - 120 - 70)+'px;'">        <el-table          :data="customerOrg.contactPersonList"          border                    :height="Math.floor(customerOrg.orgDetailHeight/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="200">            <template slot-scope="scope">              {{ scope.row.creationTime | dateFormat }}            </template>          </el-table-column>          <el-table-column prop="lastModifierName" label="修改者" />          <el-table-column            prop="lastModificationTime"            label="修改时间"            width="200"          >            <template slot-scope="scope">              {{ scope.row.lastModificationTime | dateFormat }}            </template>          </el-table-column>        </el-table>        <el-table          :data="customerOrg.contactMethodList"          border          :height="Math.floor(customerOrg.orgDetailHeight/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="联系方式" />          <el-table-column prop="creatorName" label="创建者" width="" />          <el-table-column prop="creationTime" label="创建时间" width="200">            <template slot-scope="scope">              {{ scope.row.creationTime | dateFormat }}            </template>          </el-table-column>          <el-table-column prop="lastModifierName" label="修改者" />          <el-table-column            prop="lastModificationTime"            label="修改时间"            width="200"          >            <template slot-scope="scope">              {{ scope.row.lastModificationTime | dateFormat }}            </template>          </el-table-column>        </el-table>      </div>      <div style="margin-left: 10px; margin-top: 40px">        <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="100px" :rules="rules">        <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="创建时间" style="margin-left: -5%">              <el-input                :value="form.creationTime | dateFormat"                disabled                style="width: 90%"                size="small" ></el-input>            </el-form-item>          </el-col>          <el-col :span="5">            <el-form-item label="修改者" style="margin-left: -25%">              <el-input v-model="form.creatorName" disabled size="small" ></el-input>            </el-form-item>          </el-col>          <el-col :span="7">            <el-form-item label="修改时间" style="margin-left: -5%">              <el-input                :value="form.lastModificationTime | dateFormat"                disabled                style="width: 90%"                size="small" ></el-input>            </el-form-item>          </el-col>        </el-row>        <el-divider />        <el-table          :data="customerOrg.contactMethodList"          border          height="300"          row-key="id"          size="small"                    highlight-current-row          ref="contactMethod"        >          <el-table-column prop="contactMethodType" label="类型">            <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">            <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 { 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: {    //获取联系人列表
    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;      }      deletapi(`/api/app/contact-person/${this.personId}`).then((res) => {        this.personId = "";        this.getContactPersonList(this.customerOrg.customerOrgId);        this.customerOrg.contactMethodList = [];        this.$message.success("操作成功!");      });    },
    //删除联系方式行
    deleteRow(index) {      this.customerOrg.contactMethodList.splice(index, 1);    },
    //联系人信息提交
    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,                  });                });                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,                  });                });                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;}</style>
  |