From 136b92041c3303fbb52f3d8ac95237c8788db93b Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期日, 27 四月 2025 09:16:58 +0800
Subject: [PATCH] 测试完成

---
 src/views/patient/patient/index.vue | 1705 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 1,126 insertions(+), 579 deletions(-)

diff --git a/src/views/patient/patient/index.vue b/src/views/patient/patient/index.vue
index 7ca4b28..62796f9 100644
--- a/src/views/patient/patient/index.vue
+++ b/src/views/patient/patient/index.vue
@@ -1,319 +1,488 @@
 <template>
-  <div class="app-container">
-    <el-row :gutter="20">
-      <!--閮ㄩ棬鏁版嵁-->
-      <!-- <el-col :span="4" :xs="24">
-        <div class="head-container">
-          <el-input
-            v-model="deptName"
-            placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�"
-            clearable
-            size="small"
-            prefix-icon="el-icon-search"
-            style="margin-bottom: 20px"
-          />
-        </div>
-        <div class="head-container">
-          <el-tree
-            :data="deptOptions"
-            :props="defaultProps"
-            :expand-on-click-node="false"
-            :filter-node-method="filterNode"
-            ref="tree"
-            node-key="id"
-            default-expand-all
-            highlight-current
-            @node-click="handleNodeClick"
-          />
-        </div>
-      </el-col> -->
-      <!--鐢ㄦ埛鏁版嵁-->
-      <el-col :span="24" :xs="24">
+  <div class="Questionnairemanagement">
+    <!-- 宸︿晶鏍� -->
+    <!-- <div class="sidecolumn">
+      <div class="sidecolumn-top">
+        <div class="top-wj">鍖婚櫌鎮h��</div>
+      </div>
+
+      <div class="bottom-fl">
+        <el-tabs
+          tab-position="right"
+          v-model="queryParams.allhosp"
+          @tab-click="handleClick"
+        >
+          <el-tab-pane label="鍑哄叆闄㈡偅鑰�" name="1"></el-tab-pane>
+          <el-tab-pane label="闂ㄨ瘖鎮h��" name="2"></el-tab-pane>
+          <el-tab-pane label="浣撴鎮h��" name="3"></el-tab-pane>
+        </el-tabs>
+      </div>
+    </div> -->
+    <!-- 鍙充晶鏁版嵁 -->
+
+    <div class="leftvlue">
+      <!-- <div>
+        <el-row :gutter="10">
+          <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
+            <el-card
+              shadow="hover"
+              :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
+            >
+              <div style="padding: 8px" @click="$router.push(item.router)">
+                <span>{{ item.name }}</span>
+                <div
+                  style="
+                    text-align: center;
+                    font-size: 18px;
+                    margin-top: 10px;
+                    font-weight: 600;
+                  "
+                >
+                  {{ item.value }}
+                </div>
+              </div>
+            </el-card>
+          </el-col>
+        </el-row>
+      </div> -->
+      <div class="leftvlue-bg">
+        <el-row :gutter="20">
+          <!--鐢ㄦ埛鏁版嵁-->
+          <el-col :span="24" :xs="24">
+            <el-form
+              :model="queryParams"
+              ref="queryForm"
+              size="small"
+              :inline="true"
+              v-show="showSearch"
+              label-width="98px"
+            >
+              <el-form-item label="鎮h�呭鍚�" prop="name">
+                <el-input
+                  v-model="queryParams.name"
+                  placeholder="璇疯緭鍏ュ鍚�"
+                  maxlength="30"
+                  @keyup.enter.native="handleQuery"
+                />
+              </el-form-item>
+              <el-form-item label="鎮h�呮爣绛�" prop="tagname">
+                <el-input
+                  v-model="queryParams.tagname"
+                  placeholder="杈撳叆杩涜妯$硦鏌ヨ"
+                  maxlength="30"
+                  @keyup.enter.native="handleQuery"
+                />
+              </el-form-item>
+              <el-form-item label="鎮h�呰寖鍥�" prop="tagId">
+                <el-select
+                  v-model="queryParams.searchscope"
+                  placeholder="璇烽�夋嫨鎮h�呰寖鍥�"
+                >
+                  <el-option
+                    v-for="item in source"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="鑱旂郴鐢佃瘽" prop="telcode">
+                <el-input
+                  v-model="queryParams.telcode"
+                  placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
+                  maxlength="30"
+                  @keyup.enter.native="handleQuery"
+                />
+              </el-form-item>
+
+              <el-form-item>
+                <el-button
+                  type="primary"
+                  icon="el-icon-search"
+                  size="medium"
+                  @click="handleQuery"
+                  >鎼滅储</el-button
+                >
+                <el-button
+                  icon="el-icon-refresh"
+                  size="medium"
+                  @click="resetQuery"
+                  >閲嶇疆</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="medium"
+                  @click="handleAdd"
+                  v-hasPermi="['system:user:add']"
+                  >鏂板</el-button
+                >
+              </el-col> -->
+
+              <el-col :span="1.5">
+                <el-button
+                  type="danger"
+                  plain
+                  icon="el-icon-delete"
+                  size="medium"
+                  :disabled="multiple"
+                  @click="handleDelete"
+                  v-hasPermi="['system:user:remove']"
+                  >鍒犻櫎</el-button
+                >
+              </el-col>
+              <el-col :span="1.5">
+                <el-button
+                  type="primary"
+                  plain
+                  icon="el-icon-s-promotion"
+                  size="medium"
+                  @click="distribute"
+                  >鍚戜换鍔℃淳鍙戞偅鑰�</el-button
+                >
+              </el-col>
+              <el-col :span="6">
+                <div class="documentf">
+                  <div class="document">
+                    <el-button
+                      type="info"
+                      plain
+                      icon="el-icon-upload2"
+                      size="medium"
+                      @click="handleImport"
+                      v-hasPermi="['system:user:import']"
+                      >瀵煎叆</el-button
+                    >
+                  </div>
+                  <div class="document">
+                    <el-button
+                      type="warning"
+                      plain
+                      icon="el-icon-download"
+                      size="medium"
+                      @click="handleExport"
+                      v-hasPermi="['system:user:export']"
+                      >瀵煎嚭</el-button
+                    >
+                  </div>
+                </div>
+              </el-col>
+              <!-- <el-col :span="1.5"> </el-col> -->
+            </el-row>
+            <el-table
+              v-loading="loading"
+              :data="userList"
+              height="660"
+              @selection-change="handleSelectionChange"
+            >
+              <el-table-column type="selection" width="50" align="center" />
+              <!-- <el-table-column
+                fixed
+                label="搴忓彿"
+                align="center"
+                key="id"
+                prop="id"
+              /> -->
+              <el-table-column
+                fixed
+                label="濮撳悕"
+                align="center"
+                key="name"
+                prop="name"
+              />
+              <el-table-column label="鎬у埆" align="center" key="sex" prop="sex">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.sex == 1 ? "鐢�" : "濂�" }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="骞撮緞"
+                align="center"
+                key="age"
+                prop="age"
+                width="160"
+              >   <template slot-scope="scope">
+              <span v-if="scope.row.age">{{ scope.row.age }}{{scope.row.ageUnit }}</span><span v-if="scope.row.age2">{{ scope.row.age2 }}{{scope.row.ageUnit2 }}</span>
+
+            </template>
+          </el-table-column>
+              <el-table-column
+                label="鍑虹敓骞存湀"
+                align="center"
+                key="birthdate"
+                prop="birthdate"
+                width="120"
+              >
+              </el-table-column>
+              <el-table-column
+                label="灞呬綇鍦�"
+                align="center"
+                key="placeOfResidence"
+                prop="placeOfResidence"
+                width="150"
+                :show-overflow-tooltip="true"
+              />
+              <el-table-column
+                label="鎮h�呮爣绛�"
+                align="center"
+                key="tagList"
+                prop="tagList"
+                width="160"
+                :show-overflow-tooltip="true"
+              >
+                <template slot-scope="scope">
+                  <span v-for="item in scope.row.tagList"
+                    >{{ item.tagname }}
+                  </span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="璇佷欢鍙风爜"
+                align="center"
+                key="idcardno"
+                prop="idcardno"
+                width="190"
+              />
+
+              <el-table-column
+                label="鑱旂郴鏂瑰紡"
+                align="center"
+                key="telcode"
+                prop="telcode"
+                width="120"
+              />
+              <el-table-column
+                label="寤烘。鏃ユ湡"
+                align="center"
+                key="createTime"
+                prop="createTime"
+                width="160"
+              >
+                <template slot-scope="scope">
+                  <span>{{ formatTime(scope.row.createTime) }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="鏇存柊鏃ユ湡"
+                align="center"
+                prop="archivetime"
+                width="160"
+              >
+                <template slot-scope="scope">
+                  <span>{{ formatTime(scope.row.archivetime) }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                fixed="right"
+                label="鎿嶄綔"
+                align="center"
+                width="190"
+                class-name="small-padding fixed-width"
+              >
+                <template slot-scope="scope">
+                  <el-button
+                    size="medium"
+                    type="text"
+                    @click="
+                      $router.push({
+                        path: '/patient/patient/profile/',
+                        query: { id: scope.row.id },
+                      })
+                    "
+                    ><span class="button-textsc"
+                      ><i class="el-icon-zoom-in"></i>璇︽儏缂栬緫</span
+                    ></el-button
+                  >
+                  <el-button
+                    size="medium"
+                    type="text"
+                    @click="handleUpdate(scope.row)"
+                    ><span class="button-textxga"
+                      ><i class="el-icon-edit"></i>鎮h�呰繃婊�</span
+                    ></el-button
+                  >
+                  <!-- <el-button
+                    size="medium"
+                    type="text"
+                    @click="Distributionservice(scope.row)"
+                    ><span class="button-textxg"
+                      ><i class="el-icon-menu"></i>鏈嶅姟</span
+                    ></el-button
+                  > -->
+                  <!-- <el-button
+                    size="medium"
+                    type="text"
+                    @click="RiskMarker(scope.row)"
+                    ><span class="button-textxg"
+                      ><i class="el-icon-menu"></i>椋庨櫓鏍囪</span
+                    ></el-button
+                  > -->
+                </template>
+              </el-table-column>
+            </el-table>
+
+            <pagination
+              v-show="total > 0"
+              :total="total"
+              :page.sync="queryParams.pageNum"
+              :limit.sync="queryParams.pageSize"
+              @pagination="getList"
+            />
+          </el-col>
+        </el-row>
+      </div>
+    </div>
+    <el-dialog title="閫夋嫨浠诲姟" :visible.sync="distributeVisible" width="70%">
+      <div class="preview-left">
         <el-form
           :model="queryParams"
           ref="queryForm"
           size="small"
           :inline="true"
-          v-show="showSearch"
           label-width="98px"
         >
-          <el-form-item label="濮撳悕" prop="userName">
-            <el-input
-              v-model="queryParams.userName"
-              placeholder="璇疯緭鍏ュ鍚�"
-              clearable
-              style="width: 200px"
-              @keyup.enter.native="handleQuery"
-            />
-          </el-form-item>
-          <el-form-item label="韬唤璇佸彿鐮�" prop="IDnumber">
-            <el-input
-              v-model="queryParams.IDnumber"
-              placeholder="璇疯緭鍏ヨ韩浠借瘉鍙风爜"
-              clearable
-              style="width: 250px"
-              @keyup.enter.native="handleQuery"
-            />
-          </el-form-item>
-          <el-form-item label="鑱旂郴鏂瑰紡" prop="phonenumber">
-            <el-input
-              v-model="queryParams.phonenumber"
-              placeholder="璇疯緭鍏ヨ仈绯绘柟寮�"
-              clearable
-              style="width: 280px"
-              @keyup.enter.native="handleQuery"
-            />
-          </el-form-item>
-          <el-row>
-            <el-form-item label="鎮h�呮爣绛�" prop="status">
-              <el-cascader
-                v-model="queryParams.status"
-                :options="optionss"
-                :props="propss"
-                clearable
-              ></el-cascader>
-            </el-form-item>
-          </el-row>
-
-          <!-- <el-form-item label="鍒涘缓鏃堕棿">
-            <el-date-picker
-              v-model="dateRange"
-              style="width: 240px"
-              value-format="yyyy-MM-dd"
-              type="daterange"
-              range-separator="-"
-              start-placeholder="寮�濮嬫棩鏈�"
-              end-placeholder="缁撴潫鏃ユ湡"
-            ></el-date-picker>
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="el-icon-search" size="medium" @click="handleQuery">鎼滅储</el-button>
-            <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">閲嶇疆</el-button>
-          </el-form-item> -->
+          <el-select
+            @change="distribute"
+            v-model="tasktopic"
+            placeholder="璇烽�夋嫨浠诲姟绫诲瀷"
+          >
+            <el-option
+              v-for="item in taskoptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
         </el-form>
-
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button
-              type="primary"
-              plain
-              icon="el-icon-plus"
-              size="medium"
-              @click="handleAdd"
-              v-hasPermi="['system:user:add']"
-              >鏂板</el-button
-            >
-          </el-col>
-          <el-col :span="1.5">
-            <el-button
-              type="success"
-              plain
-              icon="el-icon-edit"
-              size="medium"
-              :disabled="single"
-              @click="handleUpdate"
-              v-hasPermi="['system:user:edit']"
-              >淇敼</el-button
-            >
-          </el-col>
-          <el-col :span="1.5">
-            <el-button
-              type="danger"
-              plain
-              icon="el-icon-delete"
-              size="medium"
-              :disabled="multiple"
-              @click="handleDelete"
-              v-hasPermi="['system:user:remove']"
-              >鍒犻櫎</el-button
-            >
-          </el-col>
-          <el-col :span="19">
-            <div class="documentf">
-              <div class="document">
-                <el-button
-                  type="info"
-                  plain
-                  icon="el-icon-upload2"
-                  size="medium"
-                  @click="handleImport"
-                  v-hasPermi="['system:user:import']"
-                  >瀵煎叆</el-button
-                >
-              </div>
-              <div class="document">
-                <el-button
-                  type="warning"
-                  plain
-                  icon="el-icon-download"
-                  size="medium"
-                  @click="handleExport"
-                  v-hasPermi="['system:user:export']"
-                  >瀵煎嚭</el-button
-                >
-              </div>
-            </div>
-          </el-col>
-          <!-- <el-col :span="1.5"> </el-col> -->
-        </el-row>
-        <!-- <right-toolbar
-          :showSearch.sync="showSearch"
-          @queryTable="getList"
-          :columns="columns"
-        ></right-toolbar> -->
-        <el-table
-          v-loading="loading"
-          :data="userList"
-          @selection-change="handleSelectionChange"
-        >
-          <el-table-column type="selection" width="50" align="center" />
+        <el-table v-loading="loading" :data="taskuserList">
           <el-table-column
-            label="搴忓彿"
+            label="浠诲姟鍚嶇О"
+            fixed
             align="center"
-            key="userId"
-            prop="userId"
-            v-if="columns[0].visible"
-          />
-          <el-table-column
-            label="濮撳悕"
-            align="center"
-            key="userName"
-            prop="userName"
-            v-if="columns[1].visible"
+            key="taskName"
+            prop="taskName"
+            width="140"
             :show-overflow-tooltip="true"
           />
           <el-table-column
-            label="鎬у埆"
+            label="浠诲姟鎻忚堪"
+            align="center"
+            key="taskDesc"
+            prop="taskDesc"
+            width="180"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="鏈嶅姟椤圭洰"
+            align="center"
+            key="templatename"
+            prop="templatename"
+          />
+          <el-table-column
+            label="寰呮墽琛�/鎬讳换鍔�"
             align="center"
             key="nickName"
             prop="nickName"
-            v-if="columns[2].visible"
-            :show-overflow-tooltip="true"
-          />
-          <el-table-column
-            label="鎮h�呮爣绛�"
-            align="center"
-            key="deptName"
-            prop="dept.deptName"
-            v-if="columns[3].visible"
-            :show-overflow-tooltip="true"
-          />
-          <el-table-column
-            label="璇佷欢绫诲瀷"
-            align="center"
-            key="phonenumber"
-            prop="phonenumber"
-            v-if="columns[4].visible"
-            width="120"
-          /><el-table-column
-            label="璇佷欢鍙风爜"
-            align="center"
-            key="phonenumber"
-            prop="phonenumber"
-            v-if="columns[4].visible"
-            width="120"
-          />
-          <el-table-column
-            label="骞撮緞"
-            align="center"
-            key="phonenumber"
-            prop="phonenumber"
-            v-if="columns[4].visible"
-            width="120"
-          />
-          <!-- <el-table-column
-            label="鐘舵��"
-            align="center"
-            key="status"
-            v-if="columns[5].visible"
           >
             <template slot-scope="scope">
-              <el-switch
-                v-model="scope.row.status"
-                active-value="0"
-                inactive-value="1"
-                @change="handleStatusChange(scope.row)"
-              ></el-switch>
+              <span>{{ scope.row.wfs }}/{{ scope.row.yfs }}</span>
             </template>
-          </el-table-column> -->
+          </el-table-column>
+          <el-table-column
+            label="鍒涘缓浜�"
+            align="center"
+            key="createBy"
+            prop="createBy"
+            width="120"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="鍒涘缓鏃堕棿"
+            sortable
+            align="center"
+            prop="createTime"
+            width="160"
+          >
+            <template slot-scope="scope">
+              <span>{{ formatTime(scope.row.createTime) }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="鐘舵��"
+            fixed="right"
+            align="center"
+            key="sendState"
+            prop="sendState"
+            width="120"
+          >
+            <template slot-scope="scope">
+              <dict-tag
+                :options="dict.type.task_status"
+                :value="scope.row.sendState"
+              />
+            </template>
+          </el-table-column>
 
           <el-table-column
-            label="鑱旂郴鏂瑰紡"
+            label="浠诲姟璇︽儏"
+            fixed="right"
             align="center"
-            key="phonenumber"
-            prop="phonenumber"
-            v-if="columns[4].visible"
-            width="120"
-          />
-          <el-table-column
-            label="寤烘。鏃ユ湡"
-            align="center"
-            prop="createTime"
-            v-if="columns[6].visible"
-            width="160"
-          >
-            <template slot-scope="scope">
-              <span>{{ parseTime(scope.row.createTime) }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="鏇存柊鏃ユ湡"
-            align="center"
-            prop="createTime"
-            v-if="columns[6].visible"
-            width="160"
-          >
-            <template slot-scope="scope">
-              <span>{{ parseTime(scope.row.createTime) }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="鎿嶄綔"
-            align="center"
-            width="160"
+            width="200"
             class-name="small-padding fixed-width"
           >
-            <template slot-scope="scope" v-if="scope.row.userId !== 1">
+            <template slot-scope="scope">
               <el-button
                 size="medium"
                 type="text"
-                icon="el-icon-edit"
-                @click="$router.push('/patient/patient/profile/')"
-                v-hasPermi="['system:user:edit']"
-                >鏌ョ湅</el-button
+                @click="handleUpdate(scope.row)"
+                ><span class="button-xq"
+                  ><i class="el-icon-s-data"></i>閫夋嫨娲惧彂</span
+                ></el-button
               >
             </template>
           </el-table-column>
         </el-table>
 
         <pagination
-          v-show="total > 0"
-          :total="total"
+          v-show="tasktotal > 0"
+          :total="tasktotal"
           :page.sync="queryParams.pageNum"
           :limit.sync="queryParams.pageSize"
-          @pagination="getList"
+          @pagination="distribute"
         />
-      </el-col>
-    </el-row>
+      </div>
+    </el-dialog>
 
     <!-- 娣诲姞鎴栦慨鏀圭敤鎴烽厤缃璇濇 -->
-    <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
+    <el-dialog
+      :title="amendtag ? '淇敼鎮h�呬俊鎭�' : '鏂板鎮h��'"
+      :visible.sync="Labelchange"
+      width="900px"
+    >
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-row>
-          <el-col :span="12">
-            <el-form-item label="濮撳悕" prop="nickName">
+          <el-col :span="8">
+            <el-form-item label="濮撳悕" prop="name">
               <el-input
-                v-model="form.nickName"
+                v-model="form.name"
                 placeholder="璇疯緭鍏ュ鍚�"
                 maxlength="30"
               />
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="鎬у埆" prop="deptId">
+          <el-col :span="8">
+            <el-form-item label="鎬у埆" prop="sex">
               <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆">
                 <el-option
-                  v-for="dict in dict.type.sys_user_sex"
+                  v-for="dict in sextype"
                   :key="dict.value"
                   :label="dict.label"
                   :value="dict.value"
@@ -321,112 +490,105 @@
               </el-select>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="璇佷欢绫诲瀷" prop="phonenumber">
+          <el-col :span="8">
+            <el-form-item label="骞撮緞" prop="age">
               <el-input
-                v-model="form.phonenumber"
-                placeholder="璇烽�夋嫨璇佷欢绫诲瀷"
-                maxlength="11"
+                v-model="form.age"
+                placeholder="璇疯緭鍏ュ勾榫�"
+                maxlength="30"
               />
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="璇佷欢鍙�" prop="email">
+        </el-row>
+        <el-row v-if="!amendtag">
+          <el-col :span="8">
+            <el-form-item label="姘戞棌" prop="name">
               <el-input
-                v-model="form.email"
-                placeholder="璇疯緭鍏ヨ瘉浠跺彿"
+                v-model="form.nation"
+                placeholder="璇疯緭鍏ユ皯鏃�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="绫嶈疮" prop="age">
+              <el-input
+                v-model="form.nativePlace"
+                placeholder="璇疯緭鍏ョ睄璐�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="鑱旂郴鏂瑰紡" prop="telcode">
+              <el-input
+                v-model="form.telcode"
+                placeholder="璇疯緭鍏ヨ仈绯绘柟寮�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row v-if="!amendtag">
+          <el-col :span="12">
+            <el-form-item label="鍑虹敓鍦�" prop="birthplace">
+              <el-input
+                v-model="form.birthplace"
+                placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅"
+                maxlength="50"
+              />
+            </el-form-item> </el-col
+          ><el-col :span="12">
+            <el-form-item label="灞呬綇鍦�" prop="placeOfResidence">
+              <el-input
+                v-model="form.placeOfResidence"
+                placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅"
                 maxlength="50"
               />
             </el-form-item>
           </el-col>
         </el-row>
+
         <el-row>
-          <el-col :span="12">
-            <el-form-item label="鏈汉鎵嬫満鍙�" prop="userName">
-              <el-input
-                v-model="form.userName"
-                placeholder="璇疯緭鍏ユ墜鏈哄彿"
-                maxlength="30"
-              />
+          <el-col :span="amendtag ? 12 : 24" v-if="!amendtag">
+            <el-form-item label="鎮h�呯被鍨�">
+              <el-select v-model="form.pattype" placeholder="璇烽�夋嫨绫诲瀷">
+                <el-option
+                  v-for="item in Patienttype"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                ></el-option>
+              </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="浜插睘鎵嬫満鍙�" prop="password">
-              <el-input
-                v-model="form.password"
-                placeholder="璇疯緭鍏ヤ翰灞炴墜鏈哄彿"
-                type="password"
-                maxlength="20"
-                show-password
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="鎮h�呮爣绛�">
-              <!-- <el-select v-model="form.sex" placeholder="璇烽�夋嫨"> -->
-              <el-cascader
-                :options="optionss"
-                :props="propss"
-                clearable
-              ></el-cascader>
-              <!-- </el-select> -->
-            </el-form-item>
-          </el-col>
-          <!-- <el-col :span="12">
-            <el-form-item label="鐘舵��">
-              <el-radio-group v-model="form.status">
-                <el-radio
-                  v-for="dict in dict.type.sys_normal_disable"
-                  :key="dict.value"
-                  :label="dict.value"
-                  >{{ dict.label }}</el-radio
-                >
-              </el-radio-group>
+          <!-- <el-col :span="12" v-if="amendtag">
+            <el-form-item label="杩囨护璇存槑">
+              <el-select v-model="form.notrequiredreason" placeholder="璇烽�夋嫨杩囨护绫诲瀷">
+                <el-option
+                  v-for="item in dict.type.futter_patient"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                ></el-option>
+              </el-select>
             </el-form-item>
           </el-col> -->
         </el-row>
-        <!-- <el-row>
-          <el-col :span="12">
-            <el-form-item label="宀椾綅">
-              <el-select
-                v-model="form.postIds"
-                multiple
-                placeholder="璇烽�夋嫨宀椾綅"
-              >
-                <el-option
-                  v-for="item in postOptions"
-                  :key="item.postId"
-                  :label="item.postName"
-                  :value="item.postId"
-                  :disabled="item.status == 1"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="瑙掕壊">
-              <el-select
-                v-model="form.roleIds"
-                multiple
-                placeholder="璇烽�夋嫨瑙掕壊"
-              >
-                <el-option
-                  v-for="item in roleOptions"
-                  :key="item.roleId"
-                  :label="item.roleName"
-                  :value="item.roleId"
-                  :disabled="item.status == 1"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row> -->
         <el-row>
-          <el-col :span="24">
+          <el-col :span="24" v-if="amendtag">
+            <el-form-item label="杩囨护鍘熷洜">
+              <el-input
+                v-model="form.notrequiredreason"
+                type="textarea"
+                placeholder="璇疯緭鍏ヨ繃婊ゅ師鍥�"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24" v-if="!amendtag">
             <el-form-item label="澶囨敞">
               <el-input
                 v-model="form.remark"
@@ -447,64 +609,202 @@
     <el-dialog
       :title="upload.title"
       :visible.sync="upload.open"
-      width="400px"
+      width="70%"
       append-to-body
     >
-      <el-upload
-        ref="upload"
-        :limit="1"
-        accept=".xlsx, .xls"
-        :headers="upload.headers"
-        :action="upload.url + '?updateSupport=' + upload.updateSupport"
-        :disabled="upload.isUploading"
-        :on-progress="handleFileUploadProgress"
-        :on-success="handleFileSuccess"
-        :auto-upload="false"
-        drag
-      >
-        <i class="el-icon-upload"></i>
-        <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
-        <div class="el-upload__tip text-center" slot="tip">
-          <div class="el-upload__tip" slot="tip">
-            <el-checkbox v-model="upload.updateSupport" />
-            鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+      <el-steps :active="dractive" simple>
+        <el-step title="涓婁紶瀵煎叆鏂囦欢" icon="el-icon-upload"></el-step>
+        <el-step title="瀵煎叆妫�鏌�" icon="el-icon-picture"></el-step>
+        <el-step title="瀵煎叆缁撴灉" icon="el-icon-picture"></el-step>
+      </el-steps>
+      <!-- 涓婁紶瀵煎叆鏂囦欢 -->
+      <div class="download" v-if="dractive == 1">
+        <el-upload
+          class="upload-demo"
+          ref="upload"
+          :limit="1"
+          accept=".xlsx, .xls"
+          :headers="upload.headers"
+          :action="upload.url"
+          :disabled="upload.isUploading"
+          :on-progress="handleFileUploadProgress"
+          :on-success="handleFileSuccess"
+          drag
+        >
+          <i class="el-icon-upload"></i>
+          <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+          <div class="el-upload__tip text-center" slot="tip">
+            <!-- <div class="el-upload__tip" slot="tip">
+              <el-checkbox v-model="upload.updateSupport" />
+              鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+            </div> -->
+            <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
+            <el-link
+              type="primary"
+              :underline="false"
+              style="font-size: 24px; vertical-align: baseline"
+              @click="importTemplate"
+              >涓嬭浇妯℃澘
+            </el-link>
+            <!-- <el-link
+              type="success"
+              :underline="false"
+              style="font-size: 24px; vertical-align: baseline"
+              href="http://m.qpic.cn/psc?/V50ZTolo1AIhq00dqrJP2169QM2VHGTU/ruAMsa53pVQWN7FLK88i5qfmCJclyMduqqL6kjE4h7TXDAjimVtmLmTyGVfF4qlkyOISsYQ4Mxx705X2tkXEIUPrfCS4L4yK.f11SmO8Tq0!/b&bo=twb0AgAAAAADB2U!&rf=viewer_4"
+              target="_blank"
+            >
+              鏌ョ湅妯℃澘</el-link
+            > -->
           </div>
-          <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
-          <el-link
-            type="primary"
-            :underline="false"
-            style="font-size: 12px; vertical-align: baseline"
-            @click="importTemplate"
-            >涓嬭浇妯℃澘</el-link
-          >
-        </div>
-      </el-upload>
+        </el-upload>
+      </div>
+      <!-- 瀵煎叆妫�鏌� -->
+      <div class="uploading" v-else-if="dractive == 2">
+        <el-table :data="uploadingData" style="width: 100%">
+          <el-table-column prop="serial" label="搴忓彿"> </el-table-column>
+          <el-table-column prop="name" label="濮撳悕"> </el-table-column>
+          <el-table-column prop="sex" label="鎬у埆"> </el-table-column>
+
+          <el-table-column prop="certificatenum" label="璇佷欢鍙风爜">
+          </el-table-column>
+          <el-table-column prop="goday" label="鍑虹敓鏃ユ湡"> </el-table-column>
+          <el-table-column prop="menum" label="鏈汉鑱旂郴鏂瑰紡"> </el-table-column>
+          <el-table-column prop="younum" label="浜插睘鑱旂郴鏂瑰紡">
+          </el-table-column>
+          <el-table-column prop="tag" label="鎮h�呮爣绛�"> </el-table-column>
+          <el-table-column prop="erry" label="閿欒鍘熷洜"> </el-table-column>
+          <el-table-column prop="opinion" label="澶勭悊鎰忚"> </el-table-column>
+        </el-table>
+        <pagination
+          v-show="total > 0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="geterryList"
+        />
+      </div>
+      <!-- 瀹屾垚 -->
+      <div class="drexamine" v-else-if="dractive == 3">
+        <img src="@/assets/images/瀵煎叆.png" />
+        <p>瀵煎叆鎮h�呮垚鍔燂紒</p>
+        <p>
+          鏈
+          <span style="color: #158bb8; font-size: 20px">{{
+            ImportQuantity
+          }}</span>
+          鏉℃暟鎹垚鍔熷鍏�<span style="color: #72d3a9; font-size: 20px">{{
+            ImportQuantity
+          }}</span
+          >浣嶆偅鑰�
+        </p>
+      </div>
+      <div v-if="dractive == 3">
+        <el-table :data="uploadingData" style="width: 100%">
+          <el-table-column prop="serial" label="搴忓彿"> </el-table-column>
+          <el-table-column prop="name" label="濮撳悕"> </el-table-column>
+          <el-table-column prop="sex" label="鎬у埆"> </el-table-column>
+          <el-table-column prop="certificatenum" label="璇佷欢鍙风爜">
+          </el-table-column>
+          <el-table-column prop="goday" label="鍑虹敓鏃ユ湡"> </el-table-column>
+          <el-table-column prop="menum" label="鏈汉鑱旂郴鏂瑰紡"> </el-table-column>
+          <el-table-column prop="younum" label="浜插睘鑱旂郴鏂瑰紡">
+          </el-table-column>
+          <el-table-column prop="tag" label="鎮h�呮爣绛�"> </el-table-column>
+          <el-table-column prop="erry" label="閿欒鍘熷洜"> </el-table-column>
+          <el-table-column prop="opinion" label="澶勭悊鎰忚"> </el-table-column>
+        </el-table>
+        <pagination
+          v-show="total > 0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="geterryList"
+        />
+      </div>
+
+      <div slot="footer" class="dialog-footer" v-if="dractive == 3">
+        <!-- <el-button type="primary" @click="submitFileForm">涓嬩竴姝�</el-button> -->
+        <el-button @click="submitclose">瀹屾垚</el-button>
+        <el-button type="warning" @click="submitclose">瀵煎嚭澶辫触鏁版嵁</el-button>
+      </div>
+      <div slot="footer" v-else>
+        <el-button type="primary" @click="submitFileForm">涓嬩竴姝�</el-button>
+        <el-button @click="submitclose">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+    <!-- 璺宠浆鏈嶅姟瀵硅瘽妗� -->
+    <el-dialog title="閫夋嫨鏈嶅姟绫诲瀷" :visible.sync="serviceVisible">
+      <el-card class="box-card">
+        <el-radio-group v-model="serviceradio">
+          <el-radio :label="1">瀹f暀闅忚</el-radio>
+          <el-radio :label="2">闂ㄨ瘖鏈嶅姟</el-radio>
+          <el-radio :label="3">鍑洪櫌鏈嶅姟</el-radio>
+          <el-radio :label="4">澶嶈瘖鏈嶅姟</el-radio>
+          <el-radio :label="5">浣撴閫氱煡</el-radio>
+          <el-radio :label="6">闂嵎鏈嶅姟</el-radio>
+        </el-radio-group>
+      </el-card>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button>
-        <el-button @click="upload.open = false">鍙� 娑�</el-button>
+        <el-button @click="serviceVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="CreateService">鍒涘缓鏈嶅姟</el-button>
+      </div>
+    </el-dialog>
+    <!-- 椋庨櫓绫诲瀷 -->
+    <el-dialog title="閫夋嫨椋庨櫓绫诲瀷" :visible.sync="RiskVisible">
+      <el-card class="box-card">
+        <el-form>
+          <el-form-item label="椋庨櫓绫诲瀷">
+            <el-radio-group v-model="Riskradio">
+              <el-radio :label="1">姝e父</el-radio>
+              <el-radio :label="2">杞诲井</el-radio>
+              <el-radio :label="3">楂樺嵄</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <el-form-item label="娲诲姩鎬ц川">
+            <el-checkbox-group v-model="Risklist">
+              <el-checkbox label="鎯呭喌1" name="type"></el-checkbox>
+              <el-checkbox label="鎯呭喌2" name="type"></el-checkbox>
+              <el-checkbox label="鎯呭喌3" name="type"></el-checkbox>
+              <el-checkbox label="鎯呭喌4" name="type"></el-checkbox>
+            </el-checkbox-group>
+          </el-form-item>
+        </el-form>
+      </el-card>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="RiskVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="RiskService">纭淇敼</el-button>
       </div>
     </el-dialog>
   </div>
 </template>
 
 <script>
+import { delUser } from "@/api/system/user";
+
 import {
-  listUser,
-  getUser,
-  delUser,
-  addUser,
-  updateUser,
-  resetUserPwd,
-  changeUserStatus,
-  deptTreeSelect,
-} from "@/api/system/user";
+  messagelistpatient,
+  alterpatient,
+  addpatient,
+  particularpatient,
+  deletepatient,
+  Exporterrorpatient,
+  toleadpatient,
+} from "@/api/patient/homepage";
+import { getTasklist } from "@/api/AiCentre/index";
+import { listtag } from "@/api/system/label";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
+import store from "@/store";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 
 export default {
-  name: "User",
-  dicts: ["sys_normal_disable", "sys_user_sex"],
+  name: "Patient",
+  dicts: [
+    "sys_normal_disable",
+    "task_status",
+    "sys_user_sex",
+    "futter_patient",
+  ],
   components: { Treeselect },
   data() {
     return {
@@ -520,45 +820,128 @@
       showSearch: true,
       // 鎬绘潯鏁�
       total: 0,
+      tasktotal: 0,
+      Risklist: [],
       // 鐢ㄦ埛琛ㄦ牸鏁版嵁
       userList: null,
+      taskuserList: null,
       // 寮瑰嚭灞傛爣棰�
       title: "",
       // 閮ㄩ棬鏍戦�夐」
       deptOptions: undefined,
+      options: [],
       // 鏄惁鏄剧ず寮瑰嚭灞�
       open: false,
       // 閮ㄩ棬鍚嶇О
       deptName: undefined,
       // 榛樿瀵嗙爜
       initPassword: undefined,
+      amendtag: false, //鏄惁淇敼
+      serviceVisible: false,
+      serviceradio: 1,
+      distributeVisible: false,
+      RiskVisible: false,
+      tasktopic: "5", //鏂板绫诲瀷
+      Riskradio: 1,
+      RiskObj: {},
+      // 鏌ヨ鍙傛暟
+      topqueryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userName: undefined,
+        tagid: undefined,
+        topic: undefined,
+      },
       // 鏃ユ湡鑼冨洿
       dateRange: [],
-      // 宀椾綅閫夐」
-      postOptions: [],
-      // 瑙掕壊閫夐」
-      roleOptions: [],
-      // 琛ㄥ崟鍙傛暟
-      form: {},
-      propss: { multiple: true },
-      optionss: [
+      taskoptions: [],
+      paperstypes: [
+        { papersname: "韬唤璇�" },
+        { papersname: "鎶ょ収" },
+        { papersname: "涓浗娓境灞呮皯韬唤璇�" },
+        { papersname: "涓浗鍙版咕灞呮皯韬唤璇�" },
+      ],
+      Patienttype: [
+        {
+          value: "1",
+          label: "鍦ㄩ櫌鎮h��",
+        },
+
+        {
+          value: "3",
+          label: "浣撴鎮h��",
+        },
+        {
+          value: "4",
+          label: "鍑洪櫌鎮h��",
+        },
+      ],
+      sextype: [
         {
           value: 1,
-          label: "涓滃崡",
+          label: "鐢�",
         },
         {
           value: 2,
-          label: "瑗垮寳",
-        },
-        {
-          value: 3,
-          label: "浠ㄤ花浠�",
-        },
-        {
-          value: 4,
-          label: "鍏椋掗",
+          label: "濂�",
         },
       ],
+
+      cardlist: [
+        {
+          name: "鎮h�呮�绘暟",
+          value: 123,
+        },
+        {
+          name: "鍦ㄩ櫌鎮h��",
+          value: 23,
+          router: "/patient/inpatient",
+        },
+        {
+          name: "鍑洪櫌鎮h��",
+          value: 41,
+          router: "/patient/hospital",
+        },
+        {
+          name: "绂讳笘鎮h��",
+          value: 0,
+        },
+      ],
+      source: [
+        {
+          value: 0,
+          label: "鎵�灞炴偅鑰�",
+        },
+        {
+          value: 1,
+          label: "绉戝鎮h��",
+        },
+        {
+          value: 2,
+          label: "鐥呭尯鎮h��",
+        },
+      ],
+      // 琛ㄥ崟鍙傛暟
+      form: {
+        name: "",
+        age: "",
+        sex: "",
+        tagList: [],
+        idcardno: "",
+        telcode: "",
+        idcardtype: "",
+        relativetelcode: "",
+      },
+      activeName: "first", //渚ц竟閫夋嫨
+      //瀵煎叆杩涘害
+      dractive: 1,
+      // 瀵煎叆灞曠ず琛ㄥ崟
+      uploadingData: {},
+      total: 0, // 鎬绘潯鏁�
+      ImportQuantity: 999, //瀵煎叆鎮h�呮暟閲�
+      Labelchange: false, //淇敼鏂板寮圭獥
+      propss: { multiple: true },
+      optionstag: [], //鏍囩鍒楄〃
       defaultProps: {
         children: "children",
         label: "label",
@@ -576,31 +959,25 @@
         // 璁剧疆涓婁紶鐨勮姹傚ご閮�
         headers: { Authorization: "Bearer " + getToken() },
         // 涓婁紶鐨勫湴鍧�
-        url: process.env.VUE_APP_BASE_API + "/system/user/importData",
+        url: process.env.VUE_APP_BASE_API + "/smartor/import/importPatInfo",
       },
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
+        allhosp: "1",
         pageSize: 10,
-        userName: undefined,
-        phonenumber: undefined,
+        searchscope: 2,
+        notrequiredFlag:1,
+        tagname: "",
+        idcardno: undefined,
+        name: undefined,
         status: undefined,
-        deptId: undefined,
-        IDnumber: undefined,
+        tagIds: undefined,
+        telcode: undefined,
       },
-      // 鍒椾俊鎭�
-      columns: [
-        { key: 0, label: `鐢ㄦ埛缂栧彿`, visible: true },
-        { key: 1, label: `鐢ㄦ埛鍚嶇О`, visible: true },
-        { key: 2, label: `鐢ㄦ埛鏄电О`, visible: true },
-        { key: 3, label: `閮ㄩ棬`, visible: true },
-        { key: 4, label: `鎵嬫満鍙风爜`, visible: true },
-        { key: 5, label: `鐘舵�乣, visible: true },
-        { key: 6, label: `鍒涘缓鏃堕棿`, visible: true },
-      ],
       // 琛ㄥ崟鏍¢獙
       rules: {
-        userName: [
+        name: [
           { required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
           {
             min: 2,
@@ -609,39 +986,33 @@
             trigger: "blur",
           },
         ],
-        nickName: [
-          { required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" },
-        ],
-        password: [
-          { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" },
-          {
-            min: 5,
-            max: 20,
-            message: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿",
-            trigger: "blur",
-          },
-        ],
-        email: [
-          {
-            type: "email",
-            message: "璇疯緭鍏ユ纭殑閭鍦板潃",
-            trigger: ["blur", "change"],
-          },
-        ],
-        phonenumber: [
+
+        sex: [{ required: true, message: "鎬у埆涓嶈兘涓虹┖", trigger: "blur" }],
+        age: [{ required: true, message: "骞撮緞涓嶈兘涓虹┖", trigger: "blur" }],
+        nation: [{ required: true, message: "姘戞棌涓嶈兘涓虹┖", trigger: "blur" }],
+        telcode: [
+          { required: true, message: "鑱旂郴鏂瑰紡涓嶈兘涓虹┖", trigger: "blur" },
           {
             pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
             message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜",
             trigger: "blur",
           },
         ],
-        IDnumber: [
+
+        idcardno: [
+          { required: true, message: "璇佷欢鍙峰彲鑳戒负绌�", trigger: "blur" },
           {
             pattern:
               /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/,
             message: "璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�",
             trigger: "blur",
           },
+        ],
+        placeOfResidence: [
+          { required: true, message: "灞呬綇鍦颁笉鑳戒负绌�", trigger: "blur" },
+        ],
+        birthplace: [
+          { required: true, message: "鍑虹敓鍦颁笉鑳戒负绌�", trigger: "blur" },
         ],
       },
     };
@@ -654,76 +1025,92 @@
   },
   created() {
     this.getList();
-    this.getDeptTree();
-    this.getConfigKey("sys.user.initPassword").then((response) => {
-      this.initPassword = response.msg;
-    });
+    this.gettabList();
+    //鑾峰彇宸茬瓫閫夊悗鐨勫彲閫変换鍔$被鍨�
+    this.taskoptions = store.getters.Serviceauthority;
   },
   methods: {
-    /** 鏌ヨ鐢ㄦ埛鍒楄〃 */
+    /** 鏌ヨ鎮h�呭垪琛� */
     getList() {
+      if (this.queryParams.searchscope == 1) {
+        this.queryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.queryParams.leavehospitaldistrictcodes = null;
+      } else if (this.queryParams.searchscope == 2) {
+        this.queryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+        this.queryParams.leaveldeptcodes = null;
+      } else {
+        this.queryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.queryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
       this.loading = true;
-      listUser(this.addDateRange(this.queryParams, this.dateRange)).then(
-        (response) => {
-          this.userList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
-    getDeptTree() {
-      deptTreeSelect().then((response) => {
-        this.deptOptions = response.data;
+      messagelistpatient(this.queryParams).then((response) => {
+        this.userList = response.rows;
+        this.total = response.total;
+        this.loading = false;
       });
     },
-    // 绛涢�夎妭鐐�
-    filterNode(value, data) {
-      if (!value) return true;
-      return data.label.indexOf(value) !== -1;
+    handleClick() {
+      this.getList();
     },
-    // 鑺傜偣鍗曞嚮浜嬩欢
-    handleNodeClick(data) {
-      this.queryParams.deptId = data.id;
-      this.handleQuery();
+    findLabelByValue(data, value) {
+      const item = data.find((item) => item.value === value);
+      return item ? item.label : null;
     },
-    // 鐢ㄦ埛鐘舵�佷慨鏀�
-    handleStatusChange(row) {
-      let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
-      this.$modal
-        .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵')
-        .then(function () {
-          return changeUserStatus(row.userId, row.status);
-        })
-        .then(() => {
-          this.$modal.msgSuccess(text + "鎴愬姛");
-        })
-        .catch(function () {
-          row.status = row.status === "0" ? "1" : "0";
-        });
+    /** 鏌ヨ鏍囩鍒楄〃 */
+    gettabList() {
+      const tagqueryParams = {
+        pageNum: 1,
+        pageSize: 1000,
+        tagname: undefined,
+        tagdescription: undefined,
+        tagcategoryid: "0",
+      };
+      listtag(tagqueryParams).then((response) => {
+        console.log(response);
+        this.optionstag = response.rows;
+      });
     },
+    // 鏌ヨ瀵煎叆灞曠ず鍒楄〃
+    geterryList() {
+      this.loading = true;
+      listJob(this.queryParams).then((response) => {
+        this.jobList = 1;
+        this.total = 1;
+        this.loading = false;
+      });
+    },
+    Distributionservice(row) {
+      this.serviceVisible = true;
+    },
+    RiskMarker(row) {
+      this.RiskVisible = true;
+      this.RiskObj = row;
+    },
+
     // 鍙栨秷鎸夐挳
     cancel() {
-      this.open = false;
+      this.Labelchange = false;
       this.reset();
     },
     // 琛ㄥ崟閲嶇疆
     reset() {
       this.form = {
-        userId: undefined,
-        deptId: undefined,
-        userName: undefined,
-        nickName: undefined,
-        password: undefined,
-        phonenumber: undefined,
-        email: undefined,
-        sex: undefined,
-        status: "0",
-        remark: undefined,
-        postIds: [],
-        roleIds: [],
+        name: "",
+        age: "",
+        sex: "",
+        tagList: [],
+        idcardno: "",
+        telcode: "",
+        idcardtype: "",
+        relativetelcode: "",
       };
-      this.resetForm("form");
+      // this.resetForm("form");
     },
     /** 鎼滅储鎸夐挳鎿嶄綔 */
     handleQuery() {
@@ -733,104 +1120,76 @@
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
       this.dateRange = [];
-      this.resetForm("queryForm");
-      this.queryParams.deptId = undefined;
-      this.$refs.tree.setCurrentKey(null);
-      this.handleQuery();
+      (this.queryParams = {
+        pageNum: 1,
+        allhosp: "1",
+        pageSize: 10,
+        searchscope: 2,
+      }),
+        this.handleQuery();
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.userId);
+      this.ids = selection.map((item) => item.id);
       this.single = selection.length != 1;
       this.multiple = !selection.length;
     },
-    // 鏇村鎿嶄綔瑙﹀彂
-    handleCommand(command, row) {
-      switch (command) {
-        case "handleResetPwd":
-          this.handleResetPwd(row);
-          break;
-        case "handleAuthRole":
-          this.handleAuthRole(row);
-          break;
-        default:
-          break;
-      }
-    },
+
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
       this.reset();
-      getUser().then((response) => {
-        this.postOptions = response.posts;
-        this.roleOptions = response.roles;
-        this.open = true;
-        this.title = "鏂板鎮h��";
-        this.form.password = this.initPassword;
-      });
+      this.Labelchange = true;
+      this.amendtag = false;
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
-      this.reset();
-      const userId = row.userId || this.ids;
-      getUser(userId).then((response) => {
+      const userIds = row.id || this.ids;
+      particularpatient(userIds).then((response) => {
         this.form = response.data;
-        this.postOptions = response.posts;
-        this.roleOptions = response.roles;
-        this.$set(this.form, "postIds", response.postIds);
-        this.$set(this.form, "roleIds", response.roleIds);
-        this.open = true;
-        this.title = "淇敼鐢ㄦ埛";
-        this.form.password = "";
       });
+      this.amendtag = true;
+      this.Labelchange = true;
     },
-    /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
-    handleResetPwd(row) {
-      this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", {
-        confirmButtonText: "纭畾",
-        cancelButtonText: "鍙栨秷",
-        closeOnClickModal: false,
-        inputPattern: /^.{5,20}$/,
-        inputErrorMessage: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿",
-      })
-        .then(({ value }) => {
-          resetUserPwd(row.userId, value).then((response) => {
-            this.$modal.msgSuccess("淇敼鎴愬姛锛屾柊瀵嗙爜鏄細" + value);
-          });
-        })
-        .catch(() => {});
-    },
-    /** 鍒嗛厤瑙掕壊鎿嶄綔 */
-    handleAuthRole: function (row) {
-      const userId = row.userId;
-      this.$router.push("/system/user-auth/role/" + userId);
-    },
-    /** 鎻愪氦鎸夐挳 */
-    submitForm: function () {
+    //淇敼/鏂板鎮h��
+    submitForm() {
       this.$refs["form"].validate((valid) => {
         if (valid) {
-          if (this.form.userId != undefined) {
-            updateUser(this.form).then((response) => {
-              this.$modal.msgSuccess("淇敼鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
+          if (this.amendtag) {
+            this.form.isoperation = 2;
+            this.form.notrequiredFlag = 1;
+            alterpatient(this.form)
+              .then((response) => {
+                console.log(response);
+              })
+              .then(() => {
+                this.getList();
+                this.$modal.msgSuccess("鎮h�呰繃婊ゆ垚鍔�");
+              });
           } else {
-            addUser(this.form).then((response) => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
+            this.form.isoperation = 1;
+            alterpatient(this.form)
+              .then((response) => {
+                console.log(response);
+              })
+              .then(() => {
+                this.getList();
+                this.$modal.msgSuccess("娣诲姞鎴愬姛");
+              });
           }
+          this.reset();
+          // this.idds = "";
+          this.Labelchange = false;
         }
       });
     },
+
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
       const userIds = row.userId || this.ids;
       this.$modal
         .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�')
         .then(function () {
-          return delUser(userIds);
+          return deletepatient(userIds);
         })
         .then(() => {
           this.getList();
@@ -838,10 +1197,54 @@
         })
         .catch(() => {});
     },
+    //鏈嶅姟璺宠浆
+    CreateService() {
+      this.$router.push({
+        path: "/followvisit/particty",
+        query: { type: this.serviceradio },
+      });
+    },
+    RiskService() {
+      this.RiskObj.visitFlag = this.Risklist.join(", ");
+      this.RiskObj.visitType = this.Riskradio;
+      alterpatient(this.RiskObj).then((res) => {
+        if (res.code == 200) {
+          this.getList();
+          this.Risklist = [];
+          this.Riskradio = 1;
+          this.$modal.msgSuccess("寮傚父璁板綍鎴愬姛");
+        }
+      });
+    },
+    distribute() {
+      this.distributeVisible = true;
+      if (this.tasktopic == 1) {
+        this.topqueryParams.type = 3;
+      } else if (this.tasktopic == 2) {
+        this.topqueryParams.type = 1;
+      } else if (this.tasktopic == 3) {
+        this.topqueryParams.type = 1;
+      } else if (this.tasktopic == 4) {
+        this.topqueryParams.type = 1;
+      } else if (this.tasktopic == 5) {
+        this.topqueryParams.type = 1;
+      } else if (this.tasktopic == 6) {
+        this.topqueryParams.type = 2;
+      }
+      this.topqueryParams.typename = this.findLabelByValue(
+        this.taskoptions,
+        this.tasktopic
+      );
+      getTasklist(this.topqueryParams).then((response) => {
+        this.taskuserList = response.rows;
+        this.tasktotal = response.total;
+        this.$forceUpdate();
+      });
+    },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
       this.download(
-        "system/user/export",
+        "smartor/patarchive/export",
         {
           ...this.queryParams,
         },
@@ -856,7 +1259,7 @@
     /** 涓嬭浇妯℃澘鎿嶄綔 */
     importTemplate() {
       this.download(
-        "system/user/importTemplate",
+        "smartor/import/getImportPatTemplate",
         {},
         `user_template_${new Date().getTime()}.xlsx`
       );
@@ -881,13 +1284,122 @@
     },
     // 鎻愪氦涓婁紶鏂囦欢
     submitFileForm() {
-      this.$refs.upload.submit();
+      // 涓婁紶
+      if (this.dractive == 1) {
+        this.$refs.upload.submit();
+        this.dractive++;
+      } else {
+        this.dractive++;
+      }
+    },
+    submitclose() {
+      this.upload.open = false;
+      this.dractive = 1;
     },
   },
 };
 </script>
 
 <style lang="scss" scoped>
+// .Questionnairemanagement {
+//   display: flex;
+// }
+.sidecolumn {
+  width: 180px;
+  min-height: 100vh;
+  text-align: center;
+  //   display: flex;
+  margin-top: 20px;
+  margin: 20px;
+  padding: 15px;
+  background: #d0e9fd;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+  .sidecolumn-top {
+    display: flex;
+    justify-content: space-between;
+    .top-wj {
+      font-size: 20px;
+    }
+    .top-tj {
+      font-size: 18px;
+
+      color: rgb(0, 89, 255);
+      cursor: pointer;
+    }
+  }
+  .center-ss {
+    margin-top: 30px;
+    .input-with-select {
+      height: 40px !important;
+    }
+  }
+  .bottom-fl {
+    margin-top: 30px;
+    display: center !important;
+  }
+}
+.preview-left {
+  margin: 20px;
+  //   margin: 20px;
+  padding: 30px;
+  background: #ffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+  .scriptTopic-dev {
+    margin-bottom: 25px;
+    font-size: 20px !important;
+    .dev-text {
+      margin-bottom: 10px;
+    }
+  }
+}
+::v-deep.el-tabs--left,
+.el-tabs--right {
+  overflow: hidden;
+  align-items: center;
+  display: flex;
+}
+::v-deep.el-input--medium .el-input__inner {
+  height: 40px !important;
+}
+::v-deep.el-tabs--right .el-tabs__active-bar.is-right {
+  height: 40px;
+  width: 5px;
+  left: 0;
+}
+::v-deep.el-tabs--right .el-tabs__item.is-right {
+  display: block;
+  text-align: left;
+  font-size: 20px;
+}
+::v-deep.leftvlue .el-card__body {
+  background: #d0e9fd;
+}
+::v-deep.leftvlue .el-card__body:hover {
+  background: #8dc8f8;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+.leftvlue {
+  width: 100%;
+  // margin-top: 10px;
+}
+.leftvlue-bg {
+  //   display: flex;
+  //   flex: 1;
+  margin-top: 20px;
+  //   margin: 20px;
+  padding: 30px;
+  background: #ffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+  .mulsz {
+    font-size: 20px;
+  }
+}
 .el-button--primary.is-plain {
   color: #ffffff;
   background: #409eff;
@@ -901,4 +1413,39 @@
   display: flex;
   justify-content: flex-end;
 }
+.download {
+  text-align: center;
+  .el-upload__tip {
+    font-size: 23px;
+  }
+  .el-upload__text {
+    font-size: 23px;
+  }
+}
+.uploading {
+  margin-top: 20px;
+  margin: 20px;
+  padding: 30px;
+  background: #ffffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+}
+.drexamine {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  padding: 20px;
+  background: #daeaf5;
+  img {
+    width: 50px;
+    height: 50px;
+  }
+}
+.button-textsc {
+  color: #28cfe6;
+}
+.button-textxg {
+  color: #de7897;
+}
 </style>

--
Gitblit v1.9.3