11
WXL
2024-01-07 8324c778ee797ea5a844614c47d93bdacf3ffeab
src/views/project/fund/performancedetails/index.vue
@@ -6,14 +6,15 @@
      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
        <el-row>
          <el-col :span="5">
            <el-form-item label="申请日期" prop="createTime">
            <el-form-item label="申请日期" prop="applyTime">
              <el-date-picker
                clearable
                style="width: 100%"
                v-model="form.createTime"
                v-model="form.applyTime"
                type="date"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="申请日期"
                disabled="true"
              >
              </el-date-picker>
            </el-form-item>
@@ -59,23 +60,6 @@
        </el-row>
        <el-row>
          <el-col :span="5">
            <el-form-item label="申请单类型">
              <el-select
                v-model="form.performancetype"
                filterable
                placeholder="请选择申请单状态"
              >
                <el-option
                  v-for="item in PerformanceType"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                >
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="联系电话" prop="phone">
              <el-input v-model="form.phone" placeholder="请输入联系电话" />
            </el-form-item>
@@ -89,14 +73,12 @@
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row style="text-align: left">
          <el-col :span="5">
            <el-form-item label="预审状态" prop="infoid">
            <el-form-item label="申请材料状态" prop="infoid">
              <el-select
                v-model="form.checkstatus"
                filterable
                placeholder="请选择预审状态"
                placeholder="请选择申请材料状态"
              >
                <el-option
                  v-for="item in baselisttages"
@@ -108,6 +90,8 @@
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row style="text-align: left">
          <el-col :span="8">
            <el-form-item label="申请说明" prop="remark">
              <el-input v-model="form.remark" placeholder="申请说明" />
@@ -124,28 +108,31 @@
          </el-alert>
        </el-row>
        <el-row>
          <el-col :span="3"
            ><div style="margin-bottom: 15px;">
          <el-col :span="3">
            <div style="margin-bottom: 15px;">
              <el-button
                type="success"
                type="primary"
                icon="el-icon-download"
                size="small"
                @click="Batchentry"
                >批量录入</el-button
                >批量录入人员</el-button
              >
            </div></el-col
            </div>
          </el-col>
          <el-col
            :span="3"
            v-if="userprofile.nickName == '陈慕华' && operationType == 'check'"
          >
        </el-row>
        <el-row v-if="operationType == 'check'">
          <el-col :span="3"
            ><div style="margin-bottom: 15px;">
            <div style="margin-bottom: 15px;">
              <el-button
                type="success"
                icon="el-icon-edit-outline"
                size="small"
                @click="Manualcalculationfn"
                >计算明细</el-button
                >计算个税</el-button
              >
            </div></el-col
          >
            </div>
          </el-col>
        </el-row>
        <el-row>
          <el-table
@@ -248,7 +235,7 @@
            <el-table-column
              prop="beneficiaryname"
              align="center"
              label="姓名"
              label="绩效人员或单位"
              width="250"
            >
              <template slot-scope="scope">
@@ -262,6 +249,16 @@
                      : "点击选择"
                  }}</el-button
                >
              </template>
            </el-table-column>
            <el-table-column
              prop="idcardno"
              align="center"
              label="身份证号"
              width="200"
            >
              <template slot-scope="scope">
                <el-input v-model="scope.row.idcardno" placeholder="身份证号" />
              </template>
            </el-table-column>
@@ -338,6 +335,14 @@
                >
                  删除
                </el-button>
                <el-button
                  @click.native.prevent="
                    Filepopup(scope.$index, rbDetails, scope.row)
                  "
                  type="text"
                  size="small"
                  >票据</el-button
                >
              </template>
            </el-table-column>
          </el-table>
@@ -433,30 +438,35 @@
    <el-dialog
      :visible.sync="showSelectionDialog"
      :close-on-click-modal="false"
      :title="'个人信息选择'"
      :title="'绩效人员(含所在单位)账号选择'"
      width="500px"
      style="text-align: center"
      v-loading="loading"
    >
      <el-form ref="funddetailForm" :model="funddetailForm">
        <el-row>
          <el-select
            v-model="funddetailForm.userName"
            filterable
            remote
            reserve-keyword
            placeholder="请输入关键词"
            :remote-method="remoteMethod"
            :loading="loadingperformance"
          >
            <el-option
              v-for="item in optionsperformance"
              :key="item.value"
              :label="item.label"
              :value="item.value"
          <el-form-item label="请输入选择:" prop="unitno" label-width="120px">
            <el-select
              v-model="funddetailForm.userName"
              filterable
              remote
              reserve-keyword
              allow-create
              default-first-option
              placeholder="请输入姓名或单位名称"
              :remote-method="remoteMethod"
              :loading="loadingperformance"
              style="width: 100%"
            >
            </el-option>
          </el-select>
              <el-option
                v-for="item in optionsperformance"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
        </el-row>
      </el-form>
      <span slot="footer" class="dialog-footer">
