From 1ea0d85b0fe2e7e4427fd484a9342d964c831b3d Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期三, 06 八月 2025 15:15:00 +0800 Subject: [PATCH] 修改 --- src/views/hazardousChemicals/useCount/index.vue | 148 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 146 insertions(+), 2 deletions(-) diff --git a/src/views/hazardousChemicals/useCount/index.vue b/src/views/hazardousChemicals/useCount/index.vue index 434bb8b..97907eb 100644 --- a/src/views/hazardousChemicals/useCount/index.vue +++ b/src/views/hazardousChemicals/useCount/index.vue @@ -12,6 +12,39 @@ format="YYYY-MM-DD HH:mm:ss" /> </el-form-item> + <el-form-item label="所属部门:" prop="departId" > + <el-cascader + style="width: 100%" + ref="classifyRef" + v-model="state.tableData.listQuery.departId" + :options="state.deptList" + :props="state.props" + clearable + :show-all-levels="false" + @change="handleChange" + /> + </el-form-item> + <el-form-item label="人员:" prop="userId" > + <el-select + clearable + v-model="state.tableData.userName" + filterable + remote + @change="selectValue" + reserve-keyword + placeholder="请输入人员名称" + remote-show-suffix + :remote-method="getPeopleList" + style="width: 100%" + > + <el-option + v-for="item in state.peopleList" + :key="item.id" + :label="item.name" + :value="item.name" + /> + </el-select> + </el-form-item> <el-form-item > <el-button plain @@ -67,7 +100,10 @@ import moment from "moment"; import axios from "axios"; import {getToken} from "@/utils/auth"; - +import {getDept} from "@/api/hazardousChemicals/deptment"; +import Cookies from "js-cookie"; +import {getUser} from "@/api/hazardousChemicals/user"; +const classifyRef = ref(null) const loading = ref(false) const state = reactive({ tableData: { @@ -80,9 +116,19 @@ startTime: null, endTime: null, time: [], + userId: null, + departId: null, }, excelName: '' }, + deptList: [], + peopleList: [], + props: { + checkStrictly: true, + }, + userType: null, + companyId: null, + isAdmin: false }); const fields = ref({ '名称':'hazmatBasic.name', @@ -94,11 +140,23 @@ '最小包装': 'minPack', '用量':'count', }); - +const userInfo = ref() onMounted( () => { + userInfo.value = JSON.parse(Cookies.get('userInfo')) + console.log("userInfo",userInfo.value) + state.userType = userInfo.value.userType + if(userInfo.value.userType === 0){ + state.isAdmin = true; + }else { + state.isAdmin = false; + state.companyId = userInfo.value.companyId; + state.userType = 2 + } getNowTime(); getList() + getDeptList() + getPeopleList("") } ); const getNowTime = () => { @@ -109,7 +167,17 @@ eTime = `${eTime} ` + moment().format('HH:mm:ss') state.tableData.listQuery.time = [sTime ,eTime]; } +const handleChange = ()=> { + if(classifyRef.value.getCheckedNodes().length>0){ + state.tableData.listQuery.departId = classifyRef.value.getCheckedNodes()[0].value + if (classifyRef.value.popperVisible) { + classifyRef.value.togglePopperVisible() + } + }else{ + state.tableData.listQuery.departId = null + } +} const getList = async () => { loading.value = true state.tableData.listQuery.startTime = state.tableData.listQuery.time[0] @@ -129,6 +197,38 @@ ElMessage.warning(res.message) } loading.value = false +} +const getDeptList = async ()=>{ + const param = { + companyId: state.companyId + } + const res = await getDept(param) + if (res.code == 200) { + state.deptList = recursion(res.data) + } else { + ElMessage.warning(res.message) + } +} +const recursion = (data) => { + let tmp = [] + for (let i = 0; i < data.length; i++) { + let item = data[i] + // children为空 + if (item.children&& item.children.length==0) { + tmp.push({ + value: item.id, + label: item.name + }) + // 有children + } else { + tmp.push({ + value: item.id, + label: item.name, + children:recursion(item.children) + }) + } + } + return tmp; } const downloadExcel = async() => { @@ -180,7 +280,51 @@ // } } +const getPeopleList = async (val)=>{ + if(val != ""){ + const queryParams = { + name: val + } + const res = await getUser(queryParams) + if (res.code == 200) { + state.peopleList = res.data.list + } else { + ElMessage.warning(res.message) + } + }else { + const queryParams = { + pageNum: 1, + pageSize: 10 + } + const res = await getUser(queryParams) + if (res.code == 200) { + state.peopleList = res.data.list + } else { + ElMessage.warning(res.message) + } + } +} +const selectValue = (val) => { + if(!val){ + state.tableData.listQuery.userId = null + } + state.peopleList.forEach(item => { + if(item.name === val){ + state.tableData.listQuery.userId = item.id + } + }) +} const reset = () => { + state.tableData.listQuery= { + pageNum: 1, + pageSize: 10, + startTime: null, + endTime: null, + time: [], + userId: null, + departId: null, + } + state.tableData.userName = '' getNowTime(); getList(); } -- Gitblit v1.9.2