Tcsm
2023-10-10 880a49e093fbba2c1e39cdd598268766c99082fe
加上了成长经历阅历的自传的修改功能,固定序号
7个文件已修改
315 ■■■■ 已修改文件
ruoyi-ui/src/api/self/index.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/bignote/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/collection/collectionInfo.vue 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/genealogy/index.vue 214 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/pet/index.vue 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/secret/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/self/show.vue 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/self/index.js
@@ -219,6 +219,16 @@
  })
}
//删除个人自传
export function delAutobiography(ids)
{
  return request({
    url: '/zAutobiography/' +ids ,
    method: 'delete',
  })
}
//拿到个人自传
export function getCategory()
{
ruoyi-ui/src/views/bignote/index.vue
@@ -147,7 +147,7 @@
    <el-table v-loading="loading"  :data="familyList" :row-key="getRowId" ref="multipleTable" @selection-change="handleSelectionChange"  :row-class-name="tableRowClassName">
      <el-table-column type="selection"  :reserve-selection="true" width="55"  align="center" />
      <el-table-column  label="序号" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80px"/>
      <el-table-column fixed label="序号" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80px"/>
      <el-table-column label="发生时间" prop="happenTime" sortable width="200px" align="center">
        <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: '————'}}</template>
      </el-table-column>
ruoyi-ui/src/views/collection/collectionInfo.vue
@@ -96,7 +96,7 @@
                class="el-upload-list__item-thumbnail"
                :src="file.url"
                alt=""
                style="width: 100%; height: 100%; object-fit: cover;"
                style="width: 147px; height: 147px"
                fit="cover"
                :preview-src-list="[file.url]"
              >
@@ -146,14 +146,23 @@
            <div v-if="uploading1" class="upload-status">正在上传...</div>
            <i v-if="!uploading1" slot="default" class="el-icon-plus"></i>
            <div slot="file" slot-scope="{file}">
              <img
              <!-- 添加video元素用于显示视频 -->
              <video
                v-if="file.url.includes('.mp4')"
                class="el-upload-list__item-thumbnail"
                :src="file.url"
                style="width: 147px; height: 147px"
                fit="cover"
              ></video>
              <img v-else
                class="el-upload-list__item-thumbnail"
                src="../../assets/401_images/401.gif"
                alt=""
                style="width: 100%; height: 100%; object-fit: cover;"
                fit="cover"
              >
                style="width: 100%; height: 100%"
                fit="cover">
              <span class="el-upload-list__item-actions">
               <span class="el-upload-list__item-name">{{ file.name }}</span>
                    <span
                      class="el-upload-list__item-preview"
                      @click="handleFileCardPreview(file)"
@@ -175,7 +184,6 @@
                      <i class="el-icon-delete"></i>
                    </span>
                  </span>
            </div>
@@ -549,7 +557,21 @@
          this.formData.url = ul+","+uls
          console.log(this.formData.url)
          updateCollection(this.formData).then(response => {
            this.$modal.msgSuccess("文档上传成功");
            this.$modal.msgSuccess("上传成功");
            const videoElement = document.createElement('video'); // 创建一个新的video元素
            videoElement.src = response.data.url; // 设置video元素的src为视频URL
            // 监听loadedmetadata事件以确保视频元数据加载完成
            videoElement.addEventListener('loadedmetadata', function() {
              const canvas = document.createElement('canvas');// 创建一个canvas元素
              const context = canvas.getContext('2d');
              context.drawImage(videoElement, 0, 0, canvas.width, canvas.height); // 将视频的首帧画面绘制到画布上
              const imageURL = canvas.toDataURL();// 将画布转换为图像URL
              videoElement.setAttribute('poster', imageURL);// 设置视频的封面图像
              // 在页面中显示视频元素
              document.body.appendChild(videoElement);
            });
            // this.open = false;
            // this.btn=false
          });
@@ -592,4 +614,8 @@
  font-weight: 400;
  color: #000000;
}
.el-upload-list__item-name {
  font-size: 14px; /* 调整文件名字的字体大小 */
}
</style>
ruoyi-ui/src/views/genealogy/index.vue
@@ -1,22 +1,6 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
      <el-form-item label="" prop="phone wx qq twitter isAlways remark" >
        <el-input
          v-model:phone="queryParams.phone"
          v-model:wx="queryParams.wx"
          v-model:qq="queryParams.qq"
          v-model:twitter="queryParams.twitter"
          v-model:isAlways="queryParams.isAlways"
          v-model:remark="queryParams.remark"
          placeholder="在“张氏一览表”中搜索"
          clearable
          style="width: 240px"
          @keyup.enter.native="handleQuery">
          <i slot="prefix" class="el-input__icon el-icon-search"></i>
        </el-input>
        <!--        v-model="queryParams.id"-->
      </el-form-item>
      <el-form-item label="身份" prop="identity" >
        <el-select
