From 2c56eb01de07a87d025b3301efd5fcbf1d18c1af Mon Sep 17 00:00:00 2001
From: qx <1084500556@qq.com>
Date: 星期五, 23 五月 2025 17:26:02 +0800
Subject: [PATCH] qx

---
 src/api/system/menu.js            |   10 +
 src/views/system/manual/index.vue |  392 ++++++++++++++++++++++++++++++++++++-------------------
 2 files changed, 267 insertions(+), 135 deletions(-)

diff --git a/src/api/system/menu.js b/src/api/system/menu.js
index 12de330..d1a8ace 100644
--- a/src/api/system/menu.js
+++ b/src/api/system/menu.js
@@ -77,4 +77,14 @@
     method: 'get',
     params: query
   })
+}
+
+
+// 鏌ヨ鑿滃崟鍒楄〃
+export function chaxunjyjcwsxmjg(query) {
+  return request({
+    url: '/system/config/chaxunjyjcwsxmjg',
+    method: 'get',
+    params: query
+  })
 }
\ No newline at end of file
diff --git a/src/views/system/manual/index.vue b/src/views/system/manual/index.vue
index a276d31..1dda597 100644
--- a/src/views/system/manual/index.vue
+++ b/src/views/system/manual/index.vue
@@ -1,74 +1,99 @@
 <template>
-    <div class="app-container">
-      <div>
-        <div>
-        <h2>鎵嬪姩鍚屾妫�楠屾鏌ョ粨鏋�</h2>
+  <div class="app-container">
+    <el-radio-group v-model="tjStatus" @input="radioChange" style="margin-left: 20px">
+      <el-radio-button label="0">鍚屾妫�楠岀粨鏋�</el-radio-button>
+      <el-radio-button label="1">鍚屾妫�鏌ョ粨鏋�</el-radio-button>
+      <el-radio-button label="2">娣诲姞閲囨牱鏁版嵁</el-radio-button>
+    </el-radio-group>
+    <div class="cent">
+      <div v-if="tjStatus == 0">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
+          <el-form-item label="浣撴鍙�" prop="tjh">
+            <el-input v-model="queryParams.tjh" placeholder="璇疯緭鍏ヤ綋妫�鍙�" clearable />
+          </el-form-item>
+          <el-form-item label="浣撴绫诲瀷" prop="tblx">
+            <el-select v-model="queryParams.tblx" :popper-append-to-body="false" filterable placeholder="璇烽�夋嫨浣撴绫诲瀷"
+              clearable @change="idFn1">
+              <el-option v-for="item in CompanyList" :key="item.tblx" :label="item.tblx" :value="item.tblxId"
+                disabled />
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" size="mini" @click="handleQuery">鏌ヨ</el-button>
+            <el-button type="primary" size="mini" @click="handleManual">鎵嬪伐鍚屾</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+          </el-form-item>
+        </el-form>
+
+        <el-row :gutter="20">
+          <el-col :span="11" :xs="24">
+            <el-table :data="groupingList" border height="484" v-loading="loading" @row-click="handleChange">
+              <el-table-column :prop="item" :label="item" v-for="(item, index) in table" :key="index"
+                :width="columnWidth(item)" align="center">
+              </el-table-column>
+            </el-table>
+            <!-- <el-table border v-loading="loading" :data="groupingList" height="350" @selection-change="handleChange">
+              <el-table-column type="selection" width="40px" align="center" />
+              <el-table-column label="搴忓彿" align="center" prop="newID" width="50px" />
+              <el-table-column label="鍒嗙粍鍚嶇О" align="center" prop="groupingName" />
+              <el-table-column label="鎬у埆" align="center" prop="sex">
+                <template slot-scope="scope">
+                  <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" />
+                </template>
+</el-table-column>
+<el-table-column label="濂楅鍚嶇О" align="center" prop="pacName" />
+<el-table-column label="缁撶畻鏂瑰紡" align="center" prop="payType">
+  <template slot-scope="scope">
+                  <dict-tag :options="dict.type.reservation_pay_type" :value="scope.row.payType" />
+                </template>
+</el-table-column>
+<el-table-column label="鎶樻墸" align="center" prop="limits" />
+<el-table-column label="鍘熶环" align="center" prop="price" />
+<el-table-column label="搴旀敹" align="center" prop="ysPrice" />
+</el-table> -->
+          </el-col>
+          <el-col :span="11" :xs="24">
+            <el-table :data="xxList" border height="484" v-loading="loading" @row-click="handleChange">
+              <el-table-column :prop="item" :label="item" v-for="(item, index) in xxtable" :key="index"
+                :width="columnWidths(item)" align="center">
+              </el-table-column>
+            </el-table>
+          </el-col>
+        </el-row>
       </div>
