From 65cf7dd6c17bb52ac7c81fe466a63ebad99fc66b Mon Sep 17 00:00:00 2001
From: 王恒 <318726284@qq.com>
Date: 星期四, 14 八月 2025 10:52:30 +0800
Subject: [PATCH] '新增科室回显功能'

---
 src/views/system/manage/index.vue |  117 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 55 insertions(+), 62 deletions(-)

diff --git a/src/views/system/manage/index.vue b/src/views/system/manage/index.vue
index be03945..9dbdca9 100644
--- a/src/views/system/manage/index.vue
+++ b/src/views/system/manage/index.vue
@@ -9,43 +9,35 @@
       label-width="80px"
       label-position="left"
     >
-      <el-form-item label="璁″垝鍚嶇О" prop="companyName">
+      <el-form-item label="浼佷笟鍚嶇О" prop="companyName">
         <el-input
-          v-model="queryParams.enforceReason"
-          placeholder="璇疯緭鍏ヨ鍒掑悕绉�"
+          v-model="queryParams.companyName"
+          placeholder="璇疯緭鍏ヤ紒涓氬悕绉�"
           clearable
           style="width: 200px"
           @keyup.enter="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="璁″垝缂栧彿" prop="companyCode">
-        <el-input
-          v-model="queryParams.planNo"
-          placeholder="璇疯緭鍏ヨ鍒掔紪鍙�"
-          clearable
+      <el-form-item label="鍒跺畾鏈烘瀯">
+        <el-tree-select
+          v-model="queryParams.applyOrgId"
+          :data="deptOptions"
+          :props="{ value: 'id', label: 'label', children: 'children' }"
+          value-key="id"
+          placeholder="璇烽�夋嫨鍒跺畾璁″垝鐨勬満鏋�"
+          check-strictly
           style="width: 200px"
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="鎵ф硶鍗曚綅" prop="applyDeptIds">
-        <el-input
-          v-model="queryParams.applyDeptIds"
-          placeholder="璇疯緭鍏ユ墽娉曞崟浣�"
-          clearable
-          style="width: 200px"
-          @keyup.enter="handleQuery"
         />
       </el-form-item>
       <el-form-item label="鎵ф硶鏃堕棿" style="width: 290px">
         <el-date-picker
           v-model="dateRange"
+          type="months"
+          format="YYYY-MM"
           value-format="YYYY-MM"
-          type="monthrange"
-          range-separator="-"
-          start-placeholder="寮�濮嬫棩鏈�"
-          end-placeholder="缁撴潫鏃ユ湡"
+          placeholder="璇烽�夋嫨璁″垝鏈堜唤"
           @change="changeDateHandler"
-        ></el-date-picker>
+        />
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="Search" @click="handleQuery"
@@ -131,9 +123,9 @@
           industryToText(scope.row.industry)
         }}</template>
       </el-table-column>
-      <el-table-column prop="inspectionMethod" label="妫�鏌ユ柟寮�" width="180">
+      <el-table-column prop="enforceType" label="妫�鏌ユ柟寮�" width="180">
         <template #default="scope">{{
-          methodToText(scope.row.inspectionMethod)
+          methodToText(scope.row.enforceType)
         }}</template>
       </el-table-column>
       <el-table-column
@@ -287,17 +279,17 @@
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="妫�鏌ユ柟寮�" prop="inspectionMethod">
+            <el-form-item label="妫�鏌ユ柟寮�" prop="enforceType">
               <el-select
-                v-model="form.inspectionMethod"
+                v-model="form.enforceType"
                 placeholder="璇烽�夋嫨妫�鏌ユ柟寮�"
                 style="width: 100%"
               >
                 <el-option
-                  v-for="(obj, index) in inspection_method"
+                  v-for="(obj, index) in enforce_type"
                   :key="index"
                   :label="obj.label"
-                  :value="obj.key"
+                  :value="obj.value"
                 />
               </el-select>
             </el-form-item>
@@ -451,7 +443,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="妫�鏌ユ柟寮忥細">{{
-              methodToText(planDetail.inspectionMethod)
+              methodToText(planDetail.enforceType)
             }}</el-form-item>
           </el-col>
           <el-col :span="12">
@@ -579,11 +571,12 @@
 import { download as downloadHttp } from "@/utils/request";
 const { proxy } = getCurrentInstance();
 const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
