From c48fc6b1b440ef54da502ebf8b8e13fe4343f929 Mon Sep 17 00:00:00 2001
From: Tcsm <1377977403@qq.com>
Date: 星期二, 15 八月 2023 21:45:10 +0800
Subject: [PATCH] 完善荣誉证书模块的类别和名称的选择输入功能;家根网可以按照身份、姓名搜索;成长经历阅历的各个小模块的时间在修改时变成可选形式

---
 ruoyi-ui/src/views/self/show.vue |  204 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 151 insertions(+), 53 deletions(-)

diff --git a/ruoyi-ui/src/views/self/show.vue b/ruoyi-ui/src/views/self/show.vue
index 5661b2b..e44fbb8 100644
--- a/ruoyi-ui/src/views/self/show.vue
+++ b/ruoyi-ui/src/views/self/show.vue
@@ -1,5 +1,7 @@
 <template>
   <div class="app-container">
+    <!--  鍒锋柊椤甸潰  -->
+<!--    <MyComponent :key="componentKey" />-->
     <!--    鍥炲埌椤堕儴-->
     <el-backtop :bottom="150" :right="30">
       <el-button type="primary" circle
@@ -56,12 +58,12 @@
 <!--                  <el-input v-model="individualList.sex === 1 ? '鐢�':'濂�' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">-->
 <!--                  </el-input>-->
                   <template v-if="!isEditing">
-                    <el-input v-model="individualList.sex === 1 ? '鐢�':'濂�'" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+                    <el-input v-model="individualList.sex === 1 ? inds='鐢�':inds='濂�'" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
                   </template>
                   <template v-else>
-                    <el-select v-model="individualList.sex" placeholder="璇烽�夋嫨鎬у埆" clearable :style="{width: '100%'}">
-                      <el-option label="鐢�" value="1"></el-option>
-                      <el-option label="濂�" value="0"></el-option>
+                    <el-select v-model="inds" placeholder="璇烽�夋嫨鎬у埆" clearable :style="{width: '100%'}" :disabled="dsb">
+                      <el-option label="鐢�" value='1'></el-option>
+                      <el-option label="濂�" value='0'></el-option>
                     </el-select>
                   </template>
                 </el-form-item>
@@ -97,13 +99,14 @@
                   <template v-if="!isEditing" >
                     <el-input v-if="individualList.maritalStatus===0" placeholder="鏈"></el-input>
                     <el-input v-if="individualList.maritalStatus===1" placeholder="宸插"></el-input>
-                    <el-input v-if="individualList.maritalStatus===2" placeholder="绂诲"></el-input>
+                    <el-input v-if="individualList.maritalStatus===2" placeholder="鏈"></el-input>
+
                   </template>
                   <template v-else>
-                    <el-select v-model="individualList.maritalStatus" placeholder="璇烽�夋嫨鎬у埆" clearable :style="{width: '100%'}">
-                      <el-option label="鏈" value="0"></el-option>
-                      <el-option label="宸插" value="1"></el-option>
-                      <el-option label="绂诲" value="2"></el-option>
+                    <el-select v-model="mrs" placeholder="璇烽�夋嫨鎬у埆" clearable :style="{width: '100%'}">
+                      <el-option label="鏈" value='0'></el-option>
+                      <el-option label="宸插" value='1'></el-option>
+                      <el-option label="绂诲" value='2'></el-option>
                     </el-select>
                   </template>
                 </el-form-item>
@@ -115,37 +118,50 @@
       </div>
       <div style="padding-left:30px;padding-top:30px">
         <el-col :span="6" :data="individualList">
-          <div class="block" :model="individualList" >
-            <el-col v-model="individualList.img" prop="img">
-              <el-avatar shape="square" style="width: 200px;height: 150px;" >
+          <div class="block" :model="individualList">
+            <div v-if="!isEditing">
+              <el-avatar shape="square" style="width: 200px; height: 150px;">
                 <el-image
-                  :src="'http://47.93.189.255:8080/'+ individualList.img"
+                  class="el-upload-list__item-thumbnail"
+                  v-if="!individualList.img"
+                  src="default-avatar-url"
                   :fit="fit"
