| | |
| | | v-model="keyword1" |
| | | placeholder="请输入机车号" |
| | | size="small" |
| | | style="margin: 0 10px;" |
| | | clearable="true" |
| | | style="margin: 0 10px" |
| | | clearable |
| | | ></el-input> |
| | | </div> |
| | | <div> |
| | |
| | | v-model="keyword2" |
| | | placeholder="请输入车次" |
| | | size="small" |
| | | style="margin: 0 10px;" |
| | | clearable="true" |
| | | style="margin: 0 10px" |
| | | clearable |
| | | ></el-input> |
| | | </div> |
| | | <div> |
| | |
| | | v-model="keyword3" |
| | | placeholder="请输入司机姓名" |
| | | size="small" |
| | | style="margin: 0 10px;" |
| | | clearable="true" |
| | | style="margin: 0 10px" |
| | | clearable |
| | | ></el-input> |
| | | </div> |
| | | <el-button |
| | | type="primary" |
| | | @click="renderVideoTable" |
| | | size="small" |
| | | style="margin-right:10px;" |
| | | >搜索</el-button> |
| | | <!-- <el-checkbox v-model="isShowUndistributedOnly">仅显示未分配</el-checkbox> --> |
| | | <el-checkbox v-model="notAssignedOnly">仅显示未分配</el-checkbox> |
| | | style="margin-right: 10px" |
| | | >搜索</el-button |
| | | > |
| | | <el-checkbox v-model="notAssignedOnly" @change="renderVideoTable">仅显示未分配</el-checkbox> |
| | | </div> |
| | | <div class="video-list"> |
| | | <el-checkbox-group v-model="trainNochecked"> |
| | | <el-collapse v-model="actCollapseName"> |
| | | <el-collapse-item |
| | | :name="vkey" |
| | | v-for="(v,vkey,i) in videoPackageList" |
| | | v-for="(v, vkey, i) in videoPackageList" |
| | | :key="i" |
| | | > |
| | | <template slot="title"> |
| | | <div> |
| | | <el-checkbox |
| | | :label="i" |
| | | style="padding-right:10px;" |
| | | :label="vkey" |
| | | style="padding-right: 10px" |
| | | ></el-checkbox> |
| | | <span>{{vkey}}({{v.length}})</span> |
| | | <span>{{ vkey }}({{ v.length }})</span> |
| | | </div> |
| | | </template> |
| | | <div class="video-detail" v-for="video in v" :key="video.ID"> |
| | | <i class="el-icon-film" style="margin-left: 20px;"></i> |
| | | <span style="padding-left: 10px;">{{video.VideoName}}</span> |
| | | <i class="el-icon-film" style="margin-left: 20px"></i> |
| | | <span style="padding-left: 10px">{{ |
| | | video.VideoName |
| | | }}</span> |
| | | </div> |
| | | </el-collapse-item> |
| | | </el-collapse> |
| | |
| | | </div> |
| | | <div class="top-right partment"> |
| | | <div class="header"> |
| | | <el-checkbox v-model="isAllCheck" :indeterminate="isIndeterminate" @change="handleCheckAllChange"></el-checkbox> |
| | | <el-checkbox |
| | | v-model="isAllCheck" |
| | | :indeterminate="isIndeterminate" |
| | | @change="handleCheckAllChange" |
| | | ></el-checkbox> |
| | | <div class="title">人员列表</div> |
| | | <el-input size="small" @input="searchName" v-model="inputName" placeholder="请输入内容" clearable="true"></el-input> |
| | | <el-input |
| | | size="small" |
| | | @input="searchName" |
| | | v-model="inputName" |
| | | placeholder="请输入内容" |
| | | clearable |
| | | ></el-input> |
| | | </div> |
| | | <div class="body"> |
| | | <!-- <div class="flex-box"> |
| | |
| | | <el-button type="primary" size="mini" @click="selOrg">选择部门</el-button> |
| | | </div> --> |
| | | <div class="person-list"> |
| | | <el-checkbox-group v-model="memberChecked" @change="handleCheckedCitiesChange"> |
| | | <el-checkbox-group |
| | | v-model="memberChecked" |
| | | @change="handleCheckedCitiesChange" |
| | | > |
| | | <div class="person" v-for="person in personList" :key="person.ID"> |
| | | <el-checkbox :label="person.ID">{{person.Name}}</el-checkbox> |
| | | <el-checkbox :label="person.ID">{{ person.Name }}</el-checkbox> |
| | | </div> |
| | | </el-checkbox-group> |
| | | <el-button |
| | |
| | | type="primary" |
| | | @click="toAddAssignList" |
| | | size="small" |
| | | >加入待分配列表</el-button> |
| | | >加入待分配列表</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="header"> |
| | | <div class="title">任务列表</div> |
| | | <div class="header-right flex-box"> |
| | | <el-radio-group v-model="taskType" size="mini"> |
| | | <el-radio-group v-model="taskType" size="mini" @change="renderTaskTable"> |
| | | <el-radio-button label="1">待分配</el-radio-button> |
| | | <el-radio-button label="2">已分配</el-radio-button> |
| | | </el-radio-group> |
| | | <el-input |
| | | class="keyword-input" |
| | | placeholder="请输入" |
| | | placeholder="搜索关键字" |
| | | v-model="keyWordOfTask" |
| | | size="mini" |
| | | style="margin-left: 10px;" |
| | | style="margin-left: 10px" |
| | | @input="reRenderWhenClear" |
| | | clearable |
| | | > |
| | | <el-button slot="append" icon="el-icon-search" @click="renderTaskTable"></el-button> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="searchKeyword" |
| | | ></el-button> |
| | | </el-input> |
| | | </div> |
| | | </div> |
| | |
| | | type="primary" |
| | | size="small" |
| | | @click="distributeTask" |
| | | v-if="taskType==1&&taskVideoChecked.length" |
| | | >分配任务</el-button> |
| | | v-if="taskType == 1" |
| | | >分配任务</el-button |
| | | > |
| | | </div> |
| | | <el-table |
| | | class="thbg" |
| | | :data="taskTableData" |
| | | v-if="taskTableData" |
| | | ref="elTable" |
| | | @selection-change="taskTableSelection" |
| | | v-loading |
| | | > |
| | | <el-table-column v-if="taskType==1" type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="LocomotiveNumber" label="机车号"></el-table-column> |
| | | <el-table-column |
| | | v-if="taskType == 1" |
| | | type="selection" |
| | | width="55" |
| | | ></el-table-column> |
| | | <el-table-column prop="Title" label="机车号"></el-table-column> |
| | | <el-table-column label="视频数量"> |
| | | <template slot-scope="scope"> |
| | | <div>{{scope.row.LKGList.length}}</div> |
| | | <div>{{ scope.row.LKGList.length }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="DistributionUser" label="分配人"></el-table-column> |
| | | <el-table-column prop="DistributionDate" label="分配时间"></el-table-column> |
| | | <el-table-column prop="HandlingUsers" label="处理人"></el-table-column> |
| | | <el-table-column |
| | | prop="DistributionUser" |
| | | label="分配人" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="DistributionDate" |
| | | label="分配时间" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="HandlingUsers" |
| | | label="处理人" |
| | | ></el-table-column> |
| | | <el-table-column label="操作"> |
| | | <template slot-scope="scope"> |
| | | <div class="operation"> |
| | | <span @click="cancelDistribute(scope.row)" v-show="taskType==1">取消分配</span> |
| | | <span @click="cancelDistribute(scope.row)" v-show="taskType==2">取消指派</span> |
| | | <span |
| | | @click="cancelDistribute(scope.row)" |
| | | v-show="taskType == 1" |
| | | >取消分配</span |
| | | > |
| | | <span |
| | | @click="cancelDistribute(scope.row)" |
| | | v-show="taskType == 2" |
| | | >取消指派</span |
| | | > |
| | | <!-- <span @click="toggleCollapse(scope.row)">查看/隐藏车次</span> --> |
| | | </div> |
| | | </template> |
| | |
| | | class="video-item" |
| | | v-for="video in scope.row.LKGList" |
| | | :key="video.ID" |
| | | >{{video.VideoName}}</div> |
| | | > |
| | | {{ video.VideoName }} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | <el-dialog :visible="orgTreeDialogVisible"> |
| | | <!-- <el-dialog :visible="orgTreeDialogVisible"> |
| | | <div> |
| | | <el-tree |
| | | :data="organizeData" |
| | |
| | | :highlight-current="true" |
| | | ></el-tree> |
| | | <div slot="footer" class="btns"> |
| | | <el-button size="small" @click="orgTreeDialogVisible=false">取消</el-button> |
| | | <el-button size="small" type="primary" @click="searchMemberByOrg">确定</el-button> |
| | | <el-button size="small" @click="orgTreeDialogVisible = false" |
| | | >取消</el-button |
| | | > |
| | | <el-button size="small" type="primary" @click="searchMemberByOrg" |
| | | >确定</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | </el-dialog> --> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getOrganizeTree, getMemberByOrg, getVideoListBySearch, addToAssignList, getTaskList, distributeTask, cancelMission } from '@/api/shuohuang'; |
| | | import { |
| | | getOrganizeTree, |
| | | getMemberByOrg, |
| | | getVideoListBySearch, |
| | | addToAssignList, |
| | | getTaskList, |
| | | distributeTask, |
| | | cancelMission, |
| | | } from "@/api/shuohuang"; |
| | | export default { |
| | | data () { |
| | | data() { |
| | | return { |
| | | isAllCheck:false, |
| | | taskType: '1', |
| | | keyWordOfTask: '', |
| | | // videoSearchTime: [], |
| | | pickerOptions: { |
| | | shortcuts: [{ |
| | | text: '今天', |
| | | onClick (picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setHours(0, 0, 0); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }, { |
| | | text: '昨天', |
| | | onClick (picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24); |
| | | start.setHours(0, 0, 0); |
| | | end.setTime(end.getTime() - 3600 * 1000 * 24); |
| | | end.setHours(23, 59, 59); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }, { |
| | | text: '近一周', |
| | | onClick (picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | //start.setHours(0,0,0); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }] |
| | | }, |
| | | isAllCheck: false, |
| | | taskType: "1", |
| | | keyWordOfTask: "", |
| | | isShowUndistributedOnly: false, |
| | | videoPackageList: {}, |
| | | trainNochecked: [], |
| | | // trainNoCurPage: 1, |
| | | // trainNoPageSize: 8, |
| | | // trainNoPageSizes: [5, 8, 12], |
| | | trainNoTotal: 0, |
| | | keyword1: '', |
| | | keyword2: '', |
| | | keyword3: '', |
| | | actCollapseName: '', |
| | | checkedOrg: {}, |
| | | orgTreeDialogVisible: false, |
| | | organizeData: [], |
| | | keyword1: "", |
| | | keyword2: "", |
| | | keyword3: "", |
| | | actCollapseName: "", |
| | | personList: [], |
| | | memberChecked: [], |
| | | taskTableData: [], |
| | | taskTableData: null, |
| | | taskVideoChecked: [], |
| | | notAssignedOnly: false, |
| | | isIndeterminate:false, |
| | | inputName:"" |
| | | } |
| | | isIndeterminate: false, |
| | | inputName: "", |
| | | }; |
| | | }, |
| | | mounted () { |
| | | this.getOrganizeTreeData(); |
| | | mounted() { |
| | | // this.getOrganizeTreeData(); |
| | | this.refreshAll(); |
| | | }, |
| | | watch: { |
| | | taskType (n, o) { |
| | | this.renderTaskTable(); |
| | | } |
| | | }, |
| | | methods: { |
| | | searchName(val){ |
| | | console.log(this.personList ,val); |
| | | if (val=="") { |
| | | this.searchMemberByOrg() |
| | | reRenderWhenClear(val){ |
| | | if (val.trim() == "") { |
| | | this.renderTaskTable() |
| | | } |
| | | if (val.trim()=="") { |
| | | return |
| | | }, |
| | | searchName(val) { |
| | | console.log(this.personList, val); |
| | | if (val == "") { |
| | | this.searchMemberByOrg(); |
| | | } |
| | | this.personList = this.personList.filter(item=>{ |
| | | return item.Name.indexOf(val)>-1 |
| | | }) |
| | | if (val.trim() == "") { |
| | | return; |
| | | } |
| | | this.personList = this.personList.filter((item) => { |
| | | return item.Name.indexOf(val) > -1; |
| | | }); |
| | | }, |
| | | handleCheckAllChange(val) { |
| | | let arr =[] |
| | | this.personList.forEach(item=>{ |
| | | arr.push(item.ID) |
| | | }) |
| | | this.memberChecked = val ? arr : []; |
| | | this.isIndeterminate = false; |
| | | }, |
| | | handleCheckedCitiesChange(value) { |
| | | let checkedCount = value.length; |
| | | this.isAllCheck = checkedCount === this.personList.length; |
| | | this.isIndeterminate = checkedCount > 0 && checkedCount < this.personList.length; |
| | | }, |
| | | cancelDistribute (row) { |
| | | cancelMission({ UniqeID: row.LKGList[0].UniqeID }).then(res => { |
| | | let arr = []; |
| | | this.personList.forEach((item) => { |
| | | arr.push(item.ID); |
| | | }); |
| | | this.memberChecked = val ? arr : []; |
| | | this.isIndeterminate = false; |
| | | }, |
| | | handleCheckedCitiesChange(value) { |
| | | let checkedCount = value.length; |
| | | this.isAllCheck = checkedCount === this.personList.length; |
| | | this.isIndeterminate = |
| | | checkedCount > 0 && checkedCount < this.personList.length; |
| | | }, |
| | | cancelDistribute(row) { |
| | | let arr = row.LKGList.map((x) => x.ID); |
| | | cancelMission({ LkgIDs: arr }).then((res) => { |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: 'success', |
| | | message: res.msg |
| | | type: "success", |
| | | message: res.msg, |
| | | }); |
| | | this.refreshAll(); |
| | | } |
| | | }) |
| | | }); |
| | | }, |
| | | refreshAll () { |
| | | searchKeyword() { |
| | | const val = this.keyWordOfTask |
| | | this.taskTableData = this.taskTableData.filter((item) => { |
| | | const b1 = item.DistributionUser.indexOf(val) > -1; |
| | | const b2 = item.HandlingUsers.indexOf(val) > -1; |
| | | const b3 = item.Title.indexOf(val) > -1; |
| | | return b1 || b2 || b3; |
| | | }); |
| | | }, |
| | | refreshAll() { |
| | | this.trainNochecked = []; |
| | | this.checkedOrg = {}; |
| | | this.memberChecked = []; |
| | |
| | | this.renderVideoTable(); |
| | | this.renderTaskTable(); |
| | | }, |
| | | taskTableSelection (val) { |
| | | this.taskVideoChecked = val |
| | | taskTableSelection(val) { |
| | | let arr = val.map((item) => item.LKGList.map((x) => x.ID)); |
| | | this.taskVideoChecked = arr; |
| | | }, |
| | | renderTaskTable () { |
| | | renderTaskTable() { |
| | | let _this = this; |
| | | let params = { |
| | | IsPackage: 0, |
| | | Status: this.taskType |
| | | }; |
| | | getTaskList(params).then(res => { |
| | | _this.taskTableData = res.data |
| | | }) |
| | | getTaskList({ |
| | | Status: this.taskType, |
| | | }).then((res) => { |
| | | _this.taskTableData = res.data; |
| | | }); |
| | | }, |
| | | // handleTrainNoSizeChange (size) { |
| | | // this.trainNoPageSize = size; |
| | | // this.renderVideoTable(); |
| | | // }, |
| | | handleTrainNoCurChange () { |
| | | this.renderVideoTable(); |
| | | }, |
| | | renderVideoTable () { |
| | | renderVideoTable() { |
| | | let _this = this; |
| | | let params = { |
| | | getVideoListBySearch({ |
| | | CarNumber: this.keyword1, |
| | | TrainNumber: this.keyword2, |
| | | DriverName: this.keyword3, |
| | | // PageIndex: this.trainNoCurPage, |
| | | // PageSize: this.trainNoPageSize, |
| | | notAssignedOnly: this.notAssignedOnly, |
| | | }; |
| | | getVideoListBySearch(params).then(res => { |
| | | _this.videoPackageList = res.data |
| | | }).then((res) => { |
| | | _this.videoPackageList = res.data; |
| | | _this.trainNoTotal = res.total; |
| | | }); |
| | | }, |
| | | toAddAssignList () { |
| | | toAddAssignList() { |
| | | let _this = this; |
| | | let params = { |
| | | UserID: this.memberChecked[0], |
| | | UniqeID: this.trainNochecked.join(',') |
| | | }; |
| | | addToAssignList(params).then(res => { |
| | | let total = this.trainNochecked.length; |
| | | let people = this.memberChecked.length; |
| | | let least = (total / people) | 0; |
| | | let left = total % people; |
| | | |
| | | let checkedTrain = [...this.trainNochecked]; |
| | | let pickList = []; |
| | | for (let i = 0; i < people; i++) { |
| | | pickList[i] = []; |
| | | if (i < left) { |
| | | for (let j = 0; j < least + 1; j++) { |
| | | pickList[i].push(...this.videoPackageList[checkedTrain[0]]); |
| | | checkedTrain.shift(); |
| | | } |
| | | } else { |
| | | for (let j = 0; j < least; j++) { |
| | | pickList[i].push(...this.videoPackageList[checkedTrain[0]]); |
| | | checkedTrain.shift(); |
| | | } |
| | | } |
| | | } |
| | | let arr = pickList.map((a) => { |
| | | return a.map((item) => item.ID); |
| | | }); |
| | | |
| | | addToAssignList({ |
| | | UserID: this.memberChecked, |
| | | LkgIDs: arr, |
| | | }).then((res) => { |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: 'success', |
| | | message: res.msg |
| | | type: "success", |
| | | message: res.msg, |
| | | }); |
| | | _this.refreshAll(); |
| | | } |
| | | }) |
| | | }); |
| | | }, |
| | | searchMemberByOrg () { |
| | | searchMemberByOrg() { |
| | | let _this = this; |
| | | getMemberByOrg({}).then(res => { |
| | | getMemberByOrg({}).then((res) => { |
| | | _this.personList = res.data; |
| | | // _this.orgTreeDialogVisible = false; |
| | | }) |
| | | }); |
| | | }, |
| | | deepNodeChildren (node) { |
| | | if (node.ChildDept && node.ChildDept.length > 0) { |
| | | return node.ChildDept.map(child => { |
| | | let childObj = {}; |
| | | childObj.id = child.ID; |
| | | childObj.label = child.Name; |
| | | childObj.Status = child.Status; |
| | | if (child.ChildDept) { |
| | | childObj.children = this.deepNodeChildren(child) |
| | | } |
| | | if (child.UserLst) { |
| | | childObj.children = this.deepNodeChildren(child) |
| | | } |
| | | return childObj; |
| | | }); |
| | | } else if (node.UserLst && node.UserLst.length > 0) { |
| | | return node.UserLst.map(child => { |
| | | let childObj = {}; |
| | | childObj.id = child.ID; |
| | | childObj.label = child.Name; |
| | | childObj.Status = child.Status; |
| | | return childObj; |
| | | }); |
| | | } |
| | | }, |
| | | checkOrgNode (a, b, c) { |
| | | this.checkedOrg = a |
| | | }, |
| | | getOrganizeTreeData () { |
| | | // deepNodeChildren(node) { |
| | | // if (node.ChildDept && node.ChildDept.length > 0) { |
| | | // return node.ChildDept.map((child) => { |
| | | // let childObj = {}; |
| | | // childObj.id = child.ID; |
| | | // childObj.label = child.Name; |
| | | // childObj.Status = child.Status; |
| | | // if (child.ChildDept) { |
| | | // childObj.children = this.deepNodeChildren(child); |
| | | // } |
| | | // if (child.UserLst) { |
| | | // childObj.children = this.deepNodeChildren(child); |
| | | // } |
| | | // return childObj; |
| | | // }); |
| | | // } else if (node.UserLst && node.UserLst.length > 0) { |
| | | // return node.UserLst.map((child) => { |
| | | // let childObj = {}; |
| | | // childObj.id = child.ID; |
| | | // childObj.label = child.Name; |
| | | // childObj.Status = child.Status; |
| | | // return childObj; |
| | | // }); |
| | | // } |
| | | // }, |
| | | // checkOrgNode(a, b, c) { |
| | | // this.checkedOrg = a; |
| | | // }, |
| | | // getOrganizeTreeData() { |
| | | // let _this = this; |
| | | // getOrganizeTree().then((res) => { |
| | | // _this.organizeData = res.data.map((item) => { |
| | | // let obj = {}; |
| | | // obj.id = item.ID; |
| | | // obj.label = item.Name; |
| | | // obj.Status = item.Status; |
| | | // obj.children = _this.deepNodeChildren(item); |
| | | // return obj; |
| | | // }); |
| | | // }); |
| | | // }, |
| | | distributeTask() { |
| | | let _this = this; |
| | | getOrganizeTree().then(res => { |
| | | _this.organizeData = res.data.map(item => { |
| | | let obj = {}; |
| | | obj.id = item.ID; |
| | | obj.label = item.Name; |
| | | obj.Status = item.Status; |
| | | obj.children = _this.deepNodeChildren(item); |
| | | return obj |
| | | }) |
| | | }) |
| | | }, |
| | | distributeTask () { |
| | | let _this = this; |
| | | let arr = this.taskVideoChecked.map(train => train['LKGList'][0]['UniqeID']) |
| | | let params = { |
| | | UniqeID: arr.join(',') |
| | | } |
| | | distributeTask(params).then(res => { |
| | | distributeTask({ |
| | | LkgIDs: this.taskVideoChecked, |
| | | }).then((res) => { |
| | | _this.renderTaskTable(); |
| | | }) |
| | | }); |
| | | }, |
| | | |
| | | // selOrg () { |
| | | // this.orgTreeDialogVisible = true; |
| | | // }, |
| | | } |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | height: 40px; |
| | | .title { |
| | | float: left; |
| | | padding-left: 20px; |
| | | height: 40px; |
| | | padding-left: 10px; |
| | | |
| | | line-height: 40px; |
| | | font-size: 14px; |
| | | font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC'; |
| | | font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC"; |
| | | } |
| | | .header-right { |
| | | float: right; |
| | |
| | | text-align: left; |
| | | .el-checkbox-group { |
| | | margin-bottom: 20px; |
| | | .el-checkbox__label{ |
| | | .el-checkbox__label { |
| | | display: none; |
| | | } |
| | | .video-detail { |
| | |
| | | width: 360px; |
| | | height: 465px; |
| | | // overflow-y:auto; |
| | | .header{ |
| | | .el-input{ |
| | | line-height: 41px; |
| | | width: 185px; |
| | | font-size: 14px; |
| | | .header { |
| | | .el-input { |
| | | line-height: 41px; |
| | | width: 185px; |
| | | font-size: 14px; |
| | | } |
| | | .el-checkbox{ |
| | | .el-checkbox { |
| | | float: left; |
| | | padding-left: 20px; |
| | | height: 40px; |
| | | line-height: 40px; |
| | | font-size: 14px; |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | .checked-org { |
| | |
| | | .person-list { |
| | | padding-top: 14px; |
| | | |
| | | .el-checkbox-group{ |
| | | .el-checkbox-group { |
| | | height: 330px; |
| | | |
| | | margin-bottom: 8px; |
| | | overflow: auto; |
| | | margin-bottom: 8px; |
| | | overflow: auto; |
| | | } |
| | | .person { |
| | | text-align: left; |
| | | margin-bottom: 10px; |
| | | |
| | | |
| | | padding-bottom: 6px; |
| | | border-bottom: 1px solid #eee; |
| | | } |