@@ -73,6 +57,7 @@
        ></el-date-picker>
      </el-form-item>
      <el-form-item>
        <el-button size="mini" @click="handleQuery" style=" width: 67px;height: 27px;background: #FFDDE3;
            border-radius: 7px 7px 7px 7px;opacity: 1; " >搜索</el-button>
@@ -85,58 +70,13 @@
      <el-row :gutter="10" class="mb8">
<!--        <el-col :span="1.5">-->
<!--          <el-button-->
<!--            type="primary"-->
<!--            plain-->
<!--            icon="el-icon-plus"-->
<!--            size="mini"-->
<!--            @click="handleAdd"-->
<!--            v-hasPermi="['system:role:add']"-->
<!--          >新增</el-button>-->
<!--        </el-col>-->
<!--        <el-col :span="1.5">-->
<!--          <el-button-->
<!--            type="danger"-->
<!--            plain-->
<!--            icon="el-icon-delete"-->
<!--            size="mini"-->
<!--            :disabled="multiple"-->
<!--            @click="handleDelete"-->
<!--            v-hasPermi="['system:role:remove']"-->
<!--          >删除</el-button>-->
<!--        </el-col>-->
        <el-col :span="1.5">
          <el-button
            type="warning"
            plain
            icon="el-icon-download"
            size="mini"
            @click="handleExport"
            v-hasPermi="['family:note:export']"
          >导出</el-button>
        </el-col>
<!--        <el-col :span="1.5">-->
<!--          <el-button-->
<!--            type="warning"-->
<!--            plain-->
<!--            icon="el-icon-download"-->
<!--            size="mini"-->
<!--            @click="handleExport"-->
<!--            v-hasPermi="['family:note:export']"-->
<!--          >导入模板下载</el-button>-->
<!--        </el-col>-->
<!--        <el-col :span="1.2">-->
<!--          <el-upload-->
<!--            action=""-->
<!--            class="upload-demo"-->
<!--            :show-file-list="false"-->
<!--            :http-request="handleEnport"-->
<!--          >-->
<!--            <el-button size="mini"   type="primary"-->
<!--                       plain-->
<!--                       icon="el-icon-plus" >导入</el-button>-->
<!--          </el-upload>-->
<!--          >导出</el-button>-->
<!--        </el-col>-->
        <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -146,7 +86,6 @@
    <el-table v-loading="loading" :data="listRoot" :row-key="getRowId" ref="multipleTable"  @selection-change="handleSelectionChange"  :row-class-name="tableRowClassName" style="background: #FFEFF2;  border-radius: 14px 14px 14px 14px;">
      <el-table-column type="selection" width="55"  align="center" />
      <el-table-column fixed label="序号" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80"/>
      <el-table-column label="身份" prop="identity" sortable width="100" >
        <template slot-scope="scope" >
          <span v-if="scope.row.isMyFamily==1">第{{scope.row.identity}}代</span>
@@ -189,12 +128,14 @@
              type="text"
             icon="el-icon-d-arrow-right"
              @click="handleCheck(scope.row)">
查看详情</el-button>
          查看详情
        </el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
@@ -202,49 +143,8 @@
      @pagination="getList"
    />
  <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
      <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px">
        <el-form-item label="身份" prop="identity">
          <el-input v-model="formDat.identity" placeholder="请输入身份" clearable :style="{width: '100%'}" >
          </el-input>
        </el-form-item>
        <el-form-item label="姓名" prop="nickName">
          <el-input v-model="formDat.nickName" placeholder="请输入姓名" clearable :style="{width: '100%'}" ></el-input>
        </el-form-item>
        <el-form-item label="性别" prop="sex">
          <el-input v-model="formDat.sex" placeholder="请输入性别" clearable :style="{width: '100%'}" >
          </el-input>
        </el-form-item>
        <el-form-item label="出生时间" prop="birth">
          <el-input v-model="formDat.birth" placeholder="请输入出生时间" clearable :style="{width: '100%'}" >
          </el-input>
        </el-form-item>
        <el-form-item label="全生命周期" prop="deadDay">
          <el-input v-model="formDat.deadDay" placeholder="请输入全生命周期" clearable :style="{width: '100%'}" >
          </el-input>
        </el-form-item>
        <el-form-item label="手机号码" prop="phoneNumber">
          <el-input v-model="formDat.phoneNumber" placeholder="请输入手机号码" clearable :style="{width: '100%'}" >
          </el-input>
        </el-form-item>
        <el-form-item label="所在单位" prop="unit">
          <el-input v-model="formDat.unit" placeholder="请输入所在单位" clearable :style="{width: '100%'}" >
          </el-input>
        </el-form-item>
        <el-form-item label="配偶" prop="spouseName">
          <el-input v-model="formDat.spouseName" placeholder="请输入twitter" clearable :style="{width: '100%'}" >
          </el-input>
        </el-form-item>
      </el-form>
      <h4 class="form-header"> </h4>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitDataScope">保 存</el-button>
        <el-button @click="cancelData">取 消</el-button>
      </div>
    </el-dialog>
    <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
