From 4ebc73199bcd4b23739a2e1d22c372e8081310c5 Mon Sep 17 00:00:00 2001
From: 王恒 <318726284@qq.com>
Date: 星期五, 18 七月 2025 17:55:29 +0800
Subject: [PATCH] '完善筛选项'

---
 src/views/system/manage/index.vue |  248 +++++++++++++++++++++++++++++++++----------------
 1 files changed, 168 insertions(+), 80 deletions(-)

diff --git a/src/views/system/manage/index.vue b/src/views/system/manage/index.vue
index 6223798..95ef6f9 100644
--- a/src/views/system/manage/index.vue
+++ b/src/views/system/manage/index.vue
@@ -10,13 +10,13 @@
         <el-input v-model="queryParams.planNo" placeholder="璇疯緭鍏ヨ鍒掔紪鍙�" clearable style="width: 200px"
           @keyup.enter="handleQuery" />
       </el-form-item>
-      <el-form-item label="鎵ф硶鍗曚綅" prop="companyUser">
-        <el-input v-model="queryParams.companyUser" placeholder="璇疯緭鍏ユ墽娉曞崟浣�" clearable style="width: 200px"
+      <el-form-item label="鎵ф硶鍗曚綅" prop="executiveSection">
+        <el-input v-model="queryParams.executiveSection" placeholder="璇疯緭鍏ユ墽娉曞崟浣�" clearable style="width: 200px"
           @keyup.enter="handleQuery" />
       </el-form-item>
       <el-form-item label="鎵ф硶鏃堕棿" style="width: 290px">
-        <el-date-picker v-model="dateRange" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
-          start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"></el-date-picker>
+        <el-date-picker v-model="dateRange" value-format="YYYY-MM" type="monthrange" range-separator="-"
+          start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" @change="changeDateHandler"></el-date-picker>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
@@ -29,21 +29,24 @@
         <el-button type="primary" plain icon="Plus" @click="handleAdd()" v-hasPermi="['system:dept:add']">鏂板</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button type="info" plain icon="Upload" @click="handleImport"
+        <el-button type="warning" plain icon="Upload" @click="handleImport"
           v-hasPermi="['system:user:import']">瀵煎叆</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button type="primary" plain icon="Download" @click="downLoadCode">瀵煎嚭</el-button>
+        <el-button type="success" plain icon="Download" @click="downLoadCode">瀵煎嚭</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button type="primary" plain icon="Download" @click="downLoadCode">鍙戣捣缁煎悎鏌ヤ竴娆�</el-button>
+        <el-button type="primary" plain icon="View" @click="downLoadCode">鍙戣捣缁煎悎鏌ヤ竴娆�</el-button>
       </el-col>
     </el-row>
 
+    <!-- @selection-change="handleSelectionChange" -->
     <el-table v-if="refreshTable" v-loading="loading" :data="deptList" row-key="companyId"
-      :default-expand-all="isExpandAll" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
-      @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
+      :default-expand-all="isExpandAll" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
+      <!-- <el-table-column type="selection" width="55" align="center" /> -->
+      <el-table-column prop="planNo" label="搴忓彿" width="55">
+        <template #default="scope">{{ scope.$index + 1 }}</template>
+      </el-table-column>
       <el-table-column prop="planNo" label="璁″垝缂栧彿" width="180"></el-table-column>
       <el-table-column prop="planName" label="璁″垝鍚嶇О" width="180"></el-table-column>
       <el-table-column prop="makeOrgName" label="鍒跺畾鏈烘瀯" width="180"></el-table-column>
@@ -56,9 +59,9 @@
       <el-table-column prop="planFrequency" label="璁″垝棰戞" width="180"></el-table-column>
       <el-table-column prop="planMonth" label="璁″垝鏈堜唤" width="180"></el-table-column>
       <el-table-column prop="planStatus" label="鐘舵��" width="180"></el-table-column>
-      <el-table-column label="鎿嶄綔" align="center" fixed="right" class-name="small-padding fixed-width" width="240">
+      <el-table-column label="鎿嶄綔" align="center" fixed="right" class-name="small-padding fixed-width" width="180">
         <template #default="scope">
-          <el-link type="info" @click="createQrcodeHandler(scope.row)">鏌ョ湅</el-link>
+          <el-link type="info" @click="handleView(scope.row)">鏌ョ湅</el-link>
           <el-divider direction="vertical" />
           <el-link type="primary" @click="handleAdd(scope.row)">缂栬緫</el-link>
           <el-divider direction="vertical" />
@@ -74,32 +77,44 @@
       <el-form ref="deptRef" :model="form" :rules="rules" label-width="140px">
         <el-row :gutter="20">
           <el-col :span="12">