-      <el-form
-        :model="queryParams"
-        ref="queryForm"
-        size="small"
-        :inline="true"
-        label-width="68px"
-      >
-        <el-form-item label="浣撴鍙�" prop="tjh">
-          <el-input
-            v-model="queryParams.tjh"
-            placeholder="璇疯緭鍏ヤ綋妫�鍙�"
-            clearable
-          />
-        </el-form-item>
-        <el-form-item label="浣撴绫诲瀷" prop="tblx">
-        <el-select
-          v-model="queryParams.tblx"
-          :popper-append-to-body="false"
-          filterable
-          placeholder="璇烽�夋嫨浣撴绫诲瀷"
-          clearable
-          @change="idFn1"
-        >
-          <el-option
-            v-for="item in CompanyList"
-            :key="item.tblx"
-            :label="item.tblx"
-            :value="item.tblxId"
-          />
-        </el-select>
-      </el-form-item>
-        <el-form-item>
-          <el-button
-            type="primary"
-            size="mini"
-            @click="handleManual"
-            >鎵嬪伐鍚屾</el-button
-          >
-          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
-            >閲嶇疆</el-button
-          >
-        </el-form-item>
-      </el-form>
+
+      <div v-if="tjStatus == 1">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
+          <el-form-item label="浣撴鍙�" prop="tjh">
+            <el-input v-model="queryParams.tjh" placeholder="璇疯緭鍏ヤ綋妫�鍙�" clearable />
+          </el-form-item>
+          <el-form-item label="浣撴绫诲瀷" prop="tblx">
+            <el-select v-model="queryParams.tblx" :popper-append-to-body="false" filterable placeholder="璇烽�夋嫨浣撴绫诲瀷"
+              clearable @change="idFn1">
+              <el-option v-for="item in CompanyList" :key="item.tblx" :label="item.tblx" :value="item.tblxId"
+                disabled />
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" size="mini" @click="handleQuery">鏌ヨ</el-button>
+            <el-button type="primary" size="mini" @click="handleManual">鎵嬪伐鍚屾</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+          </el-form-item>
+        </el-form>
+        <el-table :data="groupingList" border height="484" v-loading="loading">
+          <el-table-column :prop="item" :label="item" v-for="(item, index) in table" :key="index"
+            :width="columnWidth(item)" align="center">
+          </el-table-column>
+        </el-table>
       </div>
 
 
-      <div>
-        <div>
-        <h2>鎵嬪姩娣诲姞閲囨牱鏁版嵁</h2>
-      </div>
-      <el-form
-        :model="forms"
-        ref="queryForm"
-        size="small"
-        :inline="true"
-        label-width="68px"
-      >
-        <el-form-item label="浣撴鍙�" prop="tjNum">
-          <el-input
-            v-model="forms.tjNum"
-            placeholder="璇疯緭鍏ヤ綋妫�鍙�"
-            clearable
-          />
-        </el-form-item>
-        <!-- <el-form-item label="浣撴绫诲瀷" prop="tblx">
+      <div v-if="tjStatus == 2">
+        <el-form :model="forms" ref="queryForm" size="small" :inline="true" label-width="68px">
+          <el-form-item label="浣撴鍙�" prop="tjNum">
+            <el-input v-model="forms.tjNum" placeholder="璇疯緭鍏ヤ綋妫�鍙�" clearable />
+          </el-form-item>
+          <!-- <el-form-item label="浣撴绫诲瀷" prop="tblx">
         <el-select
           v-model="forms.tblx"
           :popper-append-to-body="false"
@@ -85,94 +110,191 @@
           />
         </el-select>
       </el-form-item> -->
-        <el-form-item>
-          <el-button
-            type="primary"
-            size="mini"
-            @click="handleManuals"
-            >鎵嬪伐鍚屾</el-button
-          >
-          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
-            >閲嶇疆</el-button
-          >
-        </el-form-item>
-      </el-form>
+          <el-form-item>
+            <el-button type="primary" size="mini" @click="handleManuals">鎵嬪伐鍚屾</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+          </el-form-item>
+        </el-form>
       </div>
-      
+
     </div>
