From 1308d4d7a162d3cabd0fe4f639b6d7f5dd376584 Mon Sep 17 00:00:00 2001
From: wyg <wu1555611@163.com>
Date: 星期二, 18 六月 2024 09:30:18 +0800
Subject: [PATCH] '基础数据仓库初次提交'

---
 src/views/basicData/locationGroup/index.vue |  592 ++++++++++++++++++++--------------------------------------
 1 files changed, 205 insertions(+), 387 deletions(-)

diff --git a/src/views/basicData/locationGroup/index.vue b/src/views/basicData/locationGroup/index.vue
index d8ee741..c160371 100644
--- a/src/views/basicData/locationGroup/index.vue
+++ b/src/views/basicData/locationGroup/index.vue
@@ -1,410 +1,228 @@
 <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="locationGroupNo">
-        <el-input
-          v-model="queryParams.locationGroupNo"
-          placeholder="璇疯緭鍏ュ簱浣嶇粍缂栧彿"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="搴撲綅缁勫悕绉�" prop="locationGroupName">
-        <el-input
-          v-model="queryParams.locationGroupName"
-          placeholder="璇疯緭鍏ュ簱浣嶇粍鍚嶇О"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="浠撳簱缂栧彿" prop="lgort">
-        <el-input
-          v-model="queryParams.lgort"
-          placeholder="璇疯緭鍏ヤ粨搴撶紪鍙�"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </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-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="['system:locationGroup: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="['system:locationGroup: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="['system:locationGroup:remove']"
-        >鍒犻櫎</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['system:locationGroup:export']"
-        >瀵煎嚭</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" border :data="locationGroupList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-        <el-table-column
-       label="搴忓彿"
-      type="index"
-      fixed
-      width="50" />
-      <!-- <el-table-column label="搴撲綅缁処D" align="center" prop="locationGroupId" v-if="true"/> -->
-      <el-table-column label="搴撲綅缁勭紪鍙�" align="center" prop="locationGroupNo" />
-      <el-table-column label="宸ュ巶" align="center" prop="werks" />
-      <el-table-column label="搴撲綅缁勫悕绉�" align="center" prop="locationGroupName" />
-      <el-table-column label="浠撳簱缂栧彿" align="center" prop="lgort" />
-      <el-table-column label="鎻忚堪" align="center" prop="description" />
-      <el-table-column label="鐘舵��" align="center" prop="state" />
-      <el-table-column label="瀹℃牳鐘舵��" align="center" prop="auditState" />
-      <el-table-column label="瀹℃牳浜篒D" align="center" prop="auditUserId" />
-      <el-table-column label="瀹℃牳浜哄鍚�" align="center" prop="auditUserName" />
-      <el-table-column label="瀹℃牳鏃ユ湡鏃堕棿" align="center" prop="auditDateTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.auditDateTime, '{y}-{m}-{d}') }}</span>
+  <el-main class="contbox" ref="contBox">
+    <div class="head" ref="headBox">
+      <BaseSearch
+        @getList="getList"
+        :formItemList="searchFormSchema"
+        @search="getList"
+        @showSearchChange="getElHeight(28)"
+      >
+        <template #actionButton>
+          <el-col :span="1.5">
+            <el-button
+              type="primary"
+              plain
+              icon="el-icon-plus"
+              size="mini"
+              @click="handleAdd"
+              v-hasPermi="['iqc_checkItem_create']"
+              >鏂板</el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="success"
+              plain
+              icon="el-icon-edit"
+              size="mini"
+              @click="handleUpdate"
+              v-hasPermi="['iqc_checkItem_edit']"
+              >淇敼</el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="danger"
+              plain
+              icon="el-icon-delete"
+              size="mini"
+              @click="handleDelete"
+              v-hasPermi="['iqc_checkItem_delete']"
+              >鍒犻櫎</el-button
+            >
+          </el-col>
         </template>
-      </el-table-column>
-      <el-table-column label="瀹℃牳鎰忚" align="center" prop="auditOpinion" />
-      <el-table-column label="鏈�鍚庢洿鏂颁汉id" align="center" prop="lastUpdatedUserId" />
-      <el-table-column label="鏈�鍚庢洿鏂颁汉濮撳悕" align="center" prop="lastUpdatedUserName" />
-      <el-table-column label="鏈�鍚庢洿鏂版椂闂�" align="center" prop="lastUpdatedDateTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.lastUpdatedDateTime, '{y}-{m}-{d}') }}</span>
-        </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="['system:locationGroup:edit']"
-          >淇敼</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:locationGroup:remove']"
-          >鍒犻櫎</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 娣诲姞鎴栦慨鏀瑰簱浣嶇粍瀵硅瘽妗� -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="搴撲綅缁勭紪鍙�" prop="locationGroupNo">
-          <el-input v-model="form.locationGroupNo" placeholder="璇疯緭鍏ュ簱浣嶇粍缂栧彿" />
-        </el-form-item>
-        <el-form-item label="宸ュ巶" prop="werks">
-          <el-input v-model="form.werks" placeholder="璇疯緭鍏ュ伐鍘�" />
-        </el-form-item>
-        <el-form-item label="搴撲綅缁勫悕绉�" prop="locationGroupName">
-          <el-input v-model="form.locationGroupName" placeholder="璇疯緭鍏ュ簱浣嶇粍鍚嶇О" />
-        </el-form-item>
-        <el-form-item label="浠撳簱缂栧彿" prop="lgort">
-          <el-input v-model="form.lgort" placeholder="璇疯緭鍏ヤ粨搴撶紪鍙�" />
-        </el-form-item>
-        <el-form-item label="鎻忚堪" prop="description">
-          <el-input v-model="form.description" placeholder="璇疯緭鍏ユ弿杩�" />
-        </el-form-item>
-        <el-form-item label="鐘舵��" prop="state">
-          <el-input v-model="form.state" placeholder="璇疯緭鍏ョ姸鎬�" />
-        </el-form-item>
-        <!-- <el-form-item label="鏈�鍚庢洿鏂颁汉id" prop="lastUpdatedUserId">
-          <el-input v-model="form.lastUpdatedUserId" placeholder="璇疯緭鍏ユ渶鍚庢洿鏂颁汉id" />
-        </el-form-item>
-        <el-form-item label="鏈�鍚庢洿鏂颁汉濮撳悕" prop="lastUpdatedUserName">
-          <el-input v-model="form.lastUpdatedUserName" placeholder="璇疯緭鍏ユ渶鍚庢洿鏂颁汉濮撳悕" />
-        </el-form-item>
-        <el-form-item label="鏈�鍚庢洿鏂版椂闂�" prop="lastUpdatedDateTime">
-          <el-date-picker clearable
-            v-model="form.lastUpdatedDateTime"
-            type="datetime"
-            value-format="yyyy-MM-dd HH:mm:ss"
-            placeholder="璇烽�夋嫨鏈�鍚庢洿鏂版椂闂�">
-          </el-date-picker>
-        </el-form-item> -->
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button :loading="buttonLoading" type="primary" @click="submitForm">纭� 瀹�</el-button>
-        <el-button @click="cancel">鍙� 娑�</el-button>
-      </div>
-    </el-dialog>
-  </div>
+      </BaseSearch>
+    </div>
+    <TableCom
+      :column="tabiInfo.columns"
+      :table-data="tabiInfo.tableData"
+      :table-loading="tabiInfo.tableLoading"
+      :isSelection="tabiInfo.isSelection"
+      :height="elementHeight"
+      rowKey="locationGroupId"
+      ref="tabel"
+      @checkData="checkData"
+      @checkLook="checkInfo"
+    >
+      <template slot="checkType" slot-scope="scope">
+        <dict-tag
+          :options="dict.type.check_type"
+          :value="scope.row.checkType"
+        />
+      </template>
+      <template slot="isAutoCheck" slot-scope="scope">
+        <dict-tag
+          :options="dict.type.is_auto_check"
+          :value="scope.row.isAutoCheck"
+        />
+      </template>
+      <template slot="isRequired" slot-scope="scope">
+        <dict-tag
+          :options="dict.type.is_required"
+          :value="scope.row.isRequired"
+        />
+      </template>
+      <template slot="auditState" slot-scope="scope">
+        <dict-tag :options="dict.type.audit_status" :value="scope.row.auditState" />
+      </template>
+      <template slot="status" slot-scope="scope">
+        <dict-tag :options="dict.type.status" :value="scope.row.status" />
+      </template>
+    </TableCom>
+    <div class="pagination" ref="pagination">
+      <pagination
+        v-show="pageInfo.pageTotal > 0"
+        :total="pageInfo.pageTotal"
+        :page.sync="pageInfo.currentPage"
+        :limit.sync="pageInfo.pageSize"
+        @pagination="getList"
+      />
+    </div>
+    <AddaddModal ref="addaddModal" @getList="getList" />
+  </el-main>
 </template>
 
 <script>
-import { listLocationGroup, getLocationGroup, delLocationGroup, addLocationGroup, updateLocationGroup } from "@/api/basicData/locationGroup";
+import TableCom from "@/components/Table/index";
+import BaseSearch from "@/components/Table/BaseSearch";
+
+import { columns, searchFormSchema } from "./info.data";
+import mixin from "@/components/Table/mixins/resize";
+
+import { listLocationGroup, delLocationGroup } from "@/api/basicData/locationGroup";
+import AddaddModal from "./addModal";
 
 export default {
   name: "LocationGroup",
+  components: { TableCom, BaseSearch, AddaddModal },
+  mixins: [mixin],
+  dicts: ["audit_status", "status"],
   data() {
     return {
-      // 鎸夐挳loading
-      buttonLoading: false,
-      // 閬僵灞�
-      loading: true,
-      // 閫変腑鏁扮粍
-      ids: [],
-      // 闈炲崟涓鐢�
-      single: true,
-      // 闈炲涓鐢�
-      multiple: true,
-      // 鏄剧ず鎼滅储鏉′欢
-      showSearch: true,
-      // 鎬绘潯鏁�
-      total: 0,
-      // 搴撲綅缁勮〃鏍兼暟鎹�
-      locationGroupList: [],
-      // 寮瑰嚭灞傛爣棰�
-      title: "",
-      // 鏄惁鏄剧ず寮瑰嚭灞�
-      open: false,
-      // 鏌ヨ鍙傛暟
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        locationGroupNo: undefined,
-        locationGroupName: undefined,
-        lgort: undefined,
+      searchFormSchema: searchFormSchema,
+      tabiInfo: {
+        columns: columns,
+        tableData: [],
+        tableLoading: false,
+        isSelection: true,
+        rowClassName: "rowClassName",
       },
-      // 琛ㄥ崟鍙傛暟
-      form: {},
-      // 琛ㄥ崟鏍¢獙
-      rules: {
-        locationGroupId: [
-          { required: true, message: "搴撲綅缁処D涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        locationGroupNo: [
-          { required: true, message: "搴撲綅缁勭紪鍙蜂笉鑳戒负绌�", trigger: "blur" }
-        ],
-        werks: [
-          { required: true, message: "宸ュ巶涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        locationGroupName: [
-          { required: true, message: "搴撲綅缁勫悕绉颁笉鑳戒负绌�", trigger: "blur" }
-        ],
-        lgort: [
-          { required: true, message: "浠撳簱缂栧彿涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        description: [
-          { required: true, message: "鎻忚堪涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        state: [
-          { required: true, message: "鐘舵�佷笉鑳戒负绌�", trigger: "blur" }
-        ],
-        displayOrder: [
-          { required: true, message: "鎺掑簭涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        createdUserId: [
-          { required: true, message: "鍒涘缓浜篿d涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        createdUserName: [
-          { required: true, message: "鍒涘缓浜哄鍚嶄笉鑳戒负绌�", trigger: "blur" }
-        ],
-        createdDateTime: [
-          { required: true, message: "鍒涘缓鏃ユ湡鏃堕棿涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        auditState: [
-          { required: true, message: "瀹℃牳鐘舵�佷笉鑳戒负绌�", trigger: "blur" }
-        ],
-        auditUserId: [
-          { required: true, message: "瀹℃牳浜篒D涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        auditUserName: [
-          { required: true, message: "瀹℃牳浜哄鍚嶄笉鑳戒负绌�", trigger: "blur" }
-        ],
-        auditDateTime: [
-          { required: true, message: "瀹℃牳鏃ユ湡鏃堕棿涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        auditOpinion: [
-          { required: true, message: "瀹℃牳鎰忚涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        lastUpdatedUserId: [
-          { required: true, message: "鏈�鍚庢洿鏂颁汉id涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        lastUpdatedUserName: [
-          { required: true, message: "鏈�鍚庢洿鏂颁汉濮撳悕涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        lastUpdatedDateTime: [
-          { required: true, message: "鏈�鍚庢洿鏂版椂闂翠笉鑳戒负绌�", trigger: "blur" }
-        ],
-        isDeleted: [
-          { required: true, message: "鏄惁鍒犻櫎涓嶈兘涓虹┖", trigger: "blur" }
-        ]
-      }
+      pageInfo: {
+        pageSize: 10,
+        pageTotal: 0,
+        currentPage: 1,
+      },
+      visible: false,
+      ids: [],
+      open: false,
     };
   },
-  created() {
+  mounted() {
     this.getList();
   },
   methods: {
-    /** 鏌ヨ搴撲綅缁勫垪琛� */
-    getList() {
-      this.loading = true;
-      listLocationGroup(this.queryParams).then(response => {
-        this.locationGroupList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 鍙栨秷鎸夐挳
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 琛ㄥ崟閲嶇疆
-    reset() {
-      this.form = {
-        locationGroupId: undefined,
-        locationGroupNo: undefined,
-        werks: undefined,
-        locationGroupName: undefined,
-        lgort: undefined,
-        description: undefined,
-        state: undefined,
-        displayOrder: undefined,
-        createdUserId: undefined,
-        createdUserName: undefined,
-        createdDateTime: undefined,
-        auditState: undefined,
-        auditUserId: undefined,
-        auditUserName: undefined,
-        auditDateTime: undefined,
-        auditOpinion: undefined,
-        lastUpdatedUserId: undefined,
-        lastUpdatedUserName: undefined,
-        lastUpdatedDateTime: undefined,
-        isDeleted: undefined
+    getList(info = {}) {
+      this.ids = [];
+      this.tabiInfo.tableLoading = true;
+      let params = {
+        pageSize: this.pageInfo.pageSize,
+        pageNum: this.pageInfo.currentPage,
+        bizType: 10,
+        ...info,
       };
-      this.resetForm("form");
-    },
-    /** 鎼滅储鎸夐挳鎿嶄綔 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 閲嶇疆鎸夐挳鎿嶄綔 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 澶氶�夋閫変腑鏁版嵁
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.locationGroupId)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
-    },
-    /** 鏂板鎸夐挳鎿嶄綔 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "娣诲姞搴撲綅缁�";
-    },
-    /** 淇敼鎸夐挳鎿嶄綔 */
-    handleUpdate(row) {
-      this.loading = true;
-      this.reset();
-      const locationGroupId = row.locationGroupId || this.ids
-      getLocationGroup(locationGroupId).then(response => {
-        this.loading = false;
-        this.form = response.data;
-        this.open = true;
-        this.title = "淇敼搴撲綅缁�";
-      });
-    },
-    /** 鎻愪氦鎸夐挳 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          this.buttonLoading = true;
-          if (this.form.locationGroupId != null) {
-            updateLocationGroup(this.form).then(response => {
-              this.$modal.msgSuccess("淇敼鎴愬姛");
-              this.open = false;
-              this.getList();
-            }).finally(() => {
-              this.buttonLoading = false;
-            });
-          } else {
-            addLocationGroup(this.form).then(response => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
-              this.open = false;
-              this.getList();
-            }).finally(() => {
-              this.buttonLoading = false;
-            });
-          }
+      listLocationGroup(params).then((res) => {
+        if (res.code == 200) {
+          this.pageInfo.pageTotal = res.total;
+          this.tabiInfo.tableData = res.rows;
+          this.tabiInfo.tableLoading = false;
         }
       });
     },
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
-      const locationGroupIds = row.locationGroupId || this.ids;
-      this.$modal.confirm('鏄惁纭鍒犻櫎搴撲綅缁勭紪鍙蜂负"' + locationGroupIds + '"鐨勬暟鎹」锛�').then(() => {
-        this.loading = true;
-        return delLocationGroup(locationGroupIds);
-      }).then(() => {
-        this.loading = false;
-        this.getList();
-        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-      }).catch(() => {
-      }).finally(() => {
-        this.loading = false;
-      });
+    checkData(data) {
+      if (data.length) {
+        this.ids = data.map((item) => {
+          return item.locationGroupId;
+        });
+      } else {
+        this.ids = [];
+      }
     },
-    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
-    handleExport() {
-      this.download('system/locationGroup/export', {
-        ...this.queryParams
-      }, `locationGroup_${new Date().getTime()}.xlsx`)
-    }
-  }
+    handleAdd() {
+      this.$refs.addaddModal.elDialogShow(1);
+    },
+    checkInfo(info) {
+      this.$refs.addaddModal.elDialogShow(3, info.locationGroupId);
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate() {
+      if (this.ids.length > 1) {
+        this.$message({
+          message: "鍙兘鎿嶄綔鍗曟潯鏁版嵁锛�",
+          type: "warning",
+        });
+        return;
+      } else if (this.ids.length < 1) {
+        this.$message({
+          message: "璇烽�夋嫨鏁版嵁",
+          type: "warning",
+        });
+        return;
+      }
+      this.$refs.addaddModal.elDialogShow(2, this.ids[0]);
+    },
+    handleDelete() {
+      const locationGroupIds = this.ids;
+
+      if (locationGroupIds.length) {
+        this.$modal
+          .confirm(
+            '鏄惁纭鍒犻櫎宸查�変腑鐨勬暟鎹」锛�'
+          )
+          .then(() => {
+            this.tabiInfo.tableLoading = true;
+            return delLocationGroup(locationGroupIds);
+          })
+          .then(() => {
+            this.tabiInfo.tableLoading = false;
+            this.ids = [];
+            this.getList();
+            this.$message({
+              message: "鍒犻櫎鎴愬姛",
+              type: "success",
+            });
+          })
+          .catch(() => {})
+          .finally(() => {
+            this.tabiInfo.tableLoading = false;
+          });
+      } else {
+        this.$message({
+          message: "璇烽�夋嫨鏁版嵁",
+          type: "warning",
+        });
+      }
+    },
+  },
 };
 </script>
+
+<style lang="less" scoped>
+.rowClassName {
+  height: 50px;
+}
+.contbox {
+  width: 100;
+  height: 100%;
+}
+</style>

--
Gitblit v1.9.3