yanghao 1 gün önce
ebeveyn
işleme
8a006af070

+ 2 - 2
src/views/pms/qhse/certificate.vue

@@ -98,12 +98,12 @@
             :label="t('devicePerson.operation')"
             align="center"
             fixed="right"
-            min-width="120px"
+            min-width="150px"
           >
             <template #default="scope">
               <el-button link type="primary" @click="handleEdit(scope.row)"> 编辑 </el-button>
               <el-button link type="danger" @click="handleDelete(scope.row.id)"> 删除 </el-button>
-              <el-button link type="success" @click="handleViewImage(scope.row.image)">
+              <el-button link type="success" @click="handleViewImage(scope.row.certPic)">
                 查看
               </el-button>
             </template>

+ 38 - 35
src/views/pms/qhse/index.vue

@@ -29,7 +29,7 @@
             <el-button @click="resetQuery"
               ><Icon icon="ep:refresh" class="mr-5px" /> {{ t('devicePerson.reset') }}</el-button
             >
-            <el-button @click="handleExport" type="success" plain
+            <el-button @click="handleExport" type="success" plain :loading="exportLoading"
               ><Icon icon="ep:download" class="mr-5px" /> 导出Excel</el-button
             >
           </el-form-item>
@@ -39,13 +39,21 @@
       <!-- 列表 -->
       <ContentWrap>
         <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-          <el-table-column :label="t('monitor.serial')" width="70" align="center">
+          <el-table-column :label="t('monitor.serial')" width="70" align="center" fixed="left">
             <template #default="scope">
               {{ scope.$index + 1 }}
             </template>
           </el-table-column>
-          <el-table-column label="单位" align="center" prop="measureUnit" />
-          <el-table-column label="名称" align="center" prop="measureName" />
+          <el-table-column label="名称" align="center" prop="measureName" fixed="left" />
+          <el-table-column
+            label="编码"
+            align="center"
+            prop="measureCode"
+            width="150"
+            fixed="left"
+          />
+          <el-table-column label="计量单位" align="center" prop="measureUnit" />
+
           <el-table-column label="责任人" align="center" prop="dutyPerson" />
           <el-table-column label="品牌" align="center" prop="brand" />
           <el-table-column label="规格型号" align="center" prop="modelName" />
@@ -117,8 +125,8 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="计量器具编码" prop="measureCode">
-            <el-input v-model="formData.measureCode" placeholder="请输入计量器具编码" />
+          <el-form-item label="责任人" prop="dutyPerson">
+            <el-input v-model="formData.dutyPerson" placeholder="请输入责任人" />
           </el-form-item>
         </el-col>
       </el-row>
@@ -138,30 +146,17 @@
             />
           </el-form-item>
         </el-col>
-        <el-col :span="12">
-          <el-form-item label="责任人" prop="dutyPerson">
-            <el-input v-model="formData.dutyPerson" placeholder="请输入责任人" />
-          </el-form-item>
-        </el-col>
-      </el-row>
-
-      <el-row :gutter="20">
         <el-col :span="12">
           <el-form-item label="品牌" prop="brand">
             <el-input v-model="formData.brand" placeholder="请输入品牌" />
           </el-form-item>
         </el-col>
-        <el-col :span="12">
-          <el-form-item label="规格型号" prop="modelName">
-            <el-input v-model="formData.modelName" placeholder="请输入规格型号" />
-          </el-form-item>
-        </el-col>
       </el-row>
 
       <el-row :gutter="20">
         <el-col :span="12">
-          <el-form-item label="分类" prop="classify">
-            <el-input v-model="formData.classify" placeholder="请输入分类" />
+          <el-form-item label="规格型号" prop="modelName">
+            <el-input v-model="formData.modelName" placeholder="请输入规格型号" />
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -173,14 +168,8 @@
 
       <el-row :gutter="20">
         <el-col :span="12">
