From 32cb501de16127c3f81f219aef7a6751a14f8d0e Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期五, 01 十二月 2023 10:28:02 +0800 Subject: [PATCH] 提交信息 --- src/views/patient/follow/index.vue | 779 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 763 insertions(+), 16 deletions(-) diff --git a/src/views/patient/follow/index.vue b/src/views/patient/follow/index.vue index 35488b3..cadf3b5 100644 --- a/src/views/patient/follow/index.vue +++ b/src/views/patient/follow/index.vue @@ -1,36 +1,783 @@ <template> - <div> - 鎮h�呭洖璁� - <transition name="slide-fade"> - <p v-if="show">hello world</p> - </transition> + <div class="app-container"> + <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="name"> + <el-input + v-model="queryParams.name" + placeholder="璇疯緭鍏ュ鍚�" + clearable + style="width: 200px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鎮h�呯紪鍙�" prop="iccardno"> + <el-input + v-model="queryParams.iccardno" + placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" + clearable + style="width: 250px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鎮h�呯紪鍙�" prop="telcode"> + <el-input + v-model="queryParams.telcode" + placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" + clearable + style="width: 280px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鎮h�呰寖鍥�" prop="tagId"> + <el-select + v-model="queryParams.Patientid" + multiple + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in Patientrange" + :key="item.id" + :label="item.name" + :value="item.id" + > + </el-option> + </el-select> + </el-form-item> + <el-row> + <el-form-item label="鎮h�呮爣绛�" 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 label=" 灏辫瘖鏃ユ湡 " prop="admitdate"> + <el-date-picker + clearable + v-model="queryParams.admitdate" + type="date" + value-format="yyyy-MM-dd" + 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-row> + </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-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 + label="搴忓彿" + align="center" + key="patid" + prop="patid" + /> + <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="age" + prop="age" + width="120" + /> + <el-table-column + label="鍑虹敓骞存湀" + align="center" + key="archivetime" + prop="archivetime" + width="160" + > + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.createTime) }}</span> + </template> + </el-table-column> + <el-table-column + label="瀹跺涵浣忓潃" + align="center" + key="age" + prop="age" + width="120" + /> + <el-table-column + label="榛戝悕鍗曞師鍥�" + align="center" + key="age" + prop="age" + 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 }} </span> + </template> + </el-table-column> + <el-table-column + label="璇佷欢绫诲瀷" + align="center" + key="iccardtype" + prop="iccardtype" + width="120" + /><el-table-column + label="璇佷欢鍙风爜" + align="center" + key="iccardno" + prop="iccardno" + width="190" + /> + + <el-table-column + label="鑱旂郴鏂瑰紡" + align="center" + key="telcode" + prop="telcode" + width="120" + /> + <el-table-column + label="寤烘。鏃ユ湡" + align="center" + key="archivetime" + prop="archivetime" + width="160" + > + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.createTime) }}</span> + </template> + </el-table-column> + <el-table-column + label="鏇存柊鏃ユ湡" + align="center" + prop="updateTime" + width="160" + > + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.createTime) }}</span> + </template> + </el-table-column> + <el-table-column + 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.patid }, + }) + " + 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 + > + </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> + + <!-- 娣诲姞鎴栦慨鏀圭敤鎴烽厤缃璇濇 --> + <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="name"> + <el-input + v-model="form.name" + placeholder="璇疯緭鍏ュ鍚�" + maxlength="30" + /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鎬у埆" prop="sex"> + <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆"> + <el-option + v-for="dict in dict.type.sys_user_sex" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="璇佷欢绫诲瀷" prop="iccardtype"> + <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="iccardno"> + <el-input + v-model="form.iccardno" + placeholder="璇疯緭鍏ヨ瘉浠跺彿" + maxlength="50" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="鏈汉鎵嬫満鍙�" prop="telcode"> + <el-input + v-model="form.telcode" + placeholder="璇疯緭鍏ユ墜鏈哄彿" + maxlength="30" + /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="浜插睘鎵嬫満鍙�" prop="relativetelcode"> + <el-input + v-model="form.relativetelcode" + placeholder="璇疯緭鍏ヤ翰灞炴墜鏈哄彿" + type="password" + maxlength="20" + show-password + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="骞撮緞" prop="age"> + <el-input + v-model="form.age" + placeholder="璇疯緭鍏ュ勾榫�" + maxlength="30" + /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鎮h�呮爣绛�"> + <!-- <el-select v-model="form.sex" placeholder="璇烽�夋嫨"> --> + <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-row> + <el-row> + <el-col :span="24"> + <el-form-item label="澶囨敞"> + <el-input + v-model="form.remark" + type="textarea" + placeholder="璇疯緭鍏ュ唴瀹�" + ></el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> </div> </template> <script> +import { delUser } from "@/api/system/user"; +import { + listpat_archive, + getpat_archive, + addpat_archive, + updatepat_archive, + delpat_archive, +} from "@/api/smartorpor/pat_archive"; +import { + messagelistpatient, + alterpatient, + addpatient, + particularpatient, + deletepatient, + Exporterrorpatient, + toleadpatient, +} 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"; + export default { + name: "Userhuanze", + dicts: ["sys_normal_disable", "sys_user_sex"], + components: { Treeselect }, data() { return { - show: true, + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 鐢ㄦ埛琛ㄦ牸鏁版嵁 + userList: null, + // 寮瑰嚭灞傛爣棰� + title: "", + // 閮ㄩ棬鏍戦�夐」 + deptOptions: undefined, + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 閮ㄩ棬鍚嶇О + deptName: undefined, + // 榛樿瀵嗙爜 + initPassword: undefined, + amendtag: false, //鏄惁淇敼 + // 鏃ユ湡鑼冨洿 + dateRange: [], + paperstypes: [ + { papersname: "韬唤璇�" }, + { papersname: "鎶ょ収" }, + { papersname: "涓浗娓境灞呮皯韬唤璇�" }, + { papersname: "涓浗鍙版咕灞呮皯韬唤璇�" }, + ], + // 琛ㄥ崟鍙傛暟 + form: { + name: "", + age: "", + sex: "", + tagList: [], + iccardno: "", + telcode: "", + iccardtype: "", + relativetelcode: "", + }, + //瀵煎叆杩涘害 + dractive: 1, + // 瀵煎叆灞曠ず琛ㄥ崟 + uploadingData: {}, + total: 0, // 鎬绘潯鏁� + ImportQuantity: 999, //瀵煎叆鎮h�呮暟閲� + Labelchange: false, //淇敼鏂板寮圭獥 + propss: { multiple: true }, + optionstag: [], //鏍囩鍒楄〃 + Patientrange: [ + { + name: "鍏ㄩ儴", + id: 1, + }, + { + name: "褰撳墠绉戝", + id: 1, + }, + ], + defaultProps: { + children: "children", + label: "label", + }, + // 鐢ㄦ埛瀵煎叆鍙傛暟 + upload: { + // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛� + open: false, + // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛� + title: "", + // 鏄惁绂佺敤涓婁紶 + isUploading: false, + // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹� + updateSupport: 0, + // 璁剧疆涓婁紶鐨勮姹傚ご閮� + headers: { Authorization: "Bearer " + getToken() }, + // 涓婁紶鐨勫湴鍧� + url: process.env.VUE_APP_BASE_API + "/system/user/importData", + }, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + iccardno: undefined, + name: undefined, + status: undefined, + tagIds: undefined, + telcode: undefined, + }, + // 琛ㄥ崟鏍¢獙 + rules: {}, }; }, + watch: { + // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲 + deptName(val) { + this.$refs.tree.filter(val); + }, + }, + created() { + this.getList(); + this.gettabList(); + }, + methods: { + /** 鏌ヨ鎮h�呭垪琛� */ + getList() { + this.loading = true; + messagelistpatient(this.queryParams).then((response) => { + console.log(response); + this.userList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + /** 鏌ヨ鏍囩鍒楄〃 */ + gettabList() { + const queryParams = {}; + listtag().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; + }); + }, - created() {}, + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + return data.label.indexOf(value) !== -1; + }, + // 鑺傜偣鍗曞嚮浜嬩欢 + handleNodeClick(data) { + this.queryParams.deptId = data.id; + this.handleQuery(); + }, - methods: {}, + // 鍙栨秷鎸夐挳 + cancel() { + this.Labelchange = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + name: "", + age: "", + sex: "", + tagList: [], + iccardno: "", + telcode: "", + iccardtype: "", + relativetelcode: "", + }; + // this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.$refs.tree.setCurrentKey(null); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.patid); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.Labelchange = true; + this.amendtag = false; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + console.log(row); + const userIds = row.patid || this.ids; + particularpatient(userIds).then((response) => { + console.log(response); + this.form = response.data; + }); + this.amendtag = true; + this.Labelchange = true; + }, + + //淇敼/鏂板鎮h�� + submitForm() { + if (this.amendtag) { + alterpatient(this.form) + .then((response) => { + console.log(response); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("淇敼鎴愬姛"); + }); + } else { + addpatient(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 deletepatient(userIds); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download( + "smartor/patarchive/export", + { + ...this.queryParams, + }, + `user_${new Date().getTime()}.xlsx` + ); + }, + /** 瀵煎叆鎸夐挳鎿嶄綔 */ + handleImport() { + this.upload.title = "鐢ㄦ埛瀵煎叆"; + this.upload.open = true; + }, + /** 涓嬭浇妯℃澘鎿嶄綔 */ + importTemplate() { + this.download( + "system/user/importTemplate", + {}, + `user_template_${new Date().getTime()}.xlsx` + ); + }, + // 鏂囦欢涓婁紶涓鐞� + handleFileUploadProgress(event, file, fileList) { + this.upload.isUploading = true; + }, + // 鏂囦欢涓婁紶鎴愬姛澶勭悊 + handleFileSuccess(response, file, fileList) { + this.upload.open = false; + this.upload.isUploading = false; + this.$refs.upload.clearFiles(); + this.$alert( + "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + + response.msg + + "</div>", + "瀵煎叆缁撴灉", + { dangerouslyUseHTMLString: true } + ); + this.getList(); + }, + // 鎻愪氦涓婁紶鏂囦欢 + submitFileForm() { + // 涓婁紶 + 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> -.slide-fade-enter-active { - transition: all 1s ease; +.el-button--primary.is-plain { + color: #ffffff; + background: #409eff; + border-color: #4fabe9; } -.slide-fade-leave-active { - transition: all 2s cubic-bezier(1, 0.5, 0.8, 1); +.document { + width: 100px; + height: 50px; } -.slide-fade-enter, -.slide-fade-leave-to { - transform: translateX(40px); - opacity: 0; +.documentf { + 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: 30px; + background: #daeaf5; + img { + width: 100px; + height: 100px; + } +} +.button-textsc { + color: #28cfe6; } </style> -- Gitblit v1.9.3