From 058c7c78326aaf9ff58e6bc63107dbfe50544e9e Mon Sep 17 00:00:00 2001
From: Tcsm <1377977403@qq.com>
Date: 星期六, 15 四月 2023 17:30:43 +0800
Subject: [PATCH] 主要新增了家庭小医生模块

---
 ruoyi-ui/src/views/contacts/index.vue |  416 ++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 269 insertions(+), 147 deletions(-)

diff --git a/ruoyi-ui/src/views/contacts/index.vue b/ruoyi-ui/src/views/contacts/index.vue
index 6b3eee4..46987c2 100644
--- a/ruoyi-ui/src/views/contacts/index.vue
+++ b/ruoyi-ui/src/views/contacts/index.vue
@@ -1,73 +1,89 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
-
-      <el-col  :span="6" >
-        <el-input size="medium" v-model="input" placeholder="鎼滅储" clearable>
+      <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>
-      </el-col>
-
-      <el-form-item label="鏃堕棿" style="padding-left:80px">
-          <el-date-picker
-            v-model="dateRange"
-            style="width: 240px"
-            value-format="yyyy-MM-dd HH-MM"
-            type="daterange"
-            range-separator="-"
-            start-placeholder="寮�濮嬫棩鏈�"
-            end-placeholder="缁撴潫鏃ユ湡"
-          ></el-date-picker>
+        <!--        v-model="queryParams.id"-->
       </el-form-item>
 
-      <el-form-item label="绫诲埆" prop="type">
-          <el-select
-            v-model="queryParams.type"
-            placeholder="鎵�鏈夌被鍒�"
+      <el-form-item label="鎴愬憳濮撳悕" prop="myName" style="padding-left:180px">
+        <el-input
+          v-model="queryParams.myName"
+          placeholder="璇疯緭鍏ユ垚鍛樺鍚�"
+          clearable
+          style="width: 240px"
+          @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-input
+          v-model="queryParams.nickName"
+          placeholder="璇疯緭鍏ョО鍛�"
+          clearable
+          style="width: 240px"
+          @keyup.enter.native="handleQuery">
+          <i slot="prefix" class="el-input__icon el-icon-search"></i>
+        </el-input>
+      </el-form-item>
+      <el-cntainer>
+        <el-col :span="9" >
+         <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-col>
+      </el-cntainer>
+        <el-form-item label="濮撳悕" prop="name">
+          <el-input
+            v-model="queryParams.name"
+            placeholder="璇疯緭鍏ュ鍚�"
             clearable
             style="width: 240px"
+            @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="work">
+          <el-input
+            v-model="queryParams.work"
+            placeholder="璇疯緭鍏ュ伐浣滃崟浣�"
+            clearable
+            style="width: 240px"
+            @keyup.enter.native="handleQuery"
           >
-            <el-option
-              v-for="dict in typeOptions"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-      </el-form-item>
-      <el-form-item label="鏍囬" prop="title">
-        <el-input
-          v-model="queryParams.title"
-          placeholder="璇疯緭鍏ユ爣棰�"
-          clearable
-          style="width: 240px"title
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="鎸佹湁浜�" prop="holder">
-        <el-input
-          v-model="queryParams.holder"
-          placeholder="璇疯緭鍏ユ寔鏈変汉"
-          clearable
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="瀛樻斁鍦板潃" prop="address">
-        <el-input
-          v-model="queryParams.address"
-          placeholder="璇疯緭鍏ュ叿浣撲綅缃�"
-          clearable
-          style="width: 240px"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+            <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">鎼滅储</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</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>
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
@@ -104,20 +120,49 @@
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
-
-    <el-table v-loading="loading" :data="propertyList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55"  align="center" />
-      <el-table-column label="璧勪骇缂栧彿" prop="id" sortable width="120" />
-      <el-table-column label="绫诲瀷" prop="type" sortable :show-overflow-tooltip="true" width="150" />
-      <el-table-column label="鏍囬" prop="title" sortable :show-overflow-tooltip="true" width="150" />
-      <el-table-column label="瀛樺偍鍦板潃" prop="location" sortable width="100" />
-      <el-table-column label="鎸佹湁浜�" prop="holder" sortable width="100" />
-      <el-table-column label="鍏蜂綋浣嶇疆" prop="address" sortable width="100" />
-      <el-table-column label="澶囨敞淇℃伅" prop="remark" sortable width="100" />
-      <el-table-column label="鍒涘缓鏃堕棿" align="center" sortable prop="createTime" width="180">
+  </div>
+    <el-table v-loading="loading" :data="contactList"  @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="25"  align="center" />
+      <el-table-column label="鎴愬憳濮撳悕" prop="myName" sortable width="100" >
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
+          <div>
+            <a href="javascript:;" @click="handleCheck(scope.row)">{{scope.row.myName}}</a>
+          </div>
         </template>
