Ver código fonte

Merge branch 'qhse_person' of shuzhihua/pms-iot-vue into master

yanghao 6 dias atrás
pai
commit
04aea131a7

+ 1 - 1
src/router/modules/remaining.ts

@@ -327,7 +327,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
     },
     children: [
       {
-        path: 'project/task/:type/:id?(\\d+)/:projectId?',
+        path: 'project/task/:type/:id?(\\d+)/:projectId/:deptId?',
         component: () => import('@/views/pms/iotprojecttask/IotProjectTaskForm.vue'),
         name: 'IotProjectTaskInfo',
         meta: {

+ 68 - 122
src/views/pms/iotprojecttask/IotProjectTaskForm.vue

@@ -5,8 +5,7 @@
       :model="formData"
       :rules="formRules"
       label-width="100px"
-      v-loading="formLoading"
-    >
+      v-loading="formLoading">
       <el-row>
         <el-col :span="12">
           <el-form-item label="合同名称" prop="contractName">
@@ -14,15 +13,13 @@
               v-model="formData.contractId"
               placeholder="请选择"
               @change="getProjectInfo"
-              disabled
-            >
+              disabled>
               <el-option
                 v-for="item in projectList"
                 :key="item.id"
                 :label="item.contractName"
                 :value="item.id"
-                clearable
-              />
+                clearable />
             </el-select>
           </el-form-item>
         </el-col>
@@ -41,8 +38,7 @@
               @clear="zzClear"
               v-model="formData.manufacturerId"
               :placeholder="t('deviceForm.mfgHolder')"
-              disabled
-            >
+              disabled>
               <el-option :label="formData.manufactureName" :value="formData.manufacturerId" />
             </el-select>
           </el-form-item>
@@ -54,8 +50,7 @@
                 v-for="dict in getStrDictOptions(DICT_TYPE.PMS_PROJECT_SETTLEMENT)"
                 :key="dict.id"
                 :label="dict.label"
-                :value="dict.value"
-              />
+                :value="dict.value" />
             </el-select>
           </el-form-item>
         </el-col>
@@ -70,8 +65,7 @@
               type="date"
               value-format="x"
               placeholder="选择开始时间"
-              disabled
-            />
+              disabled />
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -82,8 +76,7 @@
               type="date"
               value-format="x"
               placeholder="选择完成时间"
-              disabled
-            />
+              disabled />
           </el-form-item>
         </el-col>
       </el-row>
@@ -96,8 +89,7 @@
               filterable
               placeholder="请选择项目部"
               clearable
-              disabled
-            /> </el-form-item
+              disabled /> </el-form-item
         ></el-col>
         <el-col :span="12"
           ><el-form-item label="备注" prop="remark">
@@ -121,8 +113,7 @@
           :data="tableData"
           empty-text="暂无数据"
           highlight-current-row
-          @current-change="handleRowClick"
-        >
+          @current-change="handleRowClick">
           <el-table-column prop="wellName" label="井号" />
           <el-table-column prop="wellType" label="井型">
             <template #default="{ row }">
@@ -152,8 +143,7 @@
                 effect="dark"
                 :content="getAllDeptNames(row.deptIds)"
                 placement="top"
-                :disabled="!row.deptIds || row.deptIds.length <= 1"
-              >
+                :disabled="!row.deptIds || row.deptIds.length <= 1">
                 <span class="dept-names">
                   {{ getDeptNames(row.deptIds) }}
                 </span>
@@ -165,8 +155,7 @@
               <el-tooltip
                 :content="getAllDeviceNames(row.deviceIds)"
                 placement="top"
-                :disabled="row.deviceIds && row.deviceIds.length <= 1"
-              >
+                :disabled="row.deviceIds && row.deviceIds.length <= 1">
                 <span class="device-names">
                   {{ getDeviceNames(row.deviceIds) }}
                 </span>
@@ -178,8 +167,7 @@
               <el-tooltip
                 :content="getAllResponsiblePersonNames(row.responsiblePerson)"
                 placement="top"
-                :disabled="!row.responsiblePerson || row.responsiblePerson.length <= 1"
-              >
+                :disabled="!row.responsiblePerson || row.responsiblePerson.length <= 1">
                 <span class="responsible-names">
                   {{ getResponsiblePersonNames(row.responsiblePerson) }}
                 </span>
@@ -200,16 +188,14 @@
       :model="currentTask"
       :rules="taskFormRules"
       label-width="120px"
-      class="task-edit-form"
-    >
+      class="task-edit-form">
       <el-row>
         <el-col :span="8">
           <el-form-item label="井号" prop="wellName">
             <el-input
               v-model="currentTask.wellName"
               placeholder="请输入井号"
-              :disabled="currentTask.platformWell === '1'"
-            />
+              :disabled="currentTask.platformWell === '1'" />
           </el-form-item>
         </el-col>
         <el-col :span="8">
@@ -223,8 +209,7 @@
               @focus="handleWorkAreaFocus"
               @select="handleSelect"
               :disabled="!workAreaOptions.length"
-              popper-class="work-area-autocomplete"
-            >
+              popper-class="work-area-autocomplete">
               <template #prefix>
                 <el-icon v-if="loadingWorkAreaOptions" class="is-loading">
                   <Loading />
@@ -242,19 +227,16 @@
               v-model="currentTask.technique"
               placeholder="请选择施工工艺"
               clearable
-              :loading="loadingTechnologyOptions"
-            >
+              :loading="loadingTechnologyOptions">
               <el-option
                 v-for="dict in technologyOptions"
                 :key="dict.value"
                 :label="dict.label"
-                :value="dict.value"
-              />
+                :value="dict.value" />
             </el-select>
             <div
               v-if="!technologyOptions.length && !loadingTechnologyOptions"
-              class="el-form-item__error"
-            >
+              class="el-form-item__error">
               暂无可用施工工艺选项
             </div>
           </el-form-item>
@@ -270,23 +252,20 @@
               placement="top"
               effect="light"
               popper-class="workload-design-tooltip"
-              :show-after="0"
-            >
+              :show-after="0">
               <el-input
                 v-model="currentTask.workloadDesign"
                 placeholder="请输入设计工作量"
                 :disabled="currentTask.platformWell === '1'"
                 class="workload-input-with-button"
                 :class="{ 'error-input': workloadDesignError }"
-                @blur="validateWorkloadDesign"
-              >
+                @blur="validateWorkloadDesign">
                 <template #append>
                   <el-tooltip content="添加多个设计工作量" placement="top">
                     <el-button
                       class="workload-add-btn"
                       @click="openWorkloadDialog"
-                      :disabled="getWorkloadAddBtnDisabled"
-                    >
+                      :disabled="getWorkloadAddBtnDisabled">
                       <span class="btn-text">+</span>
                     </el-button>
                   </el-tooltip>
@@ -301,8 +280,7 @@
               v-model="currentTask.workloadUnit"
               placeholder="请选择工作量单位"
               clearable
-              :disabled="currentTask.platformWell === '1'"
-            >
+              :disabled="currentTask.platformWell === '1'">
               <el-option
                 v-for="dict in getStrDictOptions(DICT_TYPE.PMS_PROJECT_WORKLOAD_UNIT)"
                 :key="dict.value"
@@ -311,8 +289,7 @@
                 :disabled="
                   getFormSelectedWorkloadUnits().includes(dict.value) &&
                   dict.value !== currentTask.workloadUnit
-                "
-              />
+                " />
             </el-select>
           </el-form-item>
         </el-col>
@@ -334,8 +311,7 @@
               collapse-tags
               collapse-tags-tooltip
               :max-collapse-tags="1"
-              class="department-tree-select single-line-tree-select"
-            />
+              class="department-tree-select single-line-tree-select" />
           </el-form-item>
         </el-col>
       </el-row>
@@ -353,8 +329,7 @@
             <el-tooltip
               v-if="currentTask.deviceIds && currentTask.deviceIds.length > 0"
               :content="getAllDeviceNamesForForm(currentTask.deviceIds)"
-              placement="top"
-            >
+              placement="top">
               <span style="margin-left: 10px">
                 {{ formatDevicesForForm(currentTask.deviceIds) }}
               </span>
@@ -369,8 +344,7 @@
             <el-tooltip
               v-if="currentTask.responsiblePerson && currentTask.responsiblePerson.length > 0"
               :content="getAllResponsiblePersonNamesForForm(currentTask.responsiblePerson)"
-              placement="top"
-            >
+              placement="top">
               <span style="margin-left: 10px">
                 {{ formatResponsiblePersonsForForm(currentTask.responsiblePerson) }}
               </span>
@@ -385,8 +359,7 @@
             <el-tooltip
               v-if="currentTask.submitter && currentTask.submitter.length > 0"
               :content="getAllSubmitterNamesForForm(currentTask.submitter)"
-              placement="top"
-            >
+              placement="top">
               <span style="margin-left: 10px">
                 {{ formatSubmittersForForm(currentTask.submitter) }}
               </span>
@@ -402,8 +375,7 @@
               v-model="currentTask.platformWell"
               active-value="1"
               inactive-value="0"
-              @change="handlePlatformWellChange"
-            />
+              @change="handlePlatformWellChange" />
           </el-form-item>
         </el-col>
       </el-row>
@@ -413,19 +385,16 @@
         <el-col
           v-for="attr in dynamicAttrs"
           :key="attr.id"
-          :span="attr.dataType === 'textarea' ? 24 : 8"
-        >
+          :span="attr.dataType === 'textarea' ? 24 : 8">
           <el-form-item
             :label="attr.name + (attr.unit ? `(${attr.unit})` : '')"
             :prop="attr.identifier"
-            :rules="getDynamicAttrRules(attr)"
-          >
+            :rules="getDynamicAttrRules(attr)">
             <!-- 文本类型 -->
             <el-input
               v-if="attr.dataType === 'text'"
               v-model="currentTask[attr.identifier]"
-              :placeholder="`请输入${attr.name}`"
-            />
+              :placeholder="`请输入${attr.name}`" />
 
             <!-- 文本域类型 -->
             <el-input
@@ -433,8 +402,7 @@
               v-model="currentTask[attr.identifier]"
               :placeholder="`请输入${attr.name}`"
               type="textarea"
-              :rows="3"
-            />
+              :rows="3" />
 
             <!-- 数字类型 -->
             <el-input
@@ -443,8 +411,7 @@
               :placeholder="`请输入${attr.name}`"
               type="number"
               :min="attr.minValue || undefined"
-              :max="attr.maxValue || undefined"
-            />
+              :max="attr.maxValue || undefined" />
 
             <!-- 日期类型 -->
             <el-date-picker
@@ -453,15 +420,13 @@
               type="date"
               value-format="x"
               :placeholder="`选择${attr.name}`"
-              style="width: 100%"
-            />
+              style="width: 100%" />
 
             <!-- 默认文本输入 -->
             <el-input
               v-else
               v-model="currentTask[attr.identifier]"
-              :placeholder="`请输入${attr.name}`"
-            />
+              :placeholder="`请输入${attr.name}`" />
           </el-form-item>
         </el-col>
       </el-row>
@@ -482,8 +447,7 @@
 
   <div
     v-if="companyName === 'ry'"
-    class="my-6 bg-white p-4 border-1 border-solid border-[var(--el-border-color-light)]"
-  >
+    class="my-6 bg-white p-4 border-1 border-solid border-[var(--el-border-color-light)]">
     <h3 style="margin-bottom: 20px">附件</h3>
     <el-form-item size="default" label="工程设计">
       <el-upload
@@ -493,8 +457,7 @@
         :headers="{ 'tenant-id': 1, 'device-id': 'undefined' }"
         name="files"
         class="w-50%"
-        @preview="handlePreview"
-      >
+        @preview="handlePreview">
         <el-button type="primary">上传工程设计</el-button>
         <template #tip>
           <div class="el-upload__tip">文件大小不能超过50MB </div>
@@ -509,8 +472,7 @@
         :headers="{ 'tenant-id': 1, 'device-id': 'undefined' }"
         name="files"
         class="w-50%"
-        @preview="handlePreview"
-      >
+        @preview="handlePreview">
         <el-button type="primary">上传地质设计</el-button>
         <template #tip>
           <div class="el-upload__tip">文件大小不能超过50MB </div>
@@ -525,8 +487,7 @@
         :headers="{ 'tenant-id': 1, 'device-id': 'undefined' }"
         name="files"
         class="w-50%"
-        @preview="handlePreview"
-      >
+        @preview="handlePreview">
         <el-button :disabled="tableData[0].status !== 'wg'" type="primary">上传完井报告</el-button>
         <template #tip>
           <div class="el-upload__tip">文件大小不能超过50MB </div>
@@ -542,8 +503,7 @@
         <template #default="{ $index }">
           <el-input
             v-model="currentTask.platformWellDetails[$index].wellName"
-            placeholder="请输入井号"
-          />
+            placeholder="请输入井号" />
         </template>
       </el-table-column>
 
@@ -557,8 +517,7 @@
               getPlatformWellWorkloadUnits($index).includes(
                 currentTask.platformWellDetails[$index].workloadUnit
               ) && currentTask.platformWellDetails[$index].workloadUnit !== currentTask.workloadUnit
-            "
-          >
+            ">
             <el-option
               v-for="dict in getStrDictOptions(DICT_TYPE.PMS_PROJECT_WORKLOAD_UNIT)"
               :key="dict.value"
@@ -567,8 +526,7 @@
               :disabled="
                 getPlatformWellWorkloadUnits($index).includes(dict.value) &&
                 dict.value !== currentTask.platformWellDetails[$index].workloadUnit
-              "
-            />
+              " />
           </el-select>
         </template>
       </el-table-column>
@@ -581,8 +539,7 @@
             placement="top"
             effect="light"
             popper-class="workload-design-tooltip"
-            :show-after="0"
-          >
+            :show-after="0">
             <el-input
               v-model="currentTask.platformWellDetails[$index].workloadDesign"
               placeholder="请输入设计工作量"
@@ -590,15 +547,13 @@
               :class="{
                 'error-input': currentTask.platformWellDetails[$index].workloadDesignError
               }"
-              @blur="validatePlatformWellWorkloadDesign($index)"
-            >
+              @blur="validatePlatformWellWorkloadDesign($index)">
               <template #append>
                 <el-tooltip content="添加多个设计工作量" placement="top">
                   <el-button
                     class="workload-add-btn"
                     @click="openPlatformWellWorkloadDialog($index)"
-                    :disabled="getPlatformWellWorkloadAddBtnDisabled($index)"
-                  >
+                    :disabled="getPlatformWellWorkloadAddBtnDisabled($index)">
                     <span class="btn-text">+</span>
                   </el-button>
                 </el-tooltip>
@@ -614,8 +569,7 @@
             type="danger"
             size="small"
             @click="removePlatformWellDetail($index)"
-            :disabled="isMainPlatformWellDetail($index)"
-          >
+            :disabled="isMainPlatformWellDetail($index)">
             删除
           </el-button>
         </template>
@@ -639,8 +593,7 @@
     title="选择施工设备"
     width="1000px"
     :before-close="handleDeviceDialogClose"
-    class="device-select-dialog"
-  >
+    class="device-select-dialog">
     <div class="transfer-container">
       <el-transfer
         v-model="selectedDeviceIds"
@@ -650,16 +603,14 @@
         filterable
         :filter-method="filterDeviceMethod"
         class="transfer-component"
-        @change="handleTransferChange"
-      >
+        @change="handleTransferChange">
         <template #default="{ option }">
           <el-tooltip
             effect="dark"
             placement="top"
             :content="`${option.deviceCode || ''} - ${option.deviceName || ''}`"
             :disabled="!option.deviceCode && !option.deviceName"
-            transition="fade-in-linear"
-          >
+            transition="fade-in-linear">
             <span class="transfer-option-text">
               {{ option.deviceCode }} - {{ option.deviceName }}
             </span>
@@ -681,8 +632,7 @@
     title="选择责任人"
     width="1000px"
     :before-close="handleResponsiblePersonDialogClose"
-    class="responsible-person-select-dialog"
-  >
+    class="responsible-person-select-dialog">
     <div class="transfer-container">
       <el-transfer
         v-model="selectedResponsiblePersonIds"
@@ -690,14 +640,12 @@
         :titles="['可选人员', '已选人员']"
         :props="{ key: 'id', label: 'nickname' }"
         filterable
-        class="transfer-component"
-      >
+        class="transfer-component">
         <template #default="{ option }">
           <el-tooltip
             effect="dark"
             placement="top"
-            :content="`${option.nickname} - ${option.deptName || '未分配部门'}`"
-          >
+            :content="`${option.nickname} - ${option.deptName || '未分配部门'}`">
             <span class="transfer-option-text">
               {{ option.nickname }} - {{ option.deptName || '未分配部门' }}
             </span>
@@ -719,8 +667,7 @@
     title="选择填报人"
     width="1000px"
     :before-close="handleSubmitterDialogClose"
-    class="responsible-person-select-dialog"
-  >
+    class="responsible-person-select-dialog">
     <div class="transfer-container">
       <el-transfer
         v-model="selectedSubmitterIds"
@@ -728,14 +675,12 @@
         :titles="['可选人员', '已选人员']"
         :props="{ key: 'id', label: 'nickname' }"
         filterable
-        class="transfer-component"
-      >
+        class="transfer-component">
         <template #default="{ option }">
           <el-tooltip
             effect="dark"
             placement="top"
-            :content="`${option.nickname} - ${option.deptName || '未分配部门'}`"
-          >
+            :content="`${option.nickname} - ${option.deptName || '未分配部门'}`">
             <span class="transfer-option-text">
               {{ option.nickname }} - {{ option.deptName || '未分配部门' }}
             </span>
@@ -759,15 +704,13 @@
           <el-select
             v-model="workloadList[$index].workloadUnit"
             placeholder="请选择工作量单位"
-            :disabled="$index === 0 && hasInitialWorkload"
-          >
+            :disabled="$index === 0 && hasInitialWorkload">
             <el-option
               v-for="dict in getStrDictOptions(DICT_TYPE.PMS_PROJECT_WORKLOAD_UNIT)"
               :key="dict.value"
               :label="dict.label"
               :value="dict.value"
-              :disabled="getSelectedWorkloadUnits($index).includes(dict.value)"
-            />
+              :disabled="getSelectedWorkloadUnits($index).includes(dict.value)" />
           </el-select>
         </template>
       </el-table-column>
@@ -780,15 +723,13 @@
             placement="top"
             effect="light"
             popper-class="workload-design-tooltip"
-            :show-after="0"
-          >
+            :show-after="0">
             <el-input
               v-model="workloadList[$index].workloadDesign"
               placeholder="请输入工作量"
               :disabled="$index === 0 && hasInitialWorkload"
               :class="{ 'error-input': workloadList[$index].workloadDesignError }"
-              @blur="validateWorkloadDialogDesign($index)"
-            />
+              @blur="validateWorkloadDialogDesign($index)" />
           </el-tooltip>
         </template>
       </el-table-column>
@@ -799,8 +740,7 @@
             type="danger"
             size="small"
             @click="removeWorkloadItem($index)"
-            :disabled="$index === 0 && hasInitialWorkload"
-          >
+            :disabled="$index === 0 && hasInitialWorkload">
             删除
           </el-button>
         </template>
@@ -836,11 +776,14 @@ import { IotProjectTaskAttrsApi } from '@/api/pms/iotprojecttaskattrs'
 import { DICT_TYPE, getStrDictOptions, getDictLabel } from '@/utils/dict'
 import { IotOpeationFillApi } from '@/api/pms/iotopeationfill'
 import { Base64 } from 'js-base64'
-// 在导入部分添加Plus图标
+import { useRoute } from 'vue-router'
 // import { Plus } from '@element-plus/icons-vue'
 
 const { query, params, name } = useRoute() // 查询参数
+
+console.log('idaaaaaaaaaaaaaaaa', useRoute().query.deptId)
 const id = params.id
+let deptId = ref(params.deptId)
 
 const uploadUrl = import.meta.env.VITE_BASE_URL + '/admin-api/rq/file/upload'
 const constructionFiles = ref<any>([])
@@ -1379,6 +1322,8 @@ const openDeviceDialogForForm = async () => {
 
   selectedDeviceIds.value = [...(currentTask.value.deviceIds || [])]
 
+  console.log('sssssssssssssssssss', params)
+
   try {
     const params = {
       deptIds: currentTask.value.deptIds
@@ -2019,7 +1964,8 @@ const open = async () => {
         if (currentTask.value.deptIds && currentTask.value.deptIds.length > 0) {
           try {
             const params = {
-              deptIds: currentTask.value.deptIds
+              deptIds: currentTask.value.deptIds,
+              deptId: deptId.value
             }
             const deviceData = await IotDeviceApi.getDevicesByDepts(params)
 

+ 8 - 3
src/views/pms/iotprojecttask/index.vue

@@ -308,13 +308,18 @@ const handleCurrentChange = (val: number) => {
   getList()
 }
 
-const openForm = (type: string, id?: number, projectId?: number) => {
+const openForm = (type: string, id?: number, projectId?: number, deptId?: number) => {
   if (id === undefined) {
     push({ name: 'IotProjectTaskInfo', params: { type } })
     return
   }
 
-  push({ name: 'IotProjectTaskInfo', params: { type, id, projectId } })
+  console.log('sssssssssssssssssssssss', deptId)
+
+  push({
+    name: 'IotProjectTaskInfo',
+    params: { type, id, projectId, deptId }
+  })
 }
 
 const handleDelete = async (id: number) => {
@@ -490,7 +495,7 @@ onMounted(async () => {
                   <el-button
                     link
                     type="primary"
-                    @click="openForm('update', row.id, row.projectId)"
+                    @click="openForm('update', row.id, row.projectId, row.deptId)"
                     v-hasPermi="['rq:iot-project-task:update']">
                     编辑
                   </el-button>