|
@@ -11,7 +11,7 @@
|
|
</div>
|
|
</div>
|
|
<div class="hc-menu-contents-box">
|
|
<div class="hc-menu-contents-box">
|
|
<el-scrollbar>
|
|
<el-scrollbar>
|
|
- <HcMenuSimple :datas="menus" :keys="menuKey" :menus="contextMenu" @change="menuChange" @menuTap="contextMenuClick"/>
|
|
|
|
|
|
+ <HcMenuSimple :datas="menus" :props="menuProps" :keys="menuKey" :menus="contextMenu" @change="menuChange" @menuTap="contextMenuClick"/>
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
</div>
|
|
</div>
|
|
<!--左右拖动-->
|
|
<!--左右拖动-->
|
|
@@ -38,19 +38,19 @@
|
|
</el-button>
|
|
</el-button>
|
|
</HcTooltip>
|
|
</HcTooltip>
|
|
<HcTooltip keys="tentative_parameter_container_edit">
|
|
<HcTooltip keys="tentative_parameter_container_edit">
|
|
- <el-button hc-btn @click="editFormModalClick">
|
|
|
|
|
|
+ <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" @click="editFormModalClick">
|
|
<HcIcon name="edit"/>
|
|
<HcIcon name="edit"/>
|
|
<span>编辑</span>
|
|
<span>编辑</span>
|
|
</el-button>
|
|
</el-button>
|
|
</HcTooltip>
|
|
</HcTooltip>
|
|
<HcTooltip keys="tentative_parameter_container_del">
|
|
<HcTooltip keys="tentative_parameter_container_del">
|
|
- <el-button hc-btn @click="delNodeModalClick">
|
|
|
|
|
|
+ <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" @click="delTableModalClick">
|
|
<HcIcon name="delete-bin-2"/>
|
|
<HcIcon name="delete-bin-2"/>
|
|
<span>删除</span>
|
|
<span>删除</span>
|
|
</el-button>
|
|
</el-button>
|
|
</HcTooltip>
|
|
</HcTooltip>
|
|
<HcTooltip keys="tentative_parameter_container_printer">
|
|
<HcTooltip keys="tentative_parameter_container_printer">
|
|
- <el-button hc-btn>
|
|
|
|
|
|
+ <el-button hc-btn :disabled="tableCheckedKeys.length <= 0">
|
|
<HcIcon name="printer"/>
|
|
<HcIcon name="printer"/>
|
|
<span>打印</span>
|
|
<span>打印</span>
|
|
</el-button>
|
|
</el-button>
|
|
@@ -70,27 +70,30 @@
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!--新增/编辑 节点-->
|
|
<!--新增/编辑 节点-->
|
|
- <HcDialog :show="addEditNodeFormModal" title="新增/编辑 试验容器" widths="30rem" isRowFooter @close="addEditNodeFormModalClose">
|
|
|
|
|
|
+ <HcDialog :show="addEditNodeFormModal" :title="`${addEditNodeFormModel.id?'编辑':'新增'}试验容器`" widths="30rem" isRowFooter @close="addEditNodeFormModalClose">
|
|
<el-form :model="addEditNodeFormModel" label-width="auto" label-position="top" size="large">
|
|
<el-form :model="addEditNodeFormModel" label-width="auto" label-position="top" size="large">
|
|
<el-form-item label="试验容器名称">
|
|
<el-form-item label="试验容器名称">
|
|
- <el-input v-model="addEditNodeFormModel.key1" placeholder="请输入试验容器名称"/>
|
|
|
|
|
|
+ <el-input v-model="addEditNodeFormModel.containerName" placeholder="请输入试验容器名称"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <template v-for="(item, index) in addEditNodeData">
|
|
|
|
|
|
+ <template v-for="(item, index) in addEditNodeFormModel.fieldList">
|
|
<div class="hc-form-item">
|
|
<div class="hc-form-item">
|
|
<el-form-item class="w-32" label="数据类型" style="flex: initial;">
|
|
<el-form-item class="w-32" label="数据类型" style="flex: initial;">
|
|
- <el-select v-model="item.type" block>
|
|
|
|
|
|
+ <el-select v-model="item.fieldType" block>
|
|
<el-option label="文本" :value="1"/>
|
|
<el-option label="文本" :value="1"/>
|
|
<el-option label="日期框" :value="2"/>
|
|
<el-option label="日期框" :value="2"/>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="字段名">
|
|
<el-form-item label="字段名">
|
|
<template #label>
|
|
<template #label>
|
|
- <div class="solt-label">字段名</div>
|
|
|
|
|
|
+ <div class="solt-label">
|
|
|
|
+ <span class="mr-1">字段名</span>
|
|
|
|
+ <span class="text-xs text-slate-400" v-if="index === 0">第一个作为编号,是唯一的</span>
|
|
|
|
+ </div>
|
|
<div class="solt-extra">
|
|
<div class="solt-extra">
|
|
- <el-button type="primary" plain size="small" @click="addEditNodeDataDel(index)">删除当前行</el-button>
|
|
|
|
|
|
+ <el-button type="primary" plain size="small" @click="addEditNodeDataDel(item,index)">删除</el-button>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
- <el-input v-model="item.name" block/>
|
|
|
|
|
|
+ <el-input v-model="item.fieldName" block/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
@@ -114,56 +117,12 @@
|
|
</HcDialog>
|
|
</HcDialog>
|
|
|
|
|
|
<!--新增/编辑-->
|
|
<!--新增/编辑-->
|
|
- <HcDialog :show="addEditFormModal" title="新增/编辑 数据" widths="30rem" :loading="addEditFormLoading" @close="addEditFormModalClose" @save="addEditFormClick">
|
|
|
|
|
|
+ <HcDialog :show="addEditFormModal" :title="`${addEditFormModel.id?'编辑':'新增'}数据`" widths="30rem" :loading="addEditFormLoading" @close="addEditFormModalClose" @save="addEditFormClick">
|
|
<el-form ref="addEditFormRef" :model="addEditFormModel" :rules="addEditFormRules" label-width="auto" size="large">
|
|
<el-form ref="addEditFormRef" :model="addEditFormModel" :rules="addEditFormRules" label-width="auto" size="large">
|
|
- <template v-if="menuKey === 'key1'">
|
|
|
|
- <el-form-item label="盒号" prop="key1">
|
|
|
|
- <el-input v-model="addEditFormModel.key1"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="盒重" prop="key2">
|
|
|
|
- <el-input v-model="addEditFormModel.key2"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="校准日期">
|
|
|
|
- <el-date-picker type="date" v-model="addEditFormModel.key3" class="block" value-format="YYYY-MM-DD" :clearable="false"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- </template>
|
|
|
|
- <template v-if="menuKey === 'key2'">
|
|
|
|
- <el-form-item label="筒号" prop="key1">
|
|
|
|
- <el-input v-model="addEditFormModel.key1"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="筒质量(g)" prop="key2">
|
|
|
|
- <el-input v-model="addEditFormModel.key2"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="筒体积(m³)" prop="key4">
|
|
|
|
- <el-input v-model="addEditFormModel.key4"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="校准日期">
|
|
|
|
- <el-date-picker type="date" v-model="addEditFormModel.key3" class="block" value-format="YYYY-MM-DD" :clearable="false"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- </template>
|
|
|
|
- <template v-if="menuKey === 'key3'">
|
|
|
|
- <el-form-item label="环刀号" prop="key1">
|
|
|
|
- <el-input v-model="addEditFormModel.key1"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="环刀质量(g)" prop="key2">
|
|
|
|
- <el-input v-model="addEditFormModel.key2"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="环刀容积(m³)" prop="key4">
|
|
|
|
- <el-input v-model="addEditFormModel.key4"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="校准日期">
|
|
|
|
- <el-date-picker type="date" v-model="addEditFormModel.key3" class="block" value-format="YYYY-MM-DD" :clearable="false"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- </template>
|
|
|
|
- <template v-if="menuKey === 'key4'">
|
|
|
|
- <el-form-item label="瓶号" prop="key1">
|
|
|
|
- <el-input v-model="addEditFormModel.key1"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="瓶质量(g)" prop="key2">
|
|
|
|
- <el-input v-model="addEditFormModel.key2"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="校准日期">
|
|
|
|
- <el-date-picker type="date" v-model="addEditFormModel.key3" class="block" value-format="YYYY-MM-DD" :clearable="false"/>
|
|
|
|
|
|
+ <template v-for="(item, index) in tableColumn">
|
|
|
|
+ <el-form-item :label="item.name" :prop="item.key">
|
|
|
|
+ <el-input v-model="addEditFormModel[item.key]" :placeholder="`${index===0?'作为编号,是唯一的':'请输入' + item.name}`" v-if="item.type === 1"/>
|
|
|
|
+ <el-date-picker type="date" v-model="addEditFormModel[item.key]" class="block" value-format="YYYY-MM-DD" :clearable="false" v-if="item.type === 2"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</template>
|
|
</template>
|
|
</el-form>
|
|
</el-form>
|
|
@@ -197,8 +156,9 @@
|
|
import {ref, onMounted, watch} from "vue";
|
|
import {ref, onMounted, watch} from "vue";
|
|
import {useAppStore} from "~src/store";
|
|
import {useAppStore} from "~src/store";
|
|
import {HcIsButton} from "~src/plugins/IsButtons";
|
|
import {HcIsButton} from "~src/plugins/IsButtons";
|
|
-import {getArrValue, getIndex} from "vue-utils-plus"
|
|
|
|
|
|
+import {formValidate, getArrValue} from "vue-utils-plus"
|
|
import HcDragUpload from "./components/HcDragUpload.vue"
|
|
import HcDragUpload from "./components/HcDragUpload.vue"
|
|
|
|
+import dataApi from "~api/tentative/parameter/container"
|
|
|
|
|
|
//初始变量
|
|
//初始变量
|
|
const useAppState = useAppStore()
|
|
const useAppState = useAppStore()
|
|
@@ -215,54 +175,59 @@ watch(() => [
|
|
|
|
|
|
//渲染完成
|
|
//渲染完成
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
|
+ getMenusData()
|
|
setContextMenu()
|
|
setContextMenu()
|
|
- setMenuTableColumn(menuKey.value)
|
|
|
|
})
|
|
})
|
|
|
|
|
|
//左侧菜单
|
|
//左侧菜单
|
|
-const menuKey = ref('key1')
|
|
|
|
-const menuItem = ref({})
|
|
|
|
-const menus = ref([
|
|
|
|
- {key: 'key1', label: '铝盒'},
|
|
|
|
- {key: 'key2', label: '试筒'},
|
|
|
|
- {key: 'key3', label: '环刀'},
|
|
|
|
- {key: 'key4', label: '比重瓶'}
|
|
|
|
-]);
|
|
|
|
|
|
+const menuProps = {
|
|
|
|
+ key: 'id',
|
|
|
|
+ label: 'containerName',
|
|
|
|
+}
|
|
|
|
+const menus = ref([]);
|
|
|
|
+const getMenusData = async () => {
|
|
|
|
+ const { data } = await dataApi.queryClassification({
|
|
|
|
+ projectId: projectId.value,
|
|
|
|
+ contractId: contractId.value
|
|
|
|
+ })
|
|
|
|
+ const arr = getArrValue(data)
|
|
|
|
+ menus.value = arr
|
|
|
|
+ if (arr.length > 0) {
|
|
|
|
+ const item = arr[0]
|
|
|
|
+ menuItem.value = item
|
|
|
|
+ menuKey.value = item?.id
|
|
|
|
+ setMenuTableColumn(item?.fieldList)
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
//菜单被点击
|
|
//菜单被点击
|
|
|
|
+const menuKey = ref('')
|
|
|
|
+const menuItem = ref({})
|
|
const menuChange = (item) => {
|
|
const menuChange = (item) => {
|
|
menuItem.value = item
|
|
menuItem.value = item
|
|
- menuKey.value = item?.key
|
|
|
|
- setMenuTableColumn(item?.key)
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const setMenuTableColumn = (key) => {
|
|
|
|
- if (key === 'key1') {
|
|
|
|
- tableColumn.value = [
|
|
|
|
- {key:'key1', name: '盒号'},
|
|
|
|
- {key:'key2', name: '盒重'},
|
|
|
|
- {key:'key3', name: '校准日期'}
|
|
|
|
- ]
|
|
|
|
- } else if (key === 'key2') {
|
|
|
|
- tableColumn.value = [
|
|
|
|
- {key:'key1', name: '筒号'},
|
|
|
|
- {key:'key2', name: '筒质量(g)'},
|
|
|
|
- {key:'key4', name: '筒体积(m³)'},
|
|
|
|
- {key:'key3', name: '校准日期'}
|
|
|
|
- ]
|
|
|
|
- } else if (key === 'key3') {
|
|
|
|
- tableColumn.value = [
|
|
|
|
- {key:'key1', name: '环刀号'},
|
|
|
|
- {key:'key2', name: '环刀质量(g)'},
|
|
|
|
- {key:'key4', name: '环刀容积(m³)'},
|
|
|
|
- {key:'key3', name: '校准日期'}
|
|
|
|
- ]
|
|
|
|
- } else if (key === 'key4') {
|
|
|
|
- tableColumn.value = [
|
|
|
|
- {key:'key1', name: '瓶号'},
|
|
|
|
- {key:'key2', name: '瓶质量(g)'},
|
|
|
|
- {key:'key3', name: '校准日期'}
|
|
|
|
- ]
|
|
|
|
|
|
+ menuKey.value = item?.id
|
|
|
|
+ setMenuTableColumn(item?.fieldList)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//设置表格头
|
|
|
|
+const setMenuTableColumn = (data) => {
|
|
|
|
+ let newArr = [];
|
|
|
|
+ for (let i = 0; i < data.length; i++) {
|
|
|
|
+ newArr.push({
|
|
|
|
+ key: data[i].fieldKey,
|
|
|
|
+ name: data[i].fieldName,
|
|
|
|
+ type: data[i].fieldType
|
|
|
|
+ })
|
|
}
|
|
}
|
|
|
|
+ newArr.push({
|
|
|
|
+ key: 'field_calibration_time',
|
|
|
|
+ name: '校准日期',
|
|
|
|
+ type: 2
|
|
|
|
+ })
|
|
|
|
+ tableColumn.value = newArr
|
|
|
|
+ //取列表数据
|
|
|
|
+ searchClick()
|
|
|
|
+ setAddEditFormRules(newArr)
|
|
}
|
|
}
|
|
|
|
|
|
//菜单的右键菜单
|
|
//菜单的右键菜单
|
|
@@ -279,20 +244,18 @@ const setContextMenu = () => {
|
|
}
|
|
}
|
|
|
|
|
|
//菜单的右键菜单被点击
|
|
//菜单的右键菜单被点击
|
|
-const contextMenuItem = ref({})
|
|
|
|
const contextMenuClick = ({key, item}) => {
|
|
const contextMenuClick = ({key, item}) => {
|
|
- contextMenuItem.value = item
|
|
|
|
if (key === 'edit') {
|
|
if (key === 'edit') {
|
|
|
|
+ addEditNodeFormModel.value = item
|
|
addEditNodeFormModal.value = true
|
|
addEditNodeFormModal.value = true
|
|
} else if (key === 'del') {
|
|
} else if (key === 'del') {
|
|
- delNodeModalClick()
|
|
|
|
|
|
+ delNodeModalClick(item.id)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//搜索表单
|
|
//搜索表单
|
|
const searchForm = ref({
|
|
const searchForm = ref({
|
|
- type: null, state: null, betweenTime: null, queryValue: null,
|
|
|
|
- current: 1, size: 20, total: 0
|
|
|
|
|
|
+ queryValue: null, current: 1, size: 20, total: 0
|
|
})
|
|
})
|
|
|
|
|
|
//日期时间被选择
|
|
//日期时间被选择
|
|
@@ -326,58 +289,276 @@ const pageChange = ({current, size}) => {
|
|
//表格数据
|
|
//表格数据
|
|
const tableRef = ref(null)
|
|
const tableRef = ref(null)
|
|
const tableColumn = ref([])
|
|
const tableColumn = ref([])
|
|
-const tableLoading = ref(false)
|
|
|
|
const tableData = ref([])
|
|
const tableData = ref([])
|
|
|
|
|
|
//获取数据
|
|
//获取数据
|
|
-const getTableData = () => {
|
|
|
|
-
|
|
|
|
|
|
+const tableLoading = ref(false)
|
|
|
|
+const getTableData = async () => {
|
|
|
|
+ const {id, fieldList} = menuItem.value
|
|
|
|
+ const fieldLists = getArrValue(fieldList)
|
|
|
|
+ if (fieldLists.length > 0) {
|
|
|
|
+ tableLoading.value = true
|
|
|
|
+ const { error, code, data } = await dataApi.queryPage({
|
|
|
|
+ projectId: projectId.value,
|
|
|
|
+ contractId: contractId.value,
|
|
|
|
+ ...searchForm.value,
|
|
|
|
+ fieldKey: fieldList[0].fieldKey,
|
|
|
|
+ id: id
|
|
|
|
+ })
|
|
|
|
+ //处理数据
|
|
|
|
+ tableLoading.value = false
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ tableData.value = getArrValue(data['records'])
|
|
|
|
+ searchForm.value.total = data.total || 0
|
|
|
|
+ } else {
|
|
|
|
+ tableData.value = []
|
|
|
|
+ searchForm.value.total = 0
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ window.$message.warning('请先设置容器字段')
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
//多选
|
|
//多选
|
|
const tableCheckedKeys = ref([]);
|
|
const tableCheckedKeys = ref([]);
|
|
const tableSelection = (rows) => {
|
|
const tableSelection = (rows) => {
|
|
- tableCheckedKeys.value = rows.filter((item) => {
|
|
|
|
- return (item??'') !== '';
|
|
|
|
- })
|
|
|
|
|
|
+ tableCheckedKeys.value = rows
|
|
}
|
|
}
|
|
|
|
|
|
//新增/编辑 分类
|
|
//新增/编辑 分类
|
|
const addEditNodeFormModal = ref(false)
|
|
const addEditNodeFormModal = ref(false)
|
|
-const addEditNodeFormModel = ref({key1: ''})
|
|
|
|
|
|
+const addEditNodeFormModel = ref({
|
|
|
|
+ containerName: '', fieldList: [{
|
|
|
|
+ fieldType: 1,
|
|
|
|
+ fieldName: ''
|
|
|
|
+ }]
|
|
|
|
+})
|
|
const addEditNodeFormModalClick = () => {
|
|
const addEditNodeFormModalClick = () => {
|
|
|
|
+ addEditNodeFormModel.value = {
|
|
|
|
+ containerName: '', fieldList: [{
|
|
|
|
+ fieldType: 1,
|
|
|
|
+ fieldName: ''
|
|
|
|
+ }]
|
|
|
|
+ }
|
|
addEditNodeFormModal.value = true
|
|
addEditNodeFormModal.value = true
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+//加字段
|
|
|
|
+const addEditNodeDataAdd = () => {
|
|
|
|
+ addEditNodeFormModel.value.fieldList.push({
|
|
|
|
+ fieldType: 1,
|
|
|
|
+ fieldName: ''
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+//删除当前行
|
|
|
|
+const addEditNodeDataDel = async ({fieldId}, index) => {
|
|
|
|
+ if (!fieldId) {
|
|
|
|
+ addEditNodeFormModel.value.fieldList.splice(index, 1);
|
|
|
|
+ } else {
|
|
|
|
+ const { error, code } = await dataApi.removeField({fieldId})
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ addEditNodeFormModel.value.fieldList.splice(index, 1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
//保存节点信息
|
|
//保存节点信息
|
|
const addEditNodeFormLoading = ref(false)
|
|
const addEditNodeFormLoading = ref(false)
|
|
const addEditNodeFormModalSave = () => {
|
|
const addEditNodeFormModalSave = () => {
|
|
- addEditNodeFormModal.value = false
|
|
|
|
|
|
+ const form = addEditNodeFormModel.value
|
|
|
|
+ if (!form.containerName) {
|
|
|
|
+ window.$message.warning('请输入容器名称')
|
|
|
|
+ } else if (form.fieldList.length <= 0) {
|
|
|
|
+ window.$message.warning('请添加容器字段')
|
|
|
|
+ } else {
|
|
|
|
+ //判断是否满足条件
|
|
|
|
+ const result = form.fieldList.every(({fieldName})=> {
|
|
|
|
+ return fieldName !== ''
|
|
|
|
+ })
|
|
|
|
+ if (!result) {
|
|
|
|
+ window.$message.warning('请先完善字段数据')
|
|
|
|
+ } else {
|
|
|
|
+ form.projectId = projectId.value
|
|
|
|
+ form.contractId = contractId.value
|
|
|
|
+ submitClassification(form)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+//提交保存分类
|
|
|
|
+const submitClassification = async (form) => {
|
|
|
|
+ addEditNodeFormLoading.value = true
|
|
|
|
+ const { error, code } = await dataApi.submitClassification(form)
|
|
|
|
+ //处理数据
|
|
|
|
+ addEditNodeFormLoading.value = false
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ window?.$message?.success('操作成功')
|
|
|
|
+ addEditNodeFormModal.value = false
|
|
|
|
+ await getMenusData()
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
//关闭分类编辑弹窗
|
|
//关闭分类编辑弹窗
|
|
const addEditNodeFormModalClose = () => {
|
|
const addEditNodeFormModalClose = () => {
|
|
addEditNodeFormModal.value = false
|
|
addEditNodeFormModal.value = false
|
|
}
|
|
}
|
|
|
|
|
|
-//字段数据
|
|
|
|
-const addEditNodeData = ref([
|
|
|
|
- {type: 1, name: ''},
|
|
|
|
- {type: 2, name: ''},
|
|
|
|
-])
|
|
|
|
|
|
+//删除分类
|
|
|
|
+const delNodeModalClick = (id) => {
|
|
|
|
+ window?.$messageBox?.alert('请谨慎考虑后,确认是否需要删除?', '删除提醒', {
|
|
|
|
+ showCancelButton: true,
|
|
|
|
+ confirmButtonText: '确认删除',
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ callback: (action) => {
|
|
|
|
+ if (action === 'confirm') {
|
|
|
|
+ removeClassification(id)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//删除容器
|
|
|
|
+const removeClassification = async (id) => {
|
|
|
|
+ //删除请求
|
|
|
|
+ const { error, code } = await dataApi.removeClassification({
|
|
|
|
+ projectId: projectId.value,
|
|
|
|
+ contractId: contractId.value,
|
|
|
|
+ id: id,
|
|
|
|
+ })
|
|
|
|
+ //处理数据
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ window?.$message?.success('操作成功')
|
|
|
|
+ getMenusData()
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
|
|
-//加字段
|
|
|
|
-const addEditNodeDataAdd = () => {
|
|
|
|
- addEditNodeData.value.push({type: 1, name: ''})
|
|
|
|
|
|
+//新增/编辑 表单
|
|
|
|
+const addEditFormRef = ref(null)
|
|
|
|
+const addEditFormModel = ref({})
|
|
|
|
+const addEditFormRules = ref({})
|
|
|
|
+
|
|
|
|
+//处理表单校验
|
|
|
|
+const setAddEditFormRules = (fieldList) => {
|
|
|
|
+ let newArr = {};
|
|
|
|
+ for (let i = 0; i < fieldList.length; i++) {
|
|
|
|
+ const item = fieldList[i];
|
|
|
|
+ if (i === 0) {
|
|
|
|
+ newArr[item.key] = {
|
|
|
|
+ required: true,
|
|
|
|
+ validator: async (rule, value, callback) => {
|
|
|
|
+ if (!value) {
|
|
|
|
+ callback(new Error("请输入" + item.name))
|
|
|
|
+ } else {
|
|
|
|
+ const ver = await verification(item.key, value)
|
|
|
|
+ if (!ver) {
|
|
|
|
+ callback(new Error(item.name + '必须是惟一的'))
|
|
|
|
+ } else {
|
|
|
|
+ callback()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ trigger: 'blur'
|
|
|
|
+ }
|
|
|
|
+ } else if (item.type === 1) {
|
|
|
|
+ newArr[item.key] = {
|
|
|
|
+ required: true,
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ message: "请输入" + item.name
|
|
|
|
+ }
|
|
|
|
+ } else if (item.type === 2) {
|
|
|
|
+ newArr[item.key] = {
|
|
|
|
+ required: true,
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ message: "请选择" + item.name
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ addEditFormRules.value = newArr
|
|
}
|
|
}
|
|
-//删除当前行
|
|
|
|
-const addEditNodeDataDel = (index) => {
|
|
|
|
- addEditNodeData.value.splice(index, 1);
|
|
|
|
|
|
+
|
|
|
|
+//校验材料编号是否唯一
|
|
|
|
+const verification = async (key, val) => {
|
|
|
|
+ const { containerInitTabName } = menuItem.value
|
|
|
|
+ const { error, code, data } = await dataApi.verification({
|
|
|
|
+ projectId: projectId.value,
|
|
|
|
+ contractId: contractId.value,
|
|
|
|
+ bean: {
|
|
|
|
+ fieldKey: key,
|
|
|
|
+ fieldValue: val
|
|
|
|
+ },
|
|
|
|
+ containerInitTabName: containerInitTabName
|
|
|
|
+ })
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ return data === '编号可以使用';
|
|
|
|
+ } else {
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//新增/编辑
|
|
|
|
+const addEditFormModal = ref(false)
|
|
|
|
+const addFormModalClick = () => {
|
|
|
|
+ addEditFormModel.value = {}
|
|
|
|
+ addEditFormModal.value = true
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+//编辑表单
|
|
|
|
+const editFormModalClick = () => {
|
|
|
|
+ const keys = tableCheckedKeys.value
|
|
|
|
+ if (keys.length === 1) {
|
|
|
|
+ addEditFormModel.value = keys[0]
|
|
|
|
+ addEditFormModal.value = true
|
|
|
|
+ } else if (keys.length > 1) {
|
|
|
|
+ window?.$message?.warning('只能选择一条数据编辑')
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
|
|
|
|
+//关闭表单
|
|
|
|
+const addEditFormModalClose = () => {
|
|
|
|
+ addEditFormModal.value = false
|
|
|
|
+}
|
|
|
|
|
|
-//删除分类
|
|
|
|
-const delNodeModalClick = () => {
|
|
|
|
|
|
+//新增/编辑 保存
|
|
|
|
+const addEditFormLoading = ref(false)
|
|
|
|
+const addEditFormClick = async () => {
|
|
|
|
+ const validate = await formValidate(addEditFormRef.value)
|
|
|
|
+ if (validate) {
|
|
|
|
+ const { containerInitTabName } = menuItem.value
|
|
|
|
+ const form = addEditFormModel.value
|
|
|
|
+ addEditFormLoading.value = true
|
|
|
|
+ //处理数据格式
|
|
|
|
+ let beanList = [];
|
|
|
|
+ Object.keys(form).forEach(key => {
|
|
|
|
+ if (key !== 'field_calibration_time') {
|
|
|
|
+ beanList.push({
|
|
|
|
+ fieldKey: key,
|
|
|
|
+ fieldValue: form[key]
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ //发起请求
|
|
|
|
+ const { error, code } = await dataApi.submitForm({
|
|
|
|
+ projectId: projectId.value,
|
|
|
|
+ contractId: contractId.value,
|
|
|
|
+ beanList,
|
|
|
|
+ containerInitTabName,
|
|
|
|
+ fieldCalibrationTime: form['field_calibration_time'],
|
|
|
|
+ id: form['id'] ?? ''
|
|
|
|
+ })
|
|
|
|
+ //处理数据
|
|
|
|
+ addEditFormLoading.value = false
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ window?.$message?.success('操作成功')
|
|
|
|
+ addEditFormModal.value = false
|
|
|
|
+ await getTableData()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//删除数据
|
|
|
|
+const delTableModalClick = () => {
|
|
window?.$messageBox?.alert('请谨慎考虑后,确认是否需要删除?', '删除提醒', {
|
|
window?.$messageBox?.alert('请谨慎考虑后,确认是否需要删除?', '删除提醒', {
|
|
showCancelButton: true,
|
|
showCancelButton: true,
|
|
confirmButtonText: '确认删除',
|
|
confirmButtonText: '确认删除',
|
|
@@ -385,12 +566,33 @@ const delNodeModalClick = () => {
|
|
type: 'warning',
|
|
type: 'warning',
|
|
callback: (action) => {
|
|
callback: (action) => {
|
|
if (action === 'confirm') {
|
|
if (action === 'confirm') {
|
|
- //removeContractTreeNode()
|
|
|
|
|
|
+ tableRemoveData()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+//批量删除
|
|
|
|
+const tableRemoveData = async () => {
|
|
|
|
+ const rows = tableCheckedKeys.value
|
|
|
|
+ if (rows.length > 0 ) {
|
|
|
|
+ const ids = rowsToId(rows)
|
|
|
|
+ const { containerInitTabName } = menuItem.value
|
|
|
|
+ //删除请求
|
|
|
|
+ const { error, code } = await dataApi.removeData({
|
|
|
|
+ projectId: projectId.value,
|
|
|
|
+ contractId: contractId.value,
|
|
|
|
+ containerInitTabName: containerInitTabName,
|
|
|
|
+ id: ids,
|
|
|
|
+ })
|
|
|
|
+ //处理数据
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ window?.$message?.success('操作成功')
|
|
|
|
+ searchClick()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
|
|
//导入
|
|
//导入
|
|
const importModal = ref(false)
|
|
const importModal = ref(false)
|
|
@@ -409,41 +611,13 @@ const importModalClose = () => {
|
|
importModal.value = false
|
|
importModal.value = false
|
|
}
|
|
}
|
|
|
|
|
|
-//新增/编辑
|
|
|
|
-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 = {
|
|
|
|
- key1111: {
|
|
|
|
- required: true,
|
|
|
|
- trigger: 'blur',
|
|
|
|
- message: "请输入"
|
|
|
|
- },
|
|
|
|
- key2111: {
|
|
|
|
- required: true,
|
|
|
|
- trigger: 'blur',
|
|
|
|
- message: "请选择"
|
|
|
|
- },
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-//新增/编辑 保存
|
|
|
|
-const addEditFormLoading = ref(false)
|
|
|
|
-const addEditFormClick = () => {
|
|
|
|
-
|
|
|
|
|
|
+//拼接ID
|
|
|
|
+const rowsToId = (rows) => {
|
|
|
|
+ return rows.map((obj) => {
|
|
|
|
+ return obj.id;
|
|
|
|
+ }).join(",")
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
//左右拖动,改变树形结构宽度
|
|
//左右拖动,改变树形结构宽度
|
|
const leftWidth = ref(240);
|
|
const leftWidth = ref(240);
|
|
const onmousedown = () => {
|
|
const onmousedown = () => {
|