| | |
| | | display: inline-block !important; |
| | | } |
| | | |
| | | .el-sub-menu .el-menu-item.is-active{ |
| | | background: linear-gradient(#ccc,#fff) !important; |
| | | //background-color: #fff; |
| | | border-top: 1px solid rgba(255,255,255,.2); |
| | | border-bottom: 1px solid rgba(255,255,255,.2); |
| | | width: 94%; |
| | | margin-left: 3%; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | .el-menu--inline:not(:has(.el-sub-menu)){ |
| | | background-color: #3272ff !important; |
| | | box-shadow: 0 3px 8px rgba(0,0,0,.1) inset, 0 -3px 8px rgba(255,255,255,.1) inset; |
| | | box-shadow: 0 3px 8px rgba(0,0,0,.2) inset, 0 -3px 8px rgba(0,0,0,.2) inset; |
| | | } |
| | | |
| | | // menu hover |
| | |
| | | &:hover { |
| | | color: #fff; |
| | | background-color: rgba(255,255,255,.5) !important; |
| | | width: 96%; |
| | | margin-left: 2%; |
| | | } |
| | | &.is-active { |
| | | color: #fff; |
| | | background-color: rgba(255,255,255,.2) !important; |
| | | color: #2563eb; |
| | | } |
| | | |
| | | .el-sub-menu__icon-arrow{ |
| | |
| | | } |
| | | |
| | | const getDeptList = async ()=>{ |
| | | state.form.deviceName = '' |
| | | state.form.deviceNumber = '' |
| | | state.form.calibrationTime = '' |
| | | state.form.calibrationNumber = '' |
| | | state.form.calibrationCompany = '' |
| | | await getUserList(state.form.companyId) |
| | | await getDeviceList(state.form.companyId) |
| | | } |
| | | |
| | | const getUserList = async (companyId)=> { |
| | |
| | | <tr> |
| | | <td>{{deviceIndex + 1}}</td> |
| | | <td> |
| | | <el-input v-model.trim="device.deviceName" type="textarea" style="width: 100%;" clearable :readonly="state.title =='查看'"></el-input> |
| | | <!-- <el-input v-model.trim="device.deviceName" type="textarea" style="width: 100%;" clearable :readonly="state.title =='查看'"></el-input>--> |
| | | <el-select clearable v-model="device.deviceName" :readonly="state.title =='查看'" filterable placeholder="设备名称" style="width: 100%" @change="getDeviceInfo(device.deviceName,deviceIndex)"> |
| | | <el-option |
| | | v-for="item in state.deviceList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </td> |
| | | <td> |
| | | <el-input v-model.trim="device.model" type="textarea" style="width: 100%;" clearable :readonly="state.title =='查看'"></el-input> |
| | |
| | | } from "@/api/innerReview/meetingReview"; |
| | | import {getDepart} from "@/api/orgStructure/depart"; |
| | | import {listUser} from "@/api/system/user"; |
| | | import {getMaintenancePlanDetail, updateMaintenancePlan} from "@/api/infrastructureMng/ledger"; |
| | | import {getMaintenancePlanDetail, getStandingBookList, updateMaintenancePlan} from "@/api/infrastructureMng/ledger"; |
| | | |
| | | const emit = defineEmits(["getList"]); |
| | | const dialogVisible = ref(false) |
| | |
| | | delDeviceIds: [] |
| | | }, |
| | | oldDeviceList: [], |
| | | deviceList: [], |
| | | formRules:{ |
| | | companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }], |
| | | year: [{ required: true, message: '请选择年份', trigger: 'blur' }], |
| | |
| | | state.companyList = companyList |
| | | } |
| | | await getUserList(companyId) |
| | | await getDeviceList(companyId) |
| | | state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' |
| | | state.form.companyId = companyId |
| | | state.form.year = new Date().getFullYear().toString() |
| | |
| | | await getInfo(value.id) |
| | | } |
| | | dialogVisible.value = true |
| | | } |
| | | |
| | | const getDeviceList = async (companyId) => { |
| | | const res = await getStandingBookList({pageNum: 1, pageSize: 999, companyId: companyId}) |
| | | if(res.code == 200){ |
| | | state.deviceList = res.data.list || [] |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | } |
| | | |
| | | const getDeviceInfo = (name,index)=>{ |
| | | const foundNode = state.deviceList.find(i=>i.id == name) |
| | | state.form.annualMaintenanceDeviceSaveDTOReqs[index] = { |
| | | ...state.form.annualMaintenanceDeviceSaveDTOReqs[index], |
| | | deviceName: foundNode.name, |
| | | model: foundNode.model, |
| | | factoryNumber: foundNode.number |
| | | } |
| | | } |
| | | |
| | | const addLine = () => { |
| | |
| | | state.form.processId = null |
| | | state.form.finishId = null |
| | | await getUserList(state.form.companyId) |
| | | await getDeviceList(state.form.companyId) |
| | | } |
| | | |
| | | const getUserList = async (companyId)=> { |
| | |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="设备名称:" prop="deviceName"> |
| | | <el-input v-model.trim="state.form.deviceName" :disabled="state.title =='查看'"></el-input> |
| | | <!-- <el-input v-model.trim="state.form.deviceName" :disabled="state.title =='查看'"></el-input>--> |
| | | <el-select clearable v-model="state.form.deviceName" :readonly="state.title =='查看'" filterable placeholder="设备名称" style="width: 100%" @change="getDeviceInfo()"> |
| | | <el-option |
| | | v-for="item in state.deviceList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | |
| | | } from "@/api/innerReview/meetingReview"; |
| | | import {getDepart} from "@/api/orgStructure/depart"; |
| | | import {listUser} from "@/api/system/user"; |
| | | import {getMaintenanceServiceDetail, updateMaintenanceService} from "@/api/infrastructureMng/ledger"; |
| | | import { |
| | | getMaintenanceServiceDetail, |
| | | getStandingBookList, |
| | | updateMaintenanceService |
| | | } from "@/api/infrastructureMng/ledger"; |
| | | |
| | | const emit = defineEmits(["getList"]); |
| | | const dialogVisible = ref(false) |
| | |
| | | }, |
| | | isAdmin: false, |
| | | companyList: [], |
| | | userList: [] |
| | | userList: [], |
| | | deviceList: [] |
| | | }) |
| | | onMounted(() => { |
| | | |
| | |
| | | state.companyList = companyList |
| | | } |
| | | await getUserList(companyId) |
| | | await getDeviceList(companyId) |
| | | state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' |
| | | state.form.companyId = companyId |
| | | if(state.title == '编辑'||state.title == '查看'){ |
| | | await getInfo(value.id) |
| | | } |
| | | dialogVisible.value = true |
| | | } |
| | | |
| | | const getDeviceList = async (companyId) => { |
| | | const res = await getStandingBookList({pageNum: 1, pageSize: 999, companyId: companyId}) |
| | | if(res.code == 200){ |
| | | state.deviceList = res.data.list || [] |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | } |
| | | |
| | | const getDeviceInfo = ()=>{ |
| | | const foundNode = state.deviceList.find(i=>i.id == state.form.deviceName) |
| | | state.form = { |
| | | ...state.form, |
| | | deviceName: foundNode.name, |
| | | deviceNumber: foundNode.number |
| | | } |
| | | } |
| | | |
| | | const objectSpanMethod = ({row, column, rowIndex, columnIndex,}) => { |
| | |
| | | state.form.checkersOne = [] |
| | | state.form.operatorsTwo = [] |
| | | state.form.checkersTwo = [] |
| | | state.form.deviceName = '' |
| | | state.form.deviceNumber = '' |
| | | await getUserList(state.form.companyId) |
| | | await getDeviceList(state.form.companyId) |
| | | } |
| | | |
| | | |
| | |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="设备名称:" prop="deviceName"> |
| | | <el-input v-model.trim="state.form.deviceName" :disabled="state.title =='查看'"></el-input> |
| | | <!-- <el-input v-model.trim="state.form.deviceName" :disabled="state.title =='查看'"></el-input>--> |
| | | <el-select clearable v-model="state.form.deviceName" :readonly="state.title =='查看'" filterable placeholder="设备名称" style="width: 100%" @change="getDeviceInfo()"> |
| | | <el-option |
| | | v-for="item in state.deviceList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | |
| | | } from "@/api/innerReview/meetingReview"; |
| | | import {getDepart} from "@/api/orgStructure/depart"; |
| | | import {listUser} from "@/api/system/user"; |
| | | import {getMaintenanceRecordDetail, updateMaintenanceRecord} from "@/api/infrastructureMng/ledger"; |
| | | import {getMaintenanceRecordDetail, getStandingBookList, updateMaintenanceRecord} from "@/api/infrastructureMng/ledger"; |
| | | |
| | | const emit = defineEmits(["getList"]); |
| | | const dialogVisible = ref(false) |
| | |
| | | isAdmin: false, |
| | | companyList: [], |
| | | oldRecordUsers: [], |
| | | userList: [] |
| | | userList: [], |
| | | deviceList: [] |
| | | }) |
| | | onMounted(() => { |
| | | |
| | |
| | | state.companyList = companyList |
| | | } |
| | | await getUserList(companyId) |
| | | await getDeviceList(companyId) |
| | | state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' |
| | | state.form.companyId = companyId |
| | | if(state.title == '编辑'||state.title == '查看'){ |
| | |
| | | dialogVisible.value = true |
| | | } |
| | | |
| | | const getDeviceList = async (companyId) => { |
| | | const res = await getStandingBookList({pageNum: 1, pageSize: 999, companyId: companyId}) |
| | | if(res.code == 200){ |
| | | state.deviceList = res.data.list || [] |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | } |
| | | |
| | | const getDeviceInfo = ()=>{ |
| | | const foundNode = state.deviceList.find(i=>i.id == state.form.deviceName) |
| | | state.form = { |
| | | ...state.form, |
| | | deviceName: foundNode.name, |
| | | number: foundNode.number |
| | | } |
| | | } |
| | | |
| | | const onSubmit = async () => { |
| | | const valid = await superRef.value.validate() |
| | |
| | | state.form.establishmentId = null |
| | | state.form.processId = null |
| | | state.form.approvalId = null |
| | | state.form.deviceName = '' |
| | | state.form.number = '' |
| | | await getUserList(state.form.companyId) |
| | | await getDeviceList(state.form.companyId) |
| | | } |
| | | |
| | | const getUserList = async (companyId)=> { |
| | |
| | | state.form.establishmentId = null |
| | | state.form.processId = null |
| | | state.form.approvalId = null |
| | | state.form.annualMaintenanceEvaluateDeviceList = [] |
| | | await getUserList(state.form.companyId) |
| | | await getDeviceList(state.form.companyId) |
| | | } |
| | | |
| | | const getUserList = async (companyId)=> { |
| | |
| | | <el-form-item label="库存数量:"> |
| | | <el-input v-model.trim="state.originInventory" readonly placeholder="库存数量"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="材料清单:" prop="warehousingRecordDetails"> |
| | | <el-form-item label="出入库:" prop="warehousingRecordDetails"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | |
| | | const dialogRef = ref(); |
| | | const checkList = (rule, value, callback) => { |
| | | if (state.form.warehousingRecordDetails.length == 0) { |
| | | callback(new Error('材料清单不可为空')) |
| | | callback(new Error('出入库不可为空')) |
| | | } else { |
| | | callback() |
| | | } |
| | |
| | | } |
| | | |
| | | const calculateInventoryExcludingCurrent = (currentRow) => { |
| | | if(!state.form.materialId) return 0 |
| | | // if(!state.form.materialId) return 0 |
| | | let inventory = state.materialList.find(i=>i.id == state.form.materialId)?.inventory || 0; |
| | | if(Array.isArray(state.form.warehousingRecordDetails) && state.form.warehousingRecordDetails.length>0){ |
| | | for(let i of state.form.warehousingRecordDetails){ |
| | |
| | | } |
| | | |
| | | const calculateInventory = () => { |
| | | if(state.form.materialId){ |
| | | // if(state.form.materialId){ |
| | | let inventory = state.materialList.find(i=>i.id == state.form.materialId)?.inventory || 0 |
| | | if(Array.isArray(state.form.warehousingRecordDetails) && state.form.warehousingRecordDetails.length>0){ |
| | | for(let i of state.form.warehousingRecordDetails){ |
| | |
| | | if(inventory < 0){ |
| | | ElMessage.warning('库存不足,无法出库') |
| | | } |
| | | }else{ |
| | | state.originInventory = 0 |
| | | } |
| | | // }else{ |
| | | // state.originInventory = 0 |
| | | // } |
| | | } |
| | | |
| | | const checkRemain = (scope) => { |
| | |
| | | } |
| | | |
| | | const getInventory = ()=>{ |
| | | state.form.warehousingRecordDetails = state.form.warehousingRecordDetails.map(i=>{ |
| | | return { |
| | | ...i, |
| | | specification: state.materialList.find(i=>i.id == state.form.materialId)?.specification, |
| | | materialUnit: state.materialList.find(i=>i.id == state.form.materialId)?.materialUnit |
| | | } |
| | | }) |
| | | state.form.warehousingRecordDetails = [] |
| | | // state.form.warehousingRecordDetails = state.form.warehousingRecordDetails.map(i=>{ |
| | | // return { |
| | | // ...i, |
| | | // specification: state.materialList.find(i=>i.id == state.form.materialId)?.specification, |
| | | // materialUnit: state.materialList.find(i=>i.id == state.form.materialId)?.materialUnit |
| | | // } |
| | | // }) |
| | | calculateInventory() |
| | | } |
| | | |
| | |
| | | warehousingRecordDetails: [], |
| | | delDetails: [] |
| | | } |
| | | state.originInventory = 0 |
| | | superRef.value.clearValidate(); |
| | | superRef.value.resetFields() |
| | | dialogVisible.value = false; |