| | |
| | | }); |
| | | }; |
| | | |
| | | export const getUserListApi = deptId => { |
| | | return request({ |
| | | url: '/blade-system/user/page', |
| | | // url: '/blade-system/user/user-list', |
| | | method: 'get', |
| | | params: { |
| | | current: 1, |
| | | size: 999, |
| | | deptId, |
| | | }, |
| | | }) |
| | | } |
| | | |
| | | export const remove = ids => { |
| | | return request({ |
| | | url: '/blade-system/user/remove', |
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="设备类型" prop="deviceType"> |
| | | <el-input v-model="formData.deviceType" maxlength="50" placeholder="请输入" clearable /> |
| | | <el-select v-model="formData.deviceType" placeholder="请选择" clearable> |
| | | <el-option |
| | | v-for="item in dictObj.deviceType" |
| | | :key="item.dictKey" |
| | | :label="item.dictValue" |
| | | :value="item.dictKey" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="设备属性" prop="deviceType"> |
| | | <el-select v-model="formData.deviceAtt" placeholder="请选择" clearable> |
| | | <el-option |
| | | v-for="item in dictObj.deviceAtt" |
| | | :key="item.dictKey" |
| | | :label="item.dictValue" |
| | | :value="item.dictKey" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="型号" prop="deviceModel"> |
| | | <el-input v-model="formData.deviceModel" maxlength="50" placeholder="请输入" clearable /> |
| | |
| | | <el-input v-model="formData.deviceSpecification" maxlength="50" placeholder="请输入" clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="生产厂商" prop="manufacturer"> |
| | | <el-input v-model="formData.manufacturer" maxlength="50" placeholder="请输入" clearable /> |
| | |
| | | <el-input v-model="formData.stockOutDestination" maxlength="50" placeholder="请输入" clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="来源" prop="source"> |
| | | <el-input v-model="formData.source" maxlength="50" placeholder="请输入" clearable /> |
| | |
| | | <el-input v-model="formData.purpose" maxlength="50" placeholder="请输入" clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="所属部门" prop="ownerDept"> |
| | | <el-input v-model="formData.ownerDept" maxlength="50" placeholder="请输入" clearable /> |
| | | <el-tree-select |
| | | v-model="formData.ownerDept" |
| | | node-key="id" |
| | | :data="deptTree" |
| | | :props="treeProps" |
| | | check-strictly |
| | | @change="getUserList" |
| | | clearable |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="负责人" prop="ownerUser"> |
| | | <el-input v-model="formData.ownerUser" maxlength="50" placeholder="请输入" clearable /> |
| | | <el-select v-model="formData.ownerUser" placeholder="请选择" :disabled="!formData.ownerDept" clearable> |
| | | <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <script setup> |
| | | import { computed, ref } from 'vue' |
| | | import { ElMessage } from 'element-plus' |
| | | import { fwDeviceDetailApi, fwDeviceSaveApi, fwDeviceUpdateApi } from '@/views/basicManage/deviceStock/fwDevice' |
| | | import { fwDeviceDetailApi, fwDeviceSubmitApi } from '@/views/basicManage/deviceStock/fwDevice' |
| | | import { getUserListApi } from '@/api/system/user' |
| | | import { fieldRules } from '@ztzf/utils' |
| | | |
| | | const initForm = () => ({ |
| | | // 表单默认值 |
| | |
| | | source: '', // 来源 |
| | | stockOutDestination: '', // 出库去向 |
| | | }) |
| | | const treeProps = { |
| | | label: 'name', |
| | | children: 'children', |
| | | } |
| | | |
| | | const dictObj = inject('dictObj') |
| | | const deptTree = inject('deptTree') |
| | | const emit = defineEmits(['success']) |
| | | const formRef = ref(null) // 表单实例 |
| | | const formData = ref(initForm()) // 表单数据 |
| | |
| | | } |
| | | }) |
| | | |
| | | function verify(required, max, messageType = 1) { |
| | | return [ |
| | | required ? { required: true, message: messageType ? '请输入' : '请选择', trigger: ['blur', 'change'] } : {}, |
| | | { max, message: `长度不超过${max}`, trigger: ['blur', 'change'] }, |
| | | ] |
| | | const rules = { |
| | | deviceName: fieldRules(true, 50), |
| | | deviceType: fieldRules(true, 0), |
| | | deviceAtt: fieldRules(true, 0), |
| | | deviceModel: fieldRules(true, 50), |
| | | deviceSpecification: fieldRules(true, 50), |
| | | manufacturer: fieldRules(true, 50), |
| | | stockOutDestination: fieldRules(true, 50), |
| | | source: fieldRules(true, 50), |
| | | purpose: fieldRules(true, 50), |
| | | ownerDept: fieldRules(true, 50), |
| | | ownerUser: fieldRules(true, 0), |
| | | } |
| | | |
| | | const rules = { |
| | | deviceName: verify(true, 50), |
| | | deviceType: verify(true, 50), |
| | | deviceModel: verify(true, 50), |
| | | deviceSpecification: verify(true, 50), |
| | | manufacturer: verify(true, 50), |
| | | stockOutDestination: verify(true, 50), |
| | | source: verify(true, 50), |
| | | purpose: verify(true, 50), |
| | | ownerDept: verify(true, 50), |
| | | ownerUser: verify(true, 50), |
| | | const userList = ref([]) |
| | | function getUserList(val) { |
| | | formData.value.ownerUser = '' |
| | | if (val) { |
| | | getUserListApi(val).then(res => { |
| | | userList.value = res.data.data.records |
| | | }) |
| | | } |
| | | } |
| | | |
| | | // 关闭弹框 |
| | |
| | | if (!isValid) return |
| | | submitting.value = true |
| | | try { |
| | | dialogMode.value === 'add' ? await fwDeviceSaveApi(formData.value) : await fwDeviceUpdateApi(formData.value) |
| | | await fwDeviceSubmitApi(formData.value) |
| | | ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功') |
| | | visible.value = false |
| | | emit('success') |
| | |
| | | |
| | | <script setup> |
| | | import { onMounted, ref } from 'vue' |
| | | import { ElMessageBox } from 'element-plus' |
| | | import { fwDeviceListApi, fwDeviceRemoveApi } from '@/views/basicManage/deviceStock/fwDevice' |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | import { fwDevicePageApi, fwDeviceRemoveApi } from '@/views/basicManage/deviceStock/fwDevice' |
| | | import FormDiaLog from './FormDiaLog.vue' |
| | | import { getDictionaryByCode } from '@/api/system/dictbiz' |
| | | import { getDeptTree } from '@/api/system/dept' |
| | | |
| | | const initSearchParams = () => ({ |
| | | // 查询参数默认值 |
| | | deviceName: '', // 设备名称 |
| | | deviceType: '', // 设备类型 |
| | | current: 1, // 当前页 |
| | |
| | | const list = ref([]) // 列表数据 |
| | | const queryParamsRef = ref(null) // 查询表单实例 |
| | | const dialogRef = ref(null) // 弹框实例 |
| | | const dictObj = ref({ |
| | | deviceType: [], |
| | | deviceAtt: [], |
| | | }) |
| | | const deptTree = ref([]) |
| | | |
| | | provide('dictObj', dictObj) |
| | | provide('deptTree', deptTree) |
| | | // 获取列表 |
| | | async function getList() { |
| | | loading.value = true |
| | | try { |
| | | const res = await fwDeviceListApi(searchParams.value) |
| | | const res = await fwDevicePageApi(searchParams.value) |
| | | list.value = res?.data?.data?.records ?? [] |
| | | total.value = res?.data?.data?.total ?? 0 |
| | | } finally { |
| | |
| | | // 删除 |
| | | async function handleDelete(row) { |
| | | await ElMessageBox.confirm('确认删除该设备吗?', '提示', { type: 'warning' }) |
| | | await fwDeviceRemoveApi({ ids: [row.id] }) |
| | | await fwDeviceRemoveApi({ ids: row.id }) |
| | | ElMessage.success('删除成功') |
| | | getList() |
| | | } |
| | | |
| | | // 获取字典 |
| | | function getDictList() { |
| | | getDictionaryByCode('deviceType,deviceAtt').then(res => { |
| | | dictObj.value = res.data.data |
| | | }) |
| | | } |
| | | |
| | | // 获取部门树 |
| | | function getDeptTreeFun() { |
| | | getDeptTree().then(res => { |
| | | deptTree.value = res.data.data |
| | | }) |
| | | } |
| | | |
| | | // 新增 |
| | |
| | | |
| | | onMounted(() => { |
| | | getList() |
| | | getDictList() |
| | | getDeptTreeFun() |
| | | }) |
| | | </script> |
| | | <style scoped lang="scss"></style> |
| | |
| | | import request from '@/axios' |
| | | |
| | | // 查 |
| | | export const fwDeviceListApi = params => { |
| | | // 查list |
| | | export const fwDevicePageApi = params => { |
| | | return request({ |
| | | url: `/drone-fw/fwDevice/fwDevice/list`, |
| | | url: `/drone-fw/device/fwDevice/page`, |
| | | method: 'get', |
| | | params, |
| | | }) |
| | | } |
| | | // 增 |
| | | export const fwDeviceSaveApi = data => { |
| | | |
| | | // 增加或更新 |
| | | export const fwDeviceSubmitApi = data => { |
| | | return request({ |
| | | url: `/drone-fw/fwDevice/fwDevice/save`, |
| | | url: `/drone-fw/device/fwDevice/submit`, |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | } |
| | | // 改 |
| | | export const fwDeviceUpdateApi = data => { |
| | | return request({ |
| | | url: `/drone-fw/fwDevice/fwDevice/update`, |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | } |
| | | |
| | | //删除 |
| | | export const fwDeviceRemoveApi = data => { |
| | | export const fwDeviceRemoveApi = params => { |
| | | return request({ |
| | | url: `/drone-fw/fwDevice/fwDevice/remove`, |
| | | url: `/drone-fw/device/fwDevice/remove`, |
| | | method: 'post', |
| | | data, |
| | | params, |
| | | }) |
| | | } |
| | | |
| | | //详情 |
| | | export const fwDeviceDetailApi = params => { |
| | | return request({ |
| | | url: `/drone-fw/fwDevice/fwDevice/detail`, |
| | | url: `/drone-fw/device/fwDevice/detail`, |
| | | method: 'get', |
| | | params, |
| | | }) |
| | |
| | | export function fieldRules(required, max) { |
| | | const trigger = ['blur', 'change'] |
| | | return [ |
| | | required ? { required: true, message: max ? '请输入' : '请选择', trigger } : {}, |
| | | max ? { max, message: `长度不超过${max}`, trigger } : {}, |
| | | ] |
| | | } |