-                  style="width: 100%;height: 100%;"
+                  style="width: 100%; height: 100%;"
+                ></el-image>
+                <el-image
+                  v-else
+                  :src="'http://47.93.189.255:8080/' + individualList.img"
+                  :fit="fit"
+                  style="width: 100%; height: 100%;"
                 ></el-image>
               </el-avatar>
-<!--              <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]"-->
-<!--                  >-->
-<!--                </div>-->
-<!--              </el-upload>-->
-         </el-col>
+            </div>
+            <el-upload v-else
+                       class="upload-demo"
+                       action="#"
+                       :auto-upload="false"
+                       :http-request="requestUpload"
+                       :limit="1"
+                       :file-list="fileList"
+            >
+              <el-avatar shape="square" style="width: 200px; height: 150px;">
+                <el-image
+                  class="el-upload-list__item-thumbnail"
+                  v-if="!individualList.img"
+                  src="default-avatar-url"
+                  :fit="fit"
+                  style="width: 100%; height: 100%;"
+                ></el-image>
+                <el-image
+                  v-else
+                  :src="'http://47.93.189.255:8080/' + individualList.img"
+                  :fit="fit"
+                  style="width: 100%; height: 100%;"
+                ></el-image>
+              </el-avatar>
+            </el-upload>
+            <div class="edit-text" v-if="isEditing" @click="uploadImage">鐐瑰嚮鏇存崲鍥剧墖</div>
           </div>
-
         </el-col>
 
       </div>
@@ -239,7 +255,7 @@
       <div>
         <el-form v-loading="loading" :data="individualList" @selection-change="handleSelectionChange">
           <el-form-item label="鏄惁鎷ユ湁澶栫睄銆佸澶栧眳鐣欐潈銆侀暱鏈熷眳鐣欒鍙�" >
-            <el-radio-group v-model="individualList.outStatus" style="margin-bottom: 0;color: #FEF7FC;">
+            <el-radio-group v-model="individualList.outStatus" style="margin-bottom: 0;color: #FEF7FC;" :disabled="dsb">
               <el-radio :label="1">鏄�</el-radio>
               <el-radio :label="0">鍚�</el-radio>
             </el-radio-group>
@@ -266,7 +282,7 @@
           <div class="title-wrapper">
             涓昏瀛︿範鍙婂伐浣滅粡鍘�
             <div>
-            <el-button class="button" size="mini" type="text"  @click="showDialog('open')">
+            <el-button class="button" size="mini" type="text"  @click="showDialog('open')" >
               <sapn v-html="'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"></sapn></el-button>
             </div>
           </div>
@@ -275,13 +291,13 @@
           <el-table-column label="寮�濮嬫棩鏈�" prop="startDate" sortable width="250" align="center" >
             <template slot-scope="scope">
               <template v-if="!scope.row.isEdit">{{ scope.row.startDate }}</template>
-              <template v-else><el-input v-model="scope.row.startDate"></el-input></template>
+              <template v-else><el-input v-model="scope.row.startDate" type="date" placeholder="閫夋嫨鏃ユ湡"></el-input></template>
             </template>
           </el-table-column>
           <el-table-column label="缁撴潫鏃ユ湡" prop="endDate" sortable width="250" align="center" >
             <template slot-scope="scope">
               <template v-if="!scope.row.isEdit">{{ scope.row.endDate }}</template>
-              <template v-else><el-input v-model="scope.row.endDate"></el-input></template>
+              <template v-else><el-input v-model="scope.row.endDate" type="date" placeholder="閫夋嫨鏃ユ湡"></el-input></template>
             </template>
           </el-table-column>
           <el-table-column label="涓昏瀛︿範缁忓巻銆佸伐浣滃崟浣嶅強浠昏亴鎯呭喌" prop="content" sortable width="350" align="center" >
@@ -401,13 +417,13 @@
           <el-table-column label="寮�濮嬫椂闂�" prop="startTime"  sortable width="230" align="center">
             <template slot-scope="scope">
               <template v-if="!scope.row.isEdit">{{ scope.row.startTime }}</template>