-  </template>
-  
-  <script>
-import { shoudongtbjyjcwsxmjg,addCaiYangDengJi} from "@/api/system/menu";
-  export default {
-  
-    name: "Manual",
-    dicts: [
-      "dict_user_national",
-   
-    ],
-    data() {
-        return{
-            queryParams: {
+  </div>
+</template>
+
+<script>
+import { shoudongtbjyjcwsxmjg, addCaiYangDengJi, chaxunjyjcwsxmjg } from "@/api/system/menu";
+export default {
+  name: "Manual",
+  dicts: [
+    "dict_user_national",
+  ],
+  data() {
+    return {
+      loading: false,
+      tjStatus: 0,
+      groupingList: [],
+      xxList: [],
+      table: [],
+      xxtable: [],
+      queryParams: {
         tjh: null,
-        tblx: null,
+        tblx: "",
       },
       forms: {
         tjNum: null,
         tblx: null,
       },
-      CompanyList:[
+      CompanyList: [
         {
-            tblx:"妫�楠�",
-            tblxId:"jy"
-            
+          tblx: "妫�楠�",
+          tblxId: "jy"
         },
         {
-            tblx:"妫�鏌�",
-            tblxId:"jc"
-            
+          tblx: "妫�鏌�",
+          tblxId: "jc"
         },
         {
-            tblx:"妫�楠屽拰妫�鏌�",
-            tblxId:"jyjc"
-            
+          tblx: "妫�楠屽拰妫�鏌�",
+          tblxId: "jyjc"
         }
       ]
-        }
-    },
-    created() {
+    }
+  },
+  created() {
     //   this.handleManual();
+    if(this.tjStatus == 0){
+ this.queryParams.tblx = "jy"
+    }
+  },
+  methods: {
+    radioChange(value) {
+      if (value == 0) {
+        this.queryParams.tblx = "jy"
+      } else if (value == 1) {
+        this.queryParams.tblx = "jc"
+      }
+      this.resetQuery()
     },
-    methods: {
-        handleManual() {
-            shoudongtbjyjcwsxmjg(this.queryParams).then(res => {
-                this.$modal.msgSuccess("鍚屾鎴愬姛");
-            })
-        },
-        handleManuals() {
-          addCaiYangDengJi(this.forms).then(res => {
-                this.$modal.msgSuccess("鎵嬪姩娣诲姞閲囨牱鏁版嵁鍚屾鎴愬姛");
-            })
-        },
-        resetQuery() {
-            this.resetForm("queryForm");
-},
+    handleManual() {
+      shoudongtbjyjcwsxmjg(this.queryParams).then(res => {
+        this.$modal.msgSuccess("鍚屾鎴愬姛");
+      })
+    },
+    handleManuals() {
+      addCaiYangDengJi(this.forms).then(res => {
+        this.$modal.msgSuccess("鎵嬪姩娣诲姞閲囨牱鏁版嵁鍚屾鎴愬姛");
+      })
+    },
+    resetQuery() {
+      this.queryParams.tjh = null
+      this.groupingList = [];
+      this.table = [];
+      this.xxList = [];
+      this.xxtable = [];
+    },
 
-idFn1(value) {
+    idFn1(value) {
       if (value) {
-       console.log(value)
+        console.log(value)
       }
     },
-    
+
+
+    handleQuery() {
+      this.loading = true
+      chaxunjyjcwsxmjg(this.queryParams).then(res => {
+        this.groupingList = res.data
+        this.loading = false
+        var array = []
+        for (var i = 0; i < this.groupingList.length; i++) {
+          array = Object.keys(this.groupingList[i]);
+          let reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/
+
+          array.forEach((element, index) => {
+            if (reg.test(element)) {
+              this.table.push(element)
+            }
+          });
+
+          this.table.sort(function (a, b) {
+            const numA = parseInt(a.match(/\d+/)[0], 10);
+            const numB = parseInt(b.match(/\d+/)[0], 10);
+            return numA - numB;
+          });
+          return i + 1;
+        }
+      })
+    },
+
+    columnWidth(item) {
+      const arr = this.groupingList.map((x) => x[item]);
+      if (arr.length > 0) {
+        arr.push(item);
+        return this.getMaxLength(arr) + 20 + "px";
+      }
+      return 20 + "px";
+    },
+
+    columnWidths(item) {
+      const arr = this.groupingList.map((x) => x[item]);
+      if (arr.length > 0) {
+        arr.push(item);
+        return this.getMaxLength(arr) + 100 + "px";
+      }
+      return 100 + "px";
+    },
+    getMaxLength(arr) {
+      return arr.reduce((acc, item) => {
+        if (item) {
+          const calcLen = this.getTextWidth(item);
+          if (acc < calcLen) {
+            acc = calcLen;
+          }
+        }
+        return acc;
+      }, 0);
+    },
+    getTextWidth(str) {
+      let width = 0;
+      const html = document.createElement("span");
+      html.innerText = str;
+      html.className = "getTextWidth";
+      document.querySelector("body").appendChild(html);
+      width = document.querySelector(".getTextWidth").offsetWidth;
+      document.querySelector(".getTextWidth").remove();
+      return width;
+    },
+    handleChange(rowData, columnName) {
+      this.xxList = rowData.jybgd
+      var array = []
+      for (var i = 0; i < this.xxList.length; i++) {
+        array = Object.keys(this.xxList[i]);
+        let reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/
+        array.forEach((element, index) => {
+          if (reg.test(element)) {
+            this.xxtable.push(element)
+          }
+        });
+        this.xxtable.sort(function (a, b) {
+          const numA = parseInt(a.match(/\d+/)[0], 10);
+          const numB = parseInt(b.match(/\d+/)[0], 10);
+          return numA - numB;
+        });
+        return i + 1;
+      }
     }
-  };
-  </script>
-  <style scoped>
-    .el-select-dropdown{
-        position: absolute !important;
-        top: 30px !important;
-        left: 0px !important;
-    }
- 
-  </style>
-  
\ No newline at end of file
+
+  }
+};
+</script>
+<style scoped>
+.cent {
+  margin-top: 20px;
+}
+
+.el-select-dropdown {
+  position: absolute !important;
+  top: 30px !important;
+  left: 0px !important;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.8.0