-const { frequency, industry_type, inspection_method } = proxy.useDictPer(
+const { frequency, industry_type, enforce_type } = proxy.useDictPer(
   "frequency",
   "industry_type",
-  "inspection_method"
+  "enforce_type"
 );
+
 const statusOptions = ref([
   { label: "宸叉挙鍥�", value: -1 },
   { label: "寰呮彁浜�", value: 0 },
@@ -609,16 +602,6 @@
 const selectOffices = ref([]);
 const officeList = ref([]);
 let checkedList = ref([]); // 閫変腑鐨勪紒涓氬垪琛�
-
-import useUserStore from "@/store/modules/user";
-import { get } from "http";
-const userStore = useUserStore();
-const userInfo = toRefs(userStore);
-
-onMounted(() => {
-  console.log("userInfo", userInfo.value);
-});
-
 const data = reactive({
   form: {
     enforceReason: "", // 璁″垝鍚嶇О
@@ -630,7 +613,7 @@
     companyId: "", // 琚鏌ュ璞d
     companyCode: "", // 缁熶竴绀句細淇$敤浠g爜
     industry: "", // 鎵�灞炶涓�
-    inspectionMethod: "", // 妫�鏌ユ柟寮�
+    enforceType: "", // 妫�鏌ユ柟寮�
     enforceContent: "", // 妫�鏌ュ唴瀹�
     planFrequency: "", // 璁″垝棰戞
     planFrequencyUnit: "1", // 璁″垝棰戞鍗曚綅
@@ -638,16 +621,17 @@
   },
   queryParams: {
     orderType: 1,
-    planNo: "",
+    companyName: "",
     enforceReason: "",
-    applyDeptNames: "",
-    value1: "",
+    applyOrgId: "",
+    planMonthStart: "", // 璁″垝寮�濮嬫湀浠�
+    planMonthEnd: "", // 璁″垝缁撴潫鏈堜唤
     pageNum: 1,
     pageSize: 10,
     total: 1,
   },
   rules: {
-    planNo: [{ required: true, message: "璁″垝缂栧彿涓嶈兘涓虹┖", trigger: "blur" }],
+    orderNo: [{ required: true, message: "璁″垝缂栧彿涓嶈兘涓虹┖", trigger: "blur" }],
     enforceReason: [
       { required: true, message: "璁″垝鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
     ],
@@ -678,7 +662,7 @@
     planMonth: [
       { required: true, message: "璁″垝鏈堜唤涓嶈兘涓虹┖", trigger: "blur" },
     ],
-    inspectionMethod: [
+    enforceType: [
       { required: true, message: "妫�鏌ユ柟寮忎笉鑳戒负绌�", trigger: "blur" },
     ],
     checkStatus: [{ required: true, message: "鐘舵�佷笉鑳戒负绌�", trigger: "blur" }],
@@ -705,8 +689,7 @@
 
 // 鏈堜唤閫夋嫨
 const changeDateHandler = (value) => {
-  data.queryParams.planMonthStart = value[0];
-  data.queryParams.planMonthEnd = value[1];
+  data.queryParams.planMonth = value.join(",");
 };
 
 // 璁″垝鏈堜唤閫夋嫨
@@ -812,7 +795,7 @@
     checkdIds: "", // 琚鏌ュ璞d
     companyName: "", // 琚鏌ュ璞″悕绉�
     companyCode: "", // 缁熶竴绀句細淇$敤浠g爜
-    inspectionMethod: "", // 妫�鏌ユ柟寮�
+    enforceType: "", // 妫�鏌ユ柟寮�
     industry: "", // 鎵�灞炶涓�
     enforceContent: "", // 妫�鏌ュ唴瀹�
     planFrequency: "", // 璁″垝棰戞
@@ -842,12 +825,15 @@
   queryRef.value.resetFields();
   dateRange.value = [];
   queryParams.value = {
-    planNo: "", // 璁″垝缂栧彿
-    enforceReason: "", // 璁″垝鍚嶇О
-    applyDeptIds: "", // 鎵ц绉戝
+    orderType: 1,
+    companyName: "",
+    enforceReason: "",
+    applyOrgId: "",
     planMonthStart: "", // 璁″垝寮�濮嬫湀浠�
     planMonthEnd: "", // 璁″垝缁撴潫鏈堜唤
-    orderType: 1,
+    pageNum: 1,
+    pageSize: 10,
+    total: 1,
   };
   handleQuery();
 }
@@ -855,6 +841,7 @@
   getManage(id).then((response) => {
     form.value = JSON.parse(JSON.stringify(response.data));
     form.value.planFrequencyUnit = form.value.planFrequencyUnit.toString();
+    form.value.enforceType = Number(form.value.enforceType);
     selectMonth.value = form.value.planMonth.split(",");
     selectOffices.value = form.value.applyDeptIds
       .split(",")
@@ -989,12 +976,12 @@
 }
 
 function industryToText(industry) {
-  return industry_type.value.find((item) => item.key === industry).label;
+  return industry_type.value.find((item) => item.key == industry).label;
 }
 
-function methodToText(inspectionMethod) {
-  return inspection_method.value.find((item) => item.key === inspectionMethod)
-    .label;
+function methodToText(enforceType) {
+  if (!enforceType) return "";
+  return enforce_type.value.find((item) => item.value == enforceType).label;
 }
 
 function frequencyToText(data) {
@@ -1008,13 +995,19 @@
 }
 
 function statusToText(status) {
-  return statusOptions.value.find((item) => item.value === status).label;
+  return statusOptions.value.find((item) => item.value == status).label;
 }
 
 function getUserOrgId() {
   getOrgId().then((response) => {
-    form.value.applyOrgId = response.data || '';
-    if (response.data) {
+    form.value.applyOrgId = Number(response.data.orgId) || '';
+    form.value.applyDeptIds = response.data.deptId || "";
+    if(form.value.applyDeptIds){
+      selectOffices.value = form.value.applyDeptIds
+      .split(",")
+      .map((item) => Number(item));
+    }
+    if (form.value.applyOrgId) {
       getOfficeList();
     }
   });

--
Gitblit v1.9.1