+
+      </el-table-column>
+      <el-table-column label="绉板懠" prop="nickName" sortable :show-overflow-tooltip="true" width="80" />
+      <el-table-column label="濮撳悕" prop="name" sortable :show-overflow-tooltip="true" width="80" />
+      <el-table-column label="宸ヤ綔鍗曚綅" prop="work" sortable width="100" >
+        <template slot-scope="scope">{{scope.row.work? scope.row.work: '鈥斺�斺�斺��'}}</template>
+      </el-table-column>
+      <el-table-column label="鎵嬫満" prop="phone" sortable width="110" >
+        <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" >
+        <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>
+          <span v-else>鈥斺�斺�斺��</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="鏄惁甯歌仈绯�" prop="isAlways" sortable width="120" >
+        <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="url" align="center" sortable  width="180">
+        <template slot-scope="scope">
+          <el-image style="width: 100px; height: 100px" :src="'http://47.93.189.255:8080/'+ scope.row.url" fit="cover"></el-image>
+        </template>
+      </el-table-column>
+      <el-table-column label="澶囨敞锛堟槸鍚﹀瓨鍦ㄩ噾閽卞叧绯伙級" prop="remark" sortable width="120" >
+        <template slot-scope="scope">{{scope.row.remark? scope.row.remark: '鈥斺�斺�斺��'}}</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">
@@ -156,40 +201,56 @@
       :total="total"
       :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
+      style="background: #FEF7FC;"
       @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="type">
-          <el-select v-model="formDat.type" 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 label="鎴愬憳濮撳悕" prop="myName">
+          <el-input v-model="formDat.myName" placeholder="璇疯緭鍏ユ垚鍛樺鍚�" clearable :style="{width: '100%'}" >
+        </el-input>
         </el-form-item>
 
-        <el-form-item label="鏍囬" prop="title">
-          <el-input v-model="formDat.title" 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="location">
-          <el-input v-model="formDat.location" placeholder="璇疯緭鍏ュ瓨鍌ㄥ湴鍧�" clearable :style="{width: '100%'}" >
+        <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="holder">
-          <el-input v-model="formDat.holder" placeholder="璇疯緭鍏ユ寔鏈変汉" clearable :style="{width: '100%'}" >
+        <el-form-item label="宸ヤ綔鍗曚綅" prop="work">
+          <el-input v-model="formDat.work" placeholder="璇疯緭鍏ュ伐浣滃崟浣�" clearable :style="{width: '100%'}" >
           </el-input>
         </el-form-item>
-        <el-form-item label="鍏蜂綋浣嶇疆" prop="address">
-          <el-input v-model="formDat.address" placeholder="璇疯緭鍏ュ叿浣撲綅缃�" clearable :style="{width: '100%'}" >
+        <el-form-item label="鎵嬫満" prop="phone">
+          <el-input v-model="formDat.phone" placeholder="璇疯緭鍏ユ墜鏈�" clearable :style="{width: '100%'}" >
           </el-input>
         </el-form-item>
-        <el-form-item label="澶囨敞" prop="remark">
+        <el-form-item label="寰俊" prop="wx">
+          <el-input v-model="formDat.wx" placeholder="璇疯緭鍏ュ井淇�" clearable :style="{width: '100%'}" >
+          </el-input>
+        </el-form-item>
+        <el-form-item label="QQ" prop="qq">
+          <el-input v-model="formDat.qq" placeholder="璇疯緭鍏Q" clearable :style="{width: '100%'}" >
+          </el-input>
+        </el-form-item>
+        <el-form-item label="twitter" prop="twitter">
+          <el-input v-model="formDat.twitter" placeholder="璇疯緭鍏witter" clearable :style="{width: '100%'}" >
+          </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-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>
+        <h4 class="form-header">鐢靛瓙鍚嶇墖 </h4>
         <el-upload
           action="#"
           list-type="picture-card"
@@ -238,7 +299,7 @@
           :http-request="requestUpload"
           :show-file-list="true"
         >
-          <el-button type="primary">Click to upload</el-button>
+          <el-button type="primary">鐐瑰嚮涓婁紶</el-button>
           <template #tip>
             <div class="el-upload__tip">
             </div>