+            <el-form-item label="璁″垝缂栧彿" prop="planNo">
+              <el-input v-model="form.planNo" placeholder="璇疯緭鍏ヨ鍒掑悕绉�" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
             <el-form-item label="璁″垝鍚嶇О" prop="planName">
               <el-input v-model="form.planName" placeholder="璇疯緭鍏ヨ鍒掑悕绉�" />
             </el-form-item>
           </el-col>
+        </el-row>
+        <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="鍒跺畾璁″垝鐨勬満鏋�" prop="makeOrgName">
               <el-input v-model="form.makeOrgName" placeholder="璇疯緭鍏ュ埗瀹氳鍒掔殑鏈烘瀯" />
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="琚鏌ョ殑瀵硅薄" prop="checkdObject">
               <el-input v-model="form.checkdObject" placeholder="璇疯緭鍏ヨ妫�鏌ョ殑瀵硅薄" />
             </el-form-item>
           </el-col>
+        </el-row>
+        <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="缁熶竴绀句細淇$敤浠g爜" prop="unifiedSocialCreditCode">
               <el-input v-model="form.unifiedSocialCreditCode" placeholder="璇疯緭鍏ョ粺涓�绀句細淇$敤浠g爜" />
             </el-form-item>
           </el-col>
+          <el-col :span="12">
+            <el-form-item label="鎵�灞炶涓�" prop="industry">
+              <el-input v-model="form.industry" placeholder="璇疯緭鍏ユ墍灞炶涓�" />
+            </el-form-item>
+          </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="琛屼笟" prop="industry">
-              <el-input v-model="form.industry" placeholder="璇疯緭鍏ヨ涓�" />
+            <el-form-item label="妫�鏌ユ柟寮�" prop="executiveSection">
+              <el-input v-model="form.checkdType" placeholder="璇疯緭鍏ユ鏌ユ柟寮�" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -117,19 +132,24 @@
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
+            <el-form-item label="璁″垝鏈堜唤" prop="planMonth">
+              <el-date-picker v-model="form.planMonth" type="month" format="YYYY-MM" value-format="YYYY-MM"
+                placeholder="璇烽�夋嫨璁″垝鏈堜唤" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
             <el-form-item label="璁″垝棰戠巼" prop="planFrequency">
               <el-input v-model="form.planFrequency" placeholder="璇疯緭鍏ヨ鍒掗鐜�" />
             </el-form-item>
           </el-col>
+        </el-row>
+        <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="璁″垝鏈堜唤" prop="planMonth">
-              <el-input v-model="form.planMonth" placeholder="璇疯緭鍏ヨ鍒掓湀浠�" />
+            <el-form-item label="鐘舵��" prop="planStatus">
+              <el-input v-model="form.planStatus" placeholder="璇疯緭鍏ョ姸鎬�" />
             </el-form-item>
           </el-col>
         </el-row>
-        <!-- <el-form-item label="鐘舵��">
-          <el-switch v-model="form.companyStatus" :active-value="0" :inactive-value="1"></el-switch>
-        </el-form-item> -->
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -138,9 +158,6 @@
         </div>
       </template>
     </el-dialog>
-    <exportRecord ref="exportRecordCom" :recordRow="recordRow" @uploadList="getList"></exportRecord>
-    <judgeCom ref="judgeComRef" @upload="getList"></judgeCom>
-    <createQrcode ref="createQrcodeRef"></createQrcode>
 
     <!-- 璁″垝瀵煎叆瀵硅瘽妗� -->
     <el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body>
@@ -165,18 +182,62 @@
         </div>
       </template>
     </el-dialog>
+
+    <!-- 璁″垝璇︾粏 -->
+    <el-dialog title="璁″垝璇︽儏" v-model="planOpen" width="700px" append-to-body>
+      <el-form label-width="140px">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="璁″垝缂栧彿锛�">{{ planDetail.planNo }}</el-form-item>
+            <el-form-item label="璁″垝鍚嶇О锛�">{{ planDetail.planName }}</el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鍒跺畾璁″垝鐨勬満鏋勶細">{{ planDetail.makeOrgName }}</el-form-item>
+            <el-form-item label="琚鏌ョ殑瀵硅薄锛�">{{ planDetail.checkdObject }}</el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="缁熶竴绀句細淇$敤浠g爜锛�">{{ planDetail.unifiedSocialCreditCode }}</el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鎵�灞炶涓氾細">{{ planDetail.industry }}</el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="妫�鏌ユ柟寮忥細">{{ planDetail.checkdType }}</el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鎵ц绉戝锛�">{{ planDetail.executiveSection }}</el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="妫�鏌ュ唴瀹癸細">{{ planDetail.checkdContent }}</el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="璁″垝鏈堜唤锛�">{{ planDetail.planMonth }}</el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="璁″垝棰戠巼锛�">{{ planDetail.planFrequency }}</el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鐘舵�侊細">{{ planDetail.planStatus }}</el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button @click="planOpen = false; planDetail = {}">鍏� 闂�</el-button>
+        </div>
+      </template>
+    </el-dialog>
   </div>
 </template>
 
 <script setup name="Dept">
 import { getToken } from "@/utils/auth";
