| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> |
| | | <el-form-item label="" prop="phone wx qq twitter isAlways remark" > |
| | | <el-input |
| | | v-model:phone="queryParams.phone" |
| | | v-model:wx="queryParams.wx" |
| | | v-model:qq="queryParams.qq" |
| | | v-model:twitter="queryParams.twitter" |
| | | v-model:isAlways="queryParams.isAlways" |
| | | v-model:remark="queryParams.remark" |
| | | placeholder="在“家庭小医生”中搜索" |
| | | clearable |
| | | style="width: 240px" |
| | | @keyup.enter.native="handleQuery"> |
| | | <i slot="prefix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | <!-- <el-input |
| | | v-model="searchVal" |
| | | placeholder="在“通讯录”中搜索" |
| | | clearable |
| | | style="width: 240px" |
| | | @input="inputChange"> |
| | | <i slot="prefix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | <div class="outer-table"> |
| | | 此父组件引用子组件tablemax |
| | | <tablemax label="myLabel" :tableData="contactList"> |
| | | <template v-slot:table> |
| | | <el-table-column label="操作" width="180"> |
| | | <template slot-scope="scope"> |
| | | <el-button @click="handleCheck(scope.row)" type="text" size="small" |
| | | >调用</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </tablemax> |
| | | </div>--> |
| | | |
| | | |
| | | <!-- v-model="queryParams.id" |
| | | |
| | | v-model:phone="queryParams.phone" |
| | | v-model:wx="queryParams.wx" |
| | | v-model:qq="queryParams.qq" |
| | | v-model:twitter="queryParams.twitter" |
| | | v-model:isAlways="queryParams.isAlways" |
| | | v-model:remark="queryParams.remark" |
| | | @keyup.enter.native="handleQuery" |
| | | --> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="类别" prop="type"> |
| | | <el-select v-model="queryParams.type" placeholder="所有类别" clearable |
| | | style="width: 240px" @keyup.enter.native="handleQuery"> |
| | | style="width: 240px; |
| | | height: 35px; |
| | | border-radius: 16px 16px 16px 16px; |
| | | opacity: 0.5;" @keyup.enter.native="handleQuery" filterable allow-create> |
| | | <el-option v-for="item in typeOptions" |
| | | :key="item.value" :label="item.label" :value="item.value"/> |
| | | </el-select> |
| | |
| | | v-model="queryParams.symptom" |
| | | placeholder="请输入症状" |
| | | clearable |
| | | style="width: 240px" |
| | | style="width: 200px; |
| | | height: 35px; |
| | | border-radius: 16px 16px 16px 16px; |
| | | opacity: 0.5;" |
| | | @keyup.enter.native="handleQuery"> |
| | | <i slot="prefix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | |
| | | |
| | | <el-form-item label="处方" prop="cmedical"> |
| | | <el-input |
| | | v-model="queryParams.cmedical" |
| | | placeholder="请输入中医处方" |
| | | clearable |
| | | style="width: 240px" |
| | | style="width: 200px; |
| | | height: 35px; |
| | | border-radius: 16px 16px 16px 16px; |
| | | opacity: 0.5;" |
| | | @keyup.enter.native="handleQuery"> |
| | | <i slot="prefix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | |
| | | v-model="queryParams.effect" |
| | | placeholder="请输入功效" |
| | | clearable |
| | | style="width: 240px" |
| | | style="width: 200px; |
| | | height: 35px; |
| | | border-radius: 16px 16px 16px 16px; |
| | | opacity: 0.5;" |
| | | @keyup.enter.native="handleQuery"> |
| | | <i slot="prefix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | |
| | | v-model="queryParams.suitable" |
| | | placeholder="请输入适用人" |
| | | clearable |
| | | style="width: 240px" |
| | | style="width: 200px; |
| | | height: 35px; |
| | | border-radius: 16px 16px 16px 16px; |
| | | opacity: 0.5;" |
| | | @keyup.enter.native="handleQuery" |
| | | > |
| | | <i slot="prefix" class="el-input__icon el-icon-search"></i> |
| | |
| | | v-hasPermi="['family:note:export']" |
| | | >导入模板下载</el-button> |
| | | </el-col> |
| | | <el-col :span="1.2"> |
| | | <el-col :span="1.5"> |
| | | |
| | | <el-upload |
| | | action="" |
| | |
| | | > |
| | | <el-button size="mini" type="primary" |
| | | plain |
| | | icon="el-icon-plus" >导入</el-button> |
| | | icon="el-icon-top">导入</el-button> |
| | | |
| | | </el-upload> |
| | | </el-col> |
| | |
| | | <el-table v-loading="loading" :data="doctorList" :row-key="getRowId" ref="multipleTable" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> |
| | | <el-table-column type="selection" :reserve-selection="true" width="55" align="center" /> |
| | | <el-table-column fixed label="序号" sortable type="index" align="center" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="60"/> |
| | | <el-table-column label="类别" prop="type" sortable width="80" align="center"> |
| | | <el-table-column label="类别" prop="type" sortable :show-overflow-tooltip="true" width="80" align="center"> |
| | | <!-- <template slot-scope="scope">{{ getSrc(scope.row.type) }}</template>--> |
| | | <template slot-scope="scope">{{scope.row.type? scope.row.type: '————'}}</template> |
| | | </el-table-column> |
| | |
| | | <el-table-column label="持续时间" prop="duration" sortable :show-overflow-tooltip="true" width="160" align="center" > |
| | | <template slot-scope="scope">{{scope.row.duration? scope.row.duration: '————'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="中医处方" prop="cmedical" sortable width="160" align="center" > |
| | | <el-table-column label="中医处方" prop="cmedical" sortable :show-overflow-tooltip="true" width="160" align="center" > |
| | | <template slot-scope="scope">{{scope.row.cmedical? scope.row.cmedical: '————'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="西医处方" prop="wmedical" sortable width="160" align="center"> |
| | | <el-table-column label="西医处方" prop="wmedical" sortable :show-overflow-tooltip="true" width="160" align="center"> |
| | | <template slot-scope="scope">{{scope.row.wmedical? scope.row.wmedical: '————'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="功效" prop="effect" sortable width="120" align="center" > |
| | | <el-table-column label="功效" prop="effect" sortable :show-overflow-tooltip="true" width="120" align="center" > |
| | | <template slot-scope="scope">{{scope.row.effect? scope.row.effect: '————'}}</template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="适用人" prop="suitable" sortable width="140" align="center" > |
| | | <el-table-column label="适用人" prop="suitable" sortable :show-overflow-tooltip="true" width="140" align="center" > |
| | | <template slot-scope="scope">{{scope.row.suitable? scope.row.suitable: '————'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="是否是本家庭记录" prop="ownData" sortable width="150px" > |
| | | <el-table-column label="是否是本家庭记录" prop="ownData" sortable :show-overflow-tooltip="true" width="150px" align="center" > |
| | | <template slot-scope="scope">{{scope.row.ownData === 0 ? '否': '是'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="备注" prop="remark" sortable width="120" align="center"> |
| | | <el-table-column label="备注" prop="remark" sortable :show-overflow-tooltip="true" width="120" align="center"> |
| | | <template slot-scope="scope">{{scope.row.remark? scope.row.remark: '————'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="电子文件" prop="url" width="160" align="center"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <!-- </el-table-column>--> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <el-table-column label="操作" align="center" width="250" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope" v-if="scope.row.roleId !== 1"> |
| | | <div class="button-container"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | :disabled="!scope.row.ownData" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:role:edit']" |
| | | >修改</el-button> |
| | | > |
| | | <span style="font-size: 14px;">修改</span> |
| | | </el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | :disabled="!scope.row.ownData" |
| | | v-hasPermi="['system:role:remove']" |
| | | >删除</el-button> |
| | | |
| | | <el-button |
| | | ><span style="font-size: 14px;">删除</span></el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-d-arrow-right" |
| | | @click="handleCheck(scope.row)"> |
| | | 查看详情</el-button> |
| | | <span style="font-size: 14px;">查看详情</span></el-button> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-input v-model="formDat.symptom" placeholder="请输入症状" clearable :style="{width: '100%'}" ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="持续时间" prop="duration"> |
| | | <el-input v-model="formDat.duration" placeholder="请输入持续时间" clearable :style="{width: '100%'}" > |
| | | <el-input v-model="formDat.duration" placeholder="请输入持续时间" type="number" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="中医处方" prop="cmedical"> |
| | |
| | | <h4 class="form-header">相关图片 </h4> |
| | | <el-upload |
| | | action="#" |
| | | accept="image/jpeg, image/png,image/jpg, image/WMF,image/gif" |
| | | list-type="picture-card" |
| | | multiple |
| | | :http-request="requestUpload" |
| | | :file-list="fileList" |
| | | :http-request="requestUpload" |
| | | :file-list="fileList" |
| | | :on-change="handleChange" |
| | | :auto-upload="false" |
| | | ref="upload" |
| | | > |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{file}"> |
| | | <template v-if="fileList"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | :src="file.url" |
| | | alt="" |
| | | style="width: 126px; height: 126px" |
| | | style="width: 100%; height: 100%; object-fit: cover;" |
| | | fit="cover" |
| | | :preview-src-list="[file.url]" |
| | | > |
| | | </template> |
| | | <span class="el-upload-list__item-actions"> |
| | | <span |
| | | class="el-upload-list__item-preview" |
| | |
| | | |
| | | </div> |
| | | </el-upload> |
| | | <el-button |
| | | style="margin-left: 10px" |
| | | size="small" |
| | | type="success" |
| | | |
| | | @click="picUpload" |
| | | >上传到服务器</el-button> |
| | | <h4 class="form-header">其他附件 </h4> |
| | | <el-upload |
| | | action="" |
| | |
| | | multiple |
| | | |
| | | :on-remove="handleRemoveFile" |
| | | :http-request="requestUpload" |
| | | :http-request="requestUpload1" |
| | | :show-file-list="true" |
| | | > |
| | | <el-button type="primary">点击上传</el-button> |
| | | <div v-if="uploading" class="upload-status">正在上传...</div> |
| | | <template #tip> |
| | | <div class="el-upload__tip"> |
| | | </div> |
| | | </template> |
| | | </el-upload> |
| | | |
| | | ref="upload1" |
| | | :on-change="handleChange1" |
| | | :auto-upload="false" |
| | | list-type="picture-card" |
| | | > |
| | | |
| | | |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{file}"> |
| | | <!-- 添加video元素用于显示视频 --> |
| | | <video |
| | | v-if="file.url.includes('.mp4')" |
| | | class="el-upload-list__item-thumbnail" |
| | | :src="file.url" |
| | | style="width: 147px; height: 147px" |
| | | fit="cover" |
| | | ></video> |
| | | <img v-else |
| | | class="el-upload-list__item-thumbnail" |
| | | src="../../assets/images/deviceLis.png" |
| | | alt="" |
| | | style="width: 100%; height: 100%" |
| | | fit="cover"></img> |
| | | |
| | | <span class="el-upload-list__item-actions"> |
| | | <span class="el-upload-list__item-name">{{ file.name }}</span> |
| | | <span |
| | | class="el-upload-list__item-preview" |
| | | @click="handleFileCardPreview(file)" |
| | | > |
| | | <i class="el-icon-zoom-in"></i> |
| | | </span> |
| | | |
| | | <span |
| | | |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemoveFile(file)" |
| | | > |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | </span> |
| | | |
| | | </div> |
| | | |
| | | |
| | | </el-upload> |
| | | <el-button |
| | | style="margin-left: 10px" |
| | | size="small" |
| | | type="success" |
| | | @click="fileUpload" |
| | | >上传到服务器</el-button> |
| | | </el-form> |
| | | <h4 class="form-header"> </h4> |
| | | |
| | |
| | | fot:['.bmp','.jpg','.jpeg','.png','.tif','.gif','.pcx','.tga','.exif','.fpx', |
| | | '.svg','.psd','.cdr','.pcd','.dxf','.ufo','.eps','.ai','.aw','.WMF','.webp','.apng'], |
| | | fileList:[], |
| | | fileList1:[], |
| | | uploadFileList: [], |
| | | uploadFileList1: [], |
| | | fileListOther:[], |
| | | dsb:true, |
| | | btn:false, |
| | | fit:['fill'], |
| | | uploading: false, |
| | | uploading1: false, |
| | | formDat: { |
| | | //就医记录 |
| | | id:undefined, |
| | |
| | | effect:undefined, |
| | | suitable:undefined, |
| | | remark:undefined, |
| | | url: undefined, |
| | | url: "", |
| | | |
| | | }, |
| | | // 菜单列表 |
| | |
| | | /** 查询记录列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | let _this = this; |
| | | // console.log(this.queryParams) |
| | | // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => { |
| | | listDoctor(this.queryParams).then(response => { |
| | | // alert(123) |
| | | // console.log(response.data) |
| | | this.doctorList = response.data.data; |
| | | this.total = response.data.total; |
| | | this.loading = false; |
| | | if(response.msg=="您没加入到对应的家庭,请联系管理员") |
| | | { |
| | | _this.$modal.msgSuccess("您没加入到对应的家庭,请联系管理员"); |
| | | _this.loading = false; |
| | | }else{ |
| | | _this.doctorList = response.data.data; |
| | | _this.total = response.data.total; |
| | | _this.loading = false; |
| | | } |
| | | } |
| | | ); |
| | | listType(this.queryParams).then(response => { |
| | | this.typeList = response.data; |
| | | this.total = response.data.total; |
| | | // console.log( this.typeList ) |
| | | // 在回调函数中调用 getTypeOptions() |
| | | this.getTypeOptions(); |
| | |
| | | }, []); |
| | | |
| | | }, |
| | | /** 查询类别信息 */ |
| | | // getCateInfor() |
| | | // { |
| | | // let _this = this |
| | | // getCategory().then(response=>{ |
| | | // |
| | | // response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{ |
| | | // _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]}) |
| | | // }) |
| | | // }) |
| | | // }, |
| | | //类别选择 |
| | | getSrc(type) { |
| | | if (type === '神经科'){ |
| | |
| | | for(let i = 0; i < this.fileList.length; i++) |
| | | { |
| | | if(this.fileList[i].url==file.url) |
| | | { |
| | | this.$delete(this.fileList,i); |
| | | this.$delete(this.uploadFileList,i); |
| | | } |
| | | } |
| | | }, |
| | | handleRemoveFile(file) { |
| | | for(let i = 0; i < this.fileListOther.length; i++) |
| | | { |
| | | if(this.fileListOther[i].url==file.url) |
| | | { |
| | | |
| | | this.$delete(this.fileListOther,i); |
| | | this.$delete(this.uploadFileList1,i); |
| | | |
| | | } |
| | | } |
| | | }, |
| | | // 取消按钮 |
| | |
| | | /** 提交按钮(数据权限) */ |
| | | submitDataScope: function() { |
| | | |
| | | let ul = this.fileList.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | let uls = this.fileListOther.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | this.formDat.url = ul+","+uls |
| | | |
| | | this.$refs["elForm"].validate(valid => { |
| | | if (valid) { |
| | | |
| | | addDoctor(this.formDat).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | // 清空formDat对象的数据 |
| | | Object.keys(this.formDat).forEach(key => { |
| | | this.formDat[key] = ''; |
| | | }); |
| | | for(let i = 0; i <= this.fileList.length; i++) |
| | | { |
| | | this.handleRemove(this.fileList[0]); |
| | | } |
| | | for(let i = 0; i < this.fileListOther.length; i++){ |
| | | this.handleRemoveFile(this.fileListOther[0]); |
| | | } |
| | | this.getList(); |
| | | }); |
| | | } |
| | | }); |
| | | // 清空formDat对象的数据 |
| | | Object.keys(this.formDat).forEach(key => { |
| | | this.formDat[key] = ''; |
| | | }); |
| | | for(let i = 0; i <= this.fileList.length; i++) |
| | | { |
| | | this.handleRemove(this.fileList[0]); |
| | | } |
| | | for(let i = 0; i < this.fileListOther.length; i++){ |
| | | this.handleRemoveFile(this.fileListOther[0]); |
| | | } |
| | | }, |
| | | requestUpload(params) |
| | | { |
| | | var file = params.file; |
| | | var formData = new FormData(); |
| | | formData.append('uploadFile', file); |
| | | let _this = this |
| | | this.uploading = true; |
| | | uploadPic(formData).then(response => { |
| | | let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length) |
| | | this.uploading = false; |
| | | this.$modal.msgSuccess("上传成功"); |
| | | if(_this.fot.includes(pth) === true) |
| | | { |
| | | _this.fileList.push({name:response.data.fileName, "url":response.data.url}) |
| | | handleChange(file, fileList1) { |
| | | //定义一个全局数组uploadFileList来做存储 |
| | | |
| | | } |
| | | // this.uploadFileList.push(file.raw); |
| | | console.log("=========5555=========") |
| | | console.log(file) |
| | | // console.log(this.uploadFileList) |
| | | // this.fileList = fileList |
| | | //alert(file) |
| | | this.uploadFileList.push(file.raw); |
| | | this.fileList.push({name:file.name,url:file.url}) |
| | | //alert(fileList1.length) |
| | | }, |
| | | handleChange1(file, fileOtherList1) { |
| | | //定义一个全局数组uploadFileList来做存储 |
| | | this.uploadFileList1.push(file.raw); |
| | | this.fileListOther.push({name:file.name,url:file.url}) |
| | | // this.uploadFileList.push(file.raw); |
| | | console.log("=========5555=========") |
| | | //console.log(file) |
| | | // console.log(this.uploadFileList) |
| | | // this.fileList = fileList |
| | | }, |
| | | fileUpload(){ |
| | | // var file = params.file; |
| | | |
| | | else{ |
| | | _this.fileListOther.push({name:response.data.fileName, url:response.data.url}) |
| | | var formData = new FormData(); |
| | | this.$refs.upload1.submit(); |
| | | // formData.append('uploadFile', file); |
| | | if(this.uploadFileList1.length==0){ |
| | | this.$modal.msgSuccess("文档上传列表不能为空!"); |
| | | return |
| | | } |
| | | this.uploadFileList1.forEach((elem)=>{ |
| | | formData.append("files", elem) |
| | | |
| | | } |
| | | }) |
| | | }) |
| | | |
| | | }, |
| | | let _this = this |
| | | |
| | | this.uploading = true; |
| | | uploadPic(formData).then(response => { |
| | | _this.uploadFileList1 = [] |
| | | _this.formDat.url = _this.formDat.url+","+response.fileNames |
| | | _this.$modal.msgSuccess("文件上传成功!"); |
| | | }) |
| | | |
| | | }, |
| | | picUpload() |
| | | { |
| | | var formData = new FormData(); |
| | | //alert(976) |
| | | //this.$refs.upload.submit(); |
| | | //alert(8) |
| | | //alert(this.uploadFileList.length) |
| | | if(this.uploadFileList.length==0){ |
| | | this.$modal.msgSuccess("图片上传列表不能为空!"); |
| | | return} |
| | | //console.log(this.uploadFileList) |
| | | this.uploadFileList.forEach((elem)=>{ |
| | | formData.append("files", elem) |
| | | |
| | | }) |
| | | //alert(90) |
| | | let _this = this |
| | | //alert(9) |
| | | uploadPic(formData).then(response => { |
| | | // alert("dds") |
| | | _this.formDat.url = _this.formDat.url+","+response.fileNames |
| | | _this.uploadFileList = [] |
| | | _this.$modal.msgSuccess("图片上传成功"); |
| | | |
| | | }); |
| | | }, |
| | | requestUpload(params) { |
| | | //alert(98) |
| | | // this.uploadFileList.push(params.file); |
| | | }, |
| | | requestUpload1(params) |
| | | { |
| | | // this.uploadFileList1.push(params.file); |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const Ids = row.id || this.ids; |
| | |
| | | background: #FFEFF2; |
| | | |
| | | } |
| | | |
| | | |
| | | .tableRowClassName { |
| | | height: 40px; |
| | | } |
| | | .el-table__cell { |
| | | font-size: 14px; /* 设置字体大小 */ |
| | | } |
| | | .button-container { |
| | | display: inline-flex; /* 设置按钮容器为行内元素 */ |
| | | } |
| | | </style> |