From d428cdd48ff4c4dfdeb8c996b94ffc20803ca3a9 Mon Sep 17 00:00:00 2001
From: linwenling <3256558519@qq.com>
Date: 星期二, 26 九月 2023 20:40:35 +0800
Subject: [PATCH] 备忘本

---
 ruoyi-ui/src/views/contacts/index.vue |  257 ++++++++++++++++++++++++++++----------------------
 1 files changed, 144 insertions(+), 113 deletions(-)

diff --git a/ruoyi-ui/src/views/contacts/index.vue b/ruoyi-ui/src/views/contacts/index.vue
index 1e7955f..140a220 100644
--- a/ruoyi-ui/src/views/contacts/index.vue
+++ b/ruoyi-ui/src/views/contacts/index.vue
@@ -1,41 +1,31 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
-      <el-form-item label="" prop="phone wx qq twitter isAlways remark" >
-        <el-input
-          v-model:phone="queryParams.phone"
-          v-model:wx="queryParams.wx"
-          v-model:qq="queryParams.qq"
-          v-model:twitter="queryParams.twitter"
-          v-model:isAlways="queryParams.isAlways"
-          v-model:remark="queryParams.remark"
-          placeholder="鍦ㄢ�滈�氳褰曗�濅腑鎼滅储"
-          clearable
-          style="width: 240px"
-          @keyup.enter.native="handleQuery">
-          <i slot="prefix" class="el-input__icon el-icon-search"></i>
-        </el-input>
-        <!--        v-model="queryParams.id"-->
-      </el-form-item>
 
-      <el-form-item label="鎴愬憳濮撳悕" prop="myName" style="padding-left:180px">
+      <el-form-item label="瀹朵汉濮撳悕" prop="myName" >
         <el-input
           v-model="queryParams.myName"
-          placeholder="璇疯緭鍏ユ垚鍛樺鍚�"
+          placeholder="璇疯緭鍏ュ浜哄鍚�"
           clearable
-          style="width: 240px"
+          style="width: 200px;
+                   height: 35px;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;"
           @keyup.enter.native="handleQuery">
           <i slot="prefix" class="el-input__icon el-icon-search"></i>
         </el-input>
 
       </el-form-item>
 
-      <el-form-item label="绉板懠" prop="nickName">
+      <el-form-item label="閫氳褰曚腑绉板懠" prop="nickName">
         <el-input
           v-model="queryParams.nickName"
-          placeholder="璇疯緭鍏ョО鍛�"
+          placeholder="璇疯緭鍏ラ�氳褰曚腑绉板懠"
           clearable
-          style="width: 240px"
+          style="width: 200px;
+                   height: 35px;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;"
           @keyup.enter.native="handleQuery">
           <i slot="prefix" class="el-input__icon el-icon-search"></i>
         </el-input>
@@ -46,7 +36,10 @@
             v-model="queryParams.name"
             placeholder="璇疯緭鍏ュ鍚�"
             clearable
-            style="width: 240px"
+            style="width: 200px;
+                   height: 35px;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;"
             @keyup.enter.native="handleQuery">
             <i slot="prefix" class="el-input__icon el-icon-search"></i>
           </el-input>
@@ -56,30 +49,31 @@
             v-model="queryParams.work"
             placeholder="璇疯緭鍏ュ伐浣滃崟浣�"
             clearable
-            style="width: 240px"
+            style="width: 200px;
+                   height: 35px;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;"
             @keyup.enter.native="handleQuery"
           >
             <i slot="prefix" class="el-input__icon el-icon-search"></i>
           </el-input>
         </el-form-item>
-   <el-form-item>
-          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
-                     style=" width: 65px; height: 32px;background: #FFDDE3;
-          border-radius: 6px 6px 6px 6px;opacity:1;">鎼滅储</el-button>
-          <el-button icon="el-icon-refresh" 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-item>
+       <el-button size="mini" @click="handleQuery" style=" width: 67px;height: 27px;background: #FFDDE3;
+              border-radius: 7px 7px 7px 7px;opacity: 1; " >鎼滅储</el-button>
+       <el-button  size="mini" @click="resetQuery" style=" width: 67px;height: 27px;background: #FFDDE3;
+              border-radius: 7px 7px 7px 7px;opacity: 1; ">閲嶇疆</el-button>
+     </el-form-item>
     </el-form>
     <div>
