11
WXL
2024-08-14 0ac2d43fce4d74f6eea5a51a2e16af4e6a536c7c
src/views/project/unitCost/particulars/index.vue
@@ -6,49 +6,81 @@
        <el-row>
          <el-col :span="5">
            <el-form-item label="申请日期" prop="createTime">
              <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd " type="date" :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="paymentno">
          <el-col :span="5"
            ><el-form-item label="单据编号" prop="paymentno">
              <el-input v-model="form.paymentno" placeholder="请输入收款单号" />
            </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-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-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="hospitalname">
              <el-input v-model="form.hospitalname" placeholder="请输入付款医院" :disabled="true" />
              <el-input
                v-model="form.hospitalname"
                placeholder="请输入付款医院"
                :disabled="true"
              />
            </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-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="请输入实收金额" />
              <el-input
                @blur="chargeSumall"
                v-model="form.receivedamount"
                placeholder="请输入实收金额"
              />
            </el-form-item>
          </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 " type="date"
                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>
@@ -62,56 +94,158 @@
        </el-row>
        <div class="headlines">
          <div>移植器官(包含组织)明细</div>
          <el-button type="primary" @click="handleAddpatient">新增移植器官(包含组织)</el-button>
          <el-button type="primary" @click="handleAddpatient"
            >新增移植器官(包含组织)</el-button
          >
        </div>
        <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="donorname" align="center" fixed label="捐献者" width="120">
          <el-table
            :data="donorchargeorgans"
            ref="table"
            border
            max-height="800"
            highlight-current-row
            :summary-method="getSummaries"
            show-summary
          >
            <el-table-column
              prop="index"
              fixed
              align="center"
              label="序号"
              width="50"
            />
            <el-table-column
              prop="donorname"
              align="center"
              fixed
              label="捐献者"
              width="120"
            >
              <template slot-scope="scope">
                <el-input v-model="scope.row.donorname" 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">
            <el-table-column
              prop="organname"
              fixed
              align="center"
              label="器官名称"
              width="120"
            >
              <template slot-scope="scope">
                <el-input v-model="scope.row.organname" :disabled="true" placeholder="器官名称" />
                <el-input
                  v-model="scope.row.organname"
                  :disabled="true"
                  placeholder="器官名称"
                />
              </template>
            </el-table-column>
            <el-table-column prop="organno" align="center" fixed label="器官编号" width="90">
            <el-table-column
              prop="organno"
              align="center"
              fixed
              label="器官编号"
              width="90"
            >
              <template slot-scope="scope">
                <el-input v-model="scope.row.organno" placeholder="器官编号" :disabled="true" />
                <el-input
                  v-model="scope.row.organno"
                  placeholder="器官编号"
                  :disabled="true"
                />
              </template>
            </el-table-column>
            <el-table-column label="分配系统编号" align="center" width="120" prop="caseno">
            <el-table-column
              label="分配系统编号"
              align="center"
              width="120"
              prop="caseno"
            >
              <template slot-scope="scope">
                <el-input v-model="scope.row.caseno" :disabled="true" placeholder="分配系统编号" />
                <el-input
                  v-model="scope.row.caseno"
                  :disabled="true"
                  placeholder="分配系统编号"
                />
              </template>
            </el-table-column>
            <el-table-column label="受体姓氏" align="center" width="120" prop="name">
            <el-table-column
              label="受体姓氏"
              align="center"
              width="120"
              prop="name"
            >
              <template slot-scope="scope">
                <el-input v-model="scope.row.name" placeholder="受体姓氏" />
              </template>
            </el-table-column>
            <el-table-column prop="receiveTime" align="center" label="接收日期" width="200">
            <el-table-column
              prop="receiveTime"
              align="center"
              label="接收日期"
              width="200"
            >
              <template slot-scope="scope">
                <el-date-picker clearable size="small" style="width: 100%" v-model="scope.row.receiveTime"
                  :disabled="true" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="接收日期">
                <el-date-picker
                  clearable
                  size="small"
                  style="width: 100%"
                  v-model="scope.row.receiveTime"
                  :disabled="true"
                  type="date"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  placeholder="接收日期"
                >
                </el-date-picker>
              </template>
            </el-table-column>
            <el-table-column prop="organcharge" align="center" label="应收金额" width="150">
            <el-table-column
              prop="organcharge"
              align="center"
              label="应收金额"
              width="150"
            >
              <template slot-scope="scope">
                <el-input @blur="chargeSum" v-model="scope.row.organcharge" placeholder="应收金额" />
                <el-input
                  @blur="chargeSum"
                  v-model="scope.row.organcharge"
                  placeholder="应收金额"
                />
              </template>
            </el-table-column>
            <el-table-column prop="amount" align="center" label="实收金额" width="150">
            <el-table-column
              prop="amount"
              align="center"
              label="实收金额"
              width="150"
            >
              <template slot-scope="scope">
                <el-input @blur="chargeSum" v-model="scope.row.amount" placeholder="实收金额" />
                <el-input
                  @blur="chargeSum"
                  v-model="scope.row.amount"
                  placeholder="实收金额"
                />
              </template>
            </el-table-column>
            <el-table-column prop="organchargedesc" width="280" align="center" label="备注">
            <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="备注" />
                <el-input
                  type="textarea"
                  :rows="1"
                  v-model="scope.row.organchargedesc"
                  placeholder="备注"
                />
              </template>
            </el-table-column>
            <!--