@@ -263,6 +163,8 @@
//导入接口函数
import {enload, uploadPic} from "@/api/contacts/index";
import {getRoot,listUserAll} from "@/api/root/index";
export default {
  name: "index",
  dicts: ['sys_normal_disable'],
@@ -281,7 +183,8 @@
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      pageSize: 10, // 每页显示数据条数
      pageNum: 1, // 当前页码      // 总条数
      total: 0,
      // 家谱表格数据
      listRoot: [],
@@ -416,10 +319,6 @@
  },
  created() {
    this.getList();
    // this.getCateInfor()
    // for (let i = 0; i < this.contactList.length; i++) {
    //   this.formDat[i] = this.contactList[i];
    // }
  },
  methods: {
    // 取消按钮
@@ -460,45 +359,33 @@
        return "statistics-warning-row";
      }
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.reset();
      this.open = true;
      this.title = "添加证件/荣誉/资质信息";
    },
    /** 查询通讯录列表 */
    /** 查询家谱列表 */
    getList() {
      this.loading = true;
     //  console.log(this.queryParams)
      //alert(23)
      this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0]
      this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1]
      // this.queryParams.pageSize = this.pageSize; // 添加 pageSize 参数
      // this.queryParams.pageNum = this.pageNum; // 添加 pageNum 参数
      //  listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
      listUserAll(this.queryParams).then(response => {
          //  alert(123)
          //   console.log(response.data)
       //   alert(76)
          this.listRoot = response.data.data;
        //  alert(this.listRoot)
          this.total = response.data.length;
          this.pageNum=1;
          this.pageSize=10;
       //   alert(this.total)
          this.total = response.data.total;
          // this.pageNum=1;
          // this.pageSize=10;
        // this.pageNum = response.data.pageNum;
          this.loading = false;
        }
      );
    },
    /** 查询类别信息 */
    // getCateInfor()
    // {
    //   let _this = this
    //   getCategory().then(response=>{
    //
    //     response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{
    //       _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]})
    //     })
    //   })
    // },
    handlePageChange(currentPage) {
      this.pageNum = currentPage; // 根据 currentPage 计算出 pageNum 值
      this.getList();
    },
    //身份选择
    getSrc(identity) {
      if (identity === '1'){
@@ -518,9 +405,6 @@
      return row.id
    },
    handleRemove(file) {
      alert(323)
    },
    // 取消按钮
    cancel() {
      this.open = false;
@@ -529,7 +413,6 @@
    // 取消按钮(数据权限)
    cancelDataScope() {
      this.openDataScope = false;
      this.reset();
    },
    // 表单重置
    reset() {
@@ -589,65 +472,12 @@
     this.$router.push("/familymodel/jiagenwang/personInfo/" + id);
    },
    handlePictureCardPreview(file) {
      this.dialogImageUrl = file.url;
      this.dialogVisible = true;
    },
    /** 提交按钮(数据权限) */
    submitDataScope: function() {
      let ul = this.fileList.map(function (elem){
        return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
      }).join(",")
      let uls = this.fileListOther.map(function (elem){
        return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
      }).join(",")
      this.formDat.url = ul+","+uls
      this.$refs["elForm"].validate(valid => {
        if (valid) {
          addContact(this.formDat).then(response => {
            this.$modal.msgSuccess("新增成功");
            this.open = false;
            this.getList();
          });
        }
      });
    },
    requestUpload(params)
    {
      var file = params.file;
      var formData = new FormData();
      formData.append('uploadFile', file);
      let _this = this
      uploadPic(formData).then(response => {
        let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length)
        if(_this.fot.includes(pth) === true)
        {
          _this.fileList.push({name:response.data.fileName, "url":response.data.url})
        }
        else{
          _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
        }
      })
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const Ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除编号为"' + Ids + '"的数据项?').then(function() {
        return delContact(Ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** 导出按钮操作 */
    // handleExport() {
    //   this.download('/self/user/export/genealogy', {
ruoyi-ui/src/views/pet/index.vue
ruoyi-ui/src/views/secret/index.vue
@@ -129,7 +129,7 @@
      <el-table v-loading="loading" :data="secretList"  :row-key="getRowId" ref="multipleTable" @selection-change="handleSelectionChange" @row-click="handleCheck" :row-class-name="tableRowClassName" style="background: #FFEFF2;  border-radius: 14px 14px 14px 14px;">
        <el-table-column type="selection"  :reserve-selection="true" width="55"  align="center" />
        <el-table-column  label="序号" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80"/>
        <el-table-column fixed label="序号" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80"/>
        <el-table-column label="发生时间" prop="happenTime" sortable width="150" align="center">
          <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: '————'}}</template>
        </el-table-column>
ruoyi-ui/src/views/self/show.vue
@@ -529,18 +529,14 @@
              <el-tab-pane v-for="(item, index) in AutobiographyList"
                           :key='item.id' :label="item.ageBegin+'~'+item.ageEnd+'岁'+'('+item.term+')'">
                <div>{{ item.content }}</div>
<!--                <div v-if="item.term === '婴儿'"> {{item.content}}</div>-->
<!--                <div v-if="item.term === '幼儿'"> {{item.content}}</div>-->
<!--                <div v-if="item.term === '小学'"> {{item.content}}</div>-->
<!--                <div v-if="item.term === '初中'"> {{item.content}}</div>-->
<!--                <div v-if="item.term === '高中'"> {{item.content}}</div>-->
<!--                <div v-if="item.term === '大学'"> {{item.content}}</div>-->
<!--                <div v-if="item.term === '研究生'"> {{item.content}}</div>-->
<!--                <div v-if="item.term === '工作'"> {{item.content}}</div>-->
<!--                <div v-if="item.term === '结婚后'"> {{item.content}}</div>-->
                <el-button size='mini' type="text" class="btn_edit" @click="editAutobiography(item)" style='position: absolute;right:10px;top:5px;'>
                <el-button size='mini' type="text" class="btn_edit" @click="editAutobiography(item)" style='position: absolute;right:40px;top:5px;'>
                  <sapn v-html="'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"></sapn>
                </el-button>
                <el-button size="mini" type="text" class="btn_del" @click="handleAutobiography(item)" style='position: absolute;right:10px;top:5px;'>
                  <sapn v-html="'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"></sapn>
                </el-button>
              </el-tab-pane>
            </el-tabs></div>
        </el-contain>
@@ -740,12 +736,13 @@
import axios from 'axios';
//在system/note/index.js中导入接口函数  --接好了
import {getIndividualList, addIndividual, updateIndividual, delIndividual,
import {
  getIndividualList, addIndividual, updateIndividual, delIndividual,
  listExperience, addExperience, updateExperience, delExperience,
  getIndividualRelation, addRelation, updateRelation, delRelation,
  getCertificateList, addCertificate, updateCertificate, delCertificate,
  getAbroadList, addAbroad, updateAbroad, delAbroad,listType,
  getAutobiographyList, getAutobiographyTermList, addAutobiography,updateAutobiography,
  getAutobiographyList, getAutobiographyTermList, addAutobiography, updateAutobiography,delAutobiography,
  getCategory,
} from "@/api/self/index";
import { delFamilyevent, uploadPic } from '../../api/bignote'
@@ -1695,6 +1692,16 @@
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** 删除个人自传按钮操作 */
    handleAutobiography(row) {
      const Ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除数据项?').then(function() {
        return delAutobiography(Ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** 导出按钮操作 */
    handleExport() {
@@ -1752,7 +1759,9 @@
.btn_edit{
  background:center no-repeat url('../../assets/icons/edit.png') ;
}
.btn_del{
  background:center no-repeat url('../../assets/images/删除2.png') ;
}
.button-container {
  text-align: right;
  display: flex;
@@ -1766,18 +1775,6 @@
  flex-shrink: 0;
  width: 30px;
  height: 28px;
}
.button2 {
  background: center no-repeat url('../../assets/icons/add1.png') ;
  margin-left: 66vw;
}
.button4 {
  background: center no-repeat url('../../assets/icons/add1.png') ;
  margin-left: 71.5vw;
}
.button5 {
  background:center no-repeat url('../../assets/icons/add1.png') ;
  margin-left: 71vw;
}
.form{
  background:center/11% no-repeat url('../../assets/icons/form.png') ;