@@ -481,6 +491,258 @@
        <el-button type="primary" @click="Savenow">确 定</el-button>
      </span>
    </el-dialog>
    <!-- 附件 -->
    <el-dialog
      v-dialogDrags
      :modal="false"
      :close-on-click-modal="false"
      :title="pdftitle"
      :visible.sync="pdfVisible"
      width="60%"
    >
      <div>
        <el-table :data="tableDatatop" style="width: 100%">
          <el-table-column
            prop="beneficiaryname"
            align="center"
            label="单位/个人"
            width="250"
          >
          </el-table-column>
          <el-table-column
            prop="idcardno"
            align="center"
            label="身份证号"
            width="200"
            v-if="form.applytype == '1' || form.applytype == '2'"
          >
          </el-table-column>
          <el-table-column prop="depositbank" align="center" label="开户银行">
          </el-table-column>
          <el-table-column
            prop="bankcardno"
            align="center"
            label="银行帐号"
            width="210"
          >
          </el-table-column>
        </el-table>
      </div>
      <el-tabs
        style="margin-top: 20px;"
        v-model="activeName"
        type="border-card"
        @tab-click="handleClick"
      >
        <el-tab-pane label="普通附件" :name="1">
          <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"
                >
                  <i class="el-icon-upload"></i>
                  <div class="el-upload__text">
                    将票据拖到此处,或
                    <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="名称"
                  >
                    <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="功能"
                  >
                    <template slot-scope="scope">
                      <el-button
                        type="primary"
                        size="mini"
                        @click.native.prevent.stop="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>
                    </template>
                  </el-table-column>
                </el-table>
              </div>
            </div>
            <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"
              >
                <!-- <div slot="error" class="image-slot">
              <i class="el-icon-picture-outline"></i>
            </div> -->
              </el-image>
            </div>
            <div v-else class="pdfimgmins">{{ hintitle }}</div>
          </div>
        </el-tab-pane>
        <el-tab-pane label="发票文件" :name="2">
          <div class="pdfimg">
            <div class="box-pdf">
              <div>
                <el-upload
                  size="mini"
                  class="upload-demo"
                  :action="uploadFileUrl"
                  :file-list="invoicefileList"
                  :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
                    >
                  </div>
                </el-upload>
                <el-table
                  :data="invoicefileListto"
                  @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="功能"
                  >
                    <template slot-scope="scope">
                      <el-button
                        type="primary"
                        size="mini"
                        @click.native.prevent.stop="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>
                    </template>
                  </el-table-column>
                </el-table>
              </div>
            </div>
            <div
              v-if="this.previewpdf && invoicepdfimgsrcList.length"
              class="pdfimgmin"
            >
              <!-- <img :src="pdfimg" /> -->
              <el-image
                style="width: 95%; height: 90%"
                :src="invoicepdfimg"
                :preview-src-list="invoicepdfimgsrcList"
              >
                <!-- <div slot="error" class="image-slot">
              <i class="el-icon-picture-outline"></i>
            </div> -->
              </el-image>
            </div>
            <div v-else class="pdfimgmins">{{ hintitle }}</div>
          </div>
        </el-tab-pane>
      </el-tabs>
    </el-dialog>
    <!-- 批量选取 -->
    <el-dialog
@@ -488,6 +750,13 @@
      :visible.sync="batchdialogVisible"
      width="40%"
    >
      <div style="margin-bottom: 15px; margin-left: 10px;">
        <el-radio-group v-model="Performanceclass">
          <el-radio-button :label="68">月度绩效</el-radio-button>
          <el-radio-button :label="69">季度绩效</el-radio-button>
          <el-radio-button :label="70">年度绩效</el-radio-button>
        </el-radio-group>
      </div>
      <div style="max-height: 330px; overflow-y: auto">
        <el-checkbox
          :indeterminate="isIndeterminate"