@@ -129,44 +263,91 @@
              </template>
            </el-table-column>
            -->
            <el-table-column label="操作" fixed="right" width="260" align="center">
            <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
                    class="button-delete"><i class="el-icon-delete"></i>删除</span></el-button>
                <el-button type="text" icon="el-icon-folder-opened" @click="Filepopup(scope.$index, scope.row)"
                  v-hasPermi="['system:donorcharge:edit']">附件</el-button>
                <el-button
                  type="text"
                  @click="handleDelete(scope.row)"
                  v-hasPermi="['system:donorcharge:remove']"
                  ><span class="button-delete"
                    ><i class="el-icon-delete"></i>删除</span
                  ></el-button
                >
                <el-button
                  type="text"
                  icon="el-icon-folder-opened"
                  @click="Filepopup(scope.$index, scope.row)"
                  v-hasPermi="['system:donorcharge:edit']"
                  >附件</el-button
                >
              </template>
            </el-table-column>
          </el-table>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="success" @click="submitForm" v-if="operationType == 'add' || operationType == 'update'">保
          存</el-button>
        <el-button
          type="success"
          @click="submitForm"
          v-if="operationType == 'add' || operationType == 'update'"
          >保 存</el-button
        >
        <el-button type="info" @click="cancel">关闭</el-button>
      </div>
      <!-- 添加患者 -->
      <el-dialog title="选择器官和组织" :visible.sync="dialogVisiblepatient" width="70%" :before-close="handleClosehz">
      <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)">
              <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>条数据
                共选择<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">
              <!--用户数据-->
              <el-form :model="patientqueryParams" ref="queryForm" size="small" :inline="true" label-width="98px">
              <el-form
                :model="patientqueryParams"
                ref="queryForm"
                size="small"
                :inline="true"
                label-width="98px"
              >
                <el-form-item label="接收医院" prop="status">
                  <el-input v-model="form.hospitalname" placeholder="请输入付款医院" :disabled="true" />
                  <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-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="请选择">
