WXL
2024-04-25 f6e08ed9602307f610fc3f0bc3266103dca40c2b
src/views/project/unitCost/particulars/index.vue
@@ -6,17 +6,9 @@
        <el-row>
          <el-col :span="5">
            <el-form-item label="申请日期" prop="createTime">
              <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
                :disabled="true" placeholder="选择出生年月">
              <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd " type="date" :disabled="true"
                placeholder="选择出生年月">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="单据状态" prop="paystatus">
              <el-select v-model="form.paystatus" placeholder="请选择状态">
                <el-option v-for="dict in gatheringlist" :key="dict.label" :label="dict.label"
                  :value="dict.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="5"><el-form-item label="单据编号" prop="paymentno">
@@ -24,41 +16,30 @@
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="经办人" prop="createby">
              <el-input v-model="form.createby" placeholder="请输入姓名" :disabled="true" />
            <el-form-item label="收款状态" prop="paystatus">
              <el-select v-model="form.paystatus" placeholder="请选择状态">
                <el-option v-for="dict in gatheringlist" :key="dict.label" :label="dict.label"
                  :value="dict.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="经办人" prop="userName">
              <el-input v-model="form.userName" placeholder="请输入姓名" :disabled="true" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="5">
            <el-form-item label="收款单位" prop="beneficiary">
              <el-input v-model="form.beneficiary" placeholder="请输入收款单位" />
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item label="收款银行" prop="beneficiarybank">
              <el-input v-model="form.beneficiarybank" placeholder="请输入收款银行" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="收款账号" prop="beneficiaryaccount">
              <el-input v-model="form.beneficiaryaccount" placeholder="请输入收款行号" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="联系信息" prop="remark">
              <el-input v-model="form.remark" placeholder="请输入备注" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="5">
            <el-form-item label="付款医院" prop="hospitalname">
            <el-form-item label="医疗机构" prop="hospitalname">
              <el-input v-model="form.hospitalname" placeholder="请输入付款医院" :disabled="true" />
            </el-form-item>
          </el-col>
          </el-col>
          <el-col :span="5">
            <el-form-item label="应收金额" prop="receivableamount">
              <el-input v-model="form.receivableamount" placeholder="请输入应收金额" :disabled="true" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="实收金额" prop="receivedamount">
              <el-input @blur="chargeSumall" v-model="form.receivedamount" placeholder="请输入实收金额" />
@@ -66,14 +47,16 @@
          </el-col>
          <el-col :span="5">
            <el-form-item label="收款日期" prop="receivedtime">
              <el-date-picker clearable size="small" v-model="form.receivedtime" value-format="yyyy-MM-dd HH:mm:ss"
                type="datetime" placeholder="选择收款日期">
              <el-date-picker clearable size="small" v-model="form.receivedtime" value-format="yyyy-MM-dd " type="date"
                placeholder="选择收款日期">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="应收金额" prop="receivableamount">
              <el-input v-model="form.receivableamount" placeholder="请输入应收金额" :disabled="true" />
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="备注信息" prop="remark">
              <el-input v-model="form.remark" placeholder="请输入备注" />
            </el-form-item>
          </el-col>
        </el-row>
@@ -84,9 +67,9 @@
        <el-row style="margin-top: 10px">
          <el-table :data="donorchargeorgans" ref="table" border max-height="800" highlight-current-row
            :summary-method="getSummaries" show-summary>
            <el-table-column prop="organno" align="center" fixed label="器官编号" width="90">
            <el-table-column prop="donorname" align="center" fixed label="捐献者" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.organno" placeholder="器官编号" :disabled="true" />
                <el-input v-model="scope.row.donorname" placeholder="捐献者" :disabled="true" />
              </template>
            </el-table-column>
            <el-table-column prop="organname" fixed align="center" label="器官名称" width="120">
@@ -94,25 +77,19 @@
                <el-input v-model="scope.row.organname" :disabled="true" placeholder="器官名称" />
              </template>
            </el-table-column>
            <el-table-column label="国家编号" align="center" width="120" prop="caseno">
            <el-table-column prop="organno" align="center" fixed label="器官编号" width="90">
              <template slot-scope="scope">
                <el-input v-model="scope.row.caseno" :disabled="true" placeholder="国家编号" />
                <el-input v-model="scope.row.organno" placeholder="器官编号" :disabled="true" />
              </template>
            </el-table-column>
            <el-table-column prop="hospitalno" align="center" label="接收医院" width="280">
            <el-table-column label="分配系统编号" align="center" width="120" prop="caseno">
              <template slot-scope="scope">
                <!-- <el-input
                    v-model="scope.row.hospitalname"
                    :disabled="true"
                    placeholder="接收医院"
                  /> -->
                <org-selecter ref="tranHosSelect" :org-type="'4'" :disabled="true" v-model="scope.row.hospitalno"
                  style="width: 100%" />
                <el-input v-model="scope.row.caseno" :disabled="true" placeholder="分配系统编号" />
              </template>
            </el-table-column>
            <el-table-column label="受体姓氏" align="center" width="120" prop="name">
              <template slot-scope="scope">
                <el-input v-model="scope.row.name" :disabled="true" placeholder="受体姓氏" />
                <el-input v-model="scope.row.name" placeholder="受体姓氏" />
              </template>
            </el-table-column>
            <el-table-column prop="receiveTime" align="center" label="接收日期" width="200">
