From 695a1d56442b734d44212269f1e4c44220f9d9f0 Mon Sep 17 00:00:00 2001 From: yz3456 <2753272399@qq.com> Date: 星期二, 13 八月 2024 19:18:09 +0800 Subject: [PATCH] 完成了所有的分享模块 --- ruoyi-ui/src/views/honor/index.vue | 378 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 376 insertions(+), 2 deletions(-) diff --git a/ruoyi-ui/src/views/honor/index.vue b/ruoyi-ui/src/views/honor/index.vue index c502674..e070a9b 100644 --- a/ruoyi-ui/src/views/honor/index.vue +++ b/ruoyi-ui/src/views/honor/index.vue @@ -113,6 +113,47 @@ </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> @@ -193,6 +234,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> @@ -379,6 +426,132 @@ </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 label="绫诲埆" prop="type" sortable :show-overflow-tooltip="true" width="120" align="center" > + <template slot-scope="scope">{{scope.row.type? scope.row.type: '鈥斺�斺�斺��'}}</template> + <!-- <template slot-scope="scope">{{ getSrc1(scope.row.type) }}</template>--> + </el-table-column> + <el-table-column label="鍚嶇О" prop="name" sortable :show-overflow-tooltip="true" width="120" align="center" > + <template slot-scope="scope">{{scope.row.name? scope.row.name: '鈥斺�斺�斺��'}}</template> + </el-table-column> + <el-table-column label="璇佸彿/涓撲笟" prop="idNo" sortable :show-overflow-tooltip="true" width="170" align="center" > + <template slot-scope="scope">{{scope.row.idNo? scope.row.idNo: '鈥斺�斺�斺��'}}</template> + </el-table-column> + <el-table-column label="绾у埆" prop="grade" sortable :show-overflow-tooltip="true" width="120" align="center"> + <template slot-scope="scope">{{scope.row.grade? scope.row.grade: '鈥斺�斺�斺��'}}</template> + </el-table-column> + <el-table-column label="鏈夋晥鏃堕棿" prop="validityDate" :show-overflow-tooltip="true" sortable width="170" align="center" > + <template slot-scope="scope">{{scope.row.validityDate? scope.row.validityDate: '鈥斺�斺�斺��'}}</template> + </el-table-column> + <el-table-column label="鑾峰緱鏃堕棿" prop="getDate" sortable :show-overflow-tooltip="true" width="170" align="center" > + <template slot-scope="scope">{{scope.row.getDate? scope.row.getDate: '鈥斺�斺�斺��'}}</template> + </el-table-column> + <el-table-column label="瀛樻斁浣嶇疆" prop="location" sortable :show-overflow-tooltip="true" width="170" align="center" > + <template slot-scope="scope">{{scope.row.location? scope.row.location: '鈥斺�斺�斺��'}}</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="澶囨敞" prop="remark" sortable width="120" align="center"> + <template slot-scope="scope">{{scope.row.remark? scope.row.remark: '鈥斺�斺�斺��'}}</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> + + <pagination + v-show="total1>0" + :total="total1" + :page.sync="queryParams2.pageNo" + :limit.sync="queryParams2.pageSize" + @pagination='fenYe' + style="background: #FEF7FC;" + /> + + </el-dialog> + </div> </template> @@ -389,14 +562,46 @@ //瀵煎叆鎺ュ彛鍑芥暟 -import {listHonor,listType,enload, addHonor,updateHonor, delHonor,uploadPic,getCategory} from "@/api/honor/index"; - +import {listHonor,listType,enload, addHonor,updateHonor, delHonor,uploadPic,getCategory, + share,shareToWho,getWhoShare,downShareData,deleteShareData,showShareData +} from "@/api/honor/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, + userList:[], + ifNum:undefined, + selectWho:undefined, + title1: "", + title2: "", + loading1: false, + loading2: false, + // 鏌ヨ鍙傛暟1 + queryParams1: { + pageNum: 1, + pageSize: 10, + }, + queryParams2: { + pageNo: 1, + pageSize: 10, + }, + ids1: [], + single1: true, + multiple1: true, + dateRange1: [], + userId: undefined, // 閬僵灞� disabled: false, @@ -536,11 +741,180 @@ }; }, created() { + this.getList1(); this.getList(); this.getTypeOptions(); this.getInfo() }, methods: { + // 鍒嗛〉 + fenYe(){ + // @pagination='ifNum === 1 ? selectValue : (ifNum === 2 ? whoShare : showData)' + if(this.ifNum === 1){ + this.selectValue(this.selectWho) + }else if(this.ifNum === 2){ + this.whoShare() + }else{ + this.showData() + } + }, + // 鍏抽棴寮圭獥鍚� + handleClose(){ + this.user = '' + this.queryParams2.pageNo = 1 + this.total1 = 0 + }, + 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,this.queryParams2).then(response => { + this.shareList1 = response.data.data + this.total1 = response.data.total; + }) + }) + }, + // 灞曠ず涓嬭浇鐨勫垎浜暟鎹� + showData(){ + this.shareList1 = [] + this.ifNum = 3 + this.open2 = true + this.title2 = "涓嬭浇鐨勫垎浜暟鎹�"; + showShareData(this.queryParams2).then(response => { + this.shareList1 = response.data.data + this.total1 = response.data.total; + // console.log(response,'灞曠ず涓嬭浇鐨勫垎浜暟鎹睍绀轰笅杞界殑鍒嗕韩鏁版嵁') + }) + }, + // 灞曠ず鍒嗕韩缁欐垜鐨勬暟鎹� + whoShare(){ + this.shareList1 = [] + this.ifNum = 2 + this.open2 = true + this.title2 = "鍒嗕韩缁欐垜鐨勬暟鎹�"; + // const list = {"shareId": this.userList} + // const list = {"shareId": 111} + getWhoShare(this.queryParams2).then(response => { + const data = response.data.data + this.total1 = response.data.total + console.log(response,'灞曠ず鍒嗕韩缁欐垜鐨勬暟鎹睍绀哄垎浜粰鎴戠殑鏁版嵁s') + for(let i in data){ + console.log(i,'灞曠ず鍒嗕韩缁欐垜鐨勬暟鎹睍绀哄垎浜粰鎴戠殑鏁版嵁') + this.shareList1.push(data[i]) + } + }) + }, + + // 鍒嗕韩缁欒皝浜嗕粈涔堟暟鎹� + selectValue(value){ + this.selectWho = value + this.shareList1 = [] + const list = {"shareIds": [this.selectWho]} + shareToWho(list,this.queryParams2).then(response => { + // this.loading2 = true; + response.data.data.forEach(res=>{ + if(res){ + this.shareList1.push(res) + } + }) + // this.shareList1 = response.data.data + this.total1 = response.data.total; + // this.loading2 = false; + console.log(response.data,'鍒嗕韩缁欒皝浜嗕粈涔堟暟鎹垎浜粰璋佷簡浠�涔堟暟鎹�') + }) + }, + handleWho(){ + this.ifNum = 1 + this.open2 = true + this.title2 = "鍒嗕韩缁欒皝浜嗕粈涔堟暟鎹�"; + this.shareList1 = [] + }, + + /** 鍒嗕韩鎿嶄綔 */ + handleShare(row) { + if(row.id){ + this.id1 = [row.id] + } + this.open1 = true; + this.title1 = "鍒嗕韩"; + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange1(selection) { + this.ids1 = selection.map(item => item.userId) + 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 + }, + getRowId1(row) + { + return row.id + }, + getRowId2(row) + { + return row.id + }, + 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; + const kon = {} + this.listRoot.forEach(element => { + kon[element['nickName']] = element['userId'] + }) + for(let i in kon){ + this.userOptions.push({label: i,value: kon[i]}) + } + for(let i in this.userOptions){ + this.userList.push(this.userOptions[i].value) + } + console.log(this.userList,'userListuserListuserList') + 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.id1 = undefined + this.open1 = false; + }).catch(() => {}); + }, + // ------------------------------------------------------------------ + getInfo(){ console.log('-----------------') getInfo().then(response=>{ -- Gitblit v1.9.1