-      <div style="width: 72px;
-      height: 24px;
-      font-size: 18px;
-      font-family: Microsoft YaHei-Regular, Microsoft YaHei;
-      font-weight: 400;
-      color: #000000;
-      line-height: 21px;
-      ">閫氳褰�</div>
+<!--      <div style="width: 72px;-->
+<!--      height: 24px;-->
+<!--      font-size: 18px;-->
+<!--      font-family: Microsoft YaHei-Regular, Microsoft YaHei;-->
+<!--      font-weight: 400;-->
+<!--      color: #000000;-->
+<!--      line-height: 21px;-->
+<!--      ">閫氳褰�</div>-->
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
@@ -92,7 +86,6 @@
           v-hasPermi="['system:role:add']"
         >鏂板</el-button>
       </el-col>
-
       <el-col :span="1.5">
         <el-button
           type="danger"
@@ -114,17 +107,17 @@
           v-hasPermi="['family:note:export']"
         >瀵煎嚭</el-button>
               </el-col>
-        <el-col :span="1.5">
+      <el-col :span="1.5">
           <el-button
             type="warning"
             plain
             icon="el-icon-download"
             size="mini"
-            @click="handleExport"
+            @click="handleExportTemplate"
             v-hasPermi="['family:note:export']"
           >瀵煎叆妯℃澘涓嬭浇</el-button>
         </el-col>
-        <el-col :span="1.2">
+      <el-col :span="1.2">
 
           <el-upload
             action=""
@@ -139,16 +132,15 @@
 
           </el-upload>
         </el-col>
-
-
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
-  </div>
-    <el-table v-loading="loading" :data="contactList"  @selection-change="handleSelectionChange"  @row-click="handleCheck" :row-class-name="tableRowClassName" style="background: #FFEFF2;  border-radius: 14px 14px 14px 14px;">
-      <el-table-column type="selection" width="25"  align="center" />
-      <el-table-column  label="搴忓彿" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80"/>
 
-      <el-table-column label="鎴愬憳濮撳悕" prop="myName" sortable width="100" >
+  </div>
+    <el-table v-loading="loading" :data="contactList"  :row-key="getRowId" ref="multipleTable"  @selection-change="handleSelectionChange"  :row-class-name="tableRowClassName" style="background: #FFEFF2;  border-radius: 14px 14px 14px 14px;" >
+      <el-table-column type="selection" :reserve-selection="true" width="55"  align="center" />
+      <el-table-column fixed label="搴忓彿" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80"/>
+
+      <el-table-column label="瀹朵汉濮撳悕" prop="myName" sortable width="130" >
         <template slot-scope="scope">
           <div>
             <a href="javascript:;" @click="handleCheck(scope.row)">{{scope.row.myName}}</a>
@@ -156,60 +148,60 @@
         </template>
 
       </el-table-column>
-      <el-table-column label="绉板懠" prop="nickName" sortable :show-overflow-tooltip="true" width="80" align="center" />
-      <el-table-column label="濮撳悕" prop="name" sortable :show-overflow-tooltip="true" width="80" align="center"/>
-      <el-table-column label="宸ヤ綔鍗曚綅" prop="work" sortable width="100" align="center" >
+      <el-table-column label="閫氳褰曚腑绉板懠" prop="nickName" sortable :show-overflow-tooltip="true" width="160" align="center" />
+      <el-table-column label="濮撳悕" prop="name" sortable :show-overflow-tooltip="true" width="120" align="center"/>
+      <el-table-column label="宸ヤ綔鍗曚綅" prop="work" sortable width="160" align="center" >
         <template slot-scope="scope">{{scope.row.work? scope.row.work: '鈥斺�斺�斺��'}}</template>
       </el-table-column>
-      <el-table-column label="鎵嬫満" prop="phone" sortable width="110" align="center" >
+      <el-table-column label="鎵嬫満" prop="phone" sortable width="120" align="center" >
         <template slot-scope="scope">{{scope.row.phone? scope.row.phone: '鈥斺�斺�斺��'}}</template>
       </el-table-column>
-      <el-table-column label="鍏跺畠鑱旂郴鏂瑰紡" prop="wx qq twitter" sortable width="130" align="center" >
+      <el-table-column label="鍏跺畠鑱旂郴鏂瑰紡" prop="wx qq twitter" sortable :show-overflow-tooltip="true" width="150" align="center" >
         <template slot-scope="scope">
-          <span v-if="scope.row.wx || scope.row.qq || scope.row.twitter == true">
-            {{scope.row.wx}}<br>
-            {{scope.row.qq}}<br>
-            {{scope.row.twitter}}
+          <span v-if="scope.row.wx || scope.row.qq || scope.row.twitter == true" >
+            {{scope.row.wx}}/{{scope.row.qq}}/{{scope.row.twitter}}
           </span>
           <span v-else>鈥斺�斺�斺��</span>
         </template>
       </el-table-column>