-import { listCompany, addCompany, updStatus, delCompany, updateCompany, getCompany } from "@/api/system/company/company";
-import { listManage } from "@/api/system/manage";
+import { listManage, addManage, getManage, updateManage, delManage, exportTemplate, exportManage } from "@/api/system/manage";
+
 import { computed } from "vue";
-import { judgeStatus, companyStatus, scopeList } from '@/utils/mapList/index.ts'
 import useSettingsStore from "@/store/modules/settings";
-import { download } from '@/utils/request'; // 涓嬭浇鏂囦欢
-const thcolor = computed(() => useSettingsStore().theme);
+// import { download } from '@/utils/request'; // 涓嬭浇鏂囦欢
+import { download as downloadHttp } from '@/utils/request'
 const { proxy } = getCurrentInstance();
 const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
 const deptList = ref([]);
@@ -184,36 +245,24 @@
 const loading = ref(true);
 const showSearch = ref(true);
 const title = ref("");
-const deptOptions = ref([]);
 const isExpandAll = ref(false);
 const refreshTable = ref(true);
-const exporttem = ref()
-const exportRecordCom = ref()
-const judgeComRef = ref()
-const createQrcodeRef = ref()
-const options = reactive({
-  companyStatus: [
-    {
-      label: '姝e父',
-      value: 0
-    },
-    {
-      label: '绂佺敤',
-      value: 1
-    },
-  ],
-})
+const planOpen = ref(false);
+const planDetail = ref({});
+const dateRange = ref([]);
 const data = reactive({
   form: {},
   queryParams: {
     planNo: '',
     planName: '',
+    executiveSection: '',
     value1: '',
     pageNum: 1,
     pageSize: 10,
     total: 1
   },
   rules: {
+    planNo: [{ required: true, message: "璁″垝缂栧彿涓嶈兘涓虹┖", trigger: "blur" }],
     planName: [{ required: true, message: "璁″垝鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }],
     makeOrgName: [{ required: true, message: "鍒跺畾璁″垝鐨勬満鏋勪笉鑳戒负绌�", trigger: "blur" }],
     checkdObject: [{ required: true, message: "琚鏌ュ璞′笉鑳戒负绌�", trigger: "blur" }],
@@ -223,8 +272,16 @@
     executiveSection: [{ required: true, message: "鎵ц绉戝涓嶈兘涓虹┖", trigger: "blur" }],
     planFrequency: [{ required: true, message: "璁″垝棰戞涓嶈兘涓虹┖", trigger: "blur" }],
     planMonth: [{ required: true, message: "璁″垝鏈堜唤涓嶈兘涓虹┖", trigger: "blur" }],
+    checkdType: [{ required: true, message: "妫�鏌ユ柟寮忎笉鑳戒负绌�", trigger: "blur" }],
+    planStatus: [{ required: true, message: "鐘舵�佷笉鑳戒负绌�", trigger: "blur" }],
   },
 });
+
+// 鏈堜唤閫夋嫨
+const changeDateHandler = (value) => {
+  data.queryParams.planMonthStart = value[0]
+  data.queryParams.planMonthEnd = value[1]
+}
 
 /*** 璁″垝瀵煎叆鍙傛暟 */
 const upload = reactive({
@@ -239,12 +296,24 @@
   // 璁剧疆涓婁紶鐨勮姹傚ご閮�
   headers: { Authorization: "Bearer " + getToken() },
   // 涓婁紶鐨勫湴鍧�
-  url: import.meta.env.VITE_APP_BASE_API + "/system/user/importData",
+  url: import.meta.env.VITE_APP_BASE_API + "/system/manage/importData",
 });
-
+/**鏂囦欢涓婁紶涓鐞� */
+const handleFileUploadProgress = (event, file, fileList) => {
+  upload.isUploading = true;
+};
+/** 鏂囦欢涓婁紶鎴愬姛澶勭悊 */
+const handleFileSuccess = (response, file, fileList) => {
+  upload.open = false;
+  upload.isUploading = false;
+  proxy.$refs["uploadRef"].handleRemove(file);
+  proxy.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "瀵煎叆缁撴灉", {
+    dangerouslyUseHTMLString: true,
+  });
+  getList();
+};
 const { queryParams, form, rules } = toRefs(data);
-const recordRow = ref([])
-/** 鏌ヨ浼佷笟鍒楄〃 */
+/** 鏌ヨ璁″垝鍒楄〃 */
 function getList() {
   loading.value = true;
   listManage(queryParams.value).then((response) => {
@@ -262,6 +331,7 @@
 /** 琛ㄥ崟閲嶇疆 */
 function reset() {
   form.value = {
+    planNo: '', // 璁″垝缂栧彿
     planName: '', // 璁″垝鍚嶇О
     makeOrgName: '', // 鍒跺畾鏈烘瀯
     checkdObject: '', // 琚鏌ュ璞�
@@ -271,6 +341,8 @@
     executiveSection: '', // 鎵ц绉戝
     planFrequency: '', // 璁″垝棰戞
     planMonth: '', // 璁″垝鏈堜唤
+    checkdType: '', // 妫�鏌ユ柟寮�
+    planStatus: '', // 鐘舵��
   };
   proxy.resetForm("deptRef");
 }
@@ -282,25 +354,39 @@
 /** 閲嶇疆鎸夐挳鎿嶄綔 */
 function resetQuery() {
   queryRef.value.resetFields();
+  dateRange.value = [];
+  queryParams.value = {
+    planNo: '', // 璁″垝缂栧彿
+    planName: '', // 璁″垝鍚嶇О
+    executiveSection: '', // 鎵ф硶鍗曚綅
+    planMonthStart: '', // 璁″垝寮�濮嬫湀浠�
+    planMonthEnd: '', // 璁″垝缁撴潫鏈堜唤
+  }
   handleQuery();
 }
 function getDetails(id) {
-  getCompany(id).then((response) => {
+  getManage(id).then((response) => {
     form.value = response.data;
     open.value = true;
-    // title.value = "鏌ョ湅浼佷笟";
   });
 }
+
+/** 璇︾粏鎸夐挳鎿嶄綔 */
+function handleView(row) {
+  planOpen.value = true;
+  planDetail.value = row
+  planOpen.value = true;
+}
+
 /** 鏂板鎸夐挳鎿嶄綔 */
 function handleAdd(row) {
   if (row) {
-    // form.value = row
     title.value = "缂栬緫璁″垝";
-    getDetails(row.companyId)
+    getDetails(row.id)
   } else {
-    form.value = {
-      companyStatus: 0
-    }
+    // form.value = {
+    //   companyStatus: 0
+    // }
     title.value = "娣诲姞璁″垝";
     open.value = true;
   }
@@ -310,14 +396,14 @@
 function submitForm() {
   proxy.$refs["deptRef"].validate((valid) => {
     if (valid) {
-      if (form.value.companyId != undefined) {
-        updateCompany(form.value).then((response) => {
+      if (form.value.id != undefined) {
+        updateManage(form.value).then((response) => {
           proxy.$modal.msgSuccess("淇敼鎴愬姛");
           open.value = false;
           getList();
         });
       } else {
-        addCompany(form.value).then((response) => {
+        addManage(form.value).then((response) => {
           proxy.$modal.msgSuccess("鏂板鎴愬姛");
           open.value = false;
           getList();
@@ -331,7 +417,7 @@
   proxy.$modal
     .confirm('鏄惁纭鍒犻櫎璇ユ暟鎹�?')
     .then(function () {
-      return delCompany({ delId: row.companyId });
+      return delManage(row.id);
     })
     .then(() => {
       getList();
@@ -351,30 +437,32 @@
   proxy.$refs["uploadRef"].submit();
 }
 
-// 淇敼浼佷笟淇℃伅
-function changeCompanyNews(row, event) {
-  if (loading.value) {
-    return
-  }
-  updStatus(row).then(val => {
-    proxy.$modal.msgSuccess("淇敼鎴愬姛");
-    getList();
+/** 涓嬭浇妯℃澘鎿嶄綔 */
+function importTemplate() {
+  exportTemplate().then(val => {
+    downloadHttp('/tool/file/download', {
+      fileName: val.msg,
+      delete: true
+    }, "璁″垝淇℃伅妯℃澘.xlsx")
   })
 }
 
-function createQrcodeHandler(row) {
-  createQrcodeRef.value.openDialog(row)
-}
-let valueArr = []
+
+// let valueArr = []
 function downLoadCode() {
-  download('/system/company/downloadQrcode', {
-    companyIds: valueArr.join()
-  }, "浼佷笟鍥剧墖.zip")
+  exportManage().then(val => {
+    downloadHttp('/tool/file/download', {
+      fileName: val.msg,
+      delete: true
+    }, "璁″垝淇℃伅.xlsx")
+  })
 }
-function handleSelectionChange(e) {
-  console.log(e)
-  valueArr = e.map(item => item.companyId)
-}
+
+
+// function handleSelectionChange(e) {
+//   valueArr = e.map(item => item.id)
+// }
+
 getList();
 function selectableFun(e) {
   console.log(e)

--
Gitblit v1.9.1