-              <template v-else><el-input v-model="scope.row.startTime"></el-input></template>
+              <template v-else><el-input v-model="scope.row.startTime" type="date" placeholder="閫夋嫨鏃ユ湡"></el-input></template>
             </template>
           </el-table-column>
           <el-table-column label="缁撴潫鏃堕棿" prop="endTime"  sortable width="230" align="center">
             <template slot-scope="scope">
               <template v-if="!scope.row.isEdit">{{ scope.row.endTime }}</template>
-              <template v-else><el-input v-model="scope.row.endTime"></el-input></template>
+              <template v-else><el-input v-model="scope.row.endTime" type="date" placeholder="閫夋嫨鏃ユ湡"></el-input></template>
             </template>
           </el-table-column>
           <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
@@ -436,13 +452,13 @@
           <el-table-column label="寮�濮嬫椂闂�" prop="startTime"  sortable width="200" align="center">
             <template slot-scope="scope">
               <template v-if="!scope.row.isEdit">{{ scope.row.startTime }}</template>
-              <template v-else><el-input v-model="scope.row.startTime"></el-input></template>
+              <template v-else><el-input v-model="scope.row.startTime" type="date" placeholder="閫夋嫨鏃ユ湡"></el-input></template>
             </template>
           </el-table-column>
           <el-table-column label="缁撴潫鏃堕棿" prop="endTime"  sortable width="200" align="center">
             <template slot-scope="scope">
               <template v-if="!scope.row.isEdit">{{ scope.row.endTime }}</template>
-              <template v-else><el-input v-model="scope.row.endTime"></el-input></template>
+              <template v-else><el-input v-model="scope.row.endTime" type="date" placeholder="閫夋嫨鏃ユ湡"></el-input></template>
             </template>
           </el-table-column>
           <el-table-column label="鎵�鍒板浗瀹舵垨鑰呭湴鍖�" prop="destination" sortable width="300" align="center" >
@@ -670,7 +686,6 @@
       </div>
     </el-dialog>
 
-
   </div>
 </template>
 
@@ -697,6 +712,7 @@
 export default {
   name: "show",
   dicts: ['sys_normal_disable'],
+
   data() {
     return {
       // 閬僵灞�
@@ -704,8 +720,13 @@
 
       loading: true,
       formData:[],
+      componentKey: 0,
       // 閫変腑鏁扮粍
       ids: [],
+      //鎬у埆
+      inds:undefined,
+      //濠氬Щ绫诲埆
+      mrs:undefined,
       // 闈炲崟涓鐢�
       single: true,
       // 闈炲涓鐢�
@@ -722,7 +743,7 @@
       //涓汉淇℃伅鏁版嵁
       individualList:[],
       isEditing: false,
-      // fit:['fill'],
+      fit:['cover'],
       // 涓汉缁忓巻鏁版嵁
       experienceList: [],
       // isEdit:true,
@@ -990,6 +1011,11 @@
         this.formDat[key] = '';
       });
     },
+    handleUploadSuccess(response, file) {
+      // 澶勭悊鏂囦欢涓婁紶鎴愬姛鍚庣殑鍥炶皟
+      this.individualList.img = response.url;
+    },
+
     //涓嬫媺
     handleChange(activeNames) {
       // console.log(val);
@@ -1218,25 +1244,34 @@
       this.isShow=false
       this.isShow_2=true
       this.isEditing=true
-      // this.isEdit=false
+      if(this.individualList.maritalStatus == 0)
+          this.mrs = '鏈'
+      else if(this.individualList.maritalStatus == 1)
+          this.mrs = '宸插'
+      else
+          this.mrs = '绂诲'// this.isEdit=false
     },
 
     /** 鏌ヨ鑷紶淇℃伅 */
     getAutobiographyInfor()
     {
       let _this = this
-      getCategory().then(response=>{
-
+      getCategory().then(response => {
         // response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{
         //   _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]})
         // })
         response.data.itemValues.replace("{", "").replace("}", "").split(",").map(elem => {
           const label = elem.split(":")[0].trim();
           const value = parseInt(elem.split(":")[1].trim());
-          _this.typeOptions.push({ "label": label, "value": value });
-          // this.getSrc1(value)
-        })
-      })
+
+          // 鍒ゆ柇 typeOptions 鏁扮粍涓槸鍚﹀凡瀛樺湪鐩稿悓鐨� value
+          if (!_this.typeOptions.some(option => option.value === value)) {
+            _this.typeOptions.push({ "label": label, "value": value });
+          }
+          // console.log(_this.typeOptions)
+          // _this.getSrc1(value)
+        });
+      });
 
       // if(AutobiographyList.ageEnd==null){
       //   this.AgeEnd='?'