@@ -122,7 +99,6 @@
                </el-date-picker>
              </template>
            </el-table-column>
            <el-table-column prop="organcharge" align="center" label="应收金额" width="150">
              <template slot-scope="scope">
                <el-input @blur="chargeSum" v-model="scope.row.organcharge" placeholder="应收金额" />
@@ -133,7 +109,18 @@
                <el-input @blur="chargeSum" v-model="scope.row.amount" placeholder="实收金额" />
              </template>
            </el-table-column>
            <el-table-column prop="organchargedesc" width="280" align="center" label="备注">
              <template slot-scope="scope">
                <el-input type="textarea" :rows="1" v-model="scope.row.organchargedesc" placeholder="备注" />
              </template>
            </el-table-column>
            <!--
            <el-table-column prop="hospitalno" align="center" label="接收医院" width="280">
              <template slot-scope="scope">
                <org-selecter ref="tranHosSelect" :org-type="'4'" :disabled="true" v-model="scope.row.hospitalno"
                  style="width: 100%" />
              </template>
            </el-table-column>
            <el-table-column prop="amounttime" align="center" label="收款日期" width="200">
              <template slot-scope="scope">
                <el-date-picker clearable size="small" style="width: 100%" v-model="scope.row.amounttime" type="date"
@@ -141,11 +128,7 @@
                </el-date-picker>
              </template>
            </el-table-column>
            <el-table-column prop="organchargedesc" width="280" align="center" label="备注">
              <template slot-scope="scope">
                <el-input type="textarea" :rows="1" v-model="scope.row.organchargedesc" placeholder="备注" />
              </template>
            </el-table-column>
            -->
            <el-table-column label="操作" fixed="right" width="260" align="center">
              <template slot-scope="scope">
                <el-button type="text" @click="handleDelete(scope.row)" v-hasPermi="['system:donorcharge:remove']"><span
@@ -165,6 +148,16 @@
      <!-- 添加患者 -->
      <el-dialog title="选择器官和组织" :visible.sync="dialogVisiblepatient" width="70%" :before-close="handleClosehz">
        <div class="examine-jic">
          <div style="margin: 0 10px 20px 10px;">
            <el-card class="box-card">
              <el-tag v-for="item in overallCase" :key="item.id" closable @close="handleClose(item)">
                {{ item.donorname }}
              </el-tag>
              <div style="margin-top: 20px; text-align: right;">
                共选择<span style="font-size: 18px; color: #409EFF;margin: 0 10px;">{{ overallCase.length }}</span>条数据
              </div>
            </el-card>
          </div>
          <div class="jic-value">
            <el-row :gutter="20">
              <!--用户数据-->
@@ -173,11 +166,14 @@
                  <el-input v-model="form.hospitalname" placeholder="请输入付款医院" :disabled="true" />
                </el-form-item>
                <el-form-item label="捐献者" prop="status">
                  <el-input v-model="patientqueryParams.donorname"  @keyup.enter.native="handleAddpatient" placeholder="请输入捐献者姓名"  />
                </el-form-item>
                <!-- <el-form-item label="捐献者" prop="status">
                  <el-select v-model="patientqueryParams.donorchargeid" filterable placeholder="请选择">
                    <el-option v-for="item in donorchargeanlList" :key="item.id" :label="item.name" :value="item.id">
                    </el-option>
                  </el-select>
                </el-form-item>
                </el-form-item> -->
                <el-form-item>
                  <el-button type="primary" icon="el-icon-search" size="medium" @click="handleAddpatient">搜索</el-button>
@@ -193,20 +189,17 @@
        scope.row.donorname
      }}</template>
                </el-table-column>
                <el-table-column prop="organname" label="器官名称" show-overflow-tooltip>
                </el-table-column>
                <el-table-column prop="organno" label="器官编号" width="120">
                </el-table-column>
                <el-table-column prop="caseno" label="国家分配编号" show-overflow-tooltip>
                <el-table-column prop="caseno" label="分配系统编号" show-overflow-tooltip>
                </el-table-column>
                <el-table-column prop="name" label="受体姓氏" show-overflow-tooltip>
                </el-table-column>
                <el-table-column prop="hospitalname" label="接收医院" show-overflow-tooltip>
                <el-table-column prop="receiveTime" label="移植日期" show-overflow-tooltip>
                </el-table-column>
                <el-table-column prop="receiveTime" label="接收日期" show-overflow-tooltip>
                </el-table-column>
                <el-table-column prop="address" label="备注" show-overflow-tooltip>
                <el-table-column prop="organchargedesc" label="备注信息" show-overflow-tooltip>
                </el-table-column>
              </el-table>
            </el-row>