@@ -176,75 +357,173 @@
                </el-form-item> -->
                <el-form-item>
                  <el-button type="primary" icon="el-icon-search" size="medium" @click="handleAddpatient">搜索</el-button>
                  <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
                  <el-button
                    type="primary"
                    icon="el-icon-search"
                    size="medium"
                    @click="handleAddpatient"
                    >搜索</el-button
                  >
                  <el-button
                    icon="el-icon-refresh"
                    size="medium"
                    @click="resetQuery"
                    >重置</el-button
                  >
                </el-form-item>
              </el-form>
              <!-- 选择器官列表 -->
              <el-table ref="multipleTable" :data="donorchargeList" tooltip-effect="dark" style="width: 100%"
                @selection-change="handleSelectionChange">
              <el-table
                ref="multipleTable"
                :data="donorchargeList"
                tooltip-effect="dark"
                style="width: 100%"
                @selection-change="handleSelectionChange"
              >
                <el-table-column type="selection" width="55"> </el-table-column>
                <el-table-column label="捐献者" width="120">
                  <template slot-scope="scope">{{
        scope.row.donorname
      }}</template>
                    scope.row.donorname
                  }}</template>
                </el-table-column>
                <el-table-column prop="organname" label="器官名称" show-overflow-tooltip>
                <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
                  prop="name"
                  label="受体姓氏"
                  show-overflow-tooltip
                >
                </el-table-column>
                <el-table-column prop="receiveTime" label="移植日期" show-overflow-tooltip>
                <el-table-column
                  prop="receiveTime"
                  label="移植日期"
                  show-overflow-tooltip
                >
                </el-table-column>
                <el-table-column prop="organchargedesc" label="备注信息" show-overflow-tooltip>
                <el-table-column
                  prop="organchargedesc"
                  label="备注信息"
                  show-overflow-tooltip
                >
                </el-table-column>
              </el-table>
            </el-row>
            <pagination v-show="patienttotal > 0" :total="patienttotal" :page.sync="patientqueryParams.pageNum"
              :limit.sync="patientqueryParams.pageSize" @pagination="handleAddpatient" />
            <pagination
              v-show="patienttotal > 0"
              :total="patienttotal"
              :page.sync="patientqueryParams.pageNum"
              :limit.sync="patientqueryParams.pageSize"
              @pagination="handleAddpatient"
            />
          </div>
        </div>
        <span slot="footer" class="dialog-footer">
          <el-button @click="dialogVisiblepatient = false">取 消</el-button>
          <el-button type="primary" @click="AddDispatchpatients">确定添加</el-button>
          <el-button type="primary" @click="AddDispatchpatients"
            >确定添加</el-button
          >
        </span>
      </el-dialog>
      <!-- 附件弹窗 -->
      <el-dialog v-dialogDrags :modal="false" :close-on-click-modal="false" :title="pdftitle" :visible.sync="pdfVisible"
        width="60%">
      <el-dialog
        v-dialogDrags
        :modal="false"
        :close-on-click-modal="false"
        :title="pdftitle"
        :visible.sync="pdfVisible"
        width="60%"
      >
        <div class="pdfimg">
          <div class="box-pdf">
            <div>
              <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileListto"
                :show-file-list="false" multiple drag :headers="headers" :on-success="(response, file, fileList) =>
        uploadSccess(response, file, fileList)
        " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError"
                :on-remove="remove" accept="image/*,.pdf">
              <el-upload
                size="mini"
                class="upload-demo"
                :action="uploadFileUrl"
                :file-list="fileListto"
                :show-file-list="false"
                multiple
                drag
                :headers="headers"
                :on-success="
                  (response, file, fileList) =>
                    uploadSccess(response, file, fileList)
                "
                :on-preview="downFile"
                :disabled="operationType == 'detail'"
                :on-error="handleUploadError"
                :on-remove="remove"
                accept="image/*,.pdf"
              >
                <i class="el-icon-upload"></i>
                <div class="el-upload__text">
                  将票据拖到此处,或
                  <em><el-button :disabled="operationType == 'detail'" size="small" type="primary">点击上传</el-button></em>
                  <em
                    ><el-button
                      :disabled="operationType == 'detail'"
                      size="small"
                      type="primary"
                      >点击上传</el-button
                    ></em
                  >
                </div>
              </el-upload>
              <el-table :data="fileListto" @row-click="downFile" style="width: 100%" height="400">
                <el-table-column prop="name" :show-overflow-tooltip="true" label="名称">
              <el-table
                :data="fileListto"
                @row-click="downFile"
                style="width: 100%"
                height="400"
              >
                <el-table-column
                  prop="name"
                  :show-overflow-tooltip="true"
                  label="名称"
                >
                  <template slot-scope="scope">
                    <i style="color:#409EFF" class=" el-icon-s-order" />
                    <span>{{ scope.row.name }}</span>
                  </template>
                </el-table-column>
                <el-table-column prop="name" width="190" :show-overflow-tooltip="true" label="功能">
                <el-table-column
                  prop="name"
                  width="190"
                  :show-overflow-tooltip="true"
                  label="功能"
                >
                  <template slot-scope="scope">
                    <el-button type="danger" size="mini" @click="deletedowfile(scope.row)">删除</el-button>
                    <el-button
                      type="danger"
                      size="mini"
                      @click="deletedowfile(scope.row)"
                      >删除</el-button
                    >
                    <el-button type="primary" size="mini"
                      @click.native.prevent.stop="moveupdowfile(scope.row)">上移</el-button>
                    <el-button type="success" size="mini" icon="el-icon-search" circle
                      @click.native.prevent.stop="Downloadfile(scope.row)"></el-button>
                    <el-button
                      type="primary"
                      size="mini"
                      @click.native.prevent.stop="moveupdowfile(scope.row)"
                      >上移</el-button
                    >
                    <el-button
                      type="success"
                      size="mini"
                      icon="el-icon-search"
                      circle
                      @click.native.prevent.stop="Downloadfile(scope.row)"
                    ></el-button>
                  </template>
                </el-table-column>
              </el-table>
@@ -253,7 +532,11 @@
          <div v-if="this.previewpdf && pdfimgsrcList.length" class="pdfimgmin">
            <!-- <img :src="pdfimg" /> -->
            <el-image style="width: 95%; height: 90%" :src="pdfimg" :preview-src-list="pdfimgsrcList">
            <el-image
              style="width: 95%; height: 90%"
              :src="pdfimg"
              :preview-src-list="pdfimgsrcList"
            >
              <!-- <div slot="error" class="image-slot">
                <i class="el-icon-picture-outline"></i>
              </div> -->
