|
@@ -3,9 +3,11 @@
|
|
|
<div class="hc-layout-left-box menu" :style="'width:' + leftWidth + 'px;'">
|
|
|
<div class="hc-menu-header-box">
|
|
|
<div class="text-xl font-bold name">设备分类</div>
|
|
|
- <el-button type="primary" hc-btn _icon size="small">
|
|
|
- <HcIcon name="add"/>
|
|
|
- </el-button>
|
|
|
+ <HcTooltip keys="tentative_device_approach_menu_add">
|
|
|
+ <el-button type="primary" hc-btn _icon size="small" @click="addEditNodeFormModalClick">
|
|
|
+ <HcIcon name="add"/>
|
|
|
+ </el-button>
|
|
|
+ </HcTooltip>
|
|
|
</div>
|
|
|
<div class="hc-menu-contents-box">
|
|
|
<el-scrollbar>
|
|
@@ -18,32 +20,32 @@
|
|
|
<div class="hc-page-content-box">
|
|
|
<HcCard>
|
|
|
<template #header>
|
|
|
- <HcTooltip keys="tentative_detect_outside_add">
|
|
|
- <el-button type="primary" hc-btn>
|
|
|
+ <HcTooltip keys="tentative_device_approach_add">
|
|
|
+ <el-button type="primary" hc-btn @click="addFormModalClick">
|
|
|
<HcIcon name="add-circle"/>
|
|
|
<span>新增</span>
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
- <HcTooltip keys="tentative_detect_outside_edit">
|
|
|
- <el-button hc-btn>
|
|
|
+ <HcTooltip keys="tentative_device_approach_edit">
|
|
|
+ <el-button hc-btn @click="editFormModalClick">
|
|
|
<HcIcon name="edit"/>
|
|
|
<span>编辑</span>
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
- <HcTooltip keys="tentative_detect_outside_del">
|
|
|
- <el-button hc-btn>
|
|
|
+ <HcTooltip keys="tentative_device_approach_del">
|
|
|
+ <el-button hc-btn @click="delNodeModalClick">
|
|
|
<HcIcon name="delete-bin-2"/>
|
|
|
<span>删除</span>
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
- <HcTooltip keys="tentative_material_approach_printer">
|
|
|
+ <HcTooltip keys="tentative_device_approach_printer">
|
|
|
<el-button hc-btn>
|
|
|
<HcIcon name="printer"/>
|
|
|
<span>打印</span>
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
- <HcTooltip keys="tentative_material_approach_import">
|
|
|
- <el-button hc-btn>
|
|
|
+ <HcTooltip keys="tentative_device_approach_import">
|
|
|
+ <el-button hc-btn @click="importModalClick">
|
|
|
<HcIcon name="folder-upload"/>
|
|
|
<span>导入</span>
|
|
|
</el-button>
|
|
@@ -81,6 +83,126 @@
|
|
|
</template>
|
|
|
</HcCard>
|
|
|
</div>
|
|
|
+
|
|
|
+ <!--新增/编辑 节点-->
|
|
|
+ <HcDialog :show="addEditNodeFormModal" title="新增/编辑 分类" widths="30rem" :loading="addEditNodeFormLoading" @save="addEditNodeFormModalSave" @close="addEditNodeFormModalClose">
|
|
|
+ <el-form :model="addEditNodeFormModel" label-width="auto" label-position="top" size="large">
|
|
|
+ <el-form-item class="mb-0" label="分类名称">
|
|
|
+ <el-input v-model="addEditNodeFormModel.key1" placeholder="请输入分类名称"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </HcDialog>
|
|
|
+
|
|
|
+ <!--新增/编辑-->
|
|
|
+ <HcDialog :show="addEditFormModal" title="新增/编辑 设备信息" widths="50rem" :loading="addEditFormLoading" @close="addEditFormModalClose" @save="addEditFormClick">
|
|
|
+ <el-form ref="addEditFormRef" :model="addEditFormModel" :rules="addEditFormRules" label-width="auto" size="large">
|
|
|
+ <div class="hc-form-item">
|
|
|
+ <el-form-item label="设备名称" prop="key1">
|
|
|
+ <el-input v-model="addEditFormModel.key1"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="进场日期">
|
|
|
+ <el-date-picker type="date" v-model="addEditFormModel.key2" class="block" value-format="YYYY-MM-DD" :clearable="false"/>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div class="hc-form-item">
|
|
|
+ <el-form-item label="设备分类" prop="key3">
|
|
|
+ <el-select v-model="addEditFormModel.key3" block>
|
|
|
+ <el-option v-for="item in menus" :label="item.label" :value="item.key"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="测量范围">
|
|
|
+ <el-input v-model="addEditFormModel.key4"/>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div class="hc-form-item">
|
|
|
+ <el-form-item label="设备编号" prop="key5">
|
|
|
+ <el-input v-model="addEditFormModel.key5"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="精准度" prop="key6">
|
|
|
+ <el-input v-model="addEditFormModel.key6"/>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div class="hc-form-item">
|
|
|
+ <el-form-item label="设备型号" prop="key7">
|
|
|
+ <el-input v-model="addEditFormModel.key7"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="效验周期" prop="key8">
|
|
|
+ <HcCounter v-model:value="addEditFormModel.key8" text="(月)" size="large" block/>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div class="hc-form-item">
|
|
|
+ <el-form-item label="生产厂家" prop="key9">
|
|
|
+ <el-input v-model="addEditFormModel.key9"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="拟用部位" prop="key10">
|
|
|
+ <el-input v-model="addEditFormModel.key10"/>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div class="hc-form-item">
|
|
|
+ <el-form-item label="供应商单位" prop="key11">
|
|
|
+ <el-input v-model="addEditFormModel.key11"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="最近效验时间">
|
|
|
+ <el-date-picker type="date" v-model="addEditFormModel.key12" class="block" value-format="YYYY-MM-DD" :clearable="false"/>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div class="hc-form-item">
|
|
|
+ <el-form-item label="出厂日期">
|
|
|
+ <el-date-picker type="date" v-model="addEditFormModel.key13" class="block" value-format="YYYY-MM-DD" :clearable="false"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="状态">
|
|
|
+ <el-select v-model="addEditFormModel.key14" placeholder="状态" block>
|
|
|
+ <el-option label="启用中" value="1"/>
|
|
|
+ <el-option label="已停用" value="2"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div class="hc-form-item">
|
|
|
+ <el-form-item class="flex-1" label="出厂编号" style="margin-right: 24px;">
|
|
|
+ <el-input v-model="addEditFormModel.key15"/>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="flex flex-1">
|
|
|
+ <el-form-item class="flex-1" label="管理人员" style="margin-right: 0;">
|
|
|
+ <el-select v-model="addEditFormModel.key16" placeholder="试验人员名称" block>
|
|
|
+ <el-option label="启用中" value="1"/>
|
|
|
+ <el-option label="已停用" value="2"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item class="w-32" no-label style="margin-left: 10px; flex: initial;">
|
|
|
+ <el-input v-model="addEditFormModel.key17" block/>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="hc-form-item">
|
|
|
+ <el-form-item label="设备采集编号">
|
|
|
+ <el-input v-model="addEditFormModel.key18"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="是否需要效验">
|
|
|
+ <el-select v-model="addEditFormModel.key19" block disabled>
|
|
|
+ <el-option label="是" value="1"/>
|
|
|
+ <el-option label="否" value="2"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="备注">
|
|
|
+ <el-input v-model="addEditFormModel.desc" type="textarea" placeholder="备注" :autosize="{ minRows: 3}"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </HcDialog>
|
|
|
+
|
|
|
+ <!--导入-->
|
|
|
+ <HcDialog :show="importModal" title="导入设备数据" widths="70rem" isTable isFooterCenter :loading="importModalLoading" @save="importModalYesClick" @close="importModalClose">
|
|
|
+ <div class="text-orange mb-6">
|
|
|
+ <span>请先下载模板模板表格 (</span>
|
|
|
+ <span class="text-link">范例试验设备文件</span>
|
|
|
+ <span>) ,按模板样式编辑试验容器后,在点击“选择文件”按钮选择编辑好的文件,点击确认即可导入成功!</span>
|
|
|
+ </div>
|
|
|
+ <HcDragUpload/>
|
|
|
+ <div class="hc-import-modal-table-box">
|
|
|
+ <HcTable ref="tableImportRef" :column="tableImportColumn" :datas="tableImportData" :loading="tableImportLoading" isCheck @selection-change="tableImportSelection"/>
|
|
|
+ </div>
|
|
|
+ </HcDialog>
|
|
|
+
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -89,6 +211,7 @@ import {ref, onMounted, watch} from "vue";
|
|
|
import {useAppStore} from "~src/store";
|
|
|
import {HcIsButton} from "~src/plugins/IsButtons";
|
|
|
import {getArrValue, getIndex} from "vue-utils-plus"
|
|
|
+import HcDragUpload from "./components/HcDragUpload.vue"
|
|
|
|
|
|
//初始变量
|
|
|
const useAppState = useAppStore()
|
|
@@ -128,21 +251,26 @@ const menuChange = (item) => {
|
|
|
const contextMenu = ref([])
|
|
|
const setContextMenu = () => {
|
|
|
let newArr = [];
|
|
|
- if (HcIsButton('wbs_tree_edit')) {
|
|
|
+ if (HcIsButton('tentative_device_approach_menu_edit')) {
|
|
|
newArr.push({icon: 'draft', label: '编辑分类', key: "edit"})
|
|
|
}
|
|
|
- if (HcIsButton('wbs_tree_del')) {
|
|
|
+ if (HcIsButton('tentative_device_approach_menu_del')) {
|
|
|
newArr.push({icon: 'delete-bin', label: '删除分类', key: "del"})
|
|
|
}
|
|
|
contextMenu.value = newArr
|
|
|
}
|
|
|
|
|
|
//菜单的右键菜单被点击
|
|
|
-const contextMenuClick = () => {
|
|
|
-
|
|
|
+const contextMenuItem = ref({})
|
|
|
+const contextMenuClick = ({key, item}) => {
|
|
|
+ contextMenuItem.value = item
|
|
|
+ if (key === 'edit') {
|
|
|
+ addEditNodeFormModal.value = true
|
|
|
+ } else if (key === 'del') {
|
|
|
+ delNodeModalClick()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//搜索表单
|
|
|
const searchForm = ref({
|
|
|
type: null, state: null, betweenTime: null, queryValue: null,
|
|
@@ -215,6 +343,124 @@ const tableSelection = (rows) => {
|
|
|
}
|
|
|
|
|
|
|
|
|
+//新增/编辑 分类
|
|
|
+const addEditNodeFormModal = ref(false)
|
|
|
+const addEditNodeFormModel = ref({key1: ''})
|
|
|
+const addEditNodeFormModalClick = () => {
|
|
|
+ addEditNodeFormModal.value = true
|
|
|
+}
|
|
|
+
|
|
|
+//保存节点信息
|
|
|
+const addEditNodeFormLoading = ref(false)
|
|
|
+const addEditNodeFormModalSave = () => {
|
|
|
+ addEditNodeFormModal.value = false
|
|
|
+}
|
|
|
+//关闭分类编辑弹窗
|
|
|
+const addEditNodeFormModalClose = () => {
|
|
|
+ addEditNodeFormModal.value = false
|
|
|
+}
|
|
|
+
|
|
|
+//删除分类
|
|
|
+const delNodeModalClick = () => {
|
|
|
+ window?.$messageBox?.alert('请谨慎考虑后,确认是否需要删除?', '删除提醒', {
|
|
|
+ showCancelButton: true,
|
|
|
+ confirmButtonText: '确认删除',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning',
|
|
|
+ callback: (action) => {
|
|
|
+ if (action === 'confirm') {
|
|
|
+ //removeContractTreeNode()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//导入
|
|
|
+const importModal = ref(false)
|
|
|
+const importModalClick = () => {
|
|
|
+ importModal.value = true
|
|
|
+}
|
|
|
+
|
|
|
+//确认导入
|
|
|
+const importModalLoading = ref(false)
|
|
|
+const importModalYesClick = () => {
|
|
|
+ importModal.value = false
|
|
|
+}
|
|
|
+
|
|
|
+//关闭导入
|
|
|
+const importModalClose = () => {
|
|
|
+ importModal.value = false
|
|
|
+}
|
|
|
+
|
|
|
+//表格数据
|
|
|
+const tableImportRef = ref(null)
|
|
|
+const tableImportColumn = ref([
|
|
|
+ {key:'key1', name: '设备名称'},
|
|
|
+ {key:'key2', name: '设备分类'},
|
|
|
+ {key:'key3', name: '设备编号'},
|
|
|
+ {key:'key4', name: '设备型号'},
|
|
|
+ {key:'key5', name: '生产厂家'},
|
|
|
+ {key:'key6', name: '出厂日期'},
|
|
|
+ {key:'key7', name: '出厂编号'},
|
|
|
+ {key:'key8', name: '进场日期'},
|
|
|
+ {key:'key9', name: '测量范围'},
|
|
|
+ {key:'key10', name: '精准度'},
|
|
|
+ {key:'key11', name: '校准周期(月)'},
|
|
|
+ {key:'key12', name: '最近效验时间'},
|
|
|
+ {key:'key13', name: '状态'},
|
|
|
+ {key:'key14', name: '是否需要效验'},
|
|
|
+ {key:'key15', name: '设备采集编号'},
|
|
|
+ {key:'key16', name: '设备管理人员'},
|
|
|
+ {key:'key17', name: '备注'},
|
|
|
+])
|
|
|
+const tableImportLoading = ref(false)
|
|
|
+const tableImportData = ref([])
|
|
|
+
|
|
|
+//多选
|
|
|
+const tableImportKeys = ref([]);
|
|
|
+const tableImportSelection = (rows) => {
|
|
|
+ tableImportKeys.value = rows.filter((item) => {
|
|
|
+ return (item??'') !== '';
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//新增/编辑 材料进场
|
|
|
+const addEditFormModal = ref(false)
|
|
|
+const addFormModalClick = () => {
|
|
|
+ addEditFormModal.value = true
|
|
|
+}
|
|
|
+const editFormModalClick = () => {
|
|
|
+ addEditFormModal.value = true
|
|
|
+}
|
|
|
+const addEditFormModalClose = () => {
|
|
|
+ addEditFormModal.value = false
|
|
|
+}
|
|
|
+
|
|
|
+//新增/编辑 表单
|
|
|
+const addEditFormRef = ref(null)
|
|
|
+const addEditFormModel = ref({})
|
|
|
+const addEditFormRules = {
|
|
|
+ key1: {
|
|
|
+ required: true,
|
|
|
+ trigger: 'blur',
|
|
|
+ message: "请输入"
|
|
|
+ },
|
|
|
+ key2: {
|
|
|
+ required: true,
|
|
|
+ trigger: 'blur',
|
|
|
+ message: "请选择"
|
|
|
+ },
|
|
|
+}
|
|
|
+
|
|
|
+//新增/编辑 保存
|
|
|
+const addEditFormLoading = ref(false)
|
|
|
+const addEditFormClick = () => {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
//左右拖动,改变树形结构宽度
|
|
|
const leftWidth = ref(240);
|
|
@@ -234,9 +480,9 @@ const onmousedown = () => {
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
-
|
|
|
-</style>
|
|
|
-
|
|
|
-<style lang="scss">
|
|
|
-
|
|
|
+.hc-import-modal-table-box {
|
|
|
+ position: relative;
|
|
|
+ height: calc(100% - 228px);
|
|
|
+ margin-top: 25px;
|
|
|
+}
|
|
|
</style>
|