From adbcf8cae1885a88d68079ef6df085aa19c858de Mon Sep 17 00:00:00 2001
From: linwenling <3256558519@qq.com>
Date: 星期四, 25 五月 2023 17:15:57 +0800
Subject: [PATCH] 新增婚姻、隐私模块

---
 ruoyi-ui/src/api/marry/edit.vue          |  505 +++++++
 ruoyi-ui/src/views/marry/index.vue       |  830 ++++++++++++
 ruoyi-ui/src/views/marry/edit.vue        |  505 +++++++
 ruoyi-ui/src/views/secret/secretInfo.vue |  449 ++++++
 ruoyi-ui/src/api/marry/index.vue         |  830 ++++++++++++
 ruoyi-ui/src/router/index.js             |   17 
 ruoyi-ui/src/views/secret/index.vue      |  727 +++++++++++
 7 files changed, 3,863 insertions(+), 0 deletions(-)

diff --git a/ruoyi-ui/src/api/marry/edit.vue b/ruoyi-ui/src/api/marry/edit.vue
new file mode 100644
index 0000000..f809bdd
--- /dev/null
+++ b/ruoyi-ui/src/api/marry/edit.vue
@@ -0,0 +1,505 @@
+<template>
+    <div class="app-container">
+      <el-col  :span="6">
+        <el-input size="medium" v-model="input" placeholder="鎼滅储" clearable>
+          <i slot="prefix" class="el-input__icon el-icon-search"></i>
+        </el-input>
+      </el-col>
+      <br>
+      <h1 style="font-size:21px">涓汉绠�鍘�</h1>
+      <el-divider />
+      <h2 style="font-size:16px">鍩烘湰淇℃伅</h2>
+  
+      <el-container>
+        <div style="padding-left:30px">
+          <el-container>
+            <el-col>
+              <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="70px" label-position="left">
+                <el-row :span="6">
+                  <el-form-item label="濮撳悕" prop="nickName">
+                    <el-input v-model="formData.nickName" placeholder="璇疯緭鍏ュ鍚�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="6">
+                  <el-form-item label="鏇剧敤鍚�" prop="oldName">
+                    <el-input v-model="formData.oldName" placeholder="璇疯緭鍏ユ浘鐢ㄥ悕" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="8">
+                  <el-form-item label="韬唤璇佸彿" prop="idNum">
+                    <el-input v-model="formData.idNum" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:70px">
+          <el-container>
+            <el-col >
+              <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="70px" label-position="left">
+                <el-row :span="6">
+                  <el-form-item label="鎬у埆" prop="sex">
+                    <el-input v-model="formData.sex" placeholder="璇疯緭鍏ユ�у埆" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="6">
+                  <el-form-item label="姘戞棌" prop="nation">
+                    <el-input v-model="formData.nation" placeholder="璇疯緭鍏ユ皯鏃�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="8">
+                  <el-form-item label="鑱旂郴鏂瑰紡" prop="phoneNumber">
+                    <el-input v-model="formData.phoneNumber" placeholder="璇疯緭鍏ヨ仈绯绘柟寮�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:70px">
+          <el-container>
+            <el-col>
+              <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="70px" label-position="left">
+                <el-row :span="6">
+                  <el-form-item label="鍥界睄" prop="nationality">
+                    <el-input v-model="formData.nationality" placeholder="璇疯緭鍏ュ浗绫�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="6">
+                  <el-form-item label="濠氬Щ鐘跺喌" prop="maritalStatus">
+                    <el-input v-model="formData.maritalStatus" placeholder="璇疯緭鍏ュ濮荤姸鍐�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+  
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:70px;padding-top:30px">
+          <el-row :gutter="6" >
+            <el-upload ref="ref1"
+                       action=""
+                       :file-list="fileList"
+                       list-type="picture-card"
+                       accept="image/*"
+                       :auto-upload="false"
+                       :multiple="false"
+                       :limit="1">
+              <i class="el-icon-plus"></i>
+            </el-upload>
+          </el-row>
+        </div>
+        <div style="padding-left:50px;padding-top:30px"  >
+          <el-container>
+            <el-row :span="2" style="flex-direction: column;">
+              <el-button type="primary" @click="submitForm">缂栬緫</el-button>
+              <br>
+              <el-button type="primary" @click="submitForm">瀵煎叆</el-button>
+            </el-row>
+          </el-container>
+        </div>
+      </el-container>
+      <el-container>
+        <div style="padding-left:30px">
+          <el-container>
+            <el-col>
+              <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
+                <el-row :span="15">
+                  <el-form-item label="鎴风睄鍦板潃" prop="locationAddress">
+                    <el-input v-model="formData.locationAddress" placeholder="璇疯緭鍏ユ埛绫嶅湴鍧�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="15">
+                  <el-form-item label="甯镐綇鍦板潃" prop="alwaysAddress">
+                    <el-input v-model="formData.alwaysAddress" placeholder="璇疯緭鍏ュ父浣忓湴鍧�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="15">
+                  <el-form-item label="鍗曚綅鍙婅亴鍔¤亴绉�" prop="unit position ">
+                    <el-input v-model="formData.unit,formData.position" placeholder="璇疯緭鍏ュ崟浣嶅強鑱屽姟鑱岀О" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+  
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:30px">
+          <el-container>
+            <el-col>
+              <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
+                <el-row :span="12">
+                  <el-form-item label="鎴风睄鍦板叕瀹夋満鍏�" prop="locationPolice">
+                    <el-input v-model="formData.locationPolice" placeholder="璇疯緭鍏ユ埛绫嶅湴鍏畨鏈哄叧" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="12">
+                  <el-form-item label="甯镐綇鍦板叕瀹夋満鍏�" prop=" alwaysPolice">
+                    <el-input v-model="formData. alwaysPolice" placeholder="璇疯緭鍏ュ父浣忓湴鍏畨鏈哄叧" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+  
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+      </el-container>
+  
+  
+      <div style="padding-top:30px">
+        <el-container>
+          <div style="width:100%"><h2 style="font-size:15px" >涓昏瀛︿範鍙婂伐浣滅粡鍘�</h2></div>
+          <el-button type="primary" icon="el-icon-edit" round></el-button>
+          <el-button type="primary" icon="el-icon-delete" round></el-button>
+        </el-container>
+  
+        <el-table v-loading="loading" :data="experiencelList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="16"  align="center" />
+          <el-table-column label="璧锋鏃ユ湡" prop="startDate" sortable width="300" align="center" />
+          <el-table-column label="涓昏瀛︿範缁忓巻銆佸伐浣滃崟浣嶅強浠昏亴鎯呭喌" prop="content" sortable width="350" align="center" />
+          <el-table-column label="璇佹槑浜�" prop="witness" sortable width="300" align="center" />
+          <el-table-column label="鍒犻櫎" align="center" class-name="small-padding fixed-width" sortable width="100">
+  
+          </el-table-column>
+        </el-table>
+      </div>
+  
+      <div style="padding-top:30px">
+        <el-container>
+          <div style="width:100%"><h2 style="font-size:15px" >瀹跺涵鎴愬憳鍙婁富瑕佺ぞ浼氬叧绯绘儏鍐�</h2></div>
+          <el-button type="primary" icon="el-icon-edit" round></el-button>
+          <el-button type="primary" icon="el-icon-delete" round></el-button>
+        </el-container>
+  
+        <el-table v-loading="loading" :data="experiencelList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="16"  align="center" />
+          <el-table-column label="涓庢湰浜哄叧绯�"  sortable width="270" align="center" />
+          <el-table-column label="濮撳悕"  sortable width="270" align="center" />
+          <el-table-column label="鍗曚綅鍙婅亴鍔�"  sortable width="270" align="center" />
+          <el-table-column label="鏀挎不闈㈣矊"  sortable width="270" align="center">
+          </el-table-column>
+        </el-table>
+      </div>
+  
+      <el-container>
+        <div style="width:100%"><h2 style="font-size:15px" >绉诲眳鍥斤紙澧冿級鎯呭喌</h2></div>
+  
+      </el-container>
+  
+      <div style="padding-top:30px">
+        <el-container>
+          <div style="width:100%"><h2 style="font-size:15px" >鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐�</h2></div>
+          <el-button type="primary" icon="el-icon-edit" round></el-button>
+          <el-button type="primary" icon="el-icon-delete" round></el-button>
+        </el-container>
+        <!--      :data =""鍐呯殑涓滆タ涓嶇煡閬撹涓嶈鏀�-->
+        <el-table v-loading="loading" :data="experiencelList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="16"  align="center" />
+          <el-table-column label="璇佷欢鍚嶇О"  sortable width="270" align="center" />
+          <el-table-column label="鎸佹湁鎯呭喌"  sortable width="270" align="center" />
+          <el-table-column label="璇佷欢鍙风爜"  sortable width="270" align="center" />
+          <el-table-column label="鏈夋晥鏈�"  sortable width="270" align="center">
+          </el-table-column>
+        </el-table>
+      </div>
+      <div style="padding-top:30px">
+        <el-container>
+          <div style="width:100%"><h2 style="font-size:15px" >鍑哄浗锛堝锛夋儏鍐�</h2></div>
+          <el-button type="primary" icon="el-icon-edit" round></el-button>
+          <el-button type="primary" icon="el-icon-delete" round></el-button>
+        </el-container>
+        <el-table v-loading="loading" :data="experiencelList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="16"  align="center" />
+          <el-table-column label="璧锋鏃ユ湡" prop="startDate" sortable width="300" align="center" />
+          <el-table-column label="鎵�鍒板浗瀹舵垨鑰呭湴鍖�" prop="content" sortable width="350" align="center" />
+          <el-table-column label="浜嬬敱锛堟梾娓搞�佽蛋璁裤�佹帰浜层�佺户鎵胯储浜с�佸叾浠栵級" prop="witness" sortable width="300" align="center" />
+          <el-table-column label="鍒犻櫎" align="center" class-name="small-padding fixed-width" sortable width="100">
+          </el-table-column>
+        </el-table>
+  
+      </div>
+      <pagination
+        v-show="total>0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+      />
+    </div>
+  
+  </template>
+  
+  <script>
+  import {getIndividualInfo, getIndividualRelation, delIndividual, updateIndividual, addIndividual,listExperience,updateExperience,
+    addExperience,delExperience} from "@/api/self/index";
+  
+  export default {
+    name: 'edit',
+    components: {},
+    props: [],
+  
+    data() {
+      return {
+        input: '',
+        filelist: [],
+  
+        // 閬僵灞�
+        disabled: false,
+  
+        loading: true,
+        // formData:[],
+        // 閫変腑鏁扮粍
+        ids: [],
+        // 闈炲崟涓鐢�
+        single: true,
+        // 闈炲涓鐢�
+        multiple: true,
+        // 鏄剧ず鎼滅储鏉′欢
+        showSearch: true,
+        // 鎬绘潯鏁�
+        total: 0,
+        // 涓汉缁忓巻鏁版嵁
+        experiencelList: [],
+        // 寮瑰嚭灞傛爣棰�
+        title: "",
+        // 鏄惁鏄剧ず寮瑰嚭灞�
+        open: false,
+        // 鏄惁鏄剧ず寮瑰嚭灞傦紙鏁版嵁鏉冮檺锛�
+        openDataScope: false,
+        menuExpand: false,
+        menuNodeAll: false,
+        deptExpand: true,
+        deptNodeAll: false,
+        // 鏃ユ湡鑼冨洿
+        dateRange: [],
+        // 鏁版嵁鑼冨洿閫夐」
+        fot:[".jpg",".jif"],
+        fileList:[
+        ],
+        fileListOther:[
+  
+        ],
+        dsb:true,
+        btn:false,
+  
+        formData: {
+          userId:undefined,
+          nickName: undefined,
+          oldName: undefined,
+          sex: undefined,
+          nationality: undefined,
+          nation: undefined,
+          maritalStatus: undefined,
+          idNum: undefined,
+          politicalOutlook: undefined,
+          phoneNumber: undefined,
+          locationAddress: undefined,
+          alwaysPolice: undefined,
+          alwaysAddress: undefined,
+          unit:undefined,
+          position: undefined,
+          locationPolice: undefined,
+          outStatus:undefined,
+          url: undefined,
+        },
+        rules: {
+          nickName: [{
+            required: true,
+            message: '璇疯緭鍏ュ鍚�',
+            trigger: 'blur'
+          }],
+          sex: [{
+            required: true,
+            message: '璇疯緭鍏ユ�у埆',
+            trigger: 'blur'
+          }],
+          nationality: [{
+            required: true,
+            message: '璇疯緭鍏ュ浗绫�',
+            trigger: 'blur'
+          }],
+          oldName: [{
+            required: true,
+            message: '璇疯緭鍏ユ浘鐢ㄥ悕',
+            trigger: 'blur'
+          }],
+          nation: [{
+            required: true,
+            message: '璇疯緭鍏ユ皯鏃�',
+            trigger: 'blur'
+          }],
+          idNum: [{
+            // required: true,
+            message: '璇疯緭鍏ヨ韩浠借瘉鍙�',
+            trigger: 'blur'
+          }],
+          maritalStatus: [{
+            // required: true,
+            message: '璇疯緭鍏ュ濮荤姸鍐�',
+            trigger: 'blur'
+          }],
+          phoneNumber: [{
+            // required: true,
+            message: '璇疯緭鍏ヨ仈绯绘柟寮�',
+            trigger: 'blur'
+          }],
+          locationAddress: [{
+            // required: true,
+            message: '璇疯緭鍏ユ埛绫嶅湴鍧�',
+            trigger: 'blur'
+          }],
+          locationPolice: [{
+            // required: true,
+            message: '璇疯緭鍏ユ埛绫嶅湴鍏畨鏈哄叧',
+            trigger: 'blur'
+          }],
+          alwaysAddress: [{
+            // required: true,
+            message: '璇疯緭鍏ュ父浣忓湴鍧�',
+            trigger: 'blur'
+          }],
+          alwaysPolice: [{
+            // required: true,
+            message: '璇疯緭鍏ュ父浣忓湴鍏畨鏈哄叧',
+            trigger: 'blur'
+          }],
+          unit: [{
+            // required: true,
+            trigger: 'blur'
+          }],
+          position: [{
+            // required: true,
+            message: '璇疯緭鍏ュ崟浣嶅強鑱屽姟鑱岀О',
+            trigger: 'blur'
+          }],
+        },
+  
+        // 鏌ヨ鍙傛暟
+        queryParams: {
+          pageNum: 1,
+          pageSize: 5,
+          startDate:undefined,
+          content:undefined,
+          witness:undefined,
+          createTime:undefined
+        },
+      }
+    },
+    computed: {},
+    watch: {},
+    created() {
+      this.getList();
+      // this.getCateInfor()
+    },
+    mounted() {},
+    methods: {
+      submitForm() {
+        this.$refs['elForm'].validate(valid => {
+          if (!valid) return
+          // TODO 鎻愪氦琛ㄥ崟
+        })
+      },
+      resetForm() {
+        this.$refs['elForm'].resetFields()
+      },
+      fillFormData(){
+        let formData = new FormData();
+        let photo = this.$refs['ref1'].uploadFiles[0];
+        if(photo===undefined){
+          this.$message.error("璇烽�夋嫨鐓х墖");
+          return false;
+        }
+        if(photo!==undefined){
+          formData.append('鐓х墖', photo.raw);//鏍规嵁鍚庣闇�瑕佺殑鍙傛暟杩涜鐩稿簲鏇存敼锛屽ぇ澶氭槸鏂囦欢鏍煎紡
+        }
+        return formData;
+      },
+      dialogConfirm() {
+        let formData=this.fillFormData();
+        if(this.dialogMode ==='edit_pic'){//dialogMode鐢ㄤ簬鍒ゆ柇褰撳墠鏃舵坊鍔犺繕鏄紪杈�
+          this.api.update(formData).then(res => {//璋冪敤淇敼鎺ュ彛
+            if (res.data.code == "OK") {
+              this.$message({
+                type: "success",
+                message: "淇敼鎴愬姛!",
+                duration:5000
+              });
+              this.fileList=[];
+            } else {
+              this.$message.error(res.data.message);
+            }
+          },()=>{
+            this.$message.error("淇敼澶辫触");
+          }).finally(()=>{
+          });
+        }else{
+          this.api.insert(formData).then(res => {//娣诲姞鎺ュ彛
+            if (res.data.code == "OK") {
+              this.$message({
+                type: "success",
+                message: "鏂板缓鎴愬姛!",
+                duration:5000
+              });
+              this.fileList=[];
+            } else {
+              this.$message.error(res.data.message);
+            }
+          },()=>{
+            this.$message.error("鏂板缓澶辫触");
+          }).finally(()=>{
+          });
+        }
+      },
+      //鐐瑰嚮缂栬緫鏃跺浘鐗囧洖鏄�
+      edit_pic(info){//info=>鍚庡彴鎺ュ彛杩斿洖鐨勬暟鎹�
+        let url=this.baseUrl+info.photo//url鐨勫湴鍧�鏍规嵁椤圭洰瀹為檯闇�瑕侊紝info.photo=>鍥剧墖璺緞,this.baseUrl=>涓婁紶鐨勭綉缁滃湴鍧�
+        this.fileList=[];
+        this.fileList.push({
+          'url': url
+        })
+        this.dialogMode='edit_pic';//璁剧疆涓虹紪杈�
+      },
+      onCreateNew(){
+        this.fileList=[];
+        this.dialogMode='create';//璁剧疆涓烘坊鍔�
+      },
+      /** 涓汉淇℃伅鍒楄〃 */
+      getList() {
+        this.loading = true;
+        // console.log(this.queryParams)
+        //  listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+        listExperience(this.queryParams).then(response => {
+            //  alert(123)
+            //   console.log(response.data)
+            this.experiencelList = response.data.data;
+  
+            this.total = response.data.total;
+            this.loading = false;
+          }
+  
+        );
+      },
+  
+  
+    }
+  }
+  </script>
+  
+  <style scoped>
+  
+  </style>
+  
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/marry/index.vue b/ruoyi-ui/src/api/marry/index.vue
new file mode 100644
index 0000000..46b997a
--- /dev/null
+++ b/ruoyi-ui/src/api/marry/index.vue
@@ -0,0 +1,830 @@
+<template>
+    <div class="app-container">
+  <!--    鍥炲埌椤堕儴-->
+      <el-backtop :bottom="150" :right="30">
+        <el-button type="primary" circle
+                   class="el-icon-top"
+        ></el-button>
+      </el-backtop>
+      <h1 style="font-size:21px;padding-top:30px">濠氬Щ鐘跺喌鐧昏琛�</h1>
+      <el-divider />
+  <!--    鍩烘湰淇℃伅-->
+      <h2 style="font-size:16px">鍩烘湰鎯呭喌</h2>
+      <el-container>
+        <div style="padding-left:0px" >
+          <el-container >
+            <el-col >
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left"
+                       v-loading="loading" :data="marryList" @selection-change="handleSelectionChange" >
+                <el-row :span="16">
+                  <el-form-item label="濮撳悕" prop="name" label-width="40px">
+                    <el-input v-model="marryList.name" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鍑虹敓鏃ユ湡" prop="birthday" label-width="70px">
+                    <el-input v-model="marryList.birthday" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="韬唤璇佸彿鐮�" prop="id" label-width="85px">
+                    <el-input v-model="marryList.id" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="濠氬Щ鐘跺喌" prop="marryStatus" label-width="70px">
+                    <el-input v-model="marryList.marryStatus" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb" >
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鎴风睄鍦板潃" prop="address" label-width="70px">
+                    <el-input v-model="marryList.address" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+
+
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:200px">
+          <el-container>
+            <el-col v-loading="loading" :data="marryList" @selection-change="handleSelectionChange">
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left">
+                <el-row :span="16">
+                  <el-form-item label="鎬у埆" prop="sex" label-width="40px">
+                    <el-input v-model="marryList.sex === 1 ? '鐢�':'濂�' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="姘戞棌" prop="nation" label-width="40px">
+                    <el-input v-model="marryList.nation " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鑱旂郴鐢佃瘽" prop="phone" label-width="70px">
+                    <el-input v-model="marryList.phone" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="缁撳鏃堕棿" prop="marryTime" label-width="70px">
+                    <el-input v-model="marryList.marryTime" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+ 
+
+  
+        <div style="padding-left:400px;padding-top:30px" >
+          <el-container >
+
+  
+            <el-row  >
+                <el-button
+                  type="primary"
+                  @click="handleUpdate(scope.row)"
+                  v-hasPermi="['system:role:edit']"
+                >缂栬緫</el-button>
+  
+                <br>
+                  <el-button
+                    type="primary"
+                    @click="handleExport"
+                    v-hasPermi="['family:note:export']"
+                  >瀵煎嚭</el-button>
+            </el-row>
+  
+          </el-container>
+        </div>
+  <!--      </el-dialog> self:user:export-->
+      </el-container>
+      <h2 style="font-size:16px " >閰嶅伓鎯呭喌</h2>
+      <el-container>
+        <div style="padding-top:15px" >
+          <el-container >
+            <el-col >
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left"
+                       v-loading="loading" :data="marryList" @selection-change="handleSelectionChange" >
+                <el-row :span="16">
+                  <el-form-item label="濮撳悕" prop="spouseName" label-width="40px">
+                    <el-input v-model="marryList.spouseName" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鍑虹敓鏃ユ湡" prop="spouseBirthday" label-width="70px">
+                    <el-input v-model="marryList.spouseBirthday" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="韬唤璇佸彿鐮�" prop="spouseId" label-width="85px">
+                    <el-input v-model="marryList.spouseId" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="濠氬Щ鐘跺喌" prop="spouseMarryStatus" label-width="70px">
+                    <el-input v-model="marryList.spouseMarryStatus" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鎴风睄鍦板潃" prop="spouseAddress" label-width="70px">
+                    <el-input v-model="marryList.spouseAddress" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+
+
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:200px;padding-top:15px">
+          <el-container>
+            <el-col v-loading="loading" :data="marryList" @selection-change="handleSelectionChange">
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left">
+                <el-row :span="16">
+                  <el-form-item label="鎬у埆" prop="spouseSex" label-width="40px">
+                    <el-input v-model="marryList.spouseSex === 1 ? '鐢�':'濂�' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="姘戞棌" prop="spouseNation" label-width="40px">
+                    <el-input v-model="marryList.spouseNation " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鑱旂郴鐢佃瘽" prop="spousePhone" label-width="70px">
+                    <el-input v-model="marryList.spousePhone" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="缁撳鏃堕棿" prop="marryTime" label-width="70px">
+                    <el-input v-model="marryList.marryTime" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+ 
+
+  
+        <div style="padding-left:30px;padding-top:30px" >
+          <el-container >
+  <!--          <template slot-scope="scope" v-if="scope.row.roleId !== 1">-->
+  <!--            <el-button-->
+  <!--              size="mini"-->
+  <!--              type="text"-->
+  <!--              icon="el-icon-edit"-->
+  <!--              @click="handleUpdate(scope.row)"-->
+  <!--              v-hasPermi="['system:role:edit']"-->
+  <!--            >淇敼</el-button>-->
+  
+  <!--          </template>-->
+  
+    
+          </el-container>
+        </div>
+  <!--      </el-dialog> self:user:export-->
+      </el-container>
+
+      <!-- <h2 style="font-size:16px " >鍓嶄换鎯呭喌</h2>
+      <el-container>
+        <div style="padding-top:15px" >
+          <el-container >
+            <el-col >
+              <el-form ref="elForm" :model="marryList.oldSpouseList" :rules="rules" size="medium"  label-position="left"
+                       v-loading="loading" :data="marryList.oldSpouseList" @selection-change="handleSelectionChange" >
+                <el-row :span="16">
+                  <el-form-item label="濮撳悕" prop="name" label-width="40px">
+                    <el-input v-model="marryList.oldSpouseList.name" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鍑虹敓鏃ユ湡" prop="spouseBirthday" label-width="70px">
+                    <el-input v-model="marryList.spouseBirthday" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="韬唤璇佸彿鐮�" prop="spouseId" label-width="85px">
+                    <el-input v-model="marryList.spouseId" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="濠氬Щ鐘跺喌" prop="spouseMarryStatus" label-width="70px">
+                    <el-input v-model="marryList.spouseMarryStatus" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鎴风睄鍦板潃" prop="spouseAddress" label-width="70px">
+                    <el-input v-model="marryList.spouseAddress" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+
+
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:200px;padding-top:15px">
+          <el-container>
+            <el-col v-loading="loading" :data="marryList" @selection-change="handleSelectionChange">
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left">
+                <el-row :span="16">
+                  <el-form-item label="鎬у埆" prop="spouseSex" label-width="40px">
+                    <el-input v-model="marryList.spouseSex === 1 ? '鐢�':'濂�' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="姘戞棌" prop="spouseNation" label-width="40px">
+                    <el-input v-model="marryList.spouseNation " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鑱旂郴鐢佃瘽" prop="spousePhone" label-width="70px">
+                    <el-input v-model="marryList.spousePhone" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="缁撳鏃堕棿" prop="marryTime" label-width="70px">
+                    <el-input v-model="marryList.marryTime" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+      </el-container> -->
+
+    <h2 style="font-size:16px " >鐢熻偛鎯呭喌</h2>
+
+    
+    <el-container>
+        <div style="padding-left:0px" >
+          <el-container >
+            <el-col >
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left"
+                       v-loading="loading" :data="marryList" @selection-change="handleSelectionChange" >
+                <el-row :span="16">
+                  <el-form-item label="鐢熻偛鎯呭喌" prop="bearStatus" label-width="80px">
+                    <el-input v-model="marryList.bearStatus" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="棰嗗彇銆婅鍒掔敓鑲叉湇鍔℃墜鍐屻��" prop="handbookStatus" label-width="180px">
+                    <el-input v-model="marryList.handbookStatus ===1 ? '鏄�':'鍚�' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="棰嗗彇銆婄嫭鐢熷瓙濂宠瘉銆�" prop="oneBorn" label-width="150px">
+                    <el-input v-model="marryList.oneBorn  ===1 ? '鏄�':'鍚�' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+  
+
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:200px; padding-top: 58px; ">
+          <el-container>
+            <el-col v-loading="loading" :data="marryList" @selection-change="handleSelectionChange">
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left" >
+
+                <el-row :span="16"  >
+                  <el-form-item label="棰嗚瘉鏃堕棿" prop="handbookTime" label-width="70px">
+                    <el-input v-model="marryList.handbookTime " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="棰嗚瘉鏃堕棿" prop="oneBornTime" label-width="70px">
+                    <el-input v-model="marryList.oneBornTime" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+ 
+
+  
+        <div style="padding-left:400px;padding-top:30px" >
+        </div>
+  <!--      </el-dialog> self:user:export-->
+      </el-container>
+    
+    </div>
+  </template>
+  
+  <script>
+  import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
+  import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
+  
+  
+  
+  //鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁�  --鎺ュソ浜�
+  import {listMarry} from "@/api/marry/index";
+  import { delFamilyevent, uploadPic } from '../../api/bignote'
+  import { blobValidate } from '../../utils/ruoyi'
+  
+  export default {
+    name: "show",
+    dicts: ['sys_normal_disable'],
+    data() {
+      return {
+        
+        // 閬僵灞�
+        disabled: false,
+  
+        loading: true,
+        formData:[],
+        // 閫変腑鏁扮粍
+        ids: [],
+        // 闈炲崟涓鐢�
+        single: true,
+        // 闈炲涓鐢�
+        multiple: true,
+        // 鏄剧ず鎼滅储鏉′欢
+        showSearch: true,
+        // 鎬绘潯鏁�
+        total: 0,
+        //澶村儚涓婁紶
+        showBtnDealImg:true,
+        noneBtnImg:false,
+        limitCountImg:1,//涓婁紶鍥剧墖鐨勬渶澶ф暟閲�
+        //涓汉淇℃伅鏁版嵁
+        marryList:[],
+        fit:['fill'],
+   
+        oldSpouseList:[],
+        //涓嬫媺瀹炵幇
+        activeNames:['1'],
+        // 寮瑰嚭灞傛爣棰�
+        title: "",
+        // 鏄惁鏄剧ず寮瑰嚭灞�
+        open: false,
+        // open:true,
+        // 鏄惁鏄剧ず寮瑰嚭灞傦紙鏁版嵁鏉冮檺锛�
+        openDataScope: false,
+        menuExpand: false,
+        menuNodeAll: false,
+        deptExpand: true,
+        deptNodeAll: false,
+        // 鏃ユ湡鑼冨洿
+        dateRange: [],
+        // 鏁版嵁鑼冨洿閫夐」
+        fot:[".jpg",".jif"],
+        fileList:[
+        ],
+        fileListOther:[
+  
+        ],
+        dsb:true,
+        btn:false,
+  
+  
+        formDat: {
+          //涓汉鍩烘湰淇℃伅
+          name:undefined,
+          oldName:undefined,
+          sex:undefined,
+          nationality:undefined,
+          nation:undefined,
+          maritalStatus:undefined,
+          phoneNumber:undefined,
+          idNum:undefined,
+          locationAddress:undefined,
+          alwaysAddress:undefined,
+          locationPolice:undefined,
+          alwaysPolice:undefined,
+          outStatus:undefined,
+          idNo:undefined,
+          unit:undefined,
+          position:undefined,
+          politicalOutlook:undefined,
+          img:undefined,
+          fatherId:undefined,
+          momId:undefined,
+          birthday:undefined,
+          familyId:undefined,
+  
+  
+          //涓昏瀛︿範鍙婂伐浣滅粡鍘�
+          id:undefined,
+          userId:undefined,
+          startDate:undefined,
+          content:undefined,
+          witness:undefined,
+          remark: undefined,
+          //瀹跺涵鎴愬憳鍙婁富瑕佺ぞ浼氬叧绯绘儏鍐�
+          relation:undefined,
+          //鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐�
+          cerName:undefined,
+          validityDate:undefined,
+          ownStatus:undefined,
+          //鍑哄浗锛堝锛夋儏鍐�
+          destination:undefined,
+          cause:undefined,
+          url: undefined,
+        },
+        // 鑿滃崟鍒楄〃
+        menuOptions: [],
+        // 閮ㄩ棬鍒楄〃
+        deptOptions: [],
+        // 鏌ヨ鍙傛暟
+        queryParams: {
+          pageNum: 1,
+          pageSize: 5,
+          startDate:undefined,
+          content:undefined,
+          witness:undefined,
+        },
+        // 琛ㄥ崟鍙傛暟
+        form: {},
+        defaultProps: {
+          children: "children",
+          label: "label"
+        },
+        // 琛ㄥ崟鏍¢獙
+        rules: {
+          //鍩烘湰淇℃伅
+          nickName: [{
+            // required: true,
+            message: '璇疯緭鍏ュ鍚�',
+            trigger: 'blur'
+          }],
+          oldName: [{
+            // required: true,
+            message: '璇疯緭鍏ユ浘鐢ㄥ悕',
+            trigger: 'blur'
+          }],
+          idNum: [{
+            // required: true,
+            message: '璇疯緭鍏ヨ韩浠借瘉鍙�',
+            trigger: 'blur'
+          }],
+          nationality: [{
+            // required: true,
+            message: '璇疯緭鍏ュ浗绫�',
+            trigger: 'blur'
+          }],
+          maritalStatus: [{
+            // required: true,
+            message: '璇疯緭鍏ユ皯鏃�',
+            trigger: 'blur'
+          }],
+          locationAddress: [{
+            // required: true,
+            message: '璇疯緭鍏ユ埛绫嶅湴鍧�',
+            trigger: 'blur'
+          }],
+          alwaysAddress: [{
+            // required: true,
+            message: '璇疯緭鍏ュ父浣忓湴鍧�',
+            trigger: 'blur'
+          }],
+          unit: [{
+            // required: true,
+            message: '璇疯緭鍏ュ崟浣�',
+            trigger: 'blur'
+          }],
+          position: [{
+            // required: true,
+            message: '璇疯緭鍏ヨ亴鍔¤亴绉�',
+            trigger: 'blur'
+          }],
+          locationPolice: [{
+            // required: true,
+            message: '璇疯緭鍏ユ埛绫嶅湴鍏畨鏈哄叧',
+            trigger: 'blur'
+          }],
+          alwaysPolice: [{
+            // required: true,
+            message: '璇疯緭鍏ュ父浣忓湴鍏畨鏈哄叧',
+            trigger: 'blur'
+          }],
+  
+          //涓昏瀛︿範鍙婂伐浣滅粡鍘�
+          startDate: [{
+            required: true,
+            message: '璇疯緭鍏ヨ捣濮嬫棩鏈�',
+            trigger: 'blur'
+          }],
+          content: [{
+            required: true,
+            message: '璇疯緭鍏ヤ富瑕佸涔犵粡鍘嗐�佸伐浣滃崟浣嶅強浠昏亴鎯呭喌',
+            trigger: 'blur'
+          }],
+          witness: [{
+            required: true,
+            message: '璇疯緭鍏ヨ瘉鏄庝汉',
+            trigger: 'blur'
+          }],
+  
+        },
+        typeOptions: [],
+      };
+    },
+    created() {
+      this.getList()
+    },
+    methods: {
+
+      
+      // 鍙栨秷鎸夐挳
+      cancelData() {
+        this.open = false;
+        this.reset();
+      },
+      //涓嬫媺
+      handleChange(val) {
+        console.log(val);
+      },
+  
+      // edit(row){
+      //   const id= row.id;
+      //   this.reset();
+      //   this.title='缂栬緫涓汉淇℃伅';
+      //   this.$router.push('/self/self/edit/' + id);
+      // },
+      //涓汉鑷紶
+      handleClick(tab, event) {
+        // console.log(tab, event);
+        this.getAutobiographyInfor();
+        if(tab.name == 0) {
+  
+        }
+  
+        //鏍规嵁涓嶅悓鏃舵鐨勪釜浜鸿嚜浼�
+        getAutobiographyTermList(this.queryParams).then(response => {
+          //  alert(123)
+          //   console.log(response.data)
+          this.AutobiographyTermList = response.data;
+          this.total = response.data.total;
+          this.loading = false;
+        });
+  
+        getAutobiographyList(this.queryParams).then(response => {
+          //  alert(123)
+          //   console.log(response.data)
+          this.AutobiographyList = response.data;
+          this.total = response.data.total;
+          this.loading = false;
+        });
+      },
+  
+  
+  
+  
+      /** 鏌ヨ瑙掕壊鍒楄〃 */
+  
+  
+      getList() {
+        this.loading = true;
+
+        //涓汉淇℃伅
+        listMarry(this.queryParams).then(response => {
+            //  alert(123)
+            //   console.log(response.data)
+            this.marryList = response.data;
+            this.total = response.data.total;
+            this.loading = false;
+          }
+        );
+        listMarry(this.queryParams).then(response => {
+            //  alert(123)
+            //   console.log(response.data)
+            this.oldSpouseList = response.data;
+            this.total = response.data.total;
+            this.loading = false;
+          }
+        );
+  
+      },
+  
+      //鍥剧墖鐨勪笂浼犲強涓婁紶鎸夐挳闅愯棌
+  
+  
+      // 鍙栨秷鎸夐挳
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 鍙栨秷鎸夐挳锛堟暟鎹潈闄愶級
+      cancelDataScope() {
+        this.openDataScope = false;
+        this.reset();
+      },
+      // 琛ㄥ崟閲嶇疆
+      reset() {
+        if (this.$refs.menu != undefined) {
+          this.$refs.menu.setCheckedKeys([]);
+        }
+        this.menuExpand = false,
+          this.menuNodeAll = false,
+          this.deptExpand = true,
+          this.deptNodeAll = false,
+          this.form = {
+            roleId: undefined,
+            roleName: undefined,
+            roleKey: undefined,
+            roleSort: 0,
+            status: "0",
+            menuIds: [],
+            deptIds: [],
+            menuCheckStrictly: true,
+            deptCheckStrictly: true,
+            remark: undefined
+          };
+        this.resetForm("form");
+      },
+      /** 鎼滅储鎸夐挳鎿嶄綔 */
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      /** 閲嶇疆鎸夐挳鎿嶄綔 */
+      resetQuery() {
+        this.dateRange = [];
+        this.resetForm("queryForm");
+        this.handleQuery();
+      },
+      // 澶氶�夋閫変腑鏁版嵁
+      handleSelectionChange(selection) {
+        this.ids = selection.map(item => item.id)
+        console.log(this.ids)
+        this.single = selection.length!=1
+        this.multiple = !selection.length
+      },
+  
+      /** 鏂板鎸夐挳鎿嶄綔 */
+      handleAdd() {
+        this.reset();
+        this.open = true;
+        this.title = "娣诲姞涓汉淇℃伅";
+      },
+  
+  
+      /** 鏌ョ湅璇︾粏淇℃伅 */
+      handleCheck(row){
+        const id = row.id;
+        this.$router.push("/self/self/edit/" + id);
+      },
+      /** 淇敼鎸夐挳鎿嶄綔 */
+      handleUpdate(row) {
+        const id = row.id;
+        let jd = true
+  
+        this.$router.push({
+          path:"/self/marry/edit/" + id,
+          query:{
+            detail:jd
+          }
+        });
+      },
+  
+      handleRemoveFile(file) {
+        alert(23)
+      },
+      handleRemove(file) {
+        alert("鎿嶄綔鎴愬姛")
+      },
+      handlePictureCardPreview(file) {
+        this.dialogImageUrl = file.url;
+        this.dialogVisible = true;
+      },
+      //鐐瑰嚮涓嬭浇鍑芥暟
+      handleDownload(url) {
+        var formData = {'path':"/"+url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
+  
+        let lens = formData.path.split(".")
+        let suffix = lens[lens.length-1]
+        download(formData).then(async (response) => {
+          const isLogin = await blobValidate(response);
+          let nt = new Date().getTime()
+          let filename = 'selfevent_'+nt+'.'+suffix
+          const blob = new Blob([response])
+          saveAs(blob, filename)
+        })
+      },
+  
+      /** 鏌ヨ鑷紶淇℃伅 */
+      getAutobiographyInfor()
+      {
+        let _this = this
+        getAutobiography().then(response=>{
+  
+          response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{
+            _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]})
+          })
+        })
+      },
+      /** 鎻愪氦鎸夐挳锛堟暟鎹潈闄愶級 */
+      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) {
+  
+            addIndividual(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})
+  
+          }
+        })
+  
+      },
+      /** 鍒犻櫎涓汉缁忓巻鎸夐挳鎿嶄綔 */
+      handleExperienceDelete(row) {
+        const Ids = row.id || this.ids;
+        this.$modal.confirm('鏄惁纭鍒犻櫎搴忓彿涓�"' + Ids + '"鐨勬暟鎹」锛�').then(function() {
+          return delExperience(Ids);
+        }).then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        }).catch(() => {});
+      },
+      /** 鍒犻櫎鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐垫寜閽搷浣� */
+      handleCertificateDelete(row) {
+        const Ids = row.id || this.ids;
+        this.$modal.confirm('鏄惁纭鍒犻櫎搴忓彿涓�"' + Ids + '"鐨勬暟鎹」锛�').then(function() {
+          return delCertificate(Ids);
+        }).then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        }).catch(() => {});
+      },
+      /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+      handleExport() {
+        this.download('/self/user/export', {
+          ...this.queryParams
+        }, `self_${new Date().getTime()}.xlsx`)
+      }
+    }
+  };
+  </script>
+  
+ 
\ No newline at end of file
diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js
index 1bd5168..d6089d5 100644
--- a/ruoyi-ui/src/router/index.js
+++ b/ruoyi-ui/src/router/index.js
@@ -179,6 +179,23 @@
       }
     ]
   },
