WXL
2 天以前 130c07e1f004abfca41718ad58f3d9bb66dcc450
src/views/project/donationdetails/index.vue
@@ -184,6 +184,7 @@
                    ref="getReportname"
                    v-model="form.reporterno"
                    placeholder="请选择"
                    filterable
                  >
                    <el-option
                      v-for="item in reporters"
@@ -444,7 +445,7 @@
            </el-col>
            <el-col :span="10">
              <el-form-item
                label-width="130px"
                label-width="150px"
                label="所在医疗机构科室"
                prop="currentDept"
              >
@@ -463,7 +464,7 @@
            </el-col>
            <el-col :span="10">
              <el-form-item
                label-width="130px"
                label-width="150px"
                label="首次医疗机构科室"
                prop="firstDept"
              >
@@ -640,7 +641,7 @@
          </el-row>
          <el-row>
            <el-col :span="24">
              <el-form-item align="left" label="本人意愿 ">
              <el-form-item align="left" label="本人意愿 " prop="selfwill">
                <el-checkbox-group v-model="form.selfwill">
                  <el-checkbox
                    v-for="dict in dict.type.sys_SelfWill || []"
@@ -959,6 +960,7 @@
                align="left"
              >
                <el-select
                  filterable
                  v-model="medicineform.coreteamassessconclusion"
                  placeholder="请选择核心成员结论"
                >
@@ -1022,7 +1024,11 @@
          <el-row>
            <el-col :span="6">
              <el-form-item label="捐赠者民族" prop="nation">
                <el-select v-model="affirmform.nation" placeholder="请选择民族">
                <el-select
                  filterable
                  v-model="affirmform.nation"
                  placeholder="请选择民族"
                >
                  <el-option
                    v-for="dict in dict.type.sys_nation || []"
                    :key="dict.value"
@@ -1050,6 +1056,7 @@
            <el-col :span="6">
              <el-form-item label="捐赠者职业" prop="occupation">
                <el-select
                  filterable
                  v-model="affirmform.occupation"
                  placeholder="请选择职业"
                >
@@ -1212,6 +1219,7 @@
            <el-col :span="6">
              <el-form-item label="负责人" prop="responsibleuserid">
                <el-select
                  filterable
                  v-model="affirmform.responsibleuserid"
                  placeholder="请选择"
                >
@@ -1230,6 +1238,7 @@
                <el-select
                  v-model="affirmform.coordinateduserido"
                  placeholder="请选择"
                  filterable
                >
                  <el-option
                    v-for="item in coordinatorlist1"
@@ -1246,6 +1255,7 @@
                <el-select
                  v-model="affirmform.coordinateduseridt"
                  placeholder="请选择"
                  filterable
                >
                  <el-option
                    v-for="item in coordinatorlist1"