-          <el-form-item label="采购日期" prop="buyDate">
-            <el-date-picker
-              v-model="formData.buyDate"
-              type="date"
-              value-format="x"
-              placeholder="请选择采购日期"
-              style="width: 100%"
-            />
+          <el-form-item label="分类" prop="classify">
+            <el-input v-model="formData.classify" placeholder="请输入分类" />
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -198,12 +187,12 @@
 
       <el-row :gutter="20">
         <el-col :span="12">
-          <el-form-item label="有效期" prop="validity">
+          <el-form-item label="采购日期" prop="buyDate">
             <el-date-picker
-              v-model="formData.validity"
+              v-model="formData.buyDate"
               type="date"
               value-format="x"
-              placeholder="请选择有效期"
+              placeholder="请选择采购日期"
               style="width: 100%"
             />
           </el-form-item>
@@ -222,7 +211,18 @@
       </el-row>
 
       <el-row :gutter="20">
-        <el-col :span="24">
+        <el-col :span="12">
+          <el-form-item label="有效期" prop="validity">
+            <el-date-picker
+              v-model="formData.validity"
+              type="date"
+              value-format="x"
+              placeholder="请选择有效期"
+              style="width: 100%"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
           <el-form-item label="备注" prop="remark">
             <el-input v-model="formData.remark" type="textarea" placeholder="请输入描述" />
           </el-form-item>
@@ -253,6 +253,7 @@ defineOptions({ name: 'IotQHSEMeasure' })
 const loading = ref(true) // 列表的加载中
 const formLoading = ref(false) // 表单加载中
 const submitLoading = ref(false) // 提交按钮加载中
+let exportLoading = ref(false)
 
 const { t } = useI18n()
 