+  //钘忓績瀵嗚
+  {
+    path: '/self/secret',
+    component: Layout,
+    // permissions: [],
+    hidden: true,
+    permissions: ['self:secret:info'],
+
+    children: [
+      {
+        path: 'secretInfo/:id(\\d+)',
+        component: () => import('@/views/secret/secretInfo'),
+        name: 'secretInfo',
+        meta: { title: '闅愮璇︽儏',activeMenu: '/self/zsecret'}
+      }
+    ]
+  },
   //瀹跺涵鏀舵敮鍙拌处
   {
     path: '/familymodel/economy',
diff --git a/ruoyi-ui/src/views/marry/edit.vue b/ruoyi-ui/src/views/marry/edit.vue
new file mode 100644
index 0000000..f809bdd
--- /dev/null
+++ b/ruoyi-ui/src/views/marry/edit.vue
@@ -0,0 +1,505 @@
+<template>
+    <div class="app-container">
+      <el-col  :span="6">
+        <el-input size="medium" v-model="input" placeholder="鎼滅储" clearable>
+          <i slot="prefix" class="el-input__icon el-icon-search"></i>
+        </el-input>
+      </el-col>
+      <br>
+      <h1 style="font-size:21px">涓汉绠�鍘�</h1>
+      <el-divider />
+      <h2 style="font-size:16px">鍩烘湰淇℃伅</h2>
+  
+      <el-container>
+        <div style="padding-left:30px">
+          <el-container>
+            <el-col>
+              <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="70px" label-position="left">
+                <el-row :span="6">
+                  <el-form-item label="濮撳悕" prop="nickName">
+                    <el-input v-model="formData.nickName" placeholder="璇疯緭鍏ュ鍚�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="6">
+                  <el-form-item label="鏇剧敤鍚�" prop="oldName">
+                    <el-input v-model="formData.oldName" placeholder="璇疯緭鍏ユ浘鐢ㄥ悕" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="8">
+                  <el-form-item label="韬唤璇佸彿" prop="idNum">
+                    <el-input v-model="formData.idNum" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:70px">
+          <el-container>
+            <el-col >
+              <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="70px" label-position="left">
+                <el-row :span="6">
+                  <el-form-item label="鎬у埆" prop="sex">
+                    <el-input v-model="formData.sex" placeholder="璇疯緭鍏ユ�у埆" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="6">
+                  <el-form-item label="姘戞棌" prop="nation">
+                    <el-input v-model="formData.nation" placeholder="璇疯緭鍏ユ皯鏃�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="8">
+                  <el-form-item label="鑱旂郴鏂瑰紡" prop="phoneNumber">
+                    <el-input v-model="formData.phoneNumber" placeholder="璇疯緭鍏ヨ仈绯绘柟寮�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:70px">
+          <el-container>
+            <el-col>
+              <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="70px" label-position="left">
+                <el-row :span="6">
+                  <el-form-item label="鍥界睄" prop="nationality">
+                    <el-input v-model="formData.nationality" placeholder="璇疯緭鍏ュ浗绫�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="6">
+                  <el-form-item label="濠氬Щ鐘跺喌" prop="maritalStatus">
+                    <el-input v-model="formData.maritalStatus" placeholder="璇疯緭鍏ュ濮荤姸鍐�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+  
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:70px;padding-top:30px">
+          <el-row :gutter="6" >
+            <el-upload ref="ref1"
+                       action=""
+                       :file-list="fileList"
+                       list-type="picture-card"
+                       accept="image/*"
+                       :auto-upload="false"
+                       :multiple="false"
+                       :limit="1">
+              <i class="el-icon-plus"></i>
+            </el-upload>
+          </el-row>
+        </div>
+        <div style="padding-left:50px;padding-top:30px"  >
+          <el-container>
+            <el-row :span="2" style="flex-direction: column;">
+              <el-button type="primary" @click="submitForm">缂栬緫</el-button>
+              <br>
+              <el-button type="primary" @click="submitForm">瀵煎叆</el-button>
+            </el-row>
+          </el-container>
+        </div>
+      </el-container>
+      <el-container>
+        <div style="padding-left:30px">
+          <el-container>
+            <el-col>
+              <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
+                <el-row :span="15">
+                  <el-form-item label="鎴风睄鍦板潃" prop="locationAddress">
+                    <el-input v-model="formData.locationAddress" placeholder="璇疯緭鍏ユ埛绫嶅湴鍧�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="15">
+                  <el-form-item label="甯镐綇鍦板潃" prop="alwaysAddress">
+                    <el-input v-model="formData.alwaysAddress" placeholder="璇疯緭鍏ュ父浣忓湴鍧�" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="15">
+                  <el-form-item label="鍗曚綅鍙婅亴鍔¤亴绉�" prop="unit position ">
+                    <el-input v-model="formData.unit,formData.position" placeholder="璇疯緭鍏ュ崟浣嶅強鑱屽姟鑱岀О" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+  
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:30px">
+          <el-container>
+            <el-col>
+              <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
+                <el-row :span="12">
+                  <el-form-item label="鎴风睄鍦板叕瀹夋満鍏�" prop="locationPolice">
+                    <el-input v-model="formData.locationPolice" placeholder="璇疯緭鍏ユ埛绫嶅湴鍏畨鏈哄叧" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="12">
+                  <el-form-item label="甯镐綇鍦板叕瀹夋満鍏�" prop=" alwaysPolice">
+                    <el-input v-model="formData. alwaysPolice" placeholder="璇疯緭鍏ュ父浣忓湴鍏畨鏈哄叧" clearable :style="{width: '100%'}">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+  
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+      </el-container>
+  
+  
+      <div style="padding-top:30px">
+        <el-container>
+          <div style="width:100%"><h2 style="font-size:15px" >涓昏瀛︿範鍙婂伐浣滅粡鍘�</h2></div>
+          <el-button type="primary" icon="el-icon-edit" round></el-button>
+          <el-button type="primary" icon="el-icon-delete" round></el-button>
+        </el-container>
+  
+        <el-table v-loading="loading" :data="experiencelList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="16"  align="center" />
+          <el-table-column label="璧锋鏃ユ湡" prop="startDate" sortable width="300" align="center" />
+          <el-table-column label="涓昏瀛︿範缁忓巻銆佸伐浣滃崟浣嶅強浠昏亴鎯呭喌" prop="content" sortable width="350" align="center" />
+          <el-table-column label="璇佹槑浜�" prop="witness" sortable width="300" align="center" />
+          <el-table-column label="鍒犻櫎" align="center" class-name="small-padding fixed-width" sortable width="100">
+  
+          </el-table-column>
+        </el-table>
+      </div>
+  
+      <div style="padding-top:30px">
+        <el-container>
+          <div style="width:100%"><h2 style="font-size:15px" >瀹跺涵鎴愬憳鍙婁富瑕佺ぞ浼氬叧绯绘儏鍐�</h2></div>
+          <el-button type="primary" icon="el-icon-edit" round></el-button>
+          <el-button type="primary" icon="el-icon-delete" round></el-button>
+        </el-container>
+  
+        <el-table v-loading="loading" :data="experiencelList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="16"  align="center" />
+          <el-table-column label="涓庢湰浜哄叧绯�"  sortable width="270" align="center" />
+          <el-table-column label="濮撳悕"  sortable width="270" align="center" />
+          <el-table-column label="鍗曚綅鍙婅亴鍔�"  sortable width="270" align="center" />
+          <el-table-column label="鏀挎不闈㈣矊"  sortable width="270" align="center">
+          </el-table-column>
+        </el-table>
+      </div>
+  
+      <el-container>
+        <div style="width:100%"><h2 style="font-size:15px" >绉诲眳鍥斤紙澧冿級鎯呭喌</h2></div>
+  
+      </el-container>
+  
+      <div style="padding-top:30px">
+        <el-container>
+          <div style="width:100%"><h2 style="font-size:15px" >鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐�</h2></div>
+          <el-button type="primary" icon="el-icon-edit" round></el-button>
+          <el-button type="primary" icon="el-icon-delete" round></el-button>
+        </el-container>
+        <!--      :data =""鍐呯殑涓滆タ涓嶇煡閬撹涓嶈鏀�-->
+        <el-table v-loading="loading" :data="experiencelList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="16"  align="center" />
+          <el-table-column label="璇佷欢鍚嶇О"  sortable width="270" align="center" />
+          <el-table-column label="鎸佹湁鎯呭喌"  sortable width="270" align="center" />
+          <el-table-column label="璇佷欢鍙风爜"  sortable width="270" align="center" />
+          <el-table-column label="鏈夋晥鏈�"  sortable width="270" align="center">
+          </el-table-column>
+        </el-table>
+      </div>
+      <div style="padding-top:30px">
+        <el-container>
+          <div style="width:100%"><h2 style="font-size:15px" >鍑哄浗锛堝锛夋儏鍐�</h2></div>
+          <el-button type="primary" icon="el-icon-edit" round></el-button>
+          <el-button type="primary" icon="el-icon-delete" round></el-button>
+        </el-container>
+        <el-table v-loading="loading" :data="experiencelList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="16"  align="center" />
+          <el-table-column label="璧锋鏃ユ湡" prop="startDate" sortable width="300" align="center" />
+          <el-table-column label="鎵�鍒板浗瀹舵垨鑰呭湴鍖�" prop="content" sortable width="350" align="center" />
+          <el-table-column label="浜嬬敱锛堟梾娓搞�佽蛋璁裤�佹帰浜层�佺户鎵胯储浜с�佸叾浠栵級" prop="witness" sortable width="300" align="center" />
+          <el-table-column label="鍒犻櫎" align="center" class-name="small-padding fixed-width" sortable width="100">
+          </el-table-column>
+        </el-table>
+  
+      </div>
+      <pagination
+        v-show="total>0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+      />
+    </div>
+  
+  </template>
+  
+  <script>
+  import {getIndividualInfo, getIndividualRelation, delIndividual, updateIndividual, addIndividual,listExperience,updateExperience,
+    addExperience,delExperience} from "@/api/self/index";
+  
+  export default {
+    name: 'edit',
+    components: {},
+    props: [],
+  
+    data() {
+      return {
+        input: '',
+        filelist: [],
+  
+        // 閬僵灞�
+        disabled: false,
+  
+        loading: true,
+        // formData:[],
+        // 閫変腑鏁扮粍
+        ids: [],
+        // 闈炲崟涓鐢�
+        single: true,
+        // 闈炲涓鐢�
+        multiple: true,
+        // 鏄剧ず鎼滅储鏉′欢
+        showSearch: true,
+        // 鎬绘潯鏁�
+        total: 0,
+        // 涓汉缁忓巻鏁版嵁
+        experiencelList: [],
+        // 寮瑰嚭灞傛爣棰�
+        title: "",
+        // 鏄惁鏄剧ず寮瑰嚭灞�
+        open: false,
+        // 鏄惁鏄剧ず寮瑰嚭灞傦紙鏁版嵁鏉冮檺锛�
+        openDataScope: false,
+        menuExpand: false,
+        menuNodeAll: false,
+        deptExpand: true,
+        deptNodeAll: false,
+        // 鏃ユ湡鑼冨洿
+        dateRange: [],
+        // 鏁版嵁鑼冨洿閫夐」
+        fot:[".jpg",".jif"],
+        fileList:[
+        ],
+        fileListOther:[
+  
+        ],
+        dsb:true,
+        btn:false,
+  
+        formData: {
+          userId:undefined,
+          nickName: undefined,
+          oldName: undefined,
+          sex: undefined,
+          nationality: undefined,
+          nation: undefined,
+          maritalStatus: undefined,
+          idNum: undefined,
+          politicalOutlook: undefined,
+          phoneNumber: undefined,
+          locationAddress: undefined,
+          alwaysPolice: undefined,
+          alwaysAddress: undefined,
+          unit:undefined,
+          position: undefined,
+          locationPolice: undefined,
+          outStatus:undefined,
+          url: undefined,
+        },
+        rules: {
+          nickName: [{
+            required: true,
+            message: '璇疯緭鍏ュ鍚�',
+            trigger: 'blur'
+          }],
+          sex: [{
+            required: true,
+            message: '璇疯緭鍏ユ�у埆',
+            trigger: 'blur'
+          }],
+          nationality: [{
+            required: true,
+            message: '璇疯緭鍏ュ浗绫�',
+            trigger: 'blur'
+          }],
+          oldName: [{
+            required: true,
+            message: '璇疯緭鍏ユ浘鐢ㄥ悕',
+            trigger: 'blur'
+          }],
+          nation: [{
+            required: true,
+            message: '璇疯緭鍏ユ皯鏃�',
+            trigger: 'blur'
+          }],
+          idNum: [{
+            // required: true,
+            message: '璇疯緭鍏ヨ韩浠借瘉鍙�',
+            trigger: 'blur'
+          }],
+          maritalStatus: [{
+            // required: true,
+            message: '璇疯緭鍏ュ濮荤姸鍐�',
+            trigger: 'blur'
+          }],
+          phoneNumber: [{
+            // required: true,
+            message: '璇疯緭鍏ヨ仈绯绘柟寮�',
+            trigger: 'blur'
+          }],
+          locationAddress: [{
+            // required: true,
+            message: '璇疯緭鍏ユ埛绫嶅湴鍧�',
+            trigger: 'blur'
+          }],
+          locationPolice: [{
+            // required: true,
+            message: '璇疯緭鍏ユ埛绫嶅湴鍏畨鏈哄叧',
+            trigger: 'blur'
+          }],
+          alwaysAddress: [{
+            // required: true,
+            message: '璇疯緭鍏ュ父浣忓湴鍧�',
+            trigger: 'blur'
+          }],
+          alwaysPolice: [{
+            // required: true,
+            message: '璇疯緭鍏ュ父浣忓湴鍏畨鏈哄叧',
+            trigger: 'blur'
+          }],
+          unit: [{
+            // required: true,
+            trigger: 'blur'
+          }],
+          position: [{
+            // required: true,
+            message: '璇疯緭鍏ュ崟浣嶅強鑱屽姟鑱岀О',
+            trigger: 'blur'
+          }],
+        },
+  
+        // 鏌ヨ鍙傛暟
+        queryParams: {
+          pageNum: 1,
+          pageSize: 5,
+          startDate:undefined,
+          content:undefined,
+          witness:undefined,
+          createTime:undefined
+        },
+      }
+    },
+    computed: {},
+    watch: {},
+    created() {
+      this.getList();
+      // this.getCateInfor()
+    },
+    mounted() {},
+    methods: {
+      submitForm() {
+        this.$refs['elForm'].validate(valid => {
+          if (!valid) return
+          // TODO 鎻愪氦琛ㄥ崟
+        })
+      },
+      resetForm() {
+        this.$refs['elForm'].resetFields()
+      },
+      fillFormData(){
+        let formData = new FormData();
+        let photo = this.$refs['ref1'].uploadFiles[0];
+        if(photo===undefined){
+          this.$message.error("璇烽�夋嫨鐓х墖");
+          return false;
+        }
+        if(photo!==undefined){
+          formData.append('鐓х墖', photo.raw);//鏍规嵁鍚庣闇�瑕佺殑鍙傛暟杩涜鐩稿簲鏇存敼锛屽ぇ澶氭槸鏂囦欢鏍煎紡
+        }
+        return formData;
+      },
+      dialogConfirm() {
+        let formData=this.fillFormData();
+        if(this.dialogMode ==='edit_pic'){//dialogMode鐢ㄤ簬鍒ゆ柇褰撳墠鏃舵坊鍔犺繕鏄紪杈�
+          this.api.update(formData).then(res => {//璋冪敤淇敼鎺ュ彛
+            if (res.data.code == "OK") {
+              this.$message({
+                type: "success",
+                message: "淇敼鎴愬姛!",
+                duration:5000
+              });
+              this.fileList=[];
+            } else {
+              this.$message.error(res.data.message);
+            }
+          },()=>{
+            this.$message.error("淇敼澶辫触");
+          }).finally(()=>{
+          });
+        }else{
+          this.api.insert(formData).then(res => {//娣诲姞鎺ュ彛
+            if (res.data.code == "OK") {
+              this.$message({
+                type: "success",
+                message: "鏂板缓鎴愬姛!",
+                duration:5000
+              });
+              this.fileList=[];
+            } else {
+              this.$message.error(res.data.message);
+            }
+          },()=>{
+            this.$message.error("鏂板缓澶辫触");
+          }).finally(()=>{
+          });
+        }
+      },
+      //鐐瑰嚮缂栬緫鏃跺浘鐗囧洖鏄�
+      edit_pic(info){//info=>鍚庡彴鎺ュ彛杩斿洖鐨勬暟鎹�
+        let url=this.baseUrl+info.photo//url鐨勫湴鍧�鏍规嵁椤圭洰瀹為檯闇�瑕侊紝info.photo=>鍥剧墖璺緞,this.baseUrl=>涓婁紶鐨勭綉缁滃湴鍧�
+        this.fileList=[];
+        this.fileList.push({
+          'url': url
+        })
+        this.dialogMode='edit_pic';//璁剧疆涓虹紪杈�
+      },
+      onCreateNew(){
+        this.fileList=[];
+        this.dialogMode='create';//璁剧疆涓烘坊鍔�
+      },
+      /** 涓汉淇℃伅鍒楄〃 */
+      getList() {
+        this.loading = true;
+        // console.log(this.queryParams)
+        //  listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+        listExperience(this.queryParams).then(response => {
+            //  alert(123)
+            //   console.log(response.data)
+            this.experiencelList = response.data.data;
+  
+            this.total = response.data.total;
+            this.loading = false;
+          }
+  
+        );
+      },
+  
+  
+    }
+  }
+  </script>
+  
+  <style scoped>
+  
+  </style>
+  
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/marry/index.vue b/ruoyi-ui/src/views/marry/index.vue
new file mode 100644
index 0000000..46b997a
--- /dev/null
+++ b/ruoyi-ui/src/views/marry/index.vue
@@ -0,0 +1,830 @@
+<template>
+    <div class="app-container">
+  <!--    鍥炲埌椤堕儴-->
+      <el-backtop :bottom="150" :right="30">
+        <el-button type="primary" circle
+                   class="el-icon-top"
+        ></el-button>
+      </el-backtop>
+      <h1 style="font-size:21px;padding-top:30px">濠氬Щ鐘跺喌鐧昏琛�</h1>
+      <el-divider />
+  <!--    鍩烘湰淇℃伅-->
+      <h2 style="font-size:16px">鍩烘湰鎯呭喌</h2>
+      <el-container>
+        <div style="padding-left:0px" >
+          <el-container >
+            <el-col >
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left"
+                       v-loading="loading" :data="marryList" @selection-change="handleSelectionChange" >
+                <el-row :span="16">
+                  <el-form-item label="濮撳悕" prop="name" label-width="40px">
+                    <el-input v-model="marryList.name" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鍑虹敓鏃ユ湡" prop="birthday" label-width="70px">
+                    <el-input v-model="marryList.birthday" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="韬唤璇佸彿鐮�" prop="id" label-width="85px">
+                    <el-input v-model="marryList.id" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="濠氬Щ鐘跺喌" prop="marryStatus" label-width="70px">
+                    <el-input v-model="marryList.marryStatus" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb" >
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鎴风睄鍦板潃" prop="address" label-width="70px">
+                    <el-input v-model="marryList.address" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+
+
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:200px">
+          <el-container>
+            <el-col v-loading="loading" :data="marryList" @selection-change="handleSelectionChange">
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left">
+                <el-row :span="16">
+                  <el-form-item label="鎬у埆" prop="sex" label-width="40px">
+                    <el-input v-model="marryList.sex === 1 ? '鐢�':'濂�' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="姘戞棌" prop="nation" label-width="40px">
+                    <el-input v-model="marryList.nation " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鑱旂郴鐢佃瘽" prop="phone" label-width="70px">
+                    <el-input v-model="marryList.phone" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="缁撳鏃堕棿" prop="marryTime" label-width="70px">
+                    <el-input v-model="marryList.marryTime" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+ 
+
+  
+        <div style="padding-left:400px;padding-top:30px" >
+          <el-container >
+
+  
+            <el-row  >
+                <el-button
+                  type="primary"
+                  @click="handleUpdate(scope.row)"
+                  v-hasPermi="['system:role:edit']"
+                >缂栬緫</el-button>
+  
+                <br>
+                  <el-button
+                    type="primary"
+                    @click="handleExport"
+                    v-hasPermi="['family:note:export']"
+                  >瀵煎嚭</el-button>
+            </el-row>
+  
+          </el-container>
+        </div>
+  <!--      </el-dialog> self:user:export-->
+      </el-container>
+      <h2 style="font-size:16px " >閰嶅伓鎯呭喌</h2>
+      <el-container>
+        <div style="padding-top:15px" >
+          <el-container >
+            <el-col >
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left"
+                       v-loading="loading" :data="marryList" @selection-change="handleSelectionChange" >
+                <el-row :span="16">
+                  <el-form-item label="濮撳悕" prop="spouseName" label-width="40px">
+                    <el-input v-model="marryList.spouseName" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鍑虹敓鏃ユ湡" prop="spouseBirthday" label-width="70px">
+                    <el-input v-model="marryList.spouseBirthday" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="韬唤璇佸彿鐮�" prop="spouseId" label-width="85px">
+                    <el-input v-model="marryList.spouseId" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="濠氬Щ鐘跺喌" prop="spouseMarryStatus" label-width="70px">
+                    <el-input v-model="marryList.spouseMarryStatus" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鎴风睄鍦板潃" prop="spouseAddress" label-width="70px">
+                    <el-input v-model="marryList.spouseAddress" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+
+
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:200px;padding-top:15px">
+          <el-container>
+            <el-col v-loading="loading" :data="marryList" @selection-change="handleSelectionChange">
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left">
+                <el-row :span="16">
+                  <el-form-item label="鎬у埆" prop="spouseSex" label-width="40px">
+                    <el-input v-model="marryList.spouseSex === 1 ? '鐢�':'濂�' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="姘戞棌" prop="spouseNation" label-width="40px">
+                    <el-input v-model="marryList.spouseNation " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鑱旂郴鐢佃瘽" prop="spousePhone" label-width="70px">
+                    <el-input v-model="marryList.spousePhone" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="缁撳鏃堕棿" prop="marryTime" label-width="70px">
+                    <el-input v-model="marryList.marryTime" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+ 
+
+  
+        <div style="padding-left:30px;padding-top:30px" >
+          <el-container >
+  <!--          <template slot-scope="scope" v-if="scope.row.roleId !== 1">-->
+  <!--            <el-button-->
+  <!--              size="mini"-->
+  <!--              type="text"-->
+  <!--              icon="el-icon-edit"-->
+  <!--              @click="handleUpdate(scope.row)"-->
+  <!--              v-hasPermi="['system:role:edit']"-->
+  <!--            >淇敼</el-button>-->
+  
+  <!--          </template>-->
+  
+    
+          </el-container>
+        </div>
+  <!--      </el-dialog> self:user:export-->
+      </el-container>
+
+      <!-- <h2 style="font-size:16px " >鍓嶄换鎯呭喌</h2>
+      <el-container>
+        <div style="padding-top:15px" >
+          <el-container >
+            <el-col >
+              <el-form ref="elForm" :model="marryList.oldSpouseList" :rules="rules" size="medium"  label-position="left"
+                       v-loading="loading" :data="marryList.oldSpouseList" @selection-change="handleSelectionChange" >
+                <el-row :span="16">
+                  <el-form-item label="濮撳悕" prop="name" label-width="40px">
+                    <el-input v-model="marryList.oldSpouseList.name" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鍑虹敓鏃ユ湡" prop="spouseBirthday" label-width="70px">
+                    <el-input v-model="marryList.spouseBirthday" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="韬唤璇佸彿鐮�" prop="spouseId" label-width="85px">
+                    <el-input v-model="marryList.spouseId" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="濠氬Щ鐘跺喌" prop="spouseMarryStatus" label-width="70px">
+                    <el-input v-model="marryList.spouseMarryStatus" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鎴风睄鍦板潃" prop="spouseAddress" label-width="70px">
+                    <el-input v-model="marryList.spouseAddress" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+
+
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:200px;padding-top:15px">
+          <el-container>
+            <el-col v-loading="loading" :data="marryList" @selection-change="handleSelectionChange">
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left">
+                <el-row :span="16">
+                  <el-form-item label="鎬у埆" prop="spouseSex" label-width="40px">
+                    <el-input v-model="marryList.spouseSex === 1 ? '鐢�':'濂�' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="姘戞棌" prop="spouseNation" label-width="40px">
+                    <el-input v-model="marryList.spouseNation " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="鑱旂郴鐢佃瘽" prop="spousePhone" label-width="70px">
+                    <el-input v-model="marryList.spousePhone" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="缁撳鏃堕棿" prop="marryTime" label-width="70px">
+                    <el-input v-model="marryList.marryTime" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+      </el-container> -->
+
+    <h2 style="font-size:16px " >鐢熻偛鎯呭喌</h2>
+
+    
+    <el-container>
+        <div style="padding-left:0px" >
+          <el-container >
+            <el-col >
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left"
+                       v-loading="loading" :data="marryList" @selection-change="handleSelectionChange" >
+                <el-row :span="16">
+                  <el-form-item label="鐢熻偛鎯呭喌" prop="bearStatus" label-width="80px">
+                    <el-input v-model="marryList.bearStatus" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="棰嗗彇銆婅鍒掔敓鑲叉湇鍔℃墜鍐屻��" prop="handbookStatus" label-width="180px">
+                    <el-input v-model="marryList.handbookStatus ===1 ? '鏄�':'鍚�' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="棰嗗彇銆婄嫭鐢熷瓙濂宠瘉銆�" prop="oneBorn" label-width="150px">
+                    <el-input v-model="marryList.oneBorn  ===1 ? '鏄�':'鍚�' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+  
+
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+        <div style="padding-left:200px; padding-top: 58px; ">
+          <el-container>
+            <el-col v-loading="loading" :data="marryList" @selection-change="handleSelectionChange">
+              <el-form ref="elForm" :model="marryList" :rules="rules" size="medium"  label-position="left" >
+
+                <el-row :span="16"  >
+                  <el-form-item label="棰嗚瘉鏃堕棿" prop="handbookTime" label-width="70px">
+                    <el-input v-model="marryList.handbookTime " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+                <el-row :span="16">
+                  <el-form-item label="棰嗚瘉鏃堕棿" prop="oneBornTime" label-width="70px">
+                    <el-input v-model="marryList.oneBornTime" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
+                    </el-input>
+                  </el-form-item>
+                </el-row>
+
+              </el-form>
+            </el-col>
+          </el-container>
+        </div>
+ 
+
+  
+        <div style="padding-left:400px;padding-top:30px" >
+        </div>
+  <!--      </el-dialog> self:user:export-->
+      </el-container>
+    
+    </div>
+  </template>
+  
+  <script>
+  import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
+  import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
+  
+  
+  
+  //鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁�  --鎺ュソ浜�
+  import {listMarry} from "@/api/marry/index";
+  import { delFamilyevent, uploadPic } from '../../api/bignote'
+  import { blobValidate } from '../../utils/ruoyi'
+  
+  export default {
+    name: "show",
+    dicts: ['sys_normal_disable'],
+    data() {
+      return {
+        
+        // 閬僵灞�
+        disabled: false,
+  
+        loading: true,
+        formData:[],
+        // 閫変腑鏁扮粍
+        ids: [],
+        // 闈炲崟涓鐢�
+        single: true,
+        // 闈炲涓鐢�
+        multiple: true,
+        // 鏄剧ず鎼滅储鏉′欢
+        showSearch: true,
+        // 鎬绘潯鏁�
+        total: 0,
+        //澶村儚涓婁紶
+        showBtnDealImg:true,
+        noneBtnImg:false,
+        limitCountImg:1,//涓婁紶鍥剧墖鐨勬渶澶ф暟閲�
+        //涓汉淇℃伅鏁版嵁
+        marryList:[],
+        fit:['fill'],
+   
+        oldSpouseList:[],
+        //涓嬫媺瀹炵幇
+        activeNames:['1'],
+        // 寮瑰嚭灞傛爣棰�
+        title: "",
+        // 鏄惁鏄剧ず寮瑰嚭灞�
+        open: false,
+        // open:true,
+        // 鏄惁鏄剧ず寮瑰嚭灞傦紙鏁版嵁鏉冮檺锛�
+        openDataScope: false,
+        menuExpand: false,
+        menuNodeAll: false,
+        deptExpand: true,
+        deptNodeAll: false,
+        // 鏃ユ湡鑼冨洿
+        dateRange: [],
+        // 鏁版嵁鑼冨洿閫夐」
+        fot:[".jpg",".jif"],
+        fileList:[
+        ],
+        fileListOther:[
+  
+        ],
+        dsb:true,
+        btn:false,
+  
+  
+        formDat: {
+          //涓汉鍩烘湰淇℃伅
+          name:undefined,
+          oldName:undefined,
+          sex:undefined,
+          nationality:undefined,
+          nation:undefined,
+          maritalStatus:undefined,
+          phoneNumber:undefined,
+          idNum:undefined,
+          locationAddress:undefined,
+          alwaysAddress:undefined,
+          locationPolice:undefined,
+          alwaysPolice:undefined,
+          outStatus:undefined,
+          idNo:undefined,
+          unit:undefined,
+          position:undefined,
+          politicalOutlook:undefined,
+          img:undefined,
+          fatherId:undefined,
+          momId:undefined,
+          birthday:undefined,
+          familyId:undefined,
+  
+  
+          //涓昏瀛︿範鍙婂伐浣滅粡鍘�
+          id:undefined,
+          userId:undefined,
+          startDate:undefined,
+          content:undefined,
+          witness:undefined,
+          remark: undefined,
+          //瀹跺涵鎴愬憳鍙婁富瑕佺ぞ浼氬叧绯绘儏鍐�
+          relation:undefined,
+          //鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐�
+          cerName:undefined,
+          validityDate:undefined,
+          ownStatus:undefined,
+          //鍑哄浗锛堝锛夋儏鍐�
+          destination:undefined,
+          cause:undefined,
+          url: undefined,
+        },
+        // 鑿滃崟鍒楄〃
+        menuOptions: [],
+        // 閮ㄩ棬鍒楄〃
+        deptOptions: [],
+        // 鏌ヨ鍙傛暟
+        queryParams: {
+          pageNum: 1,
+          pageSize: 5,
+          startDate:undefined,
+          content:undefined,
+          witness:undefined,
+        },
+        // 琛ㄥ崟鍙傛暟
+        form: {},
+        defaultProps: {
+          children: "children",
+          label: "label"
+        },
+        // 琛ㄥ崟鏍¢獙
+        rules: {
+          //鍩烘湰淇℃伅
+          nickName: [{
+            // required: true,
+            message: '璇疯緭鍏ュ鍚�',
+            trigger: 'blur'
+          }],
+          oldName: [{
+            // required: true,
+            message: '璇疯緭鍏ユ浘鐢ㄥ悕',
+            trigger: 'blur'
+          }],
+          idNum: [{
+            // required: true,
+            message: '璇疯緭鍏ヨ韩浠借瘉鍙�',
+            trigger: 'blur'
+          }],
+          nationality: [{
+            // required: true,
+            message: '璇疯緭鍏ュ浗绫�',
+            trigger: 'blur'
+          }],
+          maritalStatus: [{
+            // required: true,
+            message: '璇疯緭鍏ユ皯鏃�',
+            trigger: 'blur'
+          }],
+          locationAddress: [{
+            // required: true,
+            message: '璇疯緭鍏ユ埛绫嶅湴鍧�',
+            trigger: 'blur'
+          }],
+          alwaysAddress: [{
+            // required: true,
+            message: '璇疯緭鍏ュ父浣忓湴鍧�',
+            trigger: 'blur'
+          }],
+          unit: [{
+            // required: true,
+            message: '璇疯緭鍏ュ崟浣�',
+            trigger: 'blur'
+          }],
+          position: [{
+            // required: true,
+            message: '璇疯緭鍏ヨ亴鍔¤亴绉�',
+            trigger: 'blur'
+          }],
+          locationPolice: [{
+            // required: true,
+            message: '璇疯緭鍏ユ埛绫嶅湴鍏畨鏈哄叧',
+            trigger: 'blur'
+          }],
+          alwaysPolice: [{
+            // required: true,
+            message: '璇疯緭鍏ュ父浣忓湴鍏畨鏈哄叧',
+            trigger: 'blur'
+          }],
+  
+          //涓昏瀛︿範鍙婂伐浣滅粡鍘�
+          startDate: [{
+            required: true,
+            message: '璇疯緭鍏ヨ捣濮嬫棩鏈�',
+            trigger: 'blur'
+          }],
+          content: [{
+            required: true,
+            message: '璇疯緭鍏ヤ富瑕佸涔犵粡鍘嗐�佸伐浣滃崟浣嶅強浠昏亴鎯呭喌',
+            trigger: 'blur'
+          }],
+          witness: [{
+            required: true,
+            message: '璇疯緭鍏ヨ瘉鏄庝汉',
+            trigger: 'blur'
+          }],
+  
+        },
+        typeOptions: [],
+      };
+    },
+    created() {
+      this.getList()
+    },
+    methods: {
+
+      
+      // 鍙栨秷鎸夐挳
+      cancelData() {
+        this.open = false;
+        this.reset();
+      },
+      //涓嬫媺
+      handleChange(val) {
+        console.log(val);
+      },
+  
+      // edit(row){
+      //   const id= row.id;
+      //   this.reset();
+      //   this.title='缂栬緫涓汉淇℃伅';
+      //   this.$router.push('/self/self/edit/' + id);
+      // },
+      //涓汉鑷紶
+      handleClick(tab, event) {
+        // console.log(tab, event);
+        this.getAutobiographyInfor();
+        if(tab.name == 0) {
+  
+        }
+  
+        //鏍规嵁涓嶅悓鏃舵鐨勪釜浜鸿嚜浼�
+        getAutobiographyTermList(this.queryParams).then(response => {
+          //  alert(123)
+          //   console.log(response.data)
+          this.AutobiographyTermList = response.data;
+          this.total = response.data.total;
+          this.loading = false;
+        });
+  
+        getAutobiographyList(this.queryParams).then(response => {
+          //  alert(123)
+          //   console.log(response.data)
+          this.AutobiographyList = response.data;
+          this.total = response.data.total;
+          this.loading = false;
+        });
+      },
+  
+  
+  
+  
+      /** 鏌ヨ瑙掕壊鍒楄〃 */
+  
+  
+      getList() {
+        this.loading = true;
+
+        //涓汉淇℃伅
+        listMarry(this.queryParams).then(response => {
+            //  alert(123)
+            //   console.log(response.data)
+            this.marryList = response.data;
+            this.total = response.data.total;
+            this.loading = false;
+          }
+        );
+        listMarry(this.queryParams).then(response => {
+            //  alert(123)
+            //   console.log(response.data)
+            this.oldSpouseList = response.data;
+            this.total = response.data.total;
+            this.loading = false;
+          }
+        );
+  
+      },
+  
+      //鍥剧墖鐨勪笂浼犲強涓婁紶鎸夐挳闅愯棌
+  
+  
+      // 鍙栨秷鎸夐挳
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 鍙栨秷鎸夐挳锛堟暟鎹潈闄愶級
+      cancelDataScope() {
+        this.openDataScope = false;
+        this.reset();
+      },
+      // 琛ㄥ崟閲嶇疆
+      reset() {
+        if (this.$refs.menu != undefined) {
+          this.$refs.menu.setCheckedKeys([]);
+        }
+        this.menuExpand = false,
+          this.menuNodeAll = false,
+          this.deptExpand = true,
+          this.deptNodeAll = false,
+          this.form = {
+            roleId: undefined,
+            roleName: undefined,
+            roleKey: undefined,
+            roleSort: 0,
+            status: "0",
+            menuIds: [],
+            deptIds: [],
+            menuCheckStrictly: true,
+            deptCheckStrictly: true,
+            remark: undefined
+          };
+        this.resetForm("form");
+      },
+      /** 鎼滅储鎸夐挳鎿嶄綔 */
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      /** 閲嶇疆鎸夐挳鎿嶄綔 */
+      resetQuery() {
+        this.dateRange = [];
+        this.resetForm("queryForm");
+        this.handleQuery();
+      },
+      // 澶氶�夋閫変腑鏁版嵁
+      handleSelectionChange(selection) {
+        this.ids = selection.map(item => item.id)
+        console.log(this.ids)
+        this.single = selection.length!=1
+        this.multiple = !selection.length
+      },
+  
+      /** 鏂板鎸夐挳鎿嶄綔 */
+      handleAdd() {
+        this.reset();
+        this.open = true;
+        this.title = "娣诲姞涓汉淇℃伅";
+      },
+  
+  
+      /** 鏌ョ湅璇︾粏淇℃伅 */
+      handleCheck(row){
+        const id = row.id;
+        this.$router.push("/self/self/edit/" + id);
+      },
+      /** 淇敼鎸夐挳鎿嶄綔 */
+      handleUpdate(row) {
+        const id = row.id;
+        let jd = true
+  
+        this.$router.push({
+          path:"/self/marry/edit/" + id,
+          query:{
+            detail:jd
+          }
+        });
+      },
+  
+      handleRemoveFile(file) {
+        alert(23)
+      },
+      handleRemove(file) {
+        alert("鎿嶄綔鎴愬姛")
+      },
+      handlePictureCardPreview(file) {
+        this.dialogImageUrl = file.url;
+        this.dialogVisible = true;
+      },
+      //鐐瑰嚮涓嬭浇鍑芥暟
+      handleDownload(url) {
+        var formData = {'path':"/"+url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
+  
+        let lens = formData.path.split(".")
+        let suffix = lens[lens.length-1]
+        download(formData).then(async (response) => {
+          const isLogin = await blobValidate(response);
+          let nt = new Date().getTime()
+          let filename = 'selfevent_'+nt+'.'+suffix
+          const blob = new Blob([response])
+          saveAs(blob, filename)
+        })
+      },
+  
+      /** 鏌ヨ鑷紶淇℃伅 */
+      getAutobiographyInfor()
+      {
+        let _this = this
+        getAutobiography().then(response=>{
+  
+          response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{
+            _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]})
+          })
+        })
+      },
+      /** 鎻愪氦鎸夐挳锛堟暟鎹潈闄愶級 */
+      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) {
+  
+            addIndividual(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})
+  
+          }
+        })
+  
+      },
+      /** 鍒犻櫎涓汉缁忓巻鎸夐挳鎿嶄綔 */
+      handleExperienceDelete(row) {
+        const Ids = row.id || this.ids;
+        this.$modal.confirm('鏄惁纭鍒犻櫎搴忓彿涓�"' + Ids + '"鐨勬暟鎹」锛�').then(function() {
+          return delExperience(Ids);
+        }).then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        }).catch(() => {});
+      },
+      /** 鍒犻櫎鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐垫寜閽搷浣� */
+      handleCertificateDelete(row) {
+        const Ids = row.id || this.ids;
+        this.$modal.confirm('鏄惁纭鍒犻櫎搴忓彿涓�"' + Ids + '"鐨勬暟鎹」锛�').then(function() {
+          return delCertificate(Ids);
+        }).then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        }).catch(() => {});
+      },
+      /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+      handleExport() {
+        this.download('/self/user/export', {
+          ...this.queryParams
+        }, `self_${new Date().getTime()}.xlsx`)
+      }
+    }
+  };
+  </script>
+  
+ 
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/secret/index.vue b/ruoyi-ui/src/views/secret/index.vue
new file mode 100644
index 0000000..179c6fe
--- /dev/null
+++ b/ruoyi-ui/src/views/secret/index.vue
@@ -0,0 +1,727 @@
+<template>
+    <div class="app-container" style="opacity: 1;">
+      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
+  
+        <el-form-item label="鏃堕棿" >
+          <el-date-picker
+            v-model="queryParams.happenTime"
+            style="width: 240px;"
+            value-format="yyyy-MM-dd HH-MM"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+          ></el-date-picker>
+        </el-form-item>
+        <el-form-item label="绫诲埆" prop="type">
+          <el-input
+            v-model="queryParams.type"
+            placeholder="璇疯緭鍏ョ被鍒�"
+            clearable
+            style="width: 240px"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+  
+        <el-form-item label="璐﹀彿" prop="useFor">
+          <el-input
+            v-model="queryParams.useFor"
+            placeholder="璇疯緭鍏ヨ处鍙�"
+            clearable
+            style="width: 240px"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item>
+          <el-button  size="mini" @click="handleQuery" style=" width: 65px; height: 32px;background: #FFDDE3;border-radius:6px 6px 6px 6px;opacity:1;">鎼滅储</el-button>
+          <el-button  size="mini" @click="resetQuery" style=" width: 65px;height: 32px; background: #FFDDE3; border-radius:6px 6px 6px 6px;opacity: 1;">閲嶇疆</el-button>
+        </el-form-item>
+      </el-form>
+  
+      <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="handleExportTemplate"
+            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-col>
+        <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      </el-row>
+      
+
+      <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="120"/>
+        <el-table-column label="鍙戠敓鏃堕棿" prop="happenTime" sortable width="100" align="center">
+          <template slot-scope="scope">{{scope.row.happenTime? scope.row.createTime: '鈥斺�斺�斺��'}}</template>
+        </el-table-column>
+        <el-table-column label="绫诲瀷" prop="type" sortable width="100" />
+        <el-table-column label="璐﹀彿" prop="accNo" sortable width="100" />
+        <el-table-column label="鏈夋晥鏈�" prop="validityDate" sortable width="100" align="center">
+          <template slot-scope="scope">{{scope.row.createTime? scope.row.createTime: '鈥斺�斺�斺��'}}</template>
+        </el-table-column>
+        <el-table-column label="瀵嗙爜" prop="password" sortable width="100" />
+        <el-table-column label="鏄惁寮�鍚寚绾�" prop="isFinger" sortable width="120" >
+            <template slot-scope="scope">{{scope.row.isFinger===1 ?'鏄�': '鍚�'}}</template>
+        </el-table-column>>
+        <el-table-column label="鏄惁寮�鍚汉鑴�" prop="isFace" sortable width="120" >
+            <template slot-scope="scope">{{scope.row.isFace===1 ?'鏄�': '鍚�'}}</template>
+        </el-table-column>
+        <el-table-column label="绉佹湁/鍏湁" prop="isPrivate" sortable width="100" >
+          <template slot-scope="scope">{{scope.row.isFace===1 ?'绉佹湁': '鍏湁'}}</template>
+        </el-table-column>
+        <el-table-column label="瀛樻斁浣嶇疆" prop="location" sortable width="100" > 
+          <template slot-scope="scope">{{scope.row.location? scope.row.location: '鈥斺�斺�斺��'}}</template>
+        </el-table-column>
+        <el-table-column label="澶囨敞" prop="remark" sortable width="100" >
+          <template slot-scope="scope">{{scope.row.remark? scope.row.remark: '鈥斺�斺�斺��'}}</template>
+        </el-table-column>
+        <el-table-column label="鐢靛瓙鏂囦欢" prop="url" align="center" sortable  width="110" >
+          <template slot-scope="scope" >
+            <img
+              class="el-upload-list__item-thumbnail"
+              src="../../assets/images/deviceLis.png"
+              alt=""
+              style="width: 35px; height: 35px;"
+              fit="cover"
+              v-if="scope.row.url !== ','"
+            >
+            <img
+              class="el-upload-list__item-thumbnail"
+              src="../../assets/images/deviceA.png"
+              alt=""
+              style="width: 35px; height: 35px;"
+              fit="cover"
+              v-if="scope.row.url === ','"
+            >
+          </template>
+        </el-table-column>
+  
+        <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+          <template slot-scope="scope" v-if="scope.row.roleId !== 1">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleUpdate(scope.row)"
+              v-hasPermi="['familymodel:economy:info']"
+            >淇敼</el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click="handleDelete(scope.row)"
+              v-hasPermi="['system:role:remove']"
+            >鍒犻櫎</el-button>
+            <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['familymodel:economy:info']">
+              <el-button size="mini" type="text" icon="el-icon-d-arrow-right"  @click="handleCheck(scope.row)">鏌ョ湅璇︽儏</el-button>
+  
+            </el-dropdown>
+          </template>
+        </el-table-column>
+      </el-table>
+  
+      <pagination
+        v-show="total>0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+        style="background: #FEF7FC;"
+      />
+  
+      <!-- 娣诲姞鎴栦慨鏀硅祫浜т俊鎭厤缃璇濇 -->
+      <!-- 璁惧鍚嶇О銆佹椂闂淬�佽喘涔颁汉銆佷簨椤瑰唴瀹广�佸瓨鏀惧湴鐐广�佸娉ㄣ�佺數瀛愭枃浠� -->
+      <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="happenTime">
+            <el-date-picker
+              v-model='formDat.happenTime'
+              type='date'
+              placeholder='閫夋嫨鏃ユ湡'
+            ></el-date-picker>
+          </el-form-item>
+            <el-form-item label="绫诲埆" prop="type">
+            <el-input v-model="formDat.type" placeholder="璇疯緭鍏ョ被鍒�" clearable :style="{width: '100%'}" ></el-input>
+          </el-form-item>
+          <el-form-item label="璐﹀彿" prop="accNo">
+            <el-input v-model="formDat.accNo" placeholder="璇疯緭鍏ヨ处鍙�" clearable :style="{width: '100%'}" ></el-input>
+          </el-form-item>
+            
+          <el-form-item label="鏈夋晥鏈�" prop="validityDate">
+            <el-date-picker
+              v-model='formDat.validityDate'
+              type='date'
+              placeholder='閫夋嫨鏃ユ湡'
+            ></el-date-picker>
+          </el-form-item>
+          <el-form-item label="瀵嗙爜" prop="password">
+            <el-input v-model="formDat.password" placeholder="璇疯緭鍏ュ瘑鐮�" clearable :style="{width: '100%'}" ></el-input>
+          </el-form-item>
+          <el-form-item label="鏄惁寮�鍚寚绾�" prop="isFinger">
+            <el-select v-model="formDat.isFinger" placeholder="璇烽�夋嫨鏄�/鍚�" clearable :style="{width: '100%'}"  >
+              <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="鏄惁寮�鍚汉鑴�" prop="isFace">
+            <el-select v-model="formDat.isFace" placeholder="璇烽�夋嫨鏄�/鍚�" clearable :style="{width: '100%'}"  >
+              <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="绉佹湁/鍏湁" prop="isPrivate">
+            <el-select v-model="formDat.isPrivate" placeholder="璇烽�夋嫨绉佹湁/鍏湁" clearable :style="{width: '100%'}"  >
+              <el-option v-for="(item, index) in typeOptions1" :key="index" :label="item.label" :value="item.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+  
+
+          <el-form-item label="瀛樻斁浣嶇疆" prop="location">
+            <el-input v-model="formDat.location" placeholder="璇疯緭鍏ュ瓨鏀句綅缃�" clearable :style="{width: '100%'}" >
+            </el-input>
+          </el-form-item>
+
+          <el-form-item label="澶囨敞" prop="remark">
+            <el-input v-model="formDat.remark" placeholder="璇疯緭鍏ュ娉�" clearable :style="{width: '100%'}" ></el-input>
+          </el-form-item>
+  
+          <h4 class="form-header">鐩稿叧鍥剧墖 </h4>
+          <el-upload
+            action="#"
+            list-type="picture-card"
+            multiple
+            :http-request="requestUpload"
+            :file-list="fileList"
+          >
+            <i slot="default" class="el-icon-plus"></i>
+            <div slot="file" slot-scope="{file}">
+              <img
+                class="el-upload-list__item-thumbnail"
+                :src="file.url"
+                alt=""
+                style="width: 126px; height: 126px"
+                fit="cover"
+                :preview-src-list="[file.url]"
+              >
+              <span class="el-upload-list__item-actions">
+            <span
+              class="el-upload-list__item-preview"
+              @click="handlePictureCardPreview(file)"
+            >
+              <i class="el-icon-zoom-in"></i>
+            </span>
+  
+            <span
+              v-if="!disabled"
+              class="el-upload-list__item-delete"
+              @click="handleRemove(file)"
+            >
+              <i class="el-icon-delete"></i>
+            </span>
+          </span>
+  
+  
+            </div>
+          </el-upload>
+          <h4 class="form-header">鍏朵粬闄勪欢 </h4>
+          <el-upload
+            action=""
+            :file-list="fileListOther"
+            class="upload-demo"
+            multiple
+  
+            :on-remove="handleRemove"
+            :http-request="requestUpload"
+            :show-file-list="true"
+          >
+            <el-button type="primary">涓婁紶</el-button>
+            <template #tip>
+              <div class="el-upload__tip">
+              </div>
+            </template>
+          </el-upload>
+  
+        </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>
+  
+      </el-dialog>
+  
+    </div>
+  </template>
+  
+  <script>
+  import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
+  import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
+  
+  
+  
+  //鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁�  --鎺ュソ浜�
+  import {listSecret,enload,getEconomyInfo,delSecret, addSecret, uploadPic} from "@/api/secret/index";
+  
+  export default {
+    name: "Role",
+    dicts: ['sys_normal_disable'],
+    data() {
+      return {
+        // 閬僵灞�
+        disabled: false,
+        loading: true,
+        formData:[],
+        // 閫変腑鏁扮粍
+        ids: [],
+        // 闈炲崟涓鐢�
+        single: true,
+        // 闈炲涓鐢�
+        multiple: true,
+        // 鏄剧ず鎼滅储鏉′欢
+        showSearch: true,
+        // 鎬绘潯鏁�
+        total: 0,
+        // 瀹跺ぇ浜嬭琛ㄦ牸鏁版嵁
+        economyList: [],
+        // 寮瑰嚭灞傛爣棰�
+        title: "",
+        // 鏄惁鏄剧ず寮瑰嚭灞�
+        open: false,
+        // 鏄惁鏄剧ず寮瑰嚭灞傦紙鏁版嵁鏉冮檺锛�
+        openDataScope: false,
+        menuExpand: false,
+        menuNodeAll: false,
+        deptExpand: true,
+        deptNodeAll: false,
+        // 鏃ユ湡鑼冨洿
+        dateRange: [],
+        // 鏁版嵁鑼冨洿閫夐」
+        fot:[".jpg",".jif"],
+        fileList:[
+        ],
+        fileListOther:[
+  
+        ],
+        dsb:true,
+        btn:false,
+        formDat: {
+          type: undefined,
+          happenTime: undefined,
+          accNo:undefined,
+          validityDate:undefined,
+          password:undefined,
+          validityDate:undefined,
+          isFinger:undefined,
+          isFace:undefined,
+          isPrivate:undefined,
+          location:undefined,
+          remark: undefined,
+          url: undefined,
+        },
+        // 鑿滃崟鍒楄〃
+        menuOptions: [],
+        // 閮ㄩ棬鍒楄〃
+        deptOptions: [],
+        // 鏌ヨ鍙傛暟
+        queryParams: {
+          pageNum: 1,
+          pageSize: 10,
+          type:undefined,
+          accNo:undefined,
+          createTime:undefined,
+  
+        },
+        // 琛ㄥ崟鍙傛暟
+        form: {},
+        defaultProps: {
+          children: "children",
+          label: "label"
+        },
+        // 琛ㄥ崟鏍¢獙
+        rules: {
+            password: [{
+            required: true,
+            message: '璇疯緭鍏ュ瘑鐮�',
+            trigger: 'blur'
+          }],
+  
+          accNo: [{
+            required: true,
+            message: '璇疯緭鍏ヨ处鍙�',
+            trigger: 'blur'
+          }],
+          type: [{
+            required: true,
+            message: '璇烽�夋嫨鍩洪噾/鍙拌处',
+            trigger: 'change'
+          }],
+          isFinger: [{
+            required: true,
+            message: '璇烽�夋嫨鏄惁',
+            trigger: 'change'
+          }],
+          isFace: [{
+            required: true,
+            message: '璇烽�夋嫨鏄惁',
+            trigger: 'change'
+          }],
+          isPrivate: [{
+            required: true,
+            message: '璇烽�夋嫨鏄惁',
+            trigger: 'change'
+          }],
+
+          validityDate: [{
+            // required: true,
+            message: '璇烽�夋嫨鏈夋晥鏈�',
+            trigger: 'change'
+          }],
+          happenTime: [{
+            required: true,
+            message: '璇烽�夋嫨鏈夋晥鏈�',
+            trigger: 'change'
+          }],
+
+        },
+
+        typeOptions: [
+          {
+            value: '0',
+            label: '鍚�',
+          },
+          {
+            value: '1',
+            label: '鏄�',
+          }
+        ],
+        typeOptions1: [
+          {
+            value: '0',
+            label: '鍏湁',
+          },
+          {
+            value: '1',
+            label: '绉佹湁',
+          }
+        ]
+      };
+    },
+    created() {
+      this.getList();
+      this.getCateInfor()
+  
+    },
+    methods: {
+  
+      //鍩洪噾/鍙拌处鐨勯�夋嫨
+      getSrc1(type) {
+        if (type === 0) {
+          return '鍩洪噾'
+        }else {
+          return '鍙拌处'
+        }
+      },
+  
+      getSrc2(kind) {
+        if (kind == 0) {
+          return '鐜伴噾'
+        }else  {
+          return '鑷姩鎵e垝'
+        }
+      },
+  
+      // 鍙栨秷鎸夐挳
+      cancelData() {
+        this.open = false;
+        this.reset();
+      },
+  
+      //闅旇鍙樿壊
+      tableRowClassName({ row, rowIndex }) {
+        if (rowIndex % 2 == 0) {
+          return "statistics-warning-row1";
+        } else {
+          return "statistics-warning-row";
+        }
+      },
+  
+      /** 鏌ヨ瑙掕壊鍒楄〃 */
+      //鍒楄〃鏄剧ず瀹跺ぇ浜嬭
+  
+  
+      getList() {
+        this.loading = true;
+        this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0]
+        this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1]
+        // console.log(this.queryParams)
+        //  listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+  
+            listSecret(this.queryParams).then(response => {
+            //  alert(123)
+            //   console.log(response.data)
+            this.secretList = response.data.data;
+            this.total = response.data.total;
+            this.loading = false;
+          }
+        );
+      },
+      handleRemove(file) {
+        for(let i = 0; i < this.fileListOther.length; i++)
+        {
+          if(this.fileListOther[i].url==file.url)
+            this.$delete(this.fileListOther,i);
+        }
+      },
+
+      // 鍙栨秷鎸夐挳
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      getRowId(row)
+      {
+        return row.id
+      },
+      // 鍙栨秷鎸夐挳锛堟暟鎹潈闄愶級
+      cancelDataScope() {
+        this.openDataScope = false;
+        this.reset();
+      },
+      // 琛ㄥ崟閲嶇疆
+      reset() {
+        if (this.$refs.menu != undefined) {
+          this.$refs.menu.setCheckedKeys([]);
+        }
+        this.menuExpand = false,
+          this.menuNodeAll = false,
+          this.deptExpand = true,
+          this.deptNodeAll = false,
+          this.form = {
+            roleId: undefined,
+            roleName: undefined,
+            roleKey: undefined,
+            roleSort: 0,
+            status: "0",
+            menuIds: [],
+            deptIds: [],
+            menuCheckStrictly: true,
+            deptCheckStrictly: true,
+            remark: undefined
+          };
+        this.resetForm("form");
+      },
+      /** 鎼滅储鎸夐挳鎿嶄綔 */
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      /** 閲嶇疆鎸夐挳鎿嶄綔 */
+      resetQuery() {
+        this.dateRange = [];
+        this.resetForm("queryForm");
+        this.handleQuery();
+      },
+      // 澶氶�夋閫変腑鏁版嵁
+      handleSelectionChange(selection) {
+        this.ids = selection.map(item => item.id)
+        console.log(this.ids)
+        this.single = selection.length!=1
+        this.multiple = !selection.length
+      },
+  
+      /** 鏂板鎸夐挳鎿嶄綔 */
+      handleAdd() {
+        this.reset();
+        this.open = true;
+        this.title = "娣诲姞钘忓績瀵嗚";
+      },
+  
+  
+      /** 鏌ョ湅璇︾粏淇℃伅 */
+      handleCheck(row){
+        const id = row.id;
+        this.$router.push("/self/secret/secretInfo/" + id);
+      },
+      /** 淇敼鎸夐挳鎿嶄綔 */
+      handleUpdate(row) {
+        const id = row.id;
+        let jd = true
+  
+        this.$router.push({
+          path:"/self/secret/secretInfo/" + id,
+          query:{
+            detail:jd
+          }
+        });
+      },
+  
+  
+      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) {
+  
+            addSecret(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('鏄惁纭鍒犻櫎鎵�閫夌殑鏁版嵁椤癸紵').then(function() {
+          return delSecret(Ids);
+        }).then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        }).catch(() => {});
+      },
+      /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+      handleExport() {
+        const Ids = this.ids;
+  
+        if(Ids.length==0)
+        {
+        this.download('/zSecret/export', {
+          ...this.queryParams
+        }, `zSecret_${new Date().getTime()}.xlsx`)
+        }else
+        {
+          this.download('/zSecret/export1/'+Ids, {
+          }, `zSecret_${new Date().getTime()}.xlsx`)
+        }
+      }
+    ,
+    handleExportTemplate(){
+        this.download('/zSecret/model', {
+  
+        }, `zSecret_${new Date().getTime()}.xlsx`)
+    },
+    /** 瀵煎叆鎿嶄綔*/
+    handleEnport(params){
+      var file = params.file;
+      var formData = new FormData();
+      formData.append('excelImport', file);
+      let _this = this
+      alert(file)
+      enload(formData).then(response => {
+        _this.getList();
+        Message({ message: "瀵煎叆鎴愬姛", type: 'warning' })
+  
+      }).catch(err)
+      {
+        Message({ message: "瀵煎叆澶辫触", type: 'error' })
+      }
+  
+    }
+    }
+  
+  };
+  </script>
+  
+  <style>
+  .el-table__row.statistics-warning-row {
+    background: #E0EEFE;
+  
+  }
+  .el-table__row.statistics-warning-row1 {
+    background: #FFEFF2;
+  
+  }
+  </style>
+  
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/secret/secretInfo.vue b/ruoyi-ui/src/views/secret/secretInfo.vue
new file mode 100644
index 0000000..6caea1a
--- /dev/null
+++ b/ruoyi-ui/src/views/secret/secretInfo.vue
@@ -0,0 +1,449 @@
+<template>
+    <div class="app-container">
+      <div class="form-header mt">
+        <h4 class="dt h4">闅愮璇︾粏淇℃伅 </h4>
+       
+      </div>
+  
+      <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="120px">
+        <el-form-item label="鍙戠敓鏃堕棿" prop="happenTime">
+          <el-input v-model="formData.happenTime" placeholder="璇烽�夋嫨鏃堕棿" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+        </el-form-item>
+        <el-form-item label="绫诲瀷" prop="type">
+          <el-select v-model="formData.type" placeholder="璇烽�夋嫨鍩洪噾/鍙拌处" clearable :style="{width: '100%'}" :disabled="dsb" >
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鏈夋晥鏈�" prop="validityDate">
+          <el-input v-model="formData.validityDate" placeholder="璇烽�夋嫨鏃堕棿" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+        </el-form-item>
+        <el-form-item label="璐﹀彿" prop="accNo">
+          <el-input v-model="formData.accNo" placeholder="璇疯緭鍏ョ敤閫�" clearable :style="{width: '100%'}" :disabled="dsb">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="瀵嗙爜" prop="password">
+          <el-input v-model="formData.password" placeholder="璇疯緭鍏ヤ娇鐢ㄤ汉" clearable :style="{width: '100%'}" :disabled="dsb">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="鏄惁寮�鍚寚绾�" prop="isFinger">
+          <el-input v-model="formData.isFinger" placeholder="璇疯緭鍏ユ寔鏈変汉" clearable :style="{width: '100%'}" :disabled="dsb">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="鏄惁寮�鍚汉鑴�" prop="isFace">
+          <el-input v-model="formData.isFace" placeholder="璇烽�夋嫨鐜伴噾/鑷姩鍒掓墸" clearable :style="{width: '100%'}" :disabled="dsb">
+            </el-input>
+        </el-form-item>
+        <el-form-item label="绉佹湁/鍏湁" prop="isPrivate">
+          <el-input v-model="formData.isPrivate" placeholder="璇疯緭鍏ヤ綑棰�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+        </el-form-item>
+        <el-form-item label="澶囨敞" prop="remark">
+          <el-input v-model="formData.remark" placeholder="璇疯緭鍏ュ娉�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+        </el-form-item>
+  
+  
+        <h4 class="form-header">鐩稿叧鍥剧墖 </h4>
+        <el-upload
+          action="#"
+          list-type="picture-card"
+          multiple
+          :http-request="requestUpload"
+          :file-list="fileList"
+        >
+          <i slot="default" class="el-icon-plus"></i>
+          <div slot="file" slot-scope="{file}">
+            <img
+              class="el-upload-list__item-thumbnail"
+              :src="file.url"
+              alt=""
+              style="width: 147px; height: 147px"
+              fit="cover"
+              :preview-src-list="[file.url]"
+            >
+            <span class="el-upload-list__item-actions">
+          <span
+            v-if="isShow"
+            class="el-upload-list__item-preview"
+            @click="handlePictureCardPreview(file)"
+          >
+            <i class="el-icon-zoom-in"></i>
+          </span>
+          <span
+            v-if="isShow"
+            class="el-upload-list__item-delete"
+            @click="handleDownload(file.url)"
+          >
+            <i class="el-icon-download"></i>
+          </span>
+          <span
+            v-if="isShow"
+            class="el-upload-list__item-delete"
+            @click="handleRemove(file)"
+          >
+            <i class="el-icon-delete"></i>
+          </span>
+        </span>
+  
+  
+          </div>
+        </el-upload>
+  
+        <h4 class="form-header">鍏朵粬闄勪欢 </h4>
+      <el-upload
+              action=""
+              :file-list="fileListOther"
+              class="upload-demo"
+              multiple
+              list-type="picture-card"
+              :on-preview="handleFileCardPreview"
+              :on-remove="handleRemove"
+              :http-request="requestUpload"
+              :show-file-list="true"
+            >
+  
+                <i slot="default" class="el-icon-plus"></i>
+                <div slot="file" slot-scope="{file}">
+                  <img
+                    class="el-upload-list__item-thumbnail"
+                    src="../../assets/401_images/401.gif"
+                    alt=""
+                    style="width: 147px; height: 147px"
+                    fit="cover"
+                  >
+                  <span class="el-upload-list__item-actions">
+                  <span
+                    v-if="isShow"
+                    class="el-upload-list__item-preview"
+                    @click="handleFileCardPreview(file)"
+                  >
+                    <i class="el-icon-zoom-in"></i>
+                  </span>
+                  <span
+                    v-if="isShow"
+                    @click="handleRemove(file)"
+                    class="el-upload-list__item-delete"
+  
+                  >
+                    <i class="el-icon-download"></i>
+                  </span>
+                  <span
+                    v-if="isShow"
+                    class="el-upload-list__item-delete"
+                    @click="handleRemoveFile(file)"
+                  >
+                    <i class="el-icon-delete"></i>
+                  </span>
+                </span>
+  
+  
+                </div>
+  
+  
+            </el-upload>
+  
+        <el-form-item size="large">
+          <el-button v-if="isShow" type="primary" @click="submitForm" :disabled="dsb">淇敼</el-button>
+        </el-form-item>
+      </el-form>
+  
+  
+      <el-dialog  :visible.sync="dialogVisible">
+        <img w-full :src="dialogImageUrl" alt="Preview Image" />
+      </el-dialog>
+    </div>
+  </template>
+  <script>
+  import {getSecretInfo,  uploadPic, download, updateSecret} from "@/api/secret/index";
+  import {addRole, updateRole} from "@/api/system/role";
+  import {blobValidate} from "@/utils/ruoyi";
+  import errorCode from "@/utils/errorCode";
+  import {Message} from "element-ui";
+  
+  export default {
+    components: {},
+    props: [],
+    data() {
+      return {
+        cdi:"闅愮璇︾粏淇℃伅",
+        udi:"闅愮淇℃伅淇敼",
+        fot:[".jpg",".jif"],
+        fileList:[
+        ],
+        fileListOther:[
+  
+        ],
+        dsb:true,
+        btn:false,
+        isShow:true,
+        formData: {
+          type: undefined,
+          happenTime: undefined,
+          accNo:undefined,
+          validityDate:undefined,
+          password:undefined,
+          validityDate:undefined,
+          isFinger:undefined,
+          isFace:undefined,
+          isPrivate:undefined,
+          location:undefined,
+          remark: undefined,
+          url: undefined,
+        },
+          dialogImageUrl: '',
+          dialogVisible: false,
+          disabled: false,
+        rules: {
+          // id: [{
+          //   required: true,
+          //   message: '璇疯緭鍏d',
+          //   trigger: 'blur'
+          // }],
+          type: [{
+            required: true,
+            message: '璇烽�夋嫨鍩洪噾/鍙拌处',
+            trigger: 'change'
+          }],
+          title: [{
+            required: true,
+            message: '璇疯緭鍏ユ爣棰�',
+            trigger: 'blur'
+          }],
+          usePeople: [{
+            required: true,
+            message: '璇疯緭鍏ヤ娇鐢ㄤ汉',
+            trigger: 'blur'
+          }],
+          useFor: [{
+            required: true,
+            message: '璇疯緭鍏ョ敤閫�',
+            trigger: 'blur'
+          }],
+          price: [{
+            required: true,
+            message: '璇疯緭鍏ユ敹鍏�/鏀嚭',
+            trigger: 'blur'
+          }],
+          kind: [{
+            required: true,
+            message: '璇烽�夋嫨鐜伴噾/鍒掓墸',
+            trigger: 'blur'
+          }],
+          createTime: [{
+            required: true,
+            message: '璇疯緭鍏ュ娉�',
+            trigger: 'blur'
+          }],
+  
+        },
+        typeOptions: [{
+    value: '0',
+    label: '鍩洪噾',
+  },
+  {
+    value: '1',
+    label: '鍙拌处',
+  }],
+      }
+    },
+    computed: {},
+    watch: {},
+    created() {
+      const id = this.$route.params && this.$route.params.id;
+      let jd;
+      if(this.$route.query.detail!=undefined)
+      {
+        jd =  this.$route.query.detail
+        this.btn= jd
+        this.dsb = !jd
+        this.isShow=true
+        document.title = "淇敼闅愮璇︾粏淇℃伅";
+        this.$route.meta.title = "淇敼闅愮璇︾粏淇℃伅";//鍒楄〃鐨勫悕绉�
+      }
+      else{
+        document.title = "鏌ョ湅闅愮璇︾粏淇℃伅";
+        this.$route.meta.title = "鏌ョ湅闅愮璇︾粏淇℃伅";//鍒楄〃鐨勫悕绉�
+        this.isShow=false
+      }
+  
+      let _this = this
+      if (id) {
+        this.loading = true;
+        getSecretInfo(id).then((response) => {
+          this.formData = response.data;
+          let paths = response.data.url.split(",");
+          for(let i = 0; i < paths.length; i++)
+          {
+            if(paths[i]!="") {
+  
+              let pth = paths[i].substr(paths[i].length - 4, paths[i].length)
+  
+              if (_this.fot.includes(pth) === true)
+                _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
+              else {
+                // alert(paths[i])
+                let nms = paths[i].split("\/")
+                let nm = nms[nms.length - 1]
+                _this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
+              }
+            }
+          }
+          this.loading = false;
+        });
+        this.getCateInfor()
+  
+      }
+    },
+    mounted() {},
+    methods: {
+      getSrc1(type) {
+      if (type === 0) {
+        return '鍩洪噾'
+      }else {
+        return '鍙拌处'
+      }
+    },
+  
+    getSrc2(kind) {
+      if (kind == 0) {
+        return '鐜伴噾'
+      }else  {
+        return '鑷姩鎵e垝'
+      }
+    },
+
+
+      submitForm() {
+        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.formData.url = ul+","+uls
+  
+        this.$refs['elForm'].validate(valid => {
+  
+  
+          if (valid) {
+            if (this.formData.id != undefined) {
+              updateSecret(this.formData).then(response => {
+                this.$modal.msgSuccess("淇敼鎴愬姛");
+                // this.open = false;
+                this.btn=false
+              });
+            } else {
+              this.$modal.msgSuccess("淇敼澶辫触");
+  
+            }
+          }
+        })
+      },
+      resetForm() {
+        this.$refs['elForm'].resetFields()
+      },
+      handlePreview(file)
+      {
+        let formData = {'path':"/"+file.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
+        let lens = formData.path.split(".")
+        let suffix = lens[lens.length-1]
+        download(formData).then(async (response) => {
+          const isLogin = await blobValidate(response);
+          let nt = new Date().getTime()
+          let filename = 'familyevent_'+nt+'.'+suffix
+          const blob = new Blob([response])
+          saveAs(blob, filename)
+        })
+      },
+      handleRemoveFile(file) {
+        for(let i = 0; i < this.fileListOther.length; i++)
+        {
+          if(this.fileListOther[i].url==file.url)
+            this.$delete(this.fileListOther,i);
+        }
+      },
+      handleRemove(file) {
+        for(let i = 0; i < this.fileList.length; i++)
+        {
+          if(this.fileList[i].url==file.url)
+            this.$delete(this.fileList,i);
+        }
+      },
+      handleFileCardPreview(file){
+        this.dialogFileUrl = file.url;
+        const Base64 = require('js-base64').Base64
+        this.desurl = process.env.VUE_APP_BASE_OTHER_API+'onlinePreview?url='+encodeURIComponent(Base64.encode(this.dialogFileUrl));
+        myWindow=window.open(this.desurl,'','width=1200,height=800,top=150,left=300');
+      },
+      handlePictureCardPreview(file) {
+        this.dialogImageUrl = file.url;
+        this.dialogVisible = true;
+      },
+      handleDownload(url) {
+        var formData = {'path':"/"+url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
+  
+        let lens = formData.path.split(".")
+        let suffix = lens[lens.length-1]
+        download(formData).then(async (response) => {
+          const isLogin = await blobValidate(response);
+          let nt = new Date().getTime()
+          let filename = 'familyevent_'+nt+'.'+suffix
+          const blob = new Blob([response])
+          saveAs(blob, filename)
+        })
+      },
+      handleEdit()
+      {
+        this.dsb = false
+        // this.btn = true
+        this.isShow=false
+      },
+      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})
+  
+          }
+        })
+  
+      },
+  
+      /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+      handleExport() {
+        this.download('/zfEconomy/export', {
+          ...this.queryParams
+        }, `zfEconomy_${new Date().getTime()}.xlsx`)
+      }
+  
+    }
+  }
+  
+  </script>
+  <style scoped lang="scss">
+  .mt
+  {
+    position: relative;
+  }
+  .dt{
+    display: block;
+  
+  }
+  .pt{
+    right: 10px;
+    top:-3px;
+    display: block;
+    position: absolute;
+  }
+  </style>
+  
\ No newline at end of file

--
Gitblit v1.9.1