@@ -1362,6 +1397,16 @@
     //淇敼鍚庣殑淇濆瓨
     //涓汉鍩烘湰淇℃伅
     submitForm() {
+      if(this.inds=='1')
+        this.individualList.sex = 1;
+      else
+        this.individualList.sex = 0;
+      if(this.mrs=='0')
+        this.individualList.maritalStatus = 0
+      else if(this.mrs == '1')
+        this.individualList.maritalStatus = 1
+      else
+        this.individualList.maritalStatus = 2
       let ul = this.fileList.map(function (elem){
         return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
       }).join(",")
@@ -1375,8 +1420,15 @@
           if (this.individualList.userId !== undefined) {
             updateIndividual(this.individualList).then(response => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
+              // 寮哄埗鏇存柊鐩稿叧缁勪欢
+              this.individualList={...this.individualList}
+
               // this.open = false;
+              this.dsb = true
               this.btn=false
+              this.isShow_2=false
+              this.isShow=true
+              this.isEditing = false
             });
           } else {
             this.$modal.msgSuccess("淇敼澶辫触");
@@ -1385,7 +1437,52 @@
         }
       })
       // 鍒锋柊椤甸潰
-      window.location.reload();
+      // window.location.reload();
+    },
+    //澶村儚淇敼
+    uploadImage() {
+      const inputElement = document.createElement("input");
+      inputElement.type = "file";
+      inputElement.accept = "image/*";
+      inputElement.style.display = "none";
+      document.body.appendChild(inputElement);
+
+      inputElement.addEventListener("change", () => {
+        const file = inputElement.files[0];
+        if (file) {
+          const formData = new FormData();
+          formData.append("image", file);
+
+          // 璋冪敤uploadPic鎺ュ彛涓婁紶鍥剧墖
+          axios.post("/common/upload", formData, {
+            headers: {
+              "Content-Type": "multipart/form-data"
+            }
+          }).then(response => {
+            // 涓婁紶鎴愬姛锛岃幏鍙栨柊鍥剧墖鐨刄RL
+            const newImageUrl = response.data.img;
+
+            // 鍋囪individualList鏄竴涓璞★紝鏇存柊individualList.img
+            this.individualList.img =   newImageUrl;
+
+            // 鍋囪fileList鏄竴涓暟缁勶紝鏇存柊fileList涓搴旂殑鍥剧墖URL
+            // const index = this.fileList.findIndex(item => item.id === fileId);
+            // this.fileList[index].url = newImageUrl;
+
+            // 娓呴櫎input鍏冪礌骞剁Щ闄や簨浠剁洃鍚�
+            document.body.removeChild(inputElement);
+            inputElement.removeEventListener("change", null);
+          }).catch(error => {
+            console.error("涓婁紶澶辫触:", error);
+            // 娓呴櫎input鍏冪礌骞剁Щ闄や簨浠剁洃鍚�
+            document.body.removeChild(inputElement);
+            inputElement.removeEventListener("change", null);
+          });
+        }
+      });
+
+      // 瑙﹀彂鐐瑰嚮浜嬩欢锛屾樉绀烘枃浠堕�夋嫨瀵硅瘽妗�
+      inputElement.click();
     },
     //涓昏缁忓巻
     saveRowExperienceList(row) {
@@ -1586,6 +1683,7 @@
 .btn_edit{
   background:center no-repeat url('../../assets/icons/edit.png') ;
 }
+
 .button {
   background:center no-repeat url('../../assets/icons/add1.png') ;
   margin-left: 69.5vw;

--
Gitblit v1.9.1