-      <el-table-column label="鏄惁甯歌仈绯�" prop="isAlways" sortable width="120" align="center" >
+      <el-table-column label="鏄惁甯歌仈绯�" prop="isAlways" sortable width="170" align="center" >
         <template slot-scope="scope">
           <span v-if="scope.row.isAlways===1">鏄�</span>
           <span v-if="scope.row.isAlways===0">鍚�</span>
           <span v-if="scope.row.isAlways== null">鈥斺��</span>
         </template>
       </el-table-column>
-
-      <el-table-column label="澶囨敞锛堟槸鍚﹀瓨鍦ㄩ噾閽卞叧绯伙級" prop="remark" sortable width="200" >
+      <el-table-column label="鏄惁鏄湰瀹跺涵璁板綍" prop="ownData" sortable width="150px" >
+        <template slot-scope="scope">{{scope.row.ownData === 0 ? '鍚�': '鏄�'}}</template>
+      </el-table-column>
 
 
+      <el-table-column label="澶囨敞锛堟槸鍚﹀瓨鍦ㄩ噾閽卞叧绯伙級" prop="remark" sortable width="120" align="center">
         <template slot-scope="scope">{{scope.row.remark? scope.row.remark: '鈥斺�斺�斺��'}}</template>
       </el-table-column>
 
-      <el-table-column label="鐢靛瓙鍚嶇墖" prop="url" width="160" >
+      <el-table-column label="鐢靛瓙鍚嶇墖" prop="url" width="160" align="center">
            <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 !== null"
-             >
-      <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 === null"
-             >
+             <div  @click="handleCheck(scope.row)">
+               <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 === '' || scope.row.url === ',' || scope.row.url === null)"
+               >
+               <img
+                 v-else
+                 class="el-upload-list__item-thumbnail"
+                 src="../../assets/images/deviceA.png"
+                 alt=""
+                 style="width: 35px; height: 35px;"
+                 fit="cover"
+
+               ></div>
            </template>
         </el-table-column>
-
-
 
 
       <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
@@ -228,22 +220,12 @@
             @click="handleDelete(scope.row)"
             v-hasPermi="['system:role:remove']"
           >鍒犻櫎</el-button>
-          <el-dropdown
-            size="mini"
-            @command="(command) => handleCommand(command, scope.row)"
-            v-hasPermi="['system:role:edit']">
            <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>
@@ -257,22 +239,23 @@
       @pagination="getList"
     />
 
-    <!-- 娣诲姞閫氳褰曢厤缃璇濇
+
     <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
       <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px">
 
-        <el-form-item label="鎴愬憳濮撳悕" prop="myName">
-          <el-input v-model="formDat.myName" placeholder="璇疯緭鍏ユ垚鍛樺鍚�" clearable :style="{width: '100%'}" >
+        <el-form-item label="瀹朵汉濮撳悕" prop="myName">
+          <el-input v-model="formDat.myName" placeholder="璇疯緭鍏ュ浜哄鍚�" clearable :style="{width: '100%'}" >
         </el-input>
         </el-form-item>
 
-        <el-form-item label="绉板懠" prop="nickName">
-          <el-input v-model="formDat.nickName" placeholder="璇疯緭鍏ョО鍛�" clearable :style="{width: '100%'}" ></el-input>
+        <el-form-item label="閫氳褰曚腑绉板懠" prop="nickName">
+          <el-input v-model="formDat.nickName" placeholder="璇疯緭鍏ラ�氳褰曚腑绉板懠" clearable :style="{width: '100%'}" ></el-input>
         </el-form-item>
         <el-form-item label="濮撳悕" prop="name">
           <el-input v-model="formDat.name" placeholder="璇疯緭鍏ュ鍚�" clearable :style="{width: '100%'}" >
           </el-input>
         </el-form-item>
+
         <el-form-item label="宸ヤ綔鍗曚綅" prop="work">
           <el-input v-model="formDat.work" placeholder="璇疯緭鍏ュ伐浣滃崟浣�" clearable :style="{width: '100%'}" >
           </el-input>
@@ -294,8 +277,10 @@
           </el-input>
         </el-form-item>
         <el-form-item label="鏄惁甯歌仈绯�" prop="isAlways">
-          <el-input v-model="formDat.isAlways" placeholder="鏄惁甯歌仈绯�" clearable :style="{width: '100%'}" >
-          </el-input>
+          <el-select v-model="formDat.isAlways" 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="remark">
@@ -310,7 +295,7 @@
           :http-request="requestUpload"
           :file-list="fileList"
         >
-          <i slot="default" class="el-icon-plus"></i>
+         <i  slot="default" class="el-icon-plus"></i>
           <div slot="file" slot-scope="{file}">
             <img
               class="el-upload-list__item-thumbnail"
@@ -347,11 +332,12 @@
           class="upload-demo"
           multiple
 