@@ -593,6 +862,7 @@
      spocewl: "",
      //费用申请表单title
      title: "",
      //申请单类型
      businessType: "0",
      businessName: "",
@@ -623,6 +893,7 @@
      Personnelforname: null,
      unitforname: null,
      isIndeterminate: true,
      Performanceclass: 68,
      //是否是专家费的OPO审批人员
      ismanager: false,
@@ -631,11 +902,11 @@
      baselisttages: [
        {
          id: 1,
          name: "待预审"
          name: "待申请材料"
        },
        {
          id: 2,
          name: "预审通过等待材料"
          name: "审核通过等待邮寄纸质材料"
        },
        {
          id: 3,
@@ -693,9 +964,6 @@
      // 表单校验
      rules: {
        createTime: [
          { required: true, message: "请输入填报日期", trigger: "blur" }
        ],
        reason: [
          { required: true, message: "请输入出差事由", trigger: "blur" }
        ],
@@ -805,6 +1073,21 @@
        usestate: null
      },
      //附件列表
      fileList: [],
      fileListto: [],
      invoicefileList: [],
      invoicefileListto: [],
      invoicepdfimg: "",
      invoicepdfimgsrcList: [],
      invoDatatop: [],
      activeName: 1, //文件类型
      //上传附件路径
      uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
      //文件上传token
      headers: {
        Authorization: "Bearer " + getToken()
      },
      //票据文件
      pdftitle: "",
      pdfimg: "",
@@ -896,7 +1179,7 @@
    /** 通过参数获取业务类型 */
    getroute() {
      console.log(11);
      //选择业务类型:1、新增;2、修改;3、查看
      //选择业务类型:1、新增;2、修改;3、复制;4、查看
      this.curId = this.$route.query.id;
      this.businessType = this.$route.query.businessType;
      this.operationType = this.$route.query.operationType;
@@ -913,8 +1196,10 @@
        this.handleAdd();
      } else if (this.operationType == "update") {
        this.title = this.businessName + "修改";
        console.log(this.title);
        this.handleUpdate();
      } else if (this.operationType == "copy") {
        this.title = this.businessName + "复制";
        this.handleCopy();
      } else if (this.operationType == "detail") {
        this.title = this.businessName + "查看";
        this.jurisdiction = true;
@@ -945,6 +1230,7 @@
      getFund(this.curId).then(response => {
        this.form = response.data;
        sessionStorage.removeItem("apiform");
        sessionStorage.setItem("apiform", JSON.stringify(this.form));
@@ -952,7 +1238,6 @@
        //明细处理
        getownFundDetail(this.curId).then(res => {
          this.rbDetails = res.data;
          if (this.rbDetails.length > 0) {
            for (let m = 0; m < this.rbDetails.length; m++) {
              this.rbDetails[m].itemlist = [];
@@ -980,6 +1265,74 @@
        listFundflow(listFundflowparams).then(res => {
          this.fundflowList = res.rows;
        });
      });
    },
    /** 复制按钮操作 */
    handleCopy() {
      this.isopen = 0;
      this.reset();
      getFund(this.curId).then(response => {
        this.form = response.data;
        sessionStorage.removeItem("apiform");
        sessionStorage.setItem("apiform", JSON.stringify(this.form));
        //明细处理
        getownFundDetail(this.curId).then(res => {
          this.rbDetails = res.data;
          if (this.rbDetails.length > 0) {
            for (let m = 0; m < this.rbDetails.length; m++) {
              this.rbDetails[m].itemlist = [];
              this.getRowFeeItems(m, this.rbDetails[m]);
              //获取费用项目的详细信息
              this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter(
                r => r.itemid == this.rbDetails[m].itemid
              );
              //初始化明细信息
              this.rbDetails[m].id = null;
              this.rbDetails[m].fundid = null;
              this.rbDetails[m].amount = 0;
              this.rbDetails[m].taxamount = 0;
              this.rbDetails[m].taxedamount = 0;
            }
            sessionStorage.removeItem("apifunddetail");
            sessionStorage.setItem(
              "apifunddetail",
              JSON.stringify(this.rbDetails)
            );
          } else {
            this.addRow(0);
          }
        });
        //初始化主信息
        this.curId = null;
        this.form.id = null;
        this.form.recordstatus = "-1";
        this.form.checkstatus = null;
        this.form.pretaxcost = 0;
        this.form.istax = null;
        this.form.fundtaxtime = null;
        this.form.createTime = null;
        this.form.updateTime = null;
        this.form.flowlevel = null;
        this.form.backflowlevel = null;
        this.form.financedirector = null;
        this.form.financechecher = null;
        this.form.president = null;
        this.form.finvicepresident = null;
        this.form.busvicepresident = null;
        this.form.zffs = null;
        this.form.riqi = null;
        this.form.bh = null;
        this.form.istax = 0;
        this.form.fundtaxtime = null;
      });
    },
@@ -1103,6 +1456,20 @@
          //查找是否存在登记完成记录
          //判断是否存在上报记录
          this.form.recordstatus = 0;
          var currenttime = new Date();
          this.form.applyTime =
            currenttime.getFullYear() +
            "-" +
            (currenttime.getMonth() + 1) +
            "-" +
            currenttime.getDate() +
            " " +
            currenttime.getHours() +
            ":" +
            currenttime.getMinutes() +
            ":" +
            currenttime.getSeconds();
          if (!this.form.id) {
            this.form.id = this.$route.query.id;
          }
@@ -1160,6 +1527,14 @@
                "服务项目表中,第" +
                  (k + 1).toString() +
                  "行的服务项目未选择,请先选择服务项目后再提交保存!"
              );
              return;
            }
            if (tempDetail.idcardno == null) {
              this.$modal.msgWarning(
                "服务项目表中,第" +
                  (k + 1).toString() +
                  "行的身份证未完善,请先填写身份证后再提交保存!"
              );
              return;
            }
@@ -1267,6 +1642,19 @@
          if (this.form.id != null) {
          } else {
            this.form.recordstatus = -1;
            var currenttime = new Date();
            this.form.applyTime =
              currenttime.getFullYear() +
              "-" +
              (currenttime.getMonth() + 1) +
              "-" +
              currenttime.getDate() +
              " " +
              currenttime.getHours() +
              ":" +
              currenttime.getMinutes() +
              ":" +
              currenttime.getSeconds();
          }
          sessionStorage.setItem(
@@ -1277,17 +1665,25 @@
          addorupdateFund(this.form).then(response => {
            console.log(response, "保存返参");
            if (response.code === 200) {
              this.$modal.msgSuccess("申请单保存成功!");
              this.$store.dispatch("tagsView/delView", this.$route);
              this.$router.push({
                path: "/finance/performancedetails/",
                query: {
                  id: response.data,
                  businessType: "5",
                  operationType: "update"
                }
              });
              if (this.form.id) {
                this.$modal.msgSuccess("申请单修改成功!");
                this.$router.go(-1);
              } else {
                this.$modal.msgSuccess("申请单保存成功!");
                this.$store.dispatch("tagsView/delView", this.$route);
                this.$router.push({
                  path: "/finance/performancedetails/",
                  query: {
                    id: response.data,
                    businessType: "5",
                    operationType: "update"
                  }
                });
              }
              this.Routinglevel++;
              this.form.id = response.data;
              this.curId = response.data;
              this.handleUpdate();
            } else {
              this.$modal.msgError("申请单保存失败:" + response.msg);
            }
@@ -1761,11 +2157,14 @@
        this.listperformancea = this.cityOptions.map(item => {
          return { value: item.userName, label: item.userName };
        });
        console.log(this.cityOptions, "绩效批量");
      });
    },
    // 确认录入
    BatchentryFn() {
      console.log(this.rbDetails[0]);
      if (!this.rbDetails[0].applytype) {
        this.rbDetails = [];
      }
      this.checkedCities.forEach(item => {
        let rowData = {
          orderno: null,
@@ -1788,7 +2187,7 @@
          annexregistform: null,
          applytype: "9",
          applytypename: "管理成本",
          itemid: 68,
          itemid: this.Performanceclass,
          itemcode: "68",
          itemname: "绩效工资",
          itemtype: null,
@@ -1807,7 +2206,11 @@
          updateTime: null,
          uploadflag: null,
          uploadtime: null,
          itemlist: [{ id: 68, itemName: "绩效工资" }],
          itemlist: [
            { id: 68, itemName: "月度绩效" },
            { id: 69, itemName: "季度绩效" },
            { id: 70, itemName: "年度绩效" }
          ],
          servicesscope: null,
          rowfeeblocks: [],
          annexfiles: null
@@ -1815,11 +2218,12 @@
        this.rbDetails.push(rowData);
      });
      for (let i = 0; i < this.checkedCities.length + 1; i++) {
      for (let i = 0; i < this.rbDetails.length; i++) {
        this.rbDetails[i].orderno = i + 1;
      }
      this.calculateTax();
      this.batchdialogVisible = false;
      this.checkedCities = [];
      console.log(this.rowfeeItemTypes);
    },
    //新增一行
@@ -1935,7 +2339,6 @@
      this.selectionType = showType;
      this.selectionType = this.experthear;
      this.expertfrom = "1";
      console.log(spoce);
      this.funddetailForm.index = spoce.$index;
      this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno;
      this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname;
@@ -1961,17 +2364,17 @@
      this.cityOptions.map(res => {
        if (tempExpertName == res.userName) {
          singleDetail.beneficiaryno = res.userno;
          singleDetail.beneficiaryname = res.userName;
          singleDetail.bankcardno = res.bankCardNo;
          singleDetail.branchbankname = res.branchbankname;
          singleDetail.depositbank = res.depositBank;
          singleDetail.idcardno = res.bankCardNo;
          singleDetail.idcardno = res.idcardNo;
          singleDetail.phone = res.telephone;
          singleDetail.title = res.title;
          singleDetail.unitname = res.unitname;
          singleDetail.unitno = parseInt(res.unitno);
        }
      });
      singleDetail.beneficiaryname = tempExpertName;
      this.rbDetails[tempIndex] = singleDetail;
      this.showSelectionDialog = false;
    },
@@ -1988,6 +2391,214 @@
      } else {
        this.optionsperformance = [];
      }
    },
    handleUploadError() {},
    remove(file, fileList) {
      const rbDetails = [...this.rbDetails];
      if (this.activeName == 1) {
        this.fileListto.splice(this.fileListto.indexOf(file), 1);
        rbDetails[this.atpresent].annexfilesList = this.fileListto;
      } else {
        this.invoicefileListto.splice(this.invoicefileListto.indexOf(file), 1);
        rbDetails[this.atpresent].invoicefilesList = this.invoicefileListto;
      }
    },
    uploadSccess(response, file, fileList) {
      this.rbDetails;
      //获取票据信息位置
      console.log(response);
      console.log(file);
      if (this.activeName == 1) {
        if (response.code == 200) {
          // this.form.filename = file.raw.name;
          this.previewpdf = true;
          this.$modal.msgSuccess(response.msg);
          this.fileListto.push({
            name: file.name,
            url: response.fileName
          });
          this.pdfimgsrcList.push(
            this.Networkheader + "/prod-api" + response.fileName
          );
          console.log(this.pdfimgsrcList);
          this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
          this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
          this.rbDetails[this.atpresent].annexfilesList = this.fileListto;
        } else {
          console.log(response.msg);
        }
      } else {
        if (response.code == 200) {
          // this.form.filename = file.raw.name;
          this.previewpdf = true;
          this.$modal.msgSuccess(response.msg);
          this.invoicefileListto.push({
            name: file.name,
            url: response.fileName
          });
          this.invoicepdfimgsrcList.push(
            this.Networkheader + "/prod-api" + response.fileName
          );
          console.log(this.invoicepdfimgsrcList);
          this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项";
          this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
          this.rbDetails[
            this.atpresent
          ].invoicefilesList = this.invoicefileListto;
          console.log(this.rbDetails[this.atpresent]);
        } else {
          console.log(response.msg);
        }
      }
    },
    // 点击票据
    Filepopup(index, rows, row) {
      this.tableDatatop = [];
      this.pdfimgsrcList = [];
      this.invoDatatop = [];
      this.invoicepdfimgsrcList = [];
      this.invoDatatop.push(row);
      this.tableDatatop.push(row);
      this.atpresent = index;
      this.pdfVisible = true;
      console.log(this.rbDetails[index]);
      if (this.rbDetails[index].annexfilesList) {
        this.previewpdf = true;
        this.fileListto = this.rbDetails[index].annexfilesList;
        console.log(this.fileListto);
        this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url;
        this.fileListto.forEach(item => {
          this.pdfimgsrcList.push(this.Networkheader + "/prod-api" + item.url);
        });
      } else {
        this.fileListto = [];
        this.pdfimg = "";
        this.pdftitle = "";
      }
      // -发票文件
      if (this.rbDetails[index].invoicefilesList) {
        this.previewpdf = true;
        this.invoicefileListto = this.rbDetails[index].invoicefilesList;
        console.log(this.invoicefileListto);
        this.invoicepdfimg =
          this.Networkheader + "/prod-api" + this.invoicefileListto[0].url;
        this.invoicefileListto.forEach(item => {
          this.invoicepdfimgsrcList.push(
            this.Networkheader + "/prod-api" + item.url
          );
        });
        console.log(this.invoicepdfimgsrcList);
        console.log(this.invoicepdfimg);
      } else {
        this.invoicefileListto = [];
        this.invoicepdfimg = "";
        this.pdftitle = "";
      }
      if (this.activeName == 1) {
        this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
      } else {
        this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项";
      }
    },
    // 点击已上传文件
    downFile(item) {
      if (this.activeName == 1) {
        console.log(item, "点击文件拿item");
        this.pdftitle =
          "共" + this.pdfimgsrcList.length + "项,当前选中" + item.name;
        let name = item.name.split(".");
        if (name[1] == "pdf") {
          this.$modal.msgWarning("当前文件暂不支持预览");
          this.previewpdf = false;
          this.hintitle = "当前文件暂不支持预览";
        } else if (name[1] == "jpg" || "png") {
          this.previewpdf = true;
          if (item.url) {
            this.pdfimg = this.Networkheader + "/prod-api" + item.url;
          } else {
            this.pdfimg = this.Networkheader + "/prod-api" + item.response.url;
          }
        } else {
          this.hintitle = "当前文件暂不支持预览";
          this.$modal.msgWarning("当前文件暂不支持预览");
          this.previewpdf = false;
        }
      } else {
        console.log(item, "点击文件拿item");
        this.pdftitle =
          "共" + this.invoicepdfimgsrcList.length + "项,当前选中" + item.name;
        let name = item.name.split(".");
        if (name[1] == "pdf") {
          this.$modal.msgWarning("当前文件暂不支持预览");
          this.previewpdf = false;
          this.hintitle = "当前文件暂不支持预览";
        } else if (name[1] == "jpg" || "png") {
          this.previewpdf = true;
          if (item.url) {
            this.invoicepdfimg = this.Networkheader + "/prod-api" + item.url;
            console.log(this.invoicepdfimg, "pdfimg");
            console.log(this.invoicepdfimgsrcList, "imglist");
          } else {
            this.invoicepdfimg =
              this.Networkheader + "/prod-api" + item.response.url;
          }
        } else {
          this.hintitle = "当前文件暂不支持预览";
          this.$modal.msgWarning("当前文件暂不支持预览");
          this.previewpdf = false;
        }
      }
    },
    getIndexInArray(arr, obj) {
      return arr.indexOf(obj);
    },
    // 发票切换
    handleClick(tab, event) {
      if (this.activeName == 1) {
        this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
      } else {
        this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项";
      }
    },
    // 点击删除
    deletedowfile(row) {
      if (this.activeName == 1) {
        const indexlist = this.getIndexInArray(
          this.pdfimgsrcList,
          this.Networkheader + "/prod-api" + row.url
        );
        this.pdfimgsrcList.splice(indexlist, 1);
        const index = this.getIndexInArray(this.fileListto, row);
        this.fileListto.splice(index, 1);
      } else {
        const indexlist = this.getIndexInArray(
          this.invoicepdfimgsrcList,
          this.Networkheader + "/prod-api" + row.url
        );
        this.invoicepdfimgsrcList.splice(indexlist, 1);
        const index = this.getIndexInArray(this.invoicefileListto, row);
        this.invoicefileListto.splice(index, 1);
      }
    },
    // 点击上移
    moveupdowfile(row) {
      if (this.activeName == 1) {
        const index = this.getIndexInArray(this.fileListto, row);
        const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
        this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
      } else {
        const index = this.getIndexInArray(this.invoicefileListto, row);
        const item = this.invoicefileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
        this.invoicefileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
      }
    },
    Downloadfile(row) {
      console.log(row);
      window.location.href = this.Networkheader + "/prod-api" + row.url;
    }
  },