From 1477a1353e96b5620a29c78e2b08647a1a2bc5b7 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 15 十月 2024 19:07:25 +0800
Subject: [PATCH] ll
---
admin/src/components/business/OperaMemberRoleWindow.vue | 202 +++++++++++++++++++++++++-------------------------
1 files changed, 102 insertions(+), 100 deletions(-)
diff --git a/admin/src/components/business/OperaMemberRoleWindow.vue b/admin/src/components/business/OperaMemberRoleWindow.vue
index 5ed9027..89cacdb 100644
--- a/admin/src/components/business/OperaMemberRoleWindow.vue
+++ b/admin/src/components/business/OperaMemberRoleWindow.vue
@@ -1,91 +1,73 @@
<template>
- <GlobalWindow
- :title="title"
- :visible.sync="visible"
- width="70%"
- :confirm-working="isWorking"
- @confirm="confirm"
- >
- <p class="tip-warn"><i class="el-icon-warning"></i>鎻愰啋锛�<br>
- 1.闂ㄧ鏉冮檺閰嶇疆鎴愬姛鍚庯紝鎺堟潈浠诲姟鍗宠繘鍏ユ潈闄愪笅鍙戦槦鍒楋紝鍙墠寰�銆愪汉鍛樻巿鏉冭褰曘�戞煡鐪嬩笅鍙戣繘搴�;<br>
- 2.濡傛灉闇�瑕佹竻绌哄綋鍓嶉�変腑浜哄憳涓嬪彂鏉冮檺锛屼互涓嬨�愬凡閫夐棬绂佺偣鍒嗙粍銆戜负绌烘彁浜ゅ嵆鍙��
- </p>
- <p class="tip" v-if="form.names != null">姝e湪涓�<em>銆恵{ form.names.map(item => `${item}`).join('锛�') }}銆�</em> 閰嶇疆闂ㄧ鏉冮檺</p>
- <el-form :model="form" ref="form" :rules="rules">
- <el-form-item label="闂ㄧ鏈夋晥鏈燂細" prop="timeType">
- <el-radio-group v-model="form.timeType">
- <el-radio :label="0">闀挎湡鏈夋晥</el-radio>
- <el-radio :label="1">鑷畾涔夋椂闂�</el-radio>
- <el-radio :label="2" v-if="companyType=== 0">鍩硅鏈夋晥鏈�</el-radio>
- </el-radio-group>
- <div v-if="form.timeType ==1" style="margin-top: 10px" >
- <el-date-picker
- @change="seleTime"
- v-model="time"
- type="datetimerange"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡">
- </el-date-picker>
- </div>
- </el-form-item>
- <el-form-item label="闂ㄧ鐐瑰垎缁勶細" prop="roleIds">
- <el-transfer
- style="margin-top: 15px;font-size: 12px"
- :titles="['鏈�夐棬绂佺偣鍒嗙粍', '宸查�夐棬绂佺偣鍒嗙粍']"
- filterable
- :filter-method="filterMethod"
- filter-placeholder="璇疯緭鍏ラ棬绂佺偣鍒嗙粍鍚嶇О"
- v-model="form.roleIds"
- :data="roles">
- </el-transfer>
- </el-form-item>
+ <GlobalWindow :title="title" :visible.sync="visible" width="900px" :confirm-working="isWorking" @confirm="confirm">
+ <p class="tip-warn"><i class="el-icon-warning"></i>鎻愰啋锛�<br>
+ 1.闂ㄧ鏉冮檺閰嶇疆鎴愬姛鍚庯紝鎺堟潈浠诲姟鍗宠繘鍏ユ潈闄愪笅鍙戦槦鍒楋紝鍙墠寰�銆愪汉鍛樻巿鏉冭褰曘�戞煡鐪嬩笅鍙戣繘搴�;<br>
+ 2.濡傛灉闇�瑕佹竻绌哄綋鍓嶉�変腑浜哄憳涓嬪彂鏉冮檺锛屼互涓嬨�愬凡閫夐棬绂佺偣鍒嗙粍銆戜负绌烘彁浜ゅ嵆鍙��
+ </p>
+ <p class="tip" v-if="form.names != null">姝e湪涓�<em>銆恵{ form.names.map(item => `${item}`).join('锛�') }}銆�</em> 閰嶇疆闂ㄧ鏉冮檺</p>
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="闂ㄧ鏈夋晥鏈燂細" prop="timeType">
+ <el-radio-group v-model="form.timeType">
+ <el-radio :label="0">闀挎湡鏈夋晥</el-radio>
+ <el-radio :label="1">鑷畾涔夋椂闂�</el-radio>
+ <el-radio :label="2" v-if="companyType === 0">鍩硅鏈夋晥鏈�</el-radio>
+ </el-radio-group>
+ <div v-if="form.timeType == 1" style="margin-top: 10px">
+ <el-date-picker @change="seleTime" v-model="time" type="datetimerange" format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡">
+ </el-date-picker>
+ </div>
+ </el-form-item>
+ <el-form-item label="闂ㄧ鐐瑰垎缁勶細" prop="roleIds">
+ <el-transfer style="margin-top: 15px;font-size: 12px" :titles="['鏈�夐棬绂佺偣鍒嗙粍', '宸查�夐棬绂佺偣鍒嗙粍']" filterable
+ :filter-method="filterMethod" filter-placeholder="璇疯緭鍏ラ棬绂佺偣鍒嗙粍鍚嶇О" v-model="form.roleIds" class="transfer"
+ :data="roles">
+ </el-transfer>
+ </el-form-item>
- </el-form>
- </GlobalWindow>
+ </el-form>
+ </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
-import {getDeviceRoleList} from '@/api/business/device'
+import { getDeviceRoleList } from '@/api/business/device'
export default {
name: 'OperaDeviceRoleWindow',
extends: BaseOpera,
components: { GlobalWindow },
- data () {
+ data() {
var validateTime = (rule, value, callback) => {
- if(this.form.timeType == null ){
+ if (this.form.timeType == null) {
callback(new Error('璇峰~鍐欐纭殑闂ㄧ鏈夋晥鏈熸椂闂�'))
return
}
- if(this.form.timeType === 1 && (this.form.startTime ==null || this.form.endTime == null)){
- callback(new Error('璇峰~鍐欐纭殑闂ㄧ鏈夋晥鏈熸椂闂�'))
- return
+ if (this.form.timeType === 1 && (this.form.startTime == null || this.form.endTime == null)) {
+ callback(new Error('璇峰~鍐欐纭殑闂ㄧ鏈夋晥鏈熸椂闂�'))
+ return
}
callback()
- };
+ }
return {
// 琛ㄥ崟鏁版嵁
- time:null,
- companyType:1,
+ time: null,
+ companyType: 1,
form: {
ids: [],
names: [],
timeType: 0,
roleIds: [],
status: 1,
- startTime:null,
- endTime:null,
+ startTime: null,
+ endTime: null,
radio: 0
},
- roles:[],
+ roles: [],
rules: {
- // 楠岃瘉瑙勫垯
+ // 楠岃瘉瑙勫垯
timeType: [
- { required: true, validator: validateTime,message: '璇烽�変腑闂ㄧ鏈夋晥鏈�' }
+ { required: true, validator: validateTime, message: '璇烽�変腑闂ㄧ鏈夋晥鏈�' }
],
startTime: [
{ validator: validateTime, trigger: 'blur' }
@@ -96,7 +78,7 @@
}
}
},
- created () {
+ created() {
this.config({
api: '/business/member',
'field.id': 'id'
@@ -104,60 +86,59 @@
},
methods: {
filterMethod(query, item) {
- if (!query) return item;
- return item.label.indexOf(query) > -1 ;
+ if (!query) return item
+ return item.label.indexOf(query) > -1
},
- seleTime (e) {
- if(e && e.length >= 2){
+ seleTime(e) {
+ if (e && e.length >= 2) {
this.form.startTime = e[0]
this.form.endTime = e[1]
- }else{
+ } else {
this.form.startTime = null
this.form.endTime = null
}
},
- confirm () {
+ confirm() {
this.$refs.form.validate((valid) => {
if (!valid) {
return
}
if (this.form.roleIds == null || this.form.roleIds.length == 0) {
this.$dialog.actionConfirm('鏉冮檺涓虹┖锛屾彁浜ゅ悗鍗虫竻闄ゆ墍閫変汉鍛樺凡鍒嗛厤鏉冮檺锛佽璋ㄦ厧鎿嶄綔', '鎮ㄧ‘璁よ繘琛岃鎿嶄綔鍚楋紵')
- .then(() => {
- this.confirmDo();
- })
- .catch(() => {})
-
+ .then(() => {
+ this.confirmDo()
+ })
+ .catch(() => { })
} else {
- this.confirmDo();
+ this.confirmDo()
}
})
},
- confirmDo(){
- // 璋冪敤鏂板缓鎺ュ彛
- this.isWorking = true
- this.api.batchRoleAuth({
- ids: this.form.ids,
- timeType: this.form.timeType,
- startTime: this.form.startTime,
- endTime: this.form.endTime,
- roleIds: this.form.roleIds
+ confirmDo() {
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ this.api.batchRoleAuth({
+ ids: this.form.ids,
+ timeType: this.form.timeType,
+ startTime: this.form.startTime,
+ endTime: this.form.endTime,
+ roleIds: this.form.roleIds
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鎺堟潈鎴愬姛锛屽彲鍓嶅線銆愪汉鍛樻巿鏉冭褰曘�戞煡鐪嬩笅鍙戣繘搴�')
+ this.$emit('success')
})
- .then(() => {
- this.visible = false
- this.$tip.apiSuccess('鎺堟潈鎴愬姛锛屽彲鍓嶅線銆愪汉鍛樻巿鏉冭褰曘�戞煡鐪嬩笅鍙戣繘搴�')
- this.$emit('success')
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking = false
- })
- },
+ .catch(e => {
+ // this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ },
// 鑾峰彇璁惧
- getLists (){
- getDeviceRoleList({type:2})
+ getLists() {
+ getDeviceRoleList({ type: 2 })
.then(res => {
this.roles = res.map(item => {
return {
@@ -168,7 +149,7 @@
})
})
},
- open (title, ids,names,companyType) {
+ open(title, ids, names, companyType) {
this.roles = []
this.getLists()
this.title = title
@@ -178,8 +159,8 @@
this.$nextTick(() => {
this.$refs.form.resetFields()
this.form[this.configData['field.id']] = null
- this.form.ids = ids;
- this.form.names =names;
+ this.form.ids = ids
+ this.form.names = names
console.log(names)
})
@@ -190,6 +171,7 @@
<style scoped lang="scss">
@import "@/assets/style/variables.scss";
+
// 瑙掕壊閰嶇疆
.global-window {
.tip {
@@ -199,10 +181,12 @@
font-weight: bold;
}
}
+
.tip-warn {
margin: 4px 0 12px 0;
font-size: 12px;
color: #999;
+
i {
color: orange;
margin-right: 4px;
@@ -212,7 +196,25 @@
}
}
}
-.el-transfer-panel {
- width: 350px !important;
+
+.transfer {
+ height: 600px;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ ::v-deep .el-transfer-panel {
+ flex: 1;
+ height: 100%;
+ }
+
+ ::v-deep .el-transfer-panel__body {
+ height: 500px;
+ }
+
+ ::v-deep .el-transfer-panel__list.is-filterable {
+ height: 480px;
+ }
}
</style>
--
Gitblit v1.9.3