| | |
| | | <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"> |
| | | <el-form |
| | |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="å§å" prop="userName"> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | v-model="queryParams.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="身份è¯å·ç " prop="IDnumber"> |
| | | <el-form-item label="身份è¯å·ç " prop="iccardno"> |
| | | <el-input |
| | | v-model="queryParams.IDnumber" |
| | | v-model="queryParams.iccardno" |
| | | placeholder="请è¾å
¥èº«ä»½è¯å·ç " |
| | | clearable |
| | | style="width: 250px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="èç³»æ¹å¼" prop="phonenumber"> |
| | | <el-form-item label="èç³»æ¹å¼" prop="telcode"> |
| | | <el-input |
| | | v-model="queryParams.phonenumber" |
| | | v-model="queryParams.telcode" |
| | | placeholder="请è¾å
¥èç³»æ¹å¼" |
| | | clearable |
| | | style="width: 280px" |
| | |
| | | /> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-form-item label="æ£è
æ ç¾" 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 label="æ£è
æ ç¾" prop="tagId"> |
| | | <el-select |
| | | v-model="queryParams.tagIds" |
| | | multiple |
| | | placeholder="è¯·éæ©" |
| | | > |
| | | <el-option |
| | | v-for="item in optionstag" |
| | | :key="item.tagid" |
| | | :label="item.tagname" |
| | | :value="item.tagid" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </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-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-row> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | |
| | | </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" |
| | |
| | | <el-table-column |
| | | label="åºå·" |
| | | align="center" |
| | | key="userId" |
| | | prop="userId" |
| | | key="patid" |
| | | prop="patid" |
| | | /> |
| | | <el-table-column |
| | | label="å§å" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="æ§å«" |
| | | align="center" |
| | | key="nickName" |
| | | prop="nickName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column 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="deptName" |
| | | prop="dept.deptName" |
| | | key="tagList" |
| | | prop="tagList" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.tagList">{{ item }} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="è¯ä»¶ç±»å" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | key="iccardtype" |
| | | prop="iccardtype" |
| | | width="120" |
| | | /><el-table-column |
| | | label="è¯ä»¶å·ç " |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | width="120" |
| | | key="iccardno" |
| | | prop="iccardno" |
| | | width="190" |
| | | /> |
| | | <el-table-column |
| | | label="å¹´é¾" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | v-if="columns[4].visible" |
| | | key="age" |
| | | prop="age" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="èç³»æ¹å¼" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | v-if="columns[4].visible" |
| | | key="telcode" |
| | | prop="telcode" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="å»ºæ¡£æ¥æ" |
| | | align="center" |
| | | prop="createTime" |
| | | v-if="columns[6].visible" |
| | | key="archivetime" |
| | | prop="archivetime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | <el-table-column |
| | | label="æ´æ°æ¥æ" |
| | | align="center" |
| | | prop="createTime" |
| | | v-if="columns[6].visible" |
| | | prop="updateTime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | width="160" |
| | | 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/')" |
| | | @click=" |
| | | $router.push({ |
| | | path: '/patient/patient/profile/', |
| | | query: { id: scope.row.patid }, |
| | | }) |
| | | " |
| | | v-hasPermi="['system:user:edit']" |
| | | >æ¥ç</el-button |
| | | ><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-textxg" |
| | | ><i class="el-icon-edit"></i>ä¿®æ¹</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </el-row> |
| | | |
| | | <!-- æ·»å æä¿®æ¹ç¨æ·é
ç½®å¯¹è¯æ¡ --> |
| | | <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body> |
| | | <el-dialog |
| | | :title="title" |
| | | :visible.sync="Labelchange" |
| | | width="900px" |
| | | append-to-body |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å§å" prop="nickName"> |
| | | <el-input |
| | | v-model="form.nickName" |
| | | v-model="form.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | maxlength="30" |
| | | /> |
| | |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¯ä»¶ç±»å" prop="phonenumber"> |
| | | <el-input |
| | | v-model="form.phonenumber" |
| | | placeholder="è¯·éæ©è¯ä»¶ç±»å" |
| | | maxlength="11" |
| | | /> |
| | | <el-select v-model="form.iccardtype" 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="email"> |
| | | <el-input |
| | | v-model="form.email" |
| | | v-model="form.iccardno" |
| | | placeholder="请è¾å
¥è¯ä»¶å·" |
| | | maxlength="50" |
| | | /> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¬äººææºå·" prop="userName"> |
| | | <el-input |
| | | v-model="form.userName" |
| | | v-model="form.telcode" |
| | | placeholder="请è¾å
¥ææºå·" |
| | | maxlength="30" |
| | | /> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="äº²å±ææºå·" prop="password"> |
| | | <el-input |
| | | v-model="form.password" |
| | | v-model="form.relativetelcode" |
| | | placeholder="请è¾å
¥äº²å±ææºå·" |
| | | type="password" |
| | | maxlength="20" |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å¹´é¾" prop="nickName"> |
| | | <el-input |
| | | v-model="form.age" |
| | | placeholder="请è¾å
¥å¹´é¾" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ£è
æ ç¾"> |
| | | <!-- <el-select v-model="form.sex" placeholder="è¯·éæ©"> --> |
| | | <el-cascader |
| | | :options="optionss" |
| | | :props="propss" |
| | | clearable |
| | | ></el-cascader> |
| | | <el-select v-model="form.tagList" multiple placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in optionstag" |
| | | :key="item.tagid" |
| | | :label="item.tagname" |
| | | :value="item.tagid" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <!-- </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="夿³¨"> |
| | |
| | | |
| | | <script> |
| | | import { |
| | | listUser, |
| | | getUser, |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | |
| | | changeUserStatus, |
| | | deptTreeSelect, |
| | | } from "@/api/system/user"; |
| | | import { listpatient } from "@/api/patient/homepage"; |
| | | import { |
| | | listpatient, |
| | | messagelistpatient, |
| | | alterpatient, |
| | | addpatient, |
| | | deletepatient, |
| | | Exporterrorpatient, |
| | | } from "@/api/patient/homepage"; |
| | | import { listtag } from "@/api/system/label"; |
| | | |
| | | import { getToken } from "@/utils/auth"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | |
| | | deptName: undefined, |
| | | // é»è®¤å¯ç |
| | | initPassword: undefined, |
| | | amendtag: false, //æ¯å¦ä¿®æ¹ |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // å²ä½é项 |
| | | postOptions: [], |
| | | // è§è²é项 |
| | | roleOptions: [], |
| | | paperstypes: [ |
| | | { papersname: "身份è¯" }, |
| | | { papersname: "æ¤ç
§" }, |
| | | { papersname: "ä¸å½æ¸¯æ¾³å±
æ°èº«ä»½è¯" }, |
| | | { papersname: "ä¸å½å°æ¹¾å±
æ°èº«ä»½è¯" }, |
| | | ], |
| | | // 表ååæ° |
| | | form: {}, |
| | | form: { |
| | | name: "", |
| | | age: "", |
| | | sex: "", |
| | | tagList: [], |
| | | iccardno: "", |
| | | telcode: "", |
| | | iccardtype: "", |
| | | relativetelcode: "", |
| | | }, |
| | | //导å
¥è¿åº¦ |
| | | dractive: 1, |
| | | // 导å
¥å±ç¤ºè¡¨å |
| | | uploadingData: {}, |
| | | total: 0, // æ»æ¡æ° |
| | | ImportQuantity: 999, //导å
¥æ£è
æ°é |
| | | // æ¥è¯¢åæ° |
| | | 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", |
| | |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | name: "ç大", |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | iccardno: 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: [ |
| | |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.gettabList(); |
| | | this.getDeptTree(); |
| | | this.getConfigKey("sys.user.initPassword").then((response) => { |
| | | this.initPassword = response.msg; |
| | |
| | | /** æ¥è¯¢æ£è
å表 */ |
| | | getList() { |
| | | 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; |
| | | }); |
| | | }, |
| | | /** æ¥è¯¢æ ç¾å表 */ |
| | | gettabList() { |
| | | const queryParams = {}; |
| | | listtag(this.addDateRange(queryParams)).then((response) => { |
| | | console.log(response); |
| | | this.optionstag = response.rows; |
| | | }); |
| | | }, |
| | | // æ¥è¯¢å¯¼å
¥å±ç¤ºå表 |
| | |
| | | // 表åéç½® |
| | | 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: [], |
| | | isupload: "", |
| | | tagname: "", |
| | | tagcategoryid: "", |
| | | tagdescription: "", |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | |
| | | 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.patid); |
| | | 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 = "æ°å¢æ£è
"; |
| | | this.form.password = this.initPassword; |
| | | }); |
| | | this.Labelchange = true; |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | this.Labelchange = true; |
| | | this.reset(); |
| | | const userId = row.userId || this.ids; |
| | | getUser(userId).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 = ""; |
| | | }); |
| | | }, |
| | | /** éç½®å¯ç æé®æä½ */ |
| | | handleResetPwd(row) { |
| | |
| | | height: 100px; |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #28cfe6; |
| | | } |
| | | </style> |