From 57398e85ba3bfe42c94035bcf37ebf032272887c Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期四, 22 十二月 2022 11:10:05 +0800
Subject: [PATCH] fix: 店铺管理

---
 .history/src/views/operate/fivepack/threepack/components/content_20221222110927.vue |  374 ++++++++++++++++++++++++++++
 .history/src/views/operate/fivepack/threepack/components/content_20221222110801.vue |  369 ++++++++++++++++++++++++++++
 src/views/operate/fivepack/threepack/components/content.vue                         |    5 
 3 files changed, 748 insertions(+), 0 deletions(-)

diff --git a/.history/src/views/operate/fivepack/threepack/components/content_20221222110801.vue b/.history/src/views/operate/fivepack/threepack/components/content_20221222110801.vue
new file mode 100644
index 0000000..a3ea27b
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20221222110801.vue
@@ -0,0 +1,369 @@
+<template>
+  <div class="content">
+    <header>
+      <div class="headerContent">
+        <div class="find">
+          <div class="search-item">
+            <span>杈撳叆鏌ヨ:</span>
+            <el-input
+              style="flex: 1"
+              :placeholder="
+                isStorePage() ? '搴楅摵锛堥棬搴楋級鍚嶇О' : '璇疯緭鍏ュ簵閾虹紪鍙�'
+              "
+              v-model="storeCode"
+            />
+          </div>
+          <div class="search-item">
+            <span>搴楅摵鐘舵��:</span>
+            <el-select v-model="storeStatus" placeholder="閫夋嫨搴楅摵鐘舵��">
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+            </el-select>
+          </div>
+          <div class="findBtn">
+            <el-button type="primary" @click="search" icon="el-icon-search"
+              >鏌ヨ</el-button
+            >
+            <el-button icon="el-icon-delete-solid" @click="handleReset"
+              >閲嶇疆</el-button
+            >
+          </div>
+        </div>
+        <el-button
+          v-if="isStorePage()"
+          type="primary"
+          icon="el-icon-plus"
+          class="button-addition"
+          @click="handleView(null, 'create')"
+          >娣诲姞</el-button
+        >
+      </div>
+    </header>
+    <main>
+      <!-- 鏁版嵁灞曠ず -->
+      <el-table
+        ref="multipleTable"
+        :header-cell-style="{
+          background: '#06122c',
+          'font-size': '12px',
+          color: '#4b9bb7',
+          'font-weight': '650',
+          'line-height': '45px',
+        }"
+        :data="tableData"
+        style="width: 100%"
+        :row-class-name="tableRowClassName"
+      >
+        <el-table-column type="selection" min-width="5"> </el-table-column>
+        <el-table-column prop="storeNumber" label="搴楅摵缂栧彿" min-width="10">
+        </el-table-column>
+        <el-table-column prop="storeName" label="搴楅摵鍚嶇О" min-width="10">
+        </el-table-column>
+        <el-table-column prop="owner" label="搴楅摵鑱旂郴浜�" min-width="10">
+        </el-table-column>
+        <el-table-column prop="contact" label="搴楅摵鑱旂郴鐢佃瘽" min-width="10">
+        </el-table-column>
+        <el-table-column
+          prop="storeAddress"
+          label="搴楅摵璇︾粏鍦板潃"
+          min-width="10"
+        >
+        </el-table-column>
+        <el-table-column prop="storeScore" label="搴楅摵绉垎" min-width="10">
+        </el-table-column>
+        <el-table-column prop="videoPoint" label="鍏宠仈鎽勫儚鏈�" min-width="10">
+          <template v-if="scope.row.videoId" slot-scope="scope">
+            <span>{{ scope.row.videoPoint.name }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="operation" label="鎿嶄綔" min-width="20">
+          <template slot-scope="scope">
+            <div v-if="!isStorePage()" class="operation">
+              <el-link
+                icon="el-icon-edit"
+                :underline="false"
+                @click="handleView(scope.row, 'update')"
+                >缂栬緫</el-link
+              >
+              <el-link
+                class="leftPx"
+                icon="el-icon-delete-solid"
+                :underline="false"
+                @click="handleDelete(scope.row.id)"
+                >鍒犻櫎</el-link
+              >
+              <el-link class="leftPx" icon="el-icon-edit" :underline="false"
+                >鎺ㄩ�佷俊鎭�</el-link
+              >
+              <el-link
+                class="leftPx"
+                icon="el-icon-edit"
+                :underline="false"
+                @click="handleScoreView(scope.row, 'view')"
+                >鏌ョ湅</el-link
+              >
+            </div>
+            <div v-else class="operation">
+              <el-link
+                icon="el-icon-edit"
+                :underline="false"
+                @click="handleView(scope.row, 'update')"
+                >缂栬緫</el-link
+              >
+              <el-link
+                class="leftPx"
+                icon="el-icon-delete-solid"
+                :underline="false"
+                @click="handleDelete(scope.row.id)"
+                >鍒犻櫎</el-link
+              >
+            </div>
+          </template>
+        </el-table-column>
+      </el-table>
+      <!-- 鏌ョ湅淇敼椤甸潰 -->
+      <el-dialog
+        :visible.sync="dialogUpdate"
+        width="45%"
+        :destroy-on-close="true"
+        :title="dialogType === 'view' ? '鏌ョ湅搴楅摵淇℃伅' : '淇敼搴楅摵淇℃伅'"
+        :before-close="handleClose"
+      >
+        <updateUser
+          v-if="dialogUpdate"
+          :dialogType="dialogType"
+          :storeInfo="storeInfo"
+          :isStorePage="isStorePage()"
+          @closeDialog="closeDialog"
+        />
+      </el-dialog>
+      <!-- 鏌ョ湅淇敼椤甸潰 -->
+      <el-dialog
+        :visible.sync="dialogScore"
+        width="60%"
+        :destroy-on-close="true"
+        title="鏌ョ湅绉垎"
+        :before-close="handleCloseScoreView"
+      >
+        <scoreView v-if="dialogScore" :storeInfo="storeInfoScoreView" />
+      </el-dialog>
+      <!-- 鍒嗛〉 -->
+      <div class="pagination">
+        <el-pagination
+          background
+          :current-page="currentPage"
+          layout="prev, pager, next"
+          :total="totalNum"
+          :page-size="pageSize"
+          @current-change="changeCurrentPage"
+        >
+        </el-pagination>
+      </div>
+    </main>
+  </div>
+</template>
+<script>
+import updateUser from "@/views/operate/fivepack/threepack/components/updateUser";
+import scoreView from "@/views/operate/fivepack/threepack/components/score";
+import {
+  getStoreInfoList,
+  deleteStoreInfo,
+} from "@/api/operate/storeManagement";
+
+export default {
+  components: { updateUser, scoreView },
+
+  created() {
+    this.search();
+  },
+
+  props: ["model"],
+
+  data() {
+    return {
+      storeCode: null,
+      storeStatus: null,
+      options: [
+        { label: "鍏ㄩ儴", value: 0 },
+        { label: "缁忚惀", value: 1 },
+        { label: "鍊掗棴", value: 2 },
+      ],
+      tableData: [],
+      dialogUpdate: false,
+      dialogScore: false,
+      currentPage: 1,
+      totalNum: 0,
+      pageSize: 10,
+      userInfo: null,
+      dialogType: "",
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          this.pageSize = pageSize;
+          this.totalNum = totalPage;
+        })
+        .catch((err) => this.$message({ type: "error", message: err }));
+    },
+
+    handleReset() {
+      this.storeCode = "";
+      this.storeStatus = null;
+      this.search();
+    },
+
+    handleView(row, type) {
+      this.dialogUpdate = true;
+      this.storeInfo = row;
+      this.dialogType = type;
+    },
+    handleScoreView(row) {
+      this.storeInfoScoreView = row;
+      this.dialogScore = true;
+    },
+
+    handleDelete(id) {
+      deleteStoreInfo(id)
+        .then(() => {
+          this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" });
+          this.search();
+        })
+        .catch((err) => this.$message({ type: "error", message: err }));
+    },
+    handleCloseScoreView() {
+      this.dialogScore = false;
+    },
+    handleClose() {
+      this.dialogUpdate = false;
+    },
+
+    closeDialog() {
+      this.dialogUpdate = false;
+      this.search();
+    },
+
+    changeCurrentPage(currentPage) {
+      this.currentPage = currentPage;
+      this.search();
+    },
+
+    tableRowClassName({ row, rowIndex }) {
+      if ((rowIndex + 1) % 2 === 0) {
+        return "warning-row";
+      } else {
+        return "success-row";
+      }
+    },
+
+    isStorePage() {
+      return this.model === "store";
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.content {
+  flex: 1;
+  height: 100%;
+  padding-left: 20px;
+
+  .headerContent {
+    display: flex;
+    line-height: 100px;
+    justify-content: space-between;
+    align-items: center;
+
+    .find {
+      display: flex;
+    }
+
+    .search-item {
+      display: flex;
+      padding: 10px;
+    }
+
+    .findBtn {
+      line-height: 100px;
+      margin-left: 15px;
+      display: flex;
+      align-items: center;
+
+      .el-button {
+        padding: 12px 25px;
+      }
+    }
+
+    .addBtn {
+      padding: 12px 30px;
+      margin-left: 20%;
+    }
+  }
+
+  main {
+    background-color: #09152f;
+    margin-top: 20px;
+    padding-bottom: 50px;
+
+    .mainTitle {
+      line-height: 60px;
+    }
+
+    .el-link {
+      color: #4b9bb7;
+    }
+
+    .leftPx {
+      margin-left: 10px;
+    }
+
+    .pagination {
+      margin-top: 50px;
+      display: flex;
+      line-height: 50px;
+      justify-content: center;
+
+      .el-pagination {
+        &::v-deep li,
+        &::v-deep .btn-prev,
+        &::v-deep .btn-next {
+          background-color: #071f39;
+          color: #4b9bb7;
+        }
+      }
+    }
+
+    .el-table {
+      color: #4b9bb7;
+      font-size: 10px;
+
+      &::v-deep .el-table__empty-block {
+        background-color: #09152f;
+        color: #4b9bb7;
+      }
+
+      .operation {
+        display: flex;
+
+        .el-button {
+          border: none;
+        }
+
+        span:hover {
+          cursor: pointer;
+        }
+      }
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/operate/fivepack/threepack/components/content_20221222110927.vue b/.history/src/views/operate/fivepack/threepack/components/content_20221222110927.vue
new file mode 100644
index 0000000..a0e8553
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20221222110927.vue
@@ -0,0 +1,374 @@
+<template>
+  <div class="content">
+    <header>
+      <div class="headerContent">
+        <div class="find">
+          <div class="search-item">
+            <span>杈撳叆鏌ヨ:</span>
+            <el-input
+              style="flex: 1"
+              :placeholder="
+                isStorePage() ? '搴楅摵锛堥棬搴楋級鍚嶇О' : '璇疯緭鍏ュ簵閾虹紪鍙�'
+              "
+              v-model="storeCode"
+            />
+          </div>
+          <div class="search-item">
+            <span>搴楅摵鐘舵��:</span>
+            <el-select v-model="storeStatus" placeholder="閫夋嫨搴楅摵鐘舵��">
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+            </el-select>
+          </div>
+          <div class="findBtn">
+            <el-button type="primary" @click="search" icon="el-icon-search"
+              >鏌ヨ</el-button
+            >
+            <el-button icon="el-icon-delete-solid" @click="handleReset"
+              >閲嶇疆</el-button
+            >
+          </div>
+        </div>
+        <el-button
+          v-if="isStorePage()"
+          type="primary"
+          icon="el-icon-plus"
+          class="button-addition"
+          @click="handleView(null, 'create')"
+          >娣诲姞</el-button
+        >
+      </div>
+    </header>
+    <main>
+      <!-- 鏁版嵁灞曠ず -->
+      <el-table
+        ref="multipleTable"
+        :header-cell-style="{
+          background: '#06122c',
+          'font-size': '12px',
+          color: '#4b9bb7',
+          'font-weight': '650',
+          'line-height': '45px',
+        }"
+        :data="tableData"
+        style="width: 100%"
+        :row-class-name="tableRowClassName"
+      >
+        <el-table-column type="selection" min-width="5"> </el-table-column>
+        <el-table-column prop="storeNumber" label="搴楅摵缂栧彿" min-width="10">
+        </el-table-column>
+        <el-table-column prop="storeName" label="搴楅摵鍚嶇О" min-width="10">
+        </el-table-column>
+        <el-table-column prop="owner" label="搴楅摵鑱旂郴浜�" min-width="10">
+        </el-table-column>
+        <el-table-column prop="contact" label="搴楅摵鑱旂郴鐢佃瘽" min-width="10">
+        </el-table-column>
+        <el-table-column
+          prop="storeAddress"
+          label="搴楅摵璇︾粏鍦板潃"
+          min-width="10"
+        >
+        </el-table-column>
+        <el-table-column prop="storeScore" label="搴楅摵绉垎" min-width="10">
+        </el-table-column>
+        <el-table-column prop="videoPoint" label="鍏宠仈鎽勫儚鏈�" min-width="10">
+          <template v-if="scope.row.videoId" slot-scope="scope">
+            <span>{{ scope.row.videoPoint.name }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="status" label="鐘舵��" min-width="10">
+          <template v-if="scope.status" slot-scope="scope">
+            <span>{{ scope.row.status==1?'缁忚惀':'鍊掗棴' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="operation" label="鎿嶄綔" min-width="20">
+          <template slot-scope="scope">
+            <div v-if="!isStorePage()" class="operation">
+              <el-link
+                icon="el-icon-edit"
+                :underline="false"
+                @click="handleView(scope.row, 'update')"
+                >缂栬緫</el-link
+              >
+              <el-link
+                class="leftPx"
+                icon="el-icon-delete-solid"
+                :underline="false"
+                @click="handleDelete(scope.row.id)"
+                >鍒犻櫎</el-link
+              >
+              <el-link class="leftPx" icon="el-icon-edit" :underline="false"
+                >鎺ㄩ�佷俊鎭�</el-link
+              >
+              <el-link
+                class="leftPx"
+                icon="el-icon-edit"
+                :underline="false"
+                @click="handleScoreView(scope.row, 'view')"
+                >鏌ョ湅</el-link
+              >
+            </div>
+            <div v-else class="operation">
+              <el-link
+                icon="el-icon-edit"
+                :underline="false"
+                @click="handleView(scope.row, 'update')"
+                >缂栬緫</el-link
+              >
+              <el-link
+                class="leftPx"
+                icon="el-icon-delete-solid"
+                :underline="false"
+                @click="handleDelete(scope.row.id)"
+                >鍒犻櫎</el-link
+              >
+            </div>
+          </template>
+        </el-table-column>
+      </el-table>
+      <!-- 鏌ョ湅淇敼椤甸潰 -->
+      <el-dialog
+        :visible.sync="dialogUpdate"
+        width="45%"
+        :destroy-on-close="true"
+        :title="dialogType === 'view' ? '鏌ョ湅搴楅摵淇℃伅' : '淇敼搴楅摵淇℃伅'"
+        :before-close="handleClose"
+      >
+        <updateUser
+          v-if="dialogUpdate"
+          :dialogType="dialogType"
+          :storeInfo="storeInfo"
+          :isStorePage="isStorePage()"
+          @closeDialog="closeDialog"
+        />
+      </el-dialog>
+      <!-- 鏌ョ湅淇敼椤甸潰 -->
+      <el-dialog
+        :visible.sync="dialogScore"
+        width="60%"
+        :destroy-on-close="true"
+        title="鏌ョ湅绉垎"
+        :before-close="handleCloseScoreView"
+      >
+        <scoreView v-if="dialogScore" :storeInfo="storeInfoScoreView" />
+      </el-dialog>
+      <!-- 鍒嗛〉 -->
+      <div class="pagination">
+        <el-pagination
+          background
+          :current-page="currentPage"
+          layout="prev, pager, next"
+          :total="totalNum"
+          :page-size="pageSize"
+          @current-change="changeCurrentPage"
+        >
+        </el-pagination>
+      </div>
+    </main>
+  </div>
+</template>
+<script>
+import updateUser from "@/views/operate/fivepack/threepack/components/updateUser";
+import scoreView from "@/views/operate/fivepack/threepack/components/score";
+import {
+  getStoreInfoList,
+  deleteStoreInfo,
+} from "@/api/operate/storeManagement";
+
+export default {
+  components: { updateUser, scoreView },
+
+  created() {
+    this.search();
+  },
+
+  props: ["model"],
+
+  data() {
+    return {
+      storeCode: null,
+      storeStatus: null,
+      options: [
+        { label: "鍏ㄩ儴", value: 0 },
+        { label: "缁忚惀", value: 1 },
+        { label: "鍊掗棴", value: 2 },
+      ],
+      tableData: [],
+      dialogUpdate: false,
+      dialogScore: false,
+      currentPage: 1,
+      totalNum: 0,
+      pageSize: 10,
+      userInfo: null,
+      dialogType: "",
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          this.pageSize = pageSize;
+          this.totalNum = totalPage;
+        })
+        .catch((err) => this.$message({ type: "error", message: err }));
+    },
+
+    handleReset() {
+      this.storeCode = "";
+      this.storeStatus = null;
+      this.search();
+    },
+
+    handleView(row, type) {
+      this.dialogUpdate = true;
+      this.storeInfo = row;
+      this.dialogType = type;
+    },
+    handleScoreView(row) {
+      this.storeInfoScoreView = row;
+      this.dialogScore = true;
+    },
+
+    handleDelete(id) {
+      deleteStoreInfo(id)
+        .then(() => {
+          this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" });
+          this.search();
+        })
+        .catch((err) => this.$message({ type: "error", message: err }));
+    },
+    handleCloseScoreView() {
+      this.dialogScore = false;
+    },
+    handleClose() {
+      this.dialogUpdate = false;
+    },
+
+    closeDialog() {
+      this.dialogUpdate = false;
+      this.search();
+    },
+
+    changeCurrentPage(currentPage) {
+      this.currentPage = currentPage;
+      this.search();
+    },
+
+    tableRowClassName({ row, rowIndex }) {
+      if ((rowIndex + 1) % 2 === 0) {
+        return "warning-row";
+      } else {
+        return "success-row";
+      }
+    },
+
+    isStorePage() {
+      return this.model === "store";
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.content {
+  flex: 1;
+  height: 100%;
+  padding-left: 20px;
+
+  .headerContent {
+    display: flex;
+    line-height: 100px;
+    justify-content: space-between;
+    align-items: center;
+
+    .find {
+      display: flex;
+    }
+
+    .search-item {
+      display: flex;
+      padding: 10px;
+    }
+
+    .findBtn {
+      line-height: 100px;
+      margin-left: 15px;
+      display: flex;
+      align-items: center;
+
+      .el-button {
+        padding: 12px 25px;
+      }
+    }
+
+    .addBtn {
+      padding: 12px 30px;
+      margin-left: 20%;
+    }
+  }
+
+  main {
+    background-color: #09152f;
+    margin-top: 20px;
+    padding-bottom: 50px;
+
+    .mainTitle {
+      line-height: 60px;
+    }
+
+    .el-link {
+      color: #4b9bb7;
+    }
+
+    .leftPx {
+      margin-left: 10px;
+    }
+
+    .pagination {
+      margin-top: 50px;
+      display: flex;
+      line-height: 50px;
+      justify-content: center;
+
+      .el-pagination {
+        &::v-deep li,
+        &::v-deep .btn-prev,
+        &::v-deep .btn-next {
+          background-color: #071f39;
+          color: #4b9bb7;
+        }
+      }
+    }
+
+    .el-table {
+      color: #4b9bb7;
+      font-size: 10px;
+
+      &::v-deep .el-table__empty-block {
+        background-color: #09152f;
+        color: #4b9bb7;
+      }
+
+      .operation {
+        display: flex;
+
+        .el-button {
+          border: none;
+        }
+
+        span:hover {
+          cursor: pointer;
+        }
+      }
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/operate/fivepack/threepack/components/content.vue b/src/views/operate/fivepack/threepack/components/content.vue
index a3ea27b..a0e8553 100644
--- a/src/views/operate/fivepack/threepack/components/content.vue
+++ b/src/views/operate/fivepack/threepack/components/content.vue
@@ -80,6 +80,11 @@
             <span>{{ scope.row.videoPoint.name }}</span>
           </template>
         </el-table-column>
+        <el-table-column prop="status" label="鐘舵��" min-width="10">
+          <template v-if="scope.status" slot-scope="scope">
+            <span>{{ scope.row.status==1?'缁忚惀':'鍊掗棴' }}</span>
+          </template>
+        </el-table-column>
         <el-table-column prop="operation" label="鎿嶄綔" min-width="20">
           <template slot-scope="scope">
             <div v-if="!isStorePage()" class="operation">

--
Gitblit v1.8.0