-          :on-remove="handleRemove"
+          :on-remove="handleRemoveFile"
           :http-request="requestUpload"
           :show-file-list="true"
         >
           <el-button type="primary">鐐瑰嚮涓婁紶</el-button>
+          <div v-if="uploading" class="upload-status">姝e湪涓婁紶...</div>
           <template #tip>
             <div class="el-upload__tip">
             </div>
@@ -362,12 +348,11 @@
       <h4 class="form-header"> </h4>
 
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitDataScope">纭� 瀹�</el-button>
+        <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>
@@ -382,7 +367,7 @@
 import { Notification, MessageBox, Message, Loading } from 'element-ui'
 
 //瀵煎叆鎺ュ彛鍑芥暟
-import {getContactList,enload, getContactIdList, addContact,updateContact, delContact,uploadPic} from "@/api/contacts/index";
+import {getContactList,enload,  addContact, delContact,uploadPic} from "@/api/contacts/index";
 export default {
   name: "index",
   dicts: ['sys_normal_disable'],
@@ -427,7 +412,7 @@
       dsb:true,
       btn:false,
       fit:['fill'],
-
+      uploading: false,
       formDat: {
         //閫氳褰�
         id:undefined,
@@ -490,12 +475,12 @@
         // }],
         myName: [{
           required: true,
-          message: '璇疯緭鍏ユ垚鍛樺鍚�',
+          message: '璇疯緭鍏ュ浜哄鍚�',
           trigger: 'blur'
         }],
         nickName: [{
           required: true,
-          message: '璇疯緭鍏ョО鍛�',
+          message: '璇疯緭鍏ラ�氳褰曚腑绉板懠',
           trigger: 'blur'
         }],
         name: [{
@@ -539,7 +524,14 @@
           trigger: 'blur'
         }],
       },
-      typeOptions: [],
+      typeOptions: [{
+        value: '1',
+        label: '鏄�',
+      },
+        {
+          value: '0',
+          label: '鍚�',
+        }],
     };
   },
   created() {
@@ -555,7 +547,10 @@
       this.open = false;
       this.reset();
     },
-
+    getRowId(row)
+    {
+      return row.id
+    },
     //闅旇鍙樿壊
     tableRowClassName({ row, rowIndex }) {
       if (rowIndex % 2 == 0) {
@@ -592,8 +587,19 @@
     //   })
     // },
 
+    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) {
-      alert(323)
+      for(let i = 0; i < this.fileList.length; i++)
+      {
+        if(this.fileList[i].url==file.url)
+          this.$delete(this.fileList,i);
+      }
     },
     // 鍙栨秷鎸夐挳
     cancel() {
@@ -704,6 +710,17 @@
           });
         }
       });
+      // 娓呯┖formDat瀵硅薄鐨勬暟鎹�
+      Object.keys(this.formDat).forEach(key => {
+        this.formDat[key] = '';
+      });
+      for(let i = 0; i <= this.fileList.length; i++)
+      {
+        this.handleRemove(this.fileList[0]);
+      }
+      for(let i = 0; i < this.fileListOther.length; i++){
+        this.handleRemoveFile(this.fileListOther[0]);
+      }
     },
     requestUpload(params)
     {
@@ -711,10 +728,11 @@
       var formData = new FormData();
       formData.append('uploadFile', file);
       let _this = this
-
+      this.uploading = true;
       uploadPic(formData).then(response => {
         let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length)
-
+        this.uploading = false;
+        this.$modal.msgSuccess("涓婁紶鎴愬姛");
         if(_this.fot.includes(pth) === true)
         {
           _this.fileList.push({name:response.data.fileName, "url":response.data.url})
@@ -731,7 +749,7 @@
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
       const Ids = row.id || this.ids;
-      this.$modal.confirm('鏄惁纭鍒犻櫎缂栧彿涓�"' + Ids + '"鐨勬暟鎹」锛�').then(function() {
+      this.$modal.confirm('鏄惁纭鍒犻櫎鏁版嵁椤癸紵').then(function() {
         return delContact(Ids);
       }).then(() => {
         this.getList();
@@ -740,9 +758,22 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
+      const Ids = this.ids;
+
+      if(Ids.length==0)
+      {
       this.download('zfContact/export', {
         ...this.queryParams
       }, `zfContact_${new Date().getTime()}.xlsx`)
+      }else{
+        this.download('zfContact/export1/'+Ids, {
+        }, `zfContact_${new Date().getTime()}.xlsx`)
+      }
+    },
+    handleExportTemplate(){
+      this.download('zfContact/model', {
+        ...this.queryParams
+      }, `zfContact_${new Date().getTime()}.xlsx`)
     },
     /** 瀵煎叆鎿嶄綔*/
     handleEnport(params){

--
Gitblit v1.9.1