@@ -310,8 +311,8 @@ const formatDateCorrectly = (timestamp) => {
 const formRules = {
   measureName: [{ required: true, message: '计量器具名称不能为空', trigger: 'blur' }],
   dutyPerson: [{ required: true, message: '责任人不能为空', trigger: 'blur' }],
-  classify: [{ required: true, message: '分类不能为空', trigger: 'blur' }],
-  measureCode: [{ required: true, message: '编码不能为空', trigger: 'blur' }]
+  classify: [{ required: true, message: '分类不能为空', trigger: 'blur' }]
+  // measureCode: [{ required: true, message: '编码不能为空', trigger: 'blur' }]
 }
 
 /** 查询列表 */
@@ -360,11 +361,13 @@ const downloadFile = (response: any) => {
 
 const handleExport = async () => {
   try {
+    exportLoading.value = true
     // 调用导出接口
     const response = await IotInstrumentApi.exportInstrument(queryParams)
 
     // 下载文件
     downloadFile(response)
+    exportLoading.value = false
   } catch (error) {
     ElMessage.error('导出失败,请重试')
     console.error('导出错误:', error)

+ 32 - 3
src/views/pms/qhse/iotmeasuredetect/IotMeasureDetectForm.vue

@@ -20,10 +20,15 @@
           type="date"
           value-format="x"
           placeholder="选择检测/校准日期"
+          style="width: 200px"
         />
       </el-form-item>
       <el-form-item label="检测/校准机构" prop="detectOrg">
-        <el-input v-model="formData.detectOrg" placeholder="请输入检测/校准机构" />
+        <el-input
+          v-model="formData.detectOrg"
+          placeholder="请输入检测/校准机构"
+          style="width: 200px"
+        />
       </el-form-item>
       <el-form-item label="检测/校准内容" prop="detectContent">
         <Editor v-model="formData.detectContent" height="150px" />
@@ -34,13 +39,28 @@
           type="date"
           value-format="x"
           placeholder="选择检测/校准有效期"
+          style="width: 200px"
         />
       </el-form-item>
       <el-form-item label="校准金额" prop="detectAmount">
-        <el-input v-model="formData.detectAmount" placeholder="请输入校准金额" />
+        <el-input
+          v-model="formData.detectAmount"
+          placeholder="请输入校准金额"
+          style="width: 200px"
+        />
       </el-form-item>
       <el-form-item label="部门" prop="deptId">
-        <el-input v-model="formData.deptId" placeholder="请选择部门" />
+        <el-tree-select
+          style="width: 220px"
+          clearable
+          v-model="formData.deptId"
+          :data="deptList2"
+          :props="defaultProps"
+          check-strictly
+          node-key="id"
+          filterable
+          placeholder="请选择所在部门"
+        />
       </el-form-item>
     </el-form>
     <template #footer>
@@ -142,12 +162,17 @@
 <script setup lang="ts">
 import { IotMeasureDetectApi, IotMeasureDetectVO, IotInstrumentApi } from '@/api/pms/qhse/index'
 import { formatDate } from '@/utils/formatTime'
+import { handleTree } from '@/utils/tree'
+import { onMounted, ref } from 'vue'
+import * as DeptApi from '@/api/system/dept'
 
 /** 计量器具-检测校准明细 表单 */
 defineOptions({ name: 'IotMeasureDetectForm' })
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
+const deptList2 = ref<Tree[]>([]) // 树形结构
+import { defaultProps } from '@/utils/tree'
 
 const dialogVisible = ref(false) // 弹窗的是否展示
 const dialogTitle = ref('') // 弹窗的标题
@@ -314,4 +339,8 @@ const getList = async () => {
     loading.value = false
   }
 }
+
+onMounted(async () => {
+  deptList2.value = handleTree(await DeptApi.getSimpleDeptList())
+})
 </script>

+ 4 - 27
src/views/pms/qhse/iotmeasuredetect/index.vue

@@ -45,21 +45,10 @@
       <el-form-item>
         <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
-        <el-button
-          type="primary"
-          plain
-          @click="openForm('create')"
-          v-hasPermi="['rq:iot-measure-detect:create']"
-        >
+        <el-button type="primary" plain @click="openForm('create')">
           <Icon icon="ep:plus" class="mr-5px" /> 新增
         </el-button>
-        <el-button
-          type="success"
-          plain
-          @click="handleExport"
-          :loading="exportLoading"
-          v-hasPermi="['rq:iot-measure-detect:export']"
-        >
+        <el-button type="success" plain @click="handleExport" :loading="exportLoading">
           <Icon icon="ep:download" class="mr-5px" /> 导出
         </el-button>
       </el-form-item>
@@ -91,22 +80,10 @@
       <el-table-column label="部门名称" align="center" prop="deptName" />
       <el-table-column label="操作" align="center" min-width="120px">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openForm('update', scope.row.id)"
-            v-hasPermi="['rq:iot-measure-detect:update']"
-          >
+          <el-button link type="primary" @click="openForm('update', scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="handleDelete(scope.row.id)"
-            v-hasPermi="['rq:iot-measure-detect:delete']"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="handleDelete(scope.row.id)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>

+ 4 - 27
src/views/pms/qhse/iotmeasurerecord/index.vue

@@ -65,21 +65,10 @@
       <el-form-item>
         <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
-        <el-button
-          type="primary"
-          plain
-          @click="openForm('create')"
-          v-hasPermi="['rq:iot-measure-record:create']"
-        >
+        <el-button type="primary" plain @click="openForm('create')">
           <Icon icon="ep:plus" class="mr-5px" /> 新增
         </el-button>
-        <el-button
-          type="success"
-          plain
-          @click="handleExport"
-          :loading="exportLoading"
-          v-hasPermi="['rq:iot-measure-record:export']"
-        >
+        <el-button type="success" plain @click="handleExport" :loading="exportLoading">
           <Icon icon="ep:download" class="mr-5px" /> 导出
         </el-button>
       </el-form-item>
@@ -102,22 +91,10 @@
       <el-table-column label="部门名称" align="center" prop="deptName" />
       <el-table-column label="操作" align="center" min-width="120px">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openForm('update', scope.row.id)"
-            v-hasPermi="['rq:iot-measure-record:update']"
-          >
+          <el-button link type="primary" @click="openForm('update', scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="handleDelete(scope.row.id)"
-            v-hasPermi="['rq:iot-measure-record:delete']"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="handleDelete(scope.row.id)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>