@@ -268,10 +329,10 @@
 
 
 
-//鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁�
-import {listProperty, getPropertyInfo, delProperty, getCategory, addProperty, uploadPic} from "@/api/note/index";
+//瀵煎叆鎺ュ彛鍑芥暟
+import {getContactList, getContactIdList, addContact,updateContact, delContact,uploadPic} from "@/api/contacts/index";
 export default {
-  name: "Role",
+  name: "index",
   dicts: ['sys_normal_disable'],
   data() {
     return {
@@ -290,8 +351,8 @@
       showSearch: true,
       // 鎬绘潯鏁�
       total: 0,
-      // 璧勪骇琛ㄦ牸鏁版嵁
-      propertyList: [],
+      // 閫氳褰曡〃鏍兼暟鎹�
+      contactList: [],
       // 寮瑰嚭灞傛爣棰�
       title: "",
       // 鏄惁鏄剧ず寮瑰嚭灞�
@@ -313,14 +374,31 @@
       ],
       dsb:true,
       btn:false,
+      fit:['fill'],
+
       formDat: {
-        type: undefined,
-        title: undefined,
-        location: undefined,
-        holder: undefined,
-        address: undefined,
-        remark: undefined,
+        //閫氳褰�
+        id:undefined,
+        myName:undefined,
+        nickName:undefined,
+        name:undefined,
+        work:undefined,
+
+        phone:undefined,
+        wx:undefined,
+        qq:undefined,
+        twitter:undefined,
+        isAlways:undefined,
+        remark:undefined,
         url: undefined,
+
+        // type: undefined,
+        // title: undefined,
+        // location: undefined,
+        // holder: undefined,
+        // address: undefined,
+
+
       },
       // 鑿滃崟鍒楄〃
       menuOptions: [],
@@ -330,13 +408,21 @@
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        type:undefined,
-        title:undefined,
-        location:undefined,
-        holder:undefined,
-        address:undefined,
-        createTime:undefined
+        id:undefined,
+        myName:undefined,
+        nickName:undefined,
+        name:undefined,
+        work:undefined,
+
+        phone:undefined,
+        wx:undefined,
+        qq:undefined,
+        twitter:undefined,
+        isAlways:undefined,
+        remark:undefined,
       },
+      // searchVal:"",
+
       // 琛ㄥ崟鍙傛暟
       form: {},
       defaultProps: {
@@ -345,40 +431,60 @@
       },
       // 琛ㄥ崟鏍¢獙
       rules: {
-        type: [{
+        // id: [{
+        //   required: true,
+        //   message: '璇疯緭鍏d',
+        //   trigger: 'blur'
+        // }],
+        myName: [{
           required: true,
-          message: '璇烽�夋嫨绫诲埆',
-          trigger: 'change'
-        }],
-        title: [{
-          required: true,
-          message: '璇疯緭鍏ユ爣棰�',
+          message: '璇疯緭鍏ユ垚鍛樺鍚�',
           trigger: 'blur'
         }],
-        location: [{
+        nickName: [{
           required: true,
-          message: '璇疯緭鍏ュ瓨鍌ㄥ湴鍧�',
+          message: '璇疯緭鍏ョО鍛�',
           trigger: 'blur'
         }],
-        holder: [{
+        name: [{
           required: true,
-          message: '璇疯緭鍏ユ寔鏈変汉',
+          message: '璇疯緭鍏ュ鍚�',
           trigger: 'blur'
         }],
-        address: [{
-          required: true,
-          message: '璇疯緭鍏ュ叿浣撲綅缃�',
+        work: [{
+          // required: true,
+          message: '璇疯緭鍏ュ伐浣滃崟浣�',
+          trigger: 'blur'
+        }],
+        phone: [{
+          // required: true,
+          message: '璇疯緭鍏ユ墜鏈�',
+          trigger: 'blur'
+        }],
+        wx: [{
+          // required: true,
+          message: '璇疯緭鍏ュ井淇�',
+          trigger: 'blur'
+        }],
+        qq: [{
+          // required: true,
+          message: '璇疯緭鍏Q',
+          trigger: 'blur'
+        }],
+        twitter: [{
+          // required: true,
+          message: '璇疯緭鍏witter',
+          trigger: 'blur'
+        }],
+        isAlways: [{
+          // required: true,
+          message: '鏄惁甯歌仈绯�',
           trigger: 'blur'
         }],
         remark: [{
-          required: true,
+          // required: true,
           message: '璇疯緭鍏ュ娉�',
           trigger: 'blur'
-        }],
-        createTime: [{
-          required: true,
-          message: '璇烽�夋嫨鏃ユ湡閫夋嫨',
-          trigger: 'change'
         }],
       },
       typeOptions: [],
@@ -386,8 +492,10 @@
   },
   created() {
     this.getList();
-    this.getCateInfor()
-
+    // this.getCateInfor()
+    // for (let i = 0; i < this.contactList.length; i++) {
+    //   this.formDat[i] = this.contactList[i];
+    // }
   },
   methods: {
     // 鍙栨秷鎸夐挳
@@ -395,15 +503,16 @@
       this.open = false;
       this.reset();
     },
-    /** 鏌ヨ瑙掕壊鍒楄〃 */
+
+    /** 鏌ヨ閫氳褰曞垪琛� */
     getList() {
       this.loading = true;
       // console.log(this.queryParams)
       //  listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-      listProperty(this.queryParams).then(response => {
+      getContactList(this.queryParams).then(response => {
           //  alert(123)
           //   console.log(response.data)
-          this.propertyList = response.data.data;
+          this.contactList = response.data.data;
 
           this.total = response.data.total;
           this.loading = false;
@@ -411,16 +520,16 @@
       );
     },
     /** 鏌ヨ绫诲埆淇℃伅 */
-    getCateInfor()
-    {
-      let _this = this
-      getCategory().then(response=>{
-
-        response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{
-          _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]})
-        })
-      })
-    },
+    // getCateInfor()
+    // {
+    //   let _this = this
+    //   getCategory().then(response=>{
+    //
+    //     response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{
+    //       _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]})
+    //     })
+    //   })
+    // },
 
     handleRemove(file) {
       alert(323)
@@ -476,17 +585,25 @@
       this.single = selection.length!=1
       this.multiple = !selection.length
     },
+    // //姣忔鏀瑰彉input妗嗗�兼椂灏辨敼鍙榯his.myTableData鐨勫��
+    // inputChange() { //寰幆姣忎竴椤� 鍙content鐨勫�煎惈鏈夎緭鍏ョ殑searchVal鍊硷紝灏卞姞杩沶ewList锛涘弽涔嬶紝灏辨棤涓滆タ鍔犺繘newList
+    //   let newlist = this.formDat.filter(
+    //     (item) => item.content.indexOf(this.searchVal) > -1
+    //   );
+    //   this.contactList = newlist;
+    // },
+
 
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
       this.reset();
       this.open = true;
-      this.title = "娣诲姞璧勪骇璇︾粏淇℃伅";
+      this.title = "娣诲姞閫氳褰曡缁嗕俊鎭�";
     },
     /** 鏌ョ湅璇︾粏淇℃伅 */
     handleCheck(row){
       const id = row.id;
-      this.$router.push("/family/note1/propertyInfo/" + id);
+      this.$router.push("/familymodel/Contact/contactsInfo/" + id);
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
@@ -494,7 +611,7 @@
       let jd = true
 
       this.$router.push({
-        path:"/family/note1/propertyInfo/" + id,
+        path:"/familymodel/Contact/contactsInfo/" + id,
         query:{
           detail:jd
         }
@@ -519,7 +636,7 @@
       this.$refs["elForm"].validate(valid => {
         if (valid) {
 
-          addProperty(this.formDat).then(response => {
+          addContact(this.formDat).then(response => {
             this.$modal.msgSuccess("鏂板鎴愬姛");
             this.open = false;
             this.getList();
@@ -553,8 +670,8 @@
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
       const Ids = row.id || this.ids;
-      this.$modal.confirm('鏄惁纭鍒犻櫎璧勪骇缂栧彿涓�"' + Ids + '"鐨勬暟鎹」锛�').then(function() {
-        return delProperty(Ids);
+      this.$modal.confirm('鏄惁纭鍒犻櫎缂栧彿涓�"' + Ids + '"鐨勬暟鎹」锛�').then(function() {
+        return delContact(Ids);
       }).then(() => {
         this.getList();
         this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
@@ -562,10 +679,15 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      this.download('family/property/export', {
+      this.download('zfContact/export', {
         ...this.queryParams
-      }, `property_${new Date().getTime()}.xlsx`)
+      }, `zfContact_${new Date().getTime()}.xlsx`)
     }
   }
 };
 </script>
+
+<style scoped>
+
+
+</style>

--
Gitblit v1.9.1