Browse Source

行业实体分类修改行业下拉框

littleblue55 1 month ago
parent
commit
ef8cc7a3b0
1 changed files with 171 additions and 83 deletions
  1. 171 83
      src/views/industry/industry/index.vue

+ 171 - 83
src/views/industry/industry/index.vue

@@ -1,7 +1,14 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="行业大类" prop="industryName">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
+      <!-- <el-form-item label="行业大类" prop="industryName">
         <el-input
           v-model="queryParams.industryName"
           placeholder="请输入行业大类"
@@ -16,46 +23,67 @@
           clearable
           @keyup.enter.native="handleQuery"
         />
+      </el-form-item> -->
+
+      <el-form-item label="行业大类" prop="code">
+        <el-select v-model="queryParams.code" style="width: 300px" filterable clearable>
+          <el-option
+            v-for="item in industryData"
+            :key="item.key"
+            :label="item.value"
+            :value="item.key"
+          >
+          </el-option>
+        </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
       </el-form-item>
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-     <el-col :span="1.5">
-       <el-button
-         type="primary"
-         plain
-         icon="el-icon-plus"
-         size="mini"
-         @click="handleAdd"
-         v-hasPermi="['industry:industry:add']"
-       >新增</el-button>
-     </el-col>
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="success"-->
-<!--          plain-->
-<!--          icon="el-icon-edit"-->
-<!--          size="mini"-->
-<!--          :disabled="single"-->
-<!--          @click="handleUpdate"-->
-<!--          v-hasPermi="['industry:industry:edit']"-->
-<!--        >修改</el-button>-->
-<!--      </el-col>-->
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="danger"-->
-<!--          plain-->
-<!--          icon="el-icon-delete"-->
-<!--          size="mini"-->
-<!--          :disabled="multiple"-->
-<!--          @click="handleDelete"-->
-<!--          v-hasPermi="['industry:industry:remove']"-->
-<!--        >删除</el-button>-->
-<!--      </el-col>-->
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['industry:industry:add']"
+          >新增</el-button
+        >
+      </el-col>
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="success"-->
+      <!--          plain-->
+      <!--          icon="el-icon-edit"-->
+      <!--          size="mini"-->
+      <!--          :disabled="single"-->
+      <!--          @click="handleUpdate"-->
+      <!--          v-hasPermi="['industry:industry:edit']"-->
+      <!--        >修改</el-button>-->
+      <!--      </el-col>-->
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-button-->
+      <!--          type="danger"-->
+      <!--          plain-->
+      <!--          icon="el-icon-delete"-->
+      <!--          size="mini"-->
+      <!--          :disabled="multiple"-->
+      <!--          @click="handleDelete"-->
+      <!--          v-hasPermi="['industry:industry:remove']"-->
+      <!--        >删除</el-button>-->
+      <!--      </el-col>-->
       <el-col :span="1.5">
         <el-button
           type="warning"
@@ -64,38 +92,52 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['industry:industry:export']"
-        >导出</el-button>
+          >导出</el-button
+        >
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="industryList" @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="industryList"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="序号" align="center" prop="id" />
       <el-table-column label="行业大类" align="center" prop="industryName" />
       <el-table-column label="行业代码" align="center" prop="code" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-       <template slot-scope="scope">
-         <el-button
-           size="mini"
-           type="text"
-           icon="el-icon-edit"
-           @click="handleUpdate(scope.row)"
-           v-hasPermi="['base_data_year:base_data_year:edit']"
-         >修改</el-button>
-         <el-button
-           size="mini"
-           type="text"
-           icon="el-icon-delete"
-           @click="handleDelete(scope.row)"
-           v-hasPermi="['industry:industry:remove']"
-         >删除</el-button>
-       </template>
-     </el-table-column>
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['base_data_year:base_data_year:edit']"
+            >修改</el-button
+          >
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['industry:industry:remove']"
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
     </el-table>
 
     <pagination
-      v-show="total>0"
+      v-show="total > 0"
       :total="total"
       :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
@@ -121,7 +163,14 @@
 </template>
 
 <script>
-import { listIndustry, getIndustry, delIndustry, addIndustry, updateIndustry } from "@/api/industry/industry";
+import {
+  listAllIndustry,
+  listIndustry,
+  getIndustry,
+  delIndustry,
+  addIndustry,
+  updateIndustry,
+} from "@/api/industry/industry";
 
 export default {
   name: "Industry",
@@ -150,31 +199,62 @@ export default {
         pageNum: 1,
         pageSize: 10,
         industryName: null,
-        code: null
+        code: null,
       },
       // 表单参数
       form: {},
       // 表单校验
       rules: {
         industryName: [
-          { required: true, message: "行业大类不能为空", trigger: "blur" }
+          { required: true, message: "行业大类不能为空", trigger: "blur" },
         ],
-      }
+      },
+      industryData: [],
     };
   },
   created() {
     this.getList();
+    this.getIndustryAll();
   },
   methods: {
     /** 查询industry列表 */
     getList() {
       this.loading = true;
-      listIndustry(this.queryParams).then(response => {
+      listIndustry(this.queryParams).then((response) => {
         this.industryList = response.rows;
         this.total = response.total;
         this.loading = false;
       });
     },
+    getIndustryAll() {
+      listAllIndustry().then((response) => {
+        let arr = this.sortByCode(response.rows);
+        this.industryData = arr.map((item) => ({
+          key: item.code,
+          value: item.code + item.industryName,
+        }));
+      });
+    },
+    sortByCode(arr) {
+      return arr.sort((a, b) => {
+        const numA = Number(a.code);
+        const numB = Number(b.code);
+
+        // 检查是否为有效数字
+        const isANum = !isNaN(numA);
+        const isBNum = !isNaN(numB);
+
+        if (isANum && isBNum) {
+          return numA - numB; // 都是数字,按数字升序排序
+        } else if (isANum) {
+          return -1; // a 是数字,放在前面
+        } else if (isBNum) {
+          return 1; // b 是数字,放在前面
+        } else {
+          return 0; // 都不是数字,保持原顺序
+        }
+      });
+    },
     // 取消按钮
     cancel() {
       this.open = false;
@@ -185,7 +265,7 @@ export default {
       this.form = {
         id: null,
         industryName: null,
-        code: null
+        code: null,
       };
       this.resetForm("form");
     },
@@ -201,9 +281,9 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
+      this.ids = selection.map((item) => item.id);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
     },
     /** 新增按钮操作 */
     handleAdd() {
@@ -214,8 +294,8 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const id = row.id || this.ids
-      getIndustry(id).then(response => {
+      const id = row.id || this.ids;
+      getIndustry(id).then((response) => {
         this.form = response.data;
         this.open = true;
         this.title = "修改行业实体数据";
@@ -223,16 +303,16 @@ export default {
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.id != null) {
-            updateIndustry(this.form).then(response => {
+            updateIndustry(this.form).then((response) => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addIndustry(this.form).then(response => {
+            addIndustry(this.form).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
               this.getList();
@@ -244,19 +324,27 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除编号为"' + ids + '"的数据项?').then(function() {
-        return delIndustry(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      this.$modal
+        .confirm('是否确认删除编号为"' + ids + '"的数据项?')
+        .then(function () {
+          return delIndustry(ids);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {});
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download('industry/industry/export', {
-        ...this.queryParams
-      }, `industry_${new Date().getTime()}.xlsx`)
-    }
-  }
+      this.download(
+        "industry/industry/export",
+        {
+          ...this.queryParams,
+        },
+        `industry_${new Date().getTime()}.xlsx`
+      );
+    },
+  },
 };
 </script>