From b5a56d53e44c426fa188ba3e4e1db3eb779e2fd9 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期三, 11 九月 2024 21:49:21 +0800 Subject: [PATCH] 测试完成 --- src/views/patient/patient/index.vue | 1451 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 926 insertions(+), 525 deletions(-) diff --git a/src/views/patient/patient/index.vue b/src/views/patient/patient/index.vue index 29c10a1..69a6d28 100644 --- a/src/views/patient/patient/index.vue +++ b/src/views/patient/patient/index.vue @@ -1,295 +1,513 @@ <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="鎮h�呭垪琛�" name="0"></el-tab-pane> + <el-tab-pane label="浣忛櫌鎮h��" 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="闄㈠尯" prop="userName"> + <el-select v-model="queryParams.value1" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> --> + <!-- <el-form-item label="绉戝/鐥呭尯" prop="userName"> + <el-select v-model="queryParams.value2" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> --> + <el-form-item + label-width="138px" + label="涓绘不鍖荤敓" + prop="userName" + > + <el-input + v-model="queryParams.drname" + placeholder="璇疯緭鍏ュ尰鐢熷鍚�" + maxlength="30" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + + <el-form-item label="闂ㄨ瘖缂栧彿" prop="visitno"> + <el-input + v-model="queryParams.visitno" + placeholder="璇疯緭鍏ョ紪鍙�" + maxlength="30" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="濮撳悕" prop="name"> + <el-input + v-model="queryParams.name" + placeholder="璇疯緭鍏ュ鍚�" + maxlength="30" + @keyup.enter.native="handleQuery" + /> + </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="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="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" + @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="120" + /> + <el-table-column + label="鍑虹敓骞存湀" + align="center" + key="birthdate" + prop="birthdate" + width="160" + > + </el-table-column> + <el-table-column + label="灞呬綇鍦�" + align="center" + key="placeOfResidence" + prop="placeOfResidence" + width="120" + /> + <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="idcardtype" + prop="idcardtype" + width="120" + /><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 }, + }) + " + v-hasPermi="['system:user:edit']" + ><span class="button-textsc" + ><i class="el-icon-zoom-in"></i>璇︽儏缂栬緫</span + ></el-button + > + <!-- <el-button + size="medium" + type="text" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-textxga" + ><i class="el-icon-edit"></i>淇敼</span + ></el-button + > --> + <el-button + size="medium" + type="text" + @click="Distributionservice(scope.row)" + v-hasPermi="['system:user:edit']" + ><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" - /> - <el-table-column - label="濮撳悕" - align="center" - key="userName" - prop="userName" + 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" + > + <template slot-scope="scope"> + <span>{{ scope.row.wfs }}/{{ scope.row.yfs }}</span> + </template> + </el-table-column> + <el-table-column + label="鍒涘缓浜�" + align="center" + key="createBy" + prop="createBy" + width="120" :show-overflow-tooltip="true" /> <el-table-column - label="鎮h�呮爣绛�" + label="鍒涘缓鏃堕棿" + sortable align="center" - key="deptName" - prop="dept.deptName" - :show-overflow-tooltip="true" - /> + prop="createTime" + width="160" + > + <template slot-scope="scope"> + <span>{{ formatTime(scope.row.createTime) }}</span> + </template> + </el-table-column> <el-table-column - label="璇佷欢绫诲瀷" + label="鐘舵��" + fixed="right" align="center" - key="phonenumber" - prop="phonenumber" + key="sendState" + prop="sendState" width="120" - /><el-table-column - label="璇佷欢鍙风爜" - align="center" - key="phonenumber" - prop="phonenumber" - width="120" - /> - <el-table-column - label="骞撮緞" - align="center" - key="phonenumber" - prop="phonenumber" - v-if="columns[4].visible" - 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" @@ -300,21 +518,62 @@ </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> + <el-col :span="8"> + <el-form-item label="姘戞棌" prop="name"> <el-input - v-model="form.email" + 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> + <el-col :span="12"> + <el-form-item label="璇佷欢绫诲瀷" prop="idcardtype"> + <el-select v-model="form.idcardtype" placeholder="璇烽�夋嫨鎬у埆"> + <el-option + v-for="item in paperstypes" + :key="item.papersname" + :label="item.papersname" + :value="item.papersname" + ></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="璇佷欢鍙�" prop="idcardno"> + <el-input + v-model="form.idcardno" placeholder="璇疯緭鍏ヨ瘉浠跺彿" maxlength="50" /> @@ -323,87 +582,37 @@ </el-row> <el-row> <el-col :span="12"> - <el-form-item label="鏈汉鎵嬫満鍙�" prop="userName"> + <el-form-item label="鍑虹敓鍦�" prop="idcardno"> <el-input - v-model="form.userName" - placeholder="璇疯緭鍏ユ墜鏈哄彿" - maxlength="30" + v-model="form.birthplace" + placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅" + maxlength="50" /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="浜插睘鎵嬫満鍙�" prop="password"> + </el-form-item> </el-col + ><el-col :span="12"> + <el-form-item label="灞呬綇鍦�" prop="idcardno"> <el-input - v-model="form.password" - placeholder="璇疯緭鍏ヤ翰灞炴墜鏈哄彿" - type="password" - maxlength="20" - show-password + v-model="form.placeOfResidence" + placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅" + maxlength="50" /> </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-col :span="24"> + <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="鐘舵��"> - <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-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-form-item label="澶囨敞"> @@ -462,7 +671,16 @@ :underline="false" style="font-size: 24px; vertical-align: baseline" @click="importTemplate" - >涓嬭浇妯℃澘</el-link + >涓嬭浇妯℃澘 + </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> </el-upload> @@ -483,6 +701,7 @@ </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" @@ -494,44 +713,97 @@ </div> <!-- 瀹屾垚 --> <div class="drexamine" v-else-if="dractive == 3"> - <img - src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" - /> + <img src="@/assets/images/瀵煎叆.png" /> <p>瀵煎叆鎮h�呮垚鍔燂紒</p> - <p>鏈鍏辫瀵煎叆{{ ImportQuantity }}浣嶆偅鑰�</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="certificate" 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 @click="serviceVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="CreateService">鍒涘缓鏈嶅姟</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"; -import { listpatient } from "@/api/patient/homepage"; + 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"], components: { Treeselect }, data() { return { @@ -547,59 +819,108 @@ showSearch: true, // 鎬绘潯鏁� total: 0, + tasktotal: 0, // 鐢ㄦ埛琛ㄦ牸鏁版嵁 userList: null, + taskuserList: null, // 寮瑰嚭灞傛爣棰� title: "", // 閮ㄩ棬鏍戦�夐」 deptOptions: undefined, + options: [], // 鏄惁鏄剧ず寮瑰嚭灞� open: false, // 閮ㄩ棬鍚嶇О deptName: undefined, // 榛樿瀵嗙爜 initPassword: undefined, + amendtag: false, //鏄惁淇敼 + serviceVisible: false, + serviceradio: 1, + distributeVisible: false, + tasktopic: "5", //鏂板绫诲瀷 + // 鏌ヨ鍙傛暟 + topqueryParams: { + pageNum: 1, + pageSize: 10, + userName: undefined, + tagid: undefined, + topic: undefined, + }, // 鏃ユ湡鑼冨洿 dateRange: [], - // 宀椾綅閫夐」 - postOptions: [], - // 瑙掕壊閫夐」 - roleOptions: [], + taskoptions: [], + paperstypes: [ + { papersname: "韬唤璇�" }, + { papersname: "鎶ょ収" }, + { papersname: "涓浗娓境灞呮皯韬唤璇�" }, + { papersname: "涓浗鍙版咕灞呮皯韬唤璇�" }, + ], + Patienttype: [ + { + value: "1", + label: "鍦ㄩ櫌鎮h��", + }, + { + value: "2", + label: "闂ㄨ瘖鎮h��", + }, + { + value: "3", + label: "浣撴鎮h��", + }, + { + value: "4", + label: "鍑洪櫌鎮h��", + }, + ], + + cardlist: [ + { + name: "鎮h�呮�绘暟", + value: 123, + }, + { + name: "鍦ㄩ櫌鎮h��", + value: 23, + router: "/patient/inpatient", + }, + { + name: "鍑洪櫌鎮h��", + value: 41, + router: "/patient/hospital", + }, + { + name: "闂ㄨ瘖鎮h��", + value: 56, + router: "/patient/outpatient", + }, + { + name: "绂讳笘鎮h��", + value: 0, + }, + ], // 琛ㄥ崟鍙傛暟 - form: {}, + form: { + name: "", + age: "", + sex: "", + tagList: [], + idcardno: "", + telcode: "", + idcardtype: "", + relativetelcode: "", + }, + activeName: "first", //渚ц竟閫夋嫨 //瀵煎叆杩涘害 dractive: 1, // 瀵煎叆灞曠ず琛ㄥ崟 uploadingData: {}, total: 0, // 鎬绘潯鏁� ImportQuantity: 999, //瀵煎叆鎮h�呮暟閲� - // 鏌ヨ鍙傛暟 - queryParams: { - pageNum: 1, - pageSize: 10, - jobName: undefined, - jobGroup: undefined, - status: undefined, - }, + Labelchange: false, //淇敼鏂板寮圭獥 propss: { multiple: true }, - optionss: [ - { - value: 1, - label: "涓滃崡", - }, - { - value: 2, - label: "瑗垮寳", - }, - { - value: 3, - label: "浠ㄤ花浠�", - }, - { - value: 4, - label: "鍏椋掗", - }, - ], + optionstag: [], //鏍囩鍒楄〃 defaultProps: { children: "children", label: "label", @@ -622,26 +943,17 @@ // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, + allhosp: "0", pageSize: 10, - userName: undefined, - phonenumber: undefined, + 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, @@ -650,39 +962,32 @@ 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: [ + idcardtype: [ + { required: true, message: "璇佷欢绫诲瀷涓嶈兘涓虹┖", trigger: "blur" }, + ], + 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" }, ], }, }; @@ -695,20 +1000,41 @@ }, 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() { + console.log(this.dict.type.sys_user_sex); this.loading = true; - listUser(this.queryParams).then((response) => { + messagelistpatient(this.queryParams).then((response) => { console.log(response); this.userList = response.rows; this.total = response.total; this.loading = false; + }); + }, + handleClick() { + this.getList(); + }, + findLabelByValue(data, value) { + const item = data.find((item) => item.value === value); + return item ? item.label : null; + }, + /** 鏌ヨ鏍囩鍒楄〃 */ + gettabList() { + const tagqueryParams = { + pageNum: 1, + pageSize: 1000, + tagname: undefined, + tagdescription: undefined, + tagcategoryid: "0", + }; + listtag(tagqueryParams).then((response) => { + console.log(response); + this.optionstag = response.rows; }); }, // 鏌ヨ瀵煎叆灞曠ず鍒楄〃 @@ -720,59 +1046,28 @@ this.loading = false; }); }, - /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */ - getDeptTree() { - deptTreeSelect().then((response) => { - this.deptOptions = response.data; - }); + Distributionservice(row) { + this.serviceVisible = true; }, - // 绛涢�夎妭鐐� - filterNode(value, data) { - if (!value) return true; - return data.label.indexOf(value) !== -1; - }, - // 鑺傜偣鍗曞嚮浜嬩欢 - handleNodeClick(data) { - this.queryParams.deptId = data.id; - this.handleQuery(); - }, - // 鐢ㄦ埛鐘舵�佷慨鏀� - 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"; - }); - }, + // 鍙栨秷鎸夐挳 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() { @@ -783,103 +1078,72 @@ resetQuery() { this.dateRange = []; this.resetForm("queryForm"); - this.queryParams.deptId = undefined; this.$refs.tree.setCurrentKey(null); 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) => { + console.log(row); + const userIds = row.id || this.ids; + particularpatient(userIds).then((response) => { + console.log(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; + alterpatient(this.form) + .then((response) => { + console.log(response); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("淇敼鎴愬姛"); + }); } 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(); @@ -887,10 +1151,42 @@ }) .catch(() => {}); }, + //鏈嶅姟璺宠浆 + CreateService() { + this.$router.push({ + path: "/followvisit/particty", + query: { type: this.serviceradio }, + }); + }, + 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, }, @@ -947,6 +1243,105 @@ </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: 30px; + 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: 80%; + 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; @@ -982,11 +1377,17 @@ display: flex; align-items: center; justify-content: center; - padding: 30px; + padding: 20px; background: #daeaf5; img { - width: 100px; - height: 100px; + width: 50px; + height: 50px; } } +.button-textsc { + color: #28cfe6; +} +.button-textxg { + color: #de7897; +} </style> -- Gitblit v1.9.3