@@ -1707,159 +1717,168 @@
                  clearable
                  v-model="witnessform.coordinatorSignTime"
                  type="datetime"
                  value-format="yyyy-MM-dd"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  placeholder="选择手术结束时间"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item
                label="腹主动脉:插管时间"
                align="left"
                label-width="140px"
                prop="abdominalaortacannulatime"
              >
                <el-date-picker
                  clearable
                  v-model="witnessform.abdominalaortacannulatime"
                  type="datetime"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  placeholder="选择腹主动脉插管时间"
          <div
            v-if="
              witnessform.abdominalaortacannulatime ||
                witnessform.abdominalaortaperfusiontime ||
                witnessform.pulmonaryarterycannulatime ||
                witnessform.pulmonaryarteryperfusiontime
            "
          >
            <el-row>
              <el-col :span="6">
                <el-form-item
                  label="腹主动脉:插管时间"
                  align="left"
                  label-width="140px"
                  prop="abdominalaortacannulatime"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item
                label="灌注时间"
                align="left"
                label-width="120px"
                prop="abdominalaortaperfusiontime"
              >
                <el-date-picker
                  clearable
                  v-model="witnessform.abdominalaortaperfusiontime"
                  type="datetime"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  placeholder="选择腹主动脉灌注时间"
                  <el-date-picker
                    clearable
                    v-model="witnessform.abdominalaortacannulatime"
                    type="datetime"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    placeholder="选择腹主动脉插管时间"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item
                  label="灌注时间"
                  align="left"
                  label-width="120px"
                  prop="abdominalaortaperfusiontime"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item
                label="门静脉:插管时间"
                align="left"
                label-width="140px"
                prop="portalveincannulatime"
              >
                <el-date-picker
                  clearable
                  v-model="witnessform.portalveincannulatime"
                  type="datetime"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  placeholder="选择门静脉脉插管时间"
                  <el-date-picker
                    clearable
                    v-model="witnessform.abdominalaortaperfusiontime"
                    type="datetime"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    placeholder="选择腹主动脉灌注时间"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item
                  label="门静脉:插管时间"
                  align="left"
                  label-width="140px"
                  prop="portalveincannulatime"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item
                label="灌注时间"
                align="left"
                label-width="120px"
                prop="portalveinperfusiontime"
              >
                <el-date-picker
                  clearable
                  v-model="witnessform.portalveinperfusiontime"
                  type="datetime"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  placeholder="选择门静脉灌注时间"
                  <el-date-picker
                    clearable
                    v-model="witnessform.portalveincannulatime"
                    type="datetime"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    placeholder="选择门静脉脉插管时间"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item
                  label="灌注时间"
                  align="left"
                  label-width="120px"
                  prop="portalveinperfusiontime"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item
                label="肺动脉:插管时间"
                align="left"
                label-width="140px"
                prop="pulmonaryarterycannulatime"
              >
                <el-date-picker
                  clearable
                  v-model="witnessform.pulmonaryarterycannulatime"
                  type="datetime"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  placeholder="选择门静脉插管时间"
                  <el-date-picker
                    clearable
                    v-model="witnessform.portalveinperfusiontime"
                    type="datetime"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    placeholder="选择门静脉灌注时间"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="6">
                <el-form-item
                  label="肺动脉:插管时间"
                  align="left"
                  label-width="140px"
                  prop="pulmonaryarterycannulatime"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item
                label="灌注时间"
                align="left"
                label-width="120px"
                prop="pulmonaryarteryperfusiontime"
              >
                <el-date-picker
                  clearable
                  v-model="witnessform.pulmonaryarteryperfusiontime"
                  type="datetime"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  placeholder="选择门静脉灌注时间"
                  <el-date-picker
                    clearable
                    v-model="witnessform.pulmonaryarterycannulatime"
                    type="datetime"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    placeholder="选择门静脉插管时间"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item
                  label="灌注时间"
                  align="left"
                  label-width="120px"
                  prop="pulmonaryarteryperfusiontime"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item
                label="主动脉:插管时间"
                align="left"
                label-width="140px"
                prop="aortacannulatime"
              >
                <el-date-picker
                  clearable
                  v-model="witnessform.aortacannulatime"
                  type="datetime"
                  value-format="yyyy-MM-dd  HH:mm:ss"
                  placeholder="选择主动脉插管时间"
                  <el-date-picker
                    clearable
                    v-model="witnessform.pulmonaryarteryperfusiontime"
                    type="datetime"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    placeholder="选择门静脉灌注时间"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item
                  label="主动脉:插管时间"
                  align="left"
                  label-width="140px"
                  prop="aortacannulatime"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item
                label="灌注时间"
                align="left"
                label-width="120px"
                prop="aortaperfusiontime"
              >
                <el-date-picker
                  clearable
                  v-model="witnessform.aortaperfusiontime"
                  type="datetime"
                  value-format="yyyy-MM-dd  HH:mm:ss"
                  placeholder="选择主动脉灌注时间"
                  <el-date-picker
                    clearable
                    v-model="witnessform.aortacannulatime"
                    type="datetime"
                    value-format="yyyy-MM-dd  HH:mm:ss"
                    placeholder="选择主动脉插管时间"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item
                  label="灌注时间"
                  align="left"
                  label-width="120px"
                  prop="aortaperfusiontime"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
          </el-row>
                  <el-date-picker
                    clearable
                    v-model="witnessform.aortaperfusiontime"
                    type="datetime"
                    value-format="yyyy-MM-dd  HH:mm:ss"
                    placeholder="选择主动脉灌注时间"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
            </el-row>
          </div>
          <el-row>
            <el-col>
              <el-form-item label-width="100px" label="获取器官">
                <el-checkbox-group v-model="organList.organprocured">
                  <el-checkbox
                    v-for="dict in sysOrganlistL"
                    v-for="dict in dict.type.sys_Organ || []"
                    :key="dict.value"
                    :label="dict.value"
                    @change="changeorganprocured(dict.value)"
@@ -1878,6 +1897,9 @@
                  border
                  :key="tableKey"
                  :data="procureddata"
                  lazy
                  :load="loadRowData"
                  :row-key="row => row.organno"
                >
                  <el-table-column
                    label="器官名称"
@@ -1916,6 +1938,26 @@
                    label="获取开始时间"
                    align="center"
                    width="200"
                    prop="organStartTime"
                  >
                    <template slot-scope="scope">
                      <el-date-picker
                        clearable
                        size="small"
                        style="width: 100%"
                        v-model="scope.row.organStartTime"
                        type="datetime"
                        value-format="yyyy-MM-dd HH:mm:ss"
                        placeholder="请输入获取开始时间"
                      >
                      </el-date-picker>
                    </template>
                  </el-table-column>
                  <el-table-column
                    v-if="organgettimetrue"
                    label="器官离体时间"
                    align="center"
                    width="200"
                    prop="organgettime"
                  >
                    <template slot-scope="scope">
@@ -1926,11 +1968,12 @@
                        v-model="scope.row.organgettime"
                        type="datetime"
                        value-format="yyyy-MM-dd HH:mm:ss"
                        placeholder="请输入获取开始时间"
                        placeholder="请输入器官离体时间"
                      >
                      </el-date-picker>
                    </template>
                  </el-table-column>
                  <el-table-column
                    label="获取医院"
                    align="center"