@@ -507,7 +790,7 @@
      if (
        (JSON.stringify(this.form) == sessionStorage.getItem("apiform") &&
          JSON.stringify(this.donorchargeorgans) ==
          sessionStorage.getItem("apifunddetail")) ||
            sessionStorage.getItem("apifunddetail")) ||
        !sessionStorage.getItem("apifunddetail")
      ) {
      } else {
@@ -528,13 +811,12 @@
      this.patientqueryParams.donorchargeid = null;
      this.handleAddpatient();
    },
    handleUploadError() { },
    handleUploadError() {},
    // 弹框添加
    AddDispatchpatients() {
      this.donorchargeorgans = this.donorchargeorgans.concat(
        this.overallCase
      );
      this.donorchargeorgans = this.donorchargeorgans.concat(this.overallCase);
      this.dialogVisiblepatient = false;
      this.sortfun();
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
@@ -615,6 +897,7 @@
      this.patientqueryParams.hospitalno = this.form.hospitalno;
      this.patientqueryParams.paymentid = null;
      this.patientqueryParams.paymentidIsNotNull = false;
      this.patientqueryParams.pageSize = 10;
      listDonorchargeorgan(this.patientqueryParams).then(res => {
        this.donorchargeList = res.rows;
        this.patienttotal = res.total;
@@ -685,8 +968,6 @@
      });
    },
    // 取消按钮
    cancel() {
      this.$store.dispatch("tagsView/delView", this.$route);
@@ -715,9 +996,11 @@
      listDonorpayment({ id: this.curId }).then(response => {
        this.form = response.rows[0];
        //器官费用信息
        this.patientqueryParams.pageSize = 1000;
        listDonorchargeorgan(this.patientqueryParams).then(res => {
          console.log("listDonorchargeorgan", res);
          this.donorchargeorgans = res.rows;
          this.sortfun();
          console.log(this.donorchargeorgans, "donorchargeorgans");
        });
      });
@@ -730,9 +1013,11 @@
        this.title = "查看捐献案例器官费用表";
        this.form = response.rows[0];
        //器官费用信息
        this.patientqueryParams.pageSize = 1000;
        listDonorchargeorgan(this.patientqueryParams).then(res => {
          console.log("listDonorchargeorgan", res);
          this.donorchargeorgans = res.rows;
          this.sortfun();
          console.log(this.donorchargeorgans, "donorchargeorgans");
        });
      });
@@ -756,7 +1041,7 @@
                saveDonorchargeorgan(this.donorchargeorgans).then(res2 => {
                  if (res2.code == 200) {
                    this.$modal.msgSuccess("保存成功!");
                    this.overallCase=[]
                    this.overallCase = [];
                  } else {
                    this.$modal.msgError(res2.msg);
                  }
@@ -778,7 +1063,7 @@
                saveDonorchargeorgan(this.donorchargeorgans).then(res2 => {
                  if (res2.code == 200) {
                    this.$modal.msgSuccess("保存成功!");
                    this.overallCase=[]
                    this.overallCase = [];
                  } else {
                    this.$modal.msgError(res2.msg);
                  }
@@ -821,7 +1106,7 @@
        }
        this.form.receivableamount = ChargeSum.toFixed(2);
        this.form.receivedamount = ChargeamountSum.toFixed(2);
      } catch { }
      } catch {}
    },
    handleDelete(row) {
@@ -836,11 +1121,12 @@
            if (res2.code == 200) {
              let index = this.donorchargeorgans.indexOf(row);
              this.donorchargeorgans.splice(index, 1);
              this.sortfun();
              this.$modal.msgSuccess("删除成功!");
            }
          });
        })
        .catch(() => { });
        .catch(() => {});
    },
    //表格合计
@@ -1072,6 +1358,12 @@
    },
    Downloadfile(row) {
      window.location.href = row.url;
    },
    // 排序
    sortfun() {
      this.donorchargeorgans.forEach((item, index) => {
        item.index = index + 1;
      });
    }
  }
};
@@ -1218,7 +1510,7 @@
}
::v-deep .el-input.is-disabled .el-input__inner {
  background-color: #F5F7FA;
  background-color: #f5f7fa;
  border-color: #dfe4ed;
  color: #000000;
  cursor: not-allowed;
@@ -1234,4 +1526,4 @@
  font-size: 20px;
  line-height: 20px;
}
</style>
</style>