From 9c376c3c54702b872ad690055c7bac16b64e817c Mon Sep 17 00:00:00 2001 From: yz3456 <2753272399@qq.com> Date: 星期一, 01 七月 2024 18:13:23 +0800 Subject: [PATCH] 完成了直播roomId的添加,完成了家庭小医生分享模块 --- ruoyi-ui/src/api/doctor/index.js | 48 ++++++ ruoyi-ui/src/views/meeting/webcast.vue | 16 + ruoyi-ui/src/views/system/user/index.vue | 22 +- ruoyi-ui/src/router/index.js | 4 ruoyi-ui/src/views/meeting/Home.vue | 13 + ruoyi-ui/src/views/doctor/index.vue | 362 ++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 444 insertions(+), 21 deletions(-) diff --git a/ruoyi-ui/src/api/doctor/index.js b/ruoyi-ui/src/api/doctor/index.js index a28505b..275411e 100644 --- a/ruoyi-ui/src/api/doctor/index.js +++ b/ruoyi-ui/src/api/doctor/index.js @@ -78,3 +78,51 @@ data: data }) } +// ------------------------------- +// 鍒嗕韩 +export function share(data) { + return request({ + url: '/ZfDoctorShare/share', + method: 'post', + data: data + }) +} +// 鏌ョ湅鍒嗕韩缁欒皝浜嗕粈涔堟暟鎹� +export function shareToWho(data) { + return request({ + url: '/ZfDoctorShare/getInfoByUserId', + method: 'post', + data: data + }) +} +// 鏌ョ湅璋佸垎浜簡鏁版嵁 +export function getWhoShare() { + return request({ + url: '/ZfDoctorShare/getInfoByShareId', + method: 'get', + }) +} +// 涓嬭浇鍒嗕韩鐨勬暟鎹� +export function downShareData(data) { + return request({ + url: '/ZfDoctorShare/downloadDate', + method: 'post', + data: data + }) +} +// 鏀跺洖鍒嗕韩鏁版嵁 +export function deleteShareData(data) { + return request({ + url: '/ZfDoctorShare/deleteInfoByUserId', + method: 'post', + data: data + }) +} +// 灞曠ず涓嬭浇鐨勬暟鎹� +export function showShareData() { + return request({ + url: '/ZfDoctorShare/all', + method: 'get' + }) +} + diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js index fccb877..55bf70c 100644 --- a/ruoyi-ui/src/router/index.js +++ b/ruoyi-ui/src/router/index.js @@ -206,8 +206,8 @@ permissions: ['meetingModel:webcast:list'], children: [ { - path: 'Home/', - // path: 'webcastInfo/:id(\\d+)', + // path: 'Home/', + path: 'Home/:id(\\d+)', component: () => import('@/views/meeting/Home'), name: 'Home', meta: { title: '鐩存挱璇︽儏',activeMenu: '/meeting/Home'} diff --git a/ruoyi-ui/src/views/doctor/index.vue b/ruoyi-ui/src/views/doctor/index.vue index 108b993..1be08fa 100644 --- a/ruoyi-ui/src/views/doctor/index.vue +++ b/ruoyi-ui/src/views/doctor/index.vue @@ -132,6 +132,53 @@ </el-upload> </el-col> + + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-top" + size="mini" + :disabled="multiple" + @click="handleShare" + + >鍒嗕韩</el-button> + </el-col> + + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-top" + size="mini" + @click="handleWho" + >鍒嗕韩缁欒皝浜嗕粈涔堟暟鎹�</el-button> + </el-col> + + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-top" + size="mini" + @click="whoShare" + >鍒嗕韩缁欐垜鐨勬暟鎹�</el-button> + </el-col> + + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-top" + size="mini" + @click="showData" + >灞曠ず涓嬭浇鐨勫垎浜暟鎹�</el-button> + </el-col> + + + + + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> </div> @@ -218,6 +265,12 @@ icon="el-icon-d-arrow-right" @click="handleCheck(scope.row)"> <span style="font-size: 14px;">鏌ョ湅璇︽儏</span></el-button> + <el-button + size="mini" + type="text" + icon="el-icon-d-arrow-right" + @click="handleShare(scope.row)"> + <span style="font-size: 14px;">鍒嗕韩</span></el-button> </div> </template> </el-table-column> @@ -400,6 +453,130 @@ </el-dialog> + <!-- 鍒嗕韩瀵硅瘽妗�1 --> + <el-dialog :title="title1" :visible.sync="open1" width="500px" append-to-body @close="handleClose2"> + + <el-table v-loading="loading1" :data="listRoot" :row-key="getRowId1" ref="table1" @selection-change="handleSelectionChange1" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column fixed label="搴忓彿" sortable type="index" :index="(queryParams1.pageNum-1)*queryParams1.pageSize+1" width="130"/> + <el-table-column label="韬唤" prop="identity" sortable width="130" > + <template slot-scope="scope" > + <span v-if="scope.row.isMyFamily==1">绗瑊{scope.row.identity}}浠�</span> + <span v-else>鈥斺��</span> + </template> + </el-table-column> + <el-table-column label="濮撳悕" prop="nickName" sortable :show-overflow-tooltip="true" width="145" align="center"/> + </el-table> + + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="subShare">鍒� 浜�</el-button> + </div> + + </el-dialog> + + <!-- 鍒嗕韩瀵硅瘽妗�2 --> + <el-dialog :title="title2" :visible.sync="open2" width="85%" append-to-body @close="handleClose"> + <div> + <el-select v-if="ifNum == 1" + v-model="user" id="userSelect" + placeholder="璇烽�夋嫨鍒嗕韩鐨勫璞�" clearable + style="width: 240px; + height: 35px; + border-radius: 16px 16px 16px 16px; + margin-bottom: 5px; + opacity: 0.5;" filterable allow-create + @change="selectValue"> + <el-option v-for="item in userOptions" + :key="item.value" :label="item.label" :value="item.value"/> + </el-select> + </div> + + <el-table v-loading="loading2" :data="shareList1" :row-key="getRowId2" ref="multipleTable" @selection-change="handleSelectionChange2" :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 :show-overflow-tooltip="true" width="80" align="center"> + <template slot-scope="scope">{{scope.row.type? scope.row.type: '鈥斺�斺�斺��'}}</template> + </el-table-column> + <el-table-column label="鐥囩姸" prop="symptom" sortable :show-overflow-tooltip="true" width="120" align="center" > + <template slot-scope="scope">{{scope.row.symptom? scope.row.symptom: '鈥斺�斺�斺��'}}</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 :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 :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 :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 :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 :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 :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 slot-scope="scope" > + <div> + <img + class="el-upload-list__item-thumbnail" + src="../../assets/images/deviceLis.png" + alt="" + style="width: 35px; height: 35px;" + fit="cover" + v-if="!(scope.row.url === '' || scope.row.url === ',' || scope.row.url === null)" + > + <img + v-else + class="el-upload-list__item-thumbnail" + src="../../assets/images/deviceA.png" + alt="" + style="width: 35px; height: 35px;" + fit="cover" + + ></div> + </template> + </el-table-column> + + <el-table-column label="鎿嶄綔" align="center" width="250" class-name="small-padding fixed-width" v-if="userId != 2"> + <template slot-scope="scope" v-if="scope.row.roleId !== 1"> + <div class="button-container"> + <el-button + v-if="ifNum == 2" + size="mini" + type="text" + icon="el-icon-d-arrow-right" + @click="handleDown(scope.row)"> + <span style="font-size: 14px;">涓嬭浇</span></el-button> + <el-button + v-if="ifNum == 1" + size="mini" + type="text" + icon="el-icon-d-arrow-right" + @click="handleBack(scope.row)"> + <span style="font-size: 14px;">鏀跺洖</span></el-button> + <el-button + size="mini" + type="text" + icon="el-icon-d-arrow-right" + @click="handleCheck(scope.row)"> + <span style="font-size: 14px;">鏌ョ湅璇︽儏</span></el-button> + </div> + </template> + </el-table-column> + </el-table> + + </el-dialog> + + + </div> </template> @@ -410,26 +587,45 @@ //瀵煎叆鎺ュ彛鍑芥暟 -import {listDoctor,enload,getDoctor, addDoctor,updateDoctor, delDoctor,uploadPic,listType} from "@/api/doctor/index"; - +import {listDoctor,enload,getDoctor, addDoctor,updateDoctor, delDoctor,uploadPic,listType, + share,shareToWho,getWhoShare,downShareData,deleteShareData,showShareData + } from "@/api/doctor/index"; +import {listUserAll} from "@/api/root/index"; import { Notification, MessageBox, Message, Loading } from 'element-ui' export default { name: "index", dicts: ['sys_normal_disable'], data() { return { + // 鍒嗕韩缁欒皝鐨刲ist + listRoot: [], + open1:false, + open2:false, + id1: undefined, + shareList1: [], + // shareList2: [], + userOptions:[], + user:undefined, + ifNum:undefined, + selectWho:undefined, + userId: undefined, // 閬僵灞� disabled: false, loading: true, + loading1: false, + loading2: false, formData:[], // 閫変腑鏁扮粍 ids: [], + ids1: [], // 闈炲崟涓鐢� single: true, + single1: true, // 闈炲涓鐢� multiple: true, + multiple1: true, // 鏄剧ず鎼滅储鏉′欢 showSearch: true, // 鎬绘潯鏁� @@ -439,6 +635,8 @@ typeList:[], // 寮瑰嚭灞傛爣棰� title: "", + title1: "", + title2: "", // 鏄惁鏄剧ず寮瑰嚭灞� open: false, // 鏄惁鏄剧ず寮瑰嚭灞傦紙鏁版嵁鏉冮檺锛� @@ -449,6 +647,7 @@ deptNodeAll: false, // 鏃ユ湡鑼冨洿 dateRange: [], + dateRange1: [], // 鏁版嵁鑼冨洿閫夐」 fot:['.bmp','.jpg','.jpeg','.png','.tif','.gif','.pcx','.tga','.exif','.fpx', '.svg','.psd','.cdr','.pcd','.dxf','.ufo','.eps','.ai','.aw','.WMF','.webp','.apng'], @@ -490,6 +689,15 @@ suitable:undefined, effect:undefined, + }, + // 鏌ヨ鍙傛暟1 + queryParams1: { + pageNum: 1, + pageSize: 10, + identity:undefined, + nickName:undefined, + sex:undefined, + birth:undefined, }, // searchVal:"", @@ -552,9 +760,147 @@ created() { this.getList(); this.getTypeOptions(); - this.getInfo() + this.getInfo(); + this.getList1(); }, methods: { + // 鍏抽棴寮圭獥鍚� + handleClose(){ + this.user = '' + }, + handleClose2(){ + this.$refs.table1.clearSelection() + }, + + // 涓嬭浇浠栦汉缁欐垜鍒嗕韩鐨勬暟鎹� + handleDown(row){ + const a = {"downloadContent" : row.id} + downShareData(a).then(() => { + Message({ message: "涓嬭浇鎴愬姛", type: 'success' }) + }) + }, + + // 鏀跺洖鍒嗕韩缁欏埆浜虹殑鏁版嵁 + handleBack(row){ + // 鍒嗕韩缁欒皝鐨勶細this.selectWho + const list = {"shareIds": [this.selectWho],"shareContents": [row.id]} + deleteShareData(list).then(()=>{ + Message({ message: "鏀跺洖鎴愬姛", type: 'success' }) + + const list2 = {"shareIds": [this.selectWho]} + shareToWho(list2).then(response => { + this.shareList1 = response.data + }) + }) + }, + // 灞曠ず涓嬭浇鐨勫垎浜暟鎹� + showData(){ + this.shareList1 = [] + this.ifNum = 3 + this.open2 = true + this.title2 = "涓嬭浇鐨勫垎浜暟鎹�"; + showShareData().then(response => { + this.shareList1 = response + // console.log(this.shareList1,'showShareDatashowShareData') + }) + }, + // 灞曠ず鍒嗕韩缁欐垜鐨勬暟鎹� + whoShare(){ + this.shareList1 = [] + this.ifNum = 2 + this.open2 = true + this.title2 = "鍒嗕韩缁欐垜鐨勬暟鎹�"; + getWhoShare().then(response => { + const data = response.data + for(let i in data){ + this.shareList1.push(data[i]) + } + + }) + }, + + // 鍒嗕韩缁欒皝浜嗕粈涔堟暟鎹� + selectValue(value){ + this.selectWho = value + this.shareList1 = [] + const list = {"shareIds": [value]} + shareToWho(list).then(response => { + this.loading2 = true; + this.shareList1 = response.data + this.loading2 = false; + console.log(this.shareList1,'鍒嗕韩缁欒皝浜嗕粈涔堟暟鎹垎浜粰璋佷簡浠�涔堟暟鎹�') + }) + // console.log(value) + }, + handleWho(){ + this.ifNum = 1 + this.open2 = true + this.title2 = "鍒嗕韩缁欒皝浜嗕粈涔堟暟鎹�"; + this.shareList1 = [] + }, + + /** 鍒嗕韩鎿嶄綔 */ + handleShare(row) { + // this.getList1(); + this.id1 = row.id + this.open1 = true; + this.title1 = "鍒嗕韩"; + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange1(selection) { + this.ids1 = selection.map(item => item.userId) + // console.log(selection) + // console.log(this.ids1,'ids1ids1ids1ids1') + this.single1 = selection.length!=1 + this.multiple1 = !selection.length + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange2(selection) { + // this.ids1 = selection.map(item => item.userId) + // // console.log(selection) + // console.log(this.ids1,'ids1ids1ids1ids1') + // this.single1 = selection.length!=1 + // this.multiple1 = !selection.length + }, + getList1() { + this.loading1 = true; + this.queryParams1.happenStartTime = this.dateRange1.length > 0 && this.dateRange1[0] + this.queryParams1.happenEndTime = this.dateRange1.length > 0 && this.dateRange1[1] + listUserAll(this.queryParams1).then(response => { + this.listRoot = response.data.data; + // console.log(this.listRoot,'listrootlistroot') + // this.total1 = response.data.total; + + const kon = {} + this.listRoot.forEach(element => { + kon[element['nickName']] = element['userId'] + }) + for(let i in kon){ + this.userOptions.push({label: i,value: kon[i]}) + } + // console.log(this.userOptions,'userListuserListuserListuserListuserList') + + + this.loading1 = false; + } + ); + }, + // 纭鍒嗕韩 + subShare(row) { + const shareList = {} + shareList.shareContents = this.id1 || this.ids; + shareList.shareIds = this.ids1 + console.log(shareList,'sharelistsharelist') + this.$modal.confirm('鏄惁纭鍒嗕韩锛�').then(function() { + return share(shareList); + }).then(() => { + + this.getList(); + this.$modal.msgSuccess("鍒嗕韩鎴愬姛"); + this.open1 = false; + }).catch(() => {}); + }, + getInfo(){ console.log('-----------------') getInfo().then(response=>{ @@ -584,6 +930,7 @@ this.$set(this.formDat, 'type', newOption); // 鏇存柊formDat.type鐨勫�间负鏂扮殑閫夐」 } }, + /** 鏌ヨ璁板綍鍒楄〃 */ getList() { @@ -675,6 +1022,14 @@ { return row.id }, + getRowId1(row) + { + return row.id + }, + getRowId2(row) + { + return row.id + }, // 鍙栨秷鎸夐挳锛堟暟鎹潈闄愶級 cancelDataScope() { this.openDataScope = false; @@ -721,6 +1076,7 @@ this.single = selection.length!=1 this.multiple = !selection.length }, + // //姣忔鏀瑰彉input妗嗗�兼椂灏辨敼鍙榯his.myTableData鐨勫�� // inputChange() { //寰幆姣忎竴椤� 鍙content鐨勫�煎惈鏈夎緭鍏ョ殑searchVal鍊硷紝灏卞姞杩沶ewList锛涘弽涔嬶紝灏辨棤涓滆タ鍔犺繘newList // let newlist = this.formDat.filter( diff --git a/ruoyi-ui/src/views/meeting/Home.vue b/ruoyi-ui/src/views/meeting/Home.vue index 6ed5520..9144f00 100644 --- a/ruoyi-ui/src/views/meeting/Home.vue +++ b/ruoyi-ui/src/views/meeting/Home.vue @@ -65,6 +65,8 @@ import { getIndividualList } from "@/api/self"; import { Loading } from 'element-ui' + //瀵煎叆鎺ュ彛鍑芥暟 --鎺ュソ浜� + import { getWebcastInfo } from "@/api/meeting/index"; export default { name: '6666', components: { @@ -83,16 +85,23 @@ sdkAppId: 1600032250, secretKey: 'abedcf588654e18888eff65dfdfde240a882c611710c6ed10e1044fb44818a89', userId: '', - roomId: 123, + roomId: '', cameraId: '', microphoneId: '', }; }, created() { this.getUser(); - + this.getRoomId(); }, methods: { + // 鑾峰彇鎴块棿鍙� + getRoomId(){ + const id = this.$route.params && this.$route.params.id; + getWebcastInfo(id).then(response => { + this.roomId = response.data.roomId + }) + }, // 鑾峰彇鐢ㄦ埛鍚� getUser(id) { getIndividualList().then(response => { diff --git a/ruoyi-ui/src/views/meeting/webcast.vue b/ruoyi-ui/src/views/meeting/webcast.vue index 88e7dd3..0946aff 100644 --- a/ruoyi-ui/src/views/meeting/webcast.vue +++ b/ruoyi-ui/src/views/meeting/webcast.vue @@ -58,7 +58,7 @@ <el-row :gutter="0" v-loading="loading"> <el-col :span="4" v-for="(item,i) in webcastList"> - <div class="module" @click="toLook"> + <div class="module" @click="toLook(item.id)"> <div class="video"> 66666666 </div> @@ -107,6 +107,11 @@ <el-input v-model="formDat.meetingTitle" placeholder="璇疯緭鍏ヤ細璁爣棰�" clearable :style="{width: '100%'}"> </el-input> </el-form-item> --> + + <el-form-item label="鎴块棿鍙�" prop="roomId"> + <el-input v-model="formDat.roomId" placeholder="璇疯緭鍏ユ埧闂村彿" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> <el-form-item label="浼氳鏍囬" prop="title"> <el-input v-model="formDat.title" placeholder="璇疯緭鍏ヤ細璁爣棰�" clearable :style="{width: '100%'}"> @@ -199,7 +204,8 @@ applyPerson: undefined, contactPerson: undefined, contactPhone: undefined, - createTime: undefined + createTime: undefined, + roomId:undefined }, } @@ -256,15 +262,15 @@ this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1] listWebcast(this.queryParams).then(response => { this.webcastList = response.data.data; - // console.log(this.webcastList,'webcastListwebcastListwebcastList') + console.log(this.webcastList,'webcastListwebcastListwebcastList') this.total = response.data.total; this.loading = false; } ); }, - toLook() { - this.$router.push('/meeting/webcast/Home/') + toLook(id) { + this.$router.push('/meeting/webcast/Home/' + id) } } diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index 71b31d9..2a2c68a 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -199,7 +199,7 @@ <el-row> <el-col :span="12"> <el-form-item label="鐢ㄦ埛鎬у埆"> - <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆"> + <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆" @change="getSex"> <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" @@ -292,10 +292,10 @@ </el-row> - <el-row v-if="form.role != 2 && form.isMyFamily == 0"> + <el-row v-if="form.role == 102 && form.isMyFamily == 0"> <el-col :span="12" > <el-form-item label="閰嶅伓淇℃伅" prop="spouseId" > - <el-select v-model="form.spouseId" placeholder="璇烽�夋嫨閰嶅伓淇℃伅"> + <el-select v-model="form.spouseId" placeholder="璇烽�夋嫨閰嶅伓淇℃伅" @change="handleSpouse"> <el-option v-for="item in allInfo" :key="item.userId" @@ -512,15 +512,11 @@ }); }, methods: { - handleChange() - { - // alert(this.fid) + handleChange(){ if(this.fid=="鏃�") this.fid = "-1" - if(this.fid!="-1") - { + if(this.fid!="-1"){ //鏌ヨ涓嶆槸鏈鐨勬椂鍊欙紝鍙互閫夋嫨鐨勯厤鍋朵俊鎭� - getInfoByFid(this.fid).then(response=>{ console.log("--------------------") console.log(response.data) @@ -533,6 +529,14 @@ } }, + handleSpouse(value){ + + }, + // 鑾峰彇鎬у埆 + getSex(){ + + }, + hanldeLoop(){ let fid = this.form.fid let _this = this -- Gitblit v1.9.1