@@ -307,7 +300,7 @@
    Li_area_select,
    pdf
  },
  dicts: ["sys_gathering", "sys_0_1"],
  dicts: ["Collection_status", "sys_0_1"],
  name: "Donorchargemanager",
  data() {
    return {
@@ -346,6 +339,8 @@
        hospitalno: null,
        paymentid: null
      },
      // 总选中数据
      overallCase: [],
      dialogVisiblepatient: false,
      patienttotal: 0, //
      //票据文件
@@ -528,7 +523,6 @@
    handleClosehz() {
      this.dialogVisiblepatient = false;
    },
    handleQuery() { },
    resetQuery() {
      this.patientqueryParams.donorname = null;
      this.patientqueryParams.donorchargeid = null;
@@ -538,13 +532,82 @@
    // 弹框添加
    AddDispatchpatients() {
      this.donorchargeorgans = this.donorchargeorgans.concat(
        this.multipleSelection
        this.overallCase
      );
      this.dialogVisiblepatient = false;
    },
    // 多选框选中数据
    handleSelectionChange(val) {
      this.multipleSelection = val;
    handleSelectionChange(selection) {
      if (this.decision) return;
      // 判断是否有删除
      if (this.multipleSelection.length <= selection.length) {
        this.multipleSelection = selection;
      } else {
        console.log(11);
        this.multipleSelection.forEach(item => {
          if (selection.includes(item)) {
          } else {
            if (this.multipleSelection.length == 1) {
              this.multipleSelection = [];
            } else {
              this.multipleSelection.splice(
                this.multipleSelection.indexOf(item),
                1
              );
            }
            if (this.overallCase.length == 1) {
              this.overallCase = [];
            } else {
              this.overallCase.splice(this.overallCase.indexOf(item), 1);
            }
          }
        });
      }
      // 赋值给整体选中数组
      this.multipleSelection.forEach(item => {
        if (!this.overallCase.includes(item)) {
          this.overallCase.push(item);
        }
      });
      console.log(this.multipleSelection, "触发选择后multipleSelection");
    },
    // 切换页后恢复选中
    Restorecheck() {
      console.log(this.overallCase, "this.overallCase");
      const allid = this.overallCase.map(item => item.id);
      const overlap = this.donorchargeList.filter(value => {
        return allid.includes(value.id);
      });
      // 保持ids和当前页面的同步性
      this.multipleSelection = overlap;
      console.log(this.multipleSelection, "进入分页multipleSelection");
      this.toggleSelection(overlap);
    },
    // 挂载选择状态
    toggleSelection(rows) {
      if (rows) {
        this.decision = true;
        this.$nextTick(() => {
          rows.forEach(row => {
            this.$refs.multipleTable.toggleRowSelection(row, true);
          });
          this.decision = false;
        });
        console.log(123);
      } else {
        this.$refs.multipleTable.clearSelection();
      }
    },
    // 选择人员标签删除事件
    handleClose(item) {
      this.overallCase.splice(this.overallCase.indexOf(item), 1);
      if (this.multipleSelection.indexOf(item) == -1) {
      } else {
        this.multipleSelection.splice(this.multipleSelection.indexOf(item), 1);
        this.$refs.multipleTable.toggleRowSelection(item, false);
        // this.toggleSelection(this.multipleSelection);
      }
    },
    // 点击新增
    handleAddpatient(row) {
@@ -556,7 +619,7 @@
        this.donorchargeList = res.rows;
        this.patienttotal = res.total;
        this.patientqueryParams.paymentidIsNotNull = true;
        console.log(this.donorchargeList);
        this.Restorecheck();
      });
    },
    // 获取请求头
@@ -622,11 +685,7 @@
      });
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // 取消按钮
    cancel() {
@@ -697,6 +756,7 @@
                saveDonorchargeorgan(this.donorchargeorgans).then(res2 => {
                  if (res2.code == 200) {
                    this.$modal.msgSuccess("保存成功!");
                    this.overallCase=[]
                  } else {
                    this.$modal.msgError(res2.msg);
                  }
@@ -718,6 +778,7 @@
                saveDonorchargeorgan(this.donorchargeorgans).then(res2 => {
                  if (res2.code == 200) {
                    this.$modal.msgSuccess("保存成功!");
                    this.overallCase=[]
                  } else {
                    this.$modal.msgError(res2.msg);
                  }
@@ -765,7 +826,7 @@
    handleDelete(row) {
      this.$modal
        .confirm("是否确认删除该条器官费用数据项?")
        .confirm("是否确认删除该条器官的数据项?")
        .then(() => {
          let value = row;
          value.paymentid = null;
@@ -1148,6 +1209,14 @@
  }
}
::v-deep .el-tag--medium {
  height: 28px;
  line-height: 26px;
  margin-right: 15px;
  margin-bottom: 15px;
  font-size: 16px;
}
::v-deep .el-input.is-disabled .el-input__inner {
  background-color: #F5F7FA;
  border-color: #dfe4ed;