@@ -1984,6 +2027,7 @@
                      <el-select
                        v-model="scope.row.organstate"
                        placeholder="请选择器官状态"
                        filterable
                      >
                        <el-option
                          v-for="dict in organstatelist"
@@ -2057,6 +2101,7 @@
                <el-select
                  v-model="witnessform.coordinateduserido"
                  placeholder="请选择"
                  filterable
                >
                  <el-option
                    v-for="item in coordinatorlist1"
@@ -2073,6 +2118,7 @@
                <el-select
                  v-model="witnessform.coordinateduseridt"
                  placeholder="请选择"
                  filterable
                >
                  <el-option
                    v-for="item in coordinatorlist1"
@@ -2243,6 +2289,7 @@
                      <el-select
                        v-model="scope.row.transplantstate"
                        placeholder="请选择器官状态"
                        filterable
                      >
                        <el-option
                          v-for="dict in transplantstatelist"
@@ -2299,6 +2346,7 @@
                <el-select
                  v-model="accomplishform.responsibleuserid"
                  placeholder="请选择"
                  filterable
                >
                  <el-option
                    v-for="item in leaderlist"
@@ -2315,6 +2363,7 @@
                <el-select
                  v-model="accomplishform.coordinateduserido"
                  placeholder="请选择"
                  filterable
                >
                  <el-option
                    v-for="item in coordinatorlist1"
@@ -2331,6 +2380,7 @@
                <el-select
                  v-model="accomplishform.coordinateduseridt"
                  placeholder="请选择"
                  filterable
                >
                  <el-option
                    v-for="item in coordinatorlist1"
@@ -2751,6 +2801,7 @@
      kinshiplist: ["配偶", "父亲", "母亲", "子女", "受托人"],
      organselection: [
        "肝脏",
        "双肾",
        "左肾",
        "右肾",
        "心脏",
@@ -2789,6 +2840,7 @@
      allocateddata: [],
      allocateddataform: {},
      procureddata: [],
      organgettimetrue: false,
      transplantdata: [],
      sysOrganlistL: [
        { label: "心脏", value: "C38" },
@@ -2897,6 +2949,12 @@
        ],
        majorrelatives: [
          { required: true, message: "请输入主要亲属", trigger: "blur" }
        ],
        selfwill: [
          { required: true, message: "请选择本人意愿", trigger: "blur" }
        ],
        registerAddresss: [
          { required: true, message: "请输入现所在地", trigger: "blur" }
        ],
        familyrelations: [
          { required: true, message: "请选择亲属与捐献者关系", trigger: "blur" }
@@ -3049,12 +3107,15 @@
    // 监听 procureddata 的变化,数据更新后重新排序
    procureddata: {
      handler(newVal) {
        if (this.procureddata[0].organgettime) {
          this.organgettimetrue = true;
        }
        if (this.isSorting) {
          return;
        }
        this.customOrganSort();
      },
      deep: true // 深度监听,因为数组内容可能变化
      }
      // deep: true // 深度监听,因为数组内容可能变化
    },
    allocateddata: {
      handler(newVal) {
@@ -3062,12 +3123,17 @@
          return;
        }
        this.allocateddataSort();
      },
      deep: true // 深度监听,因为数组内容可能变化
      }
      // deep: true // 深度监听,因为数组内容可能变化
    }
  },
  methods: {
    loadRowData(row, treeNode, resolve) {
      // 只有当行展开或需要时才完整渲染内部组件
      this.$set(row, "loaded", true);
      resolve();
    },
    // 获取主表及附属数据
    Getbasicinformation() {
      // 左侧流程数据
@@ -3155,7 +3221,9 @@
          if (response.code == 200 && response.rows[0]) {
            this.affirmform = response.rows[0];
            if (this.affirmform.organdecision) {
              this.organdecision = this.affirmform.organdecision.split(",");
              this.organdecision = this.affirmform.organdecision
                .split(",")
                .flatMap(item => (item === "双肾脏" ? ["左肾", "右肾"] : item));
            }
            if (this.affirmform.kinship) {
              this.kinship = this.affirmform.kinship.split(",");
@@ -3334,6 +3402,8 @@
      this.$refs["form"].validate(valid => {
        console.log("提交的数据们:", this.form);
        if (valid) {
          console.log(112);
          this.form.birthday = this.$moment(this.form.birthday).format(
            "YYYY-MM-DD HH:mm:ss"
          );
@@ -3420,6 +3490,8 @@
              }
            });
          }
        } else {
          this.$modal.msgError("前部潜在捐献表单信息有缺漏请排查后重新保存");
        }
      });
    },
@@ -3666,6 +3738,7 @@
      // 1. 加锁,阻止监听器执行
      this.isSorting = true;
      this.loading = true;
      // 自定义排序函数
      this.procureddata.sort((a, b) => {
        const indexA = this.organOrder.indexOf(a.organname);
@@ -3692,6 +3765,7 @@
      this.procureddata = [...this.procureddata];
      this.$nextTick(() => {
        this.isSorting = false;
        this.loading = false;
      });
    },
    allocateddataSort() {