From cc512dff1a5d7e45a2c2b628fcd45019ed3b5c0e Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期五, 06 一月 2023 15:24:23 +0800
Subject: [PATCH] fix: 修复发送消息按钮不能点击

---
 .history/src/views/operate/fivepack/threepack/components/content_20230106141140.vue |  390 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106141721.vue |  396 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106145954.vue |  611 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106150301.vue |  612 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106141438.vue |  390 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106150721.vue |  614 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106143827.vue |  482 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106151314.vue |  619 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106141353.vue |  390 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106143336.vue |  441 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106151348.vue |  619 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106143020.vue |  441 +
 src/views/operate/fivepack/threepack/components/content.vue                         |  389 
 .history/src/views/operate/message/myIndex/update/index_20230104153319.vue          |  522 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106144748.vue |  591 +
 .history/src/views/operate/fivepack/threepack/index_20230106141041.vue              |  149 
 .history/src/views/operate/fivepack/threepack/components/content_20230106150230.vue |  612 +
 src/api/operate/messageManagement.js                                                |    4 
 .history/src/views/operate/fivepack/threepack/components/content_20230106144154.vue |  498 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106150302.vue |  612 +
 .history/src/views/operate/fivepack/threepack/index_20221228101401.vue              |  149 
 .history/src/api/operate/messageManagement_20230106145058.js                        |   29 
 src/views/operate/message/myIndex/update/index.vue                                  |    1 
 .history/src/views/operate/fivepack/threepack/components/content_20230106150611.vue |  617 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106144438.vue |  586 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106141756.vue |  396 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106141036.vue |  386 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106142819.vue |  440 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106150040.vue |  611 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106150656.vue |  614 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106142532.vue |  440 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106151736.vue |  543 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106144413.vue |  586 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106150605.vue |  617 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106141143.vue |  390 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106141245.vue |  390 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106151642.vue |  621 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106144253.vue |  499 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106141846.vue |  396 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106141224.vue |  390 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106150356.vue |  611 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106143520.vue |  441 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106141321.vue |  390 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106145110.vue |  610 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106144109.vue |  490 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106151211.vue |  618 +
 .history/src/views/operate/fivepack/threepack/components/content_20230106151542.vue |  620 +
 .history/src/api/operate/messageManagement_20230106150755.js                        |   29 
 48 files changed, 21,782 insertions(+), 110 deletions(-)

diff --git a/.history/src/api/operate/messageManagement_20230106145058.js b/.history/src/api/operate/messageManagement_20230106145058.js
new file mode 100644
index 0000000..a7cf1ff
--- /dev/null
+++ b/.history/src/api/operate/messageManagement_20230106145058.js
@@ -0,0 +1,29 @@
+import http from "@/http";
+
+export function deleteMessage(params) {
+    return http.delete('/sccg/message/delete', params);
+}
+
+export function getMessageById(id) {
+    return http.get('/sccg/message/getMessage/' + id);
+}
+
+export function getMessageList(params) {
+    return http.get('/sccg/message/list', params);
+}
+
+export function sendMessage(params) {
+    return http.post('/sccg/message/sendMessage', params);
+}
+
+export function sendMessageByMobileNumber(params) {
+    return http.post('/sccg/send_message_phone', params);
+}
+
+export function saveMessage(params) {
+    return http.post('/sccg/message/saveMessage', params);
+}
+
+export function updateMessage(params) {
+    return http.post('/sccg/message/update', params);
+}
\ No newline at end of file
diff --git a/.history/src/api/operate/messageManagement_20230106150755.js b/.history/src/api/operate/messageManagement_20230106150755.js
new file mode 100644
index 0000000..24f2a77
--- /dev/null
+++ b/.history/src/api/operate/messageManagement_20230106150755.js
@@ -0,0 +1,29 @@
+import http from "@/http";
+
+export function deleteMessage(params) {
+    return http.delete('/sccg/message/delete', params);
+}
+
+export function getMessageById(id) {
+    return http.get('/sccg/message/getMessage/' + id);
+}
+
+export function getMessageList(params) {
+    return http.get('/sccg/message/list', params);
+}
+
+export function sendMessage(params) {
+    return http.post('/sccg/message/sendMessage', params);
+}
+
+export function sendMessageByMobileNumber(params) {
+    return http.post('/sccg/message/send_message_phone', params);
+}
+
+export function saveMessage(params) {
+    return http.post('/sccg/message/saveMessage', params);
+}
+
+export function updateMessage(params) {
+    return http.post('/sccg/message/update', params);
+}
\ No newline at end of file
diff --git a/.history/src/views/operate/fivepack/threepack/components/content_20230106141036.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106141036.vue
new file mode 100644
index 0000000..7ac6d8d
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106141036.vue
@@ -0,0 +1,386 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+          <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+
+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: "",
+      isShowDialog: false,
+      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;
+          console.log(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_20230106141140.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106141140.vue
new file mode 100644
index 0000000..4b8b28c
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106141140.vue
@@ -0,0 +1,390 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+          <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyCreate from "./createSms";
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+    sendMessage(val){
+ this.isShowDialog=ture;
+    }
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106141143.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106141143.vue
new file mode 100644
index 0000000..e3ec0ef
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106141143.vue
@@ -0,0 +1,390 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+          <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyCreate from "./createSms";
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+    sendMessage(val){
+ this.isShowDialog=ture;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106141224.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106141224.vue
new file mode 100644
index 0000000..e3ec0ef
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106141224.vue
@@ -0,0 +1,390 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+          <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyCreate from "./createSms";
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+    sendMessage(val){
+ this.isShowDialog=ture;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106141245.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106141245.vue
new file mode 100644
index 0000000..469a94c
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106141245.vue
@@ -0,0 +1,390 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+          <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyCreate from "/createSms";
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+    sendMessage(val){
+ this.isShowDialog=ture;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106141321.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106141321.vue
new file mode 100644
index 0000000..c27dc3c
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106141321.vue
@@ -0,0 +1,390 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+          <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyCreate from "src\views\operate\fivepack\threepack\components\updateUser\createSms";
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+    sendMessage(val){
+ this.isShowDialog=ture;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106141353.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106141353.vue
new file mode 100644
index 0000000..3941e8f
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106141353.vue
@@ -0,0 +1,390 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+          <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyCreate from "../components/updateUser/createSms";
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+    sendMessage(val){
+ this.isShowDialog=ture;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106141438.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106141438.vue
new file mode 100644
index 0000000..6392253
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106141438.vue
@@ -0,0 +1,390 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+          <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyCreate from "../components/updateUser/createSms";
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106141721.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106141721.vue
new file mode 100644
index 0000000..9a4ec39
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106141721.vue
@@ -0,0 +1,396 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+          <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyCreate from "../components/updateUser/createSms";
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106141756.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106141756.vue
new file mode 100644
index 0000000..db194cf
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106141756.vue
@@ -0,0 +1,396 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+          <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import { MyCreate } from "../components/updateUser/createSms";
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106141846.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106141846.vue
new file mode 100644
index 0000000..eae1acc
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106141846.vue
@@ -0,0 +1,396 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+          <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate>
+        </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";
+// import { sendMessage } from "@/api/operate/messageManagement";
+import { MyCreate } from "../components/updateUser/createSms";
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106142532.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106142532.vue
new file mode 100644
index 0000000..171147f
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106142532.vue
@@ -0,0 +1,440 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106142819.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106142819.vue
new file mode 100644
index 0000000..171147f
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106142819.vue
@@ -0,0 +1,440 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106143020.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106143020.vue
new file mode 100644
index 0000000..ec94eb7
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106143020.vue
@@ -0,0 +1,441 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit'
+
+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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106143336.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106143336.vue
new file mode 100644
index 0000000..00e7063
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106143336.vue
@@ -0,0 +1,441 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit'
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+
+  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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106143520.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106143520.vue
new file mode 100644
index 0000000..23f2358
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106143520.vue
@@ -0,0 +1,441 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit'
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+
+  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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+    };
+  },
+
+  methods: {
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106143827.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106143827.vue
new file mode 100644
index 0000000..f702d47
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106143827.vue
@@ -0,0 +1,482 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit'
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02'
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106144109.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106144109.vue
new file mode 100644
index 0000000..84bae87
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106144109.vue
@@ -0,0 +1,490 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit'
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02'
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106144154.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106144154.vue
new file mode 100644
index 0000000..d1d9be1
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106144154.vue
@@ -0,0 +1,498 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit'
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02'
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106144253.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106144253.vue
new file mode 100644
index 0000000..e489229
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106144253.vue
@@ -0,0 +1,499 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02'
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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_20230106144413.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106144413.vue
new file mode 100644
index 0000000..cb7a10a
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106144413.vue
@@ -0,0 +1,586 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02'
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106144438.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106144438.vue
new file mode 100644
index 0000000..be3e769
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106144438.vue
@@ -0,0 +1,586 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02'
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106144748.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106144748.vue
new file mode 100644
index 0000000..a959f4a
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106144748.vue
@@ -0,0 +1,591 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106145110.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106145110.vue
new file mode 100644
index 0000000..3c600b7
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106145110.vue
@@ -0,0 +1,610 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106145954.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106145954.vue
new file mode 100644
index 0000000..5a2f666
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106145954.vue
@@ -0,0 +1,611 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+      });
+      this.search();
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106150040.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106150040.vue
new file mode 100644
index 0000000..c79c10a
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106150040.vue
@@ -0,0 +1,611 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106150230.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106150230.vue
new file mode 100644
index 0000000..8d01df9
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106150230.vue
@@ -0,0 +1,612 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.role=null;
+        this.search();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106150301.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106150301.vue
new file mode 100644
index 0000000..e52ed38
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106150301.vue
@@ -0,0 +1,612 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+      });
+      this.role=null;s
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106150302.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106150302.vue
new file mode 100644
index 0000000..df63ba3
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106150302.vue
@@ -0,0 +1,612 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+      });
+      this.role=null;
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106150356.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106150356.vue
new file mode 100644
index 0000000..c79c10a
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106150356.vue
@@ -0,0 +1,611 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+      });
+    },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106150605.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106150605.vue
new file mode 100644
index 0000000..406de6d
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106150605.vue
@@ -0,0 +1,617 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleResetq">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+      });
+    },
+        // 閲嶇疆琛ㄥ崟
+        handleResetq() {
+            this.$refs.edit.editor.txt.clear();
+            this.setDepartList();
+            this.$refs.user.resetFields();
+        },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106150611.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106150611.vue
new file mode 100644
index 0000000..cbe1270
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106150611.vue
@@ -0,0 +1,617 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleResetq">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                targetTo: [
+                    { required: true  , trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+      });
+    },
+        // 閲嶇疆琛ㄥ崟
+        handleResetq() {
+            this.$refs.edit.editor.txt.clear();
+            this.search();
+            this.$refs.user.resetFields();
+        },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106150656.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106150656.vue
new file mode 100644
index 0000000..49c3b46
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106150656.vue
@@ -0,0 +1,614 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleResetq">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessage } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+      });
+    },
+        // 閲嶇疆琛ㄥ崟
+        handleResetq() {
+            this.$refs.edit.editor.txt.clear();
+            this.search();
+            this.$refs.user.resetFields();
+        },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106150721.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106150721.vue
new file mode 100644
index 0000000..ef2a123
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106150721.vue
@@ -0,0 +1,614 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleResetq">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessageByMobileNumber } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+      });
+    },
+        // 閲嶇疆琛ㄥ崟
+        handleResetq() {
+            this.$refs.edit.editor.txt.clear();
+            this.search();
+            this.$refs.user.resetFields();
+        },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106151211.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106151211.vue
new file mode 100644
index 0000000..5fe3215
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106151211.vue
@@ -0,0 +1,618 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleResetq">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessageByMobileNumber } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+        this.role.body='';
+        this.role.head='';
+      });
+    },
+        // 閲嶇疆琛ㄥ崟
+        handleResetq() {
+            this.$refs.edit.editor.txt.clear();
+            this.search();
+            this.$refs.user.resetFields();
+            this.role.body='';
+        this.role.head='';
+        },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106151314.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106151314.vue
new file mode 100644
index 0000000..249bc36
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106151314.vue
@@ -0,0 +1,619 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleResetq">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessageByMobileNumber } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.$emit('closeMyDialog');
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+        this.role.body='';
+        this.role.head='';
+        this.colList=null;
+      });
+    },
+        // 閲嶇疆琛ㄥ崟
+        handleResetq() {
+            this.$refs.edit.editor.txt.clear();
+            this.search();
+            this.$refs.user.resetFields();
+            this.role.body='';
+        this.role.head='';
+        },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106151348.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106151348.vue
new file mode 100644
index 0000000..bbbf3fc
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106151348.vue
@@ -0,0 +1,619 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleResetq">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessageByMobileNumber } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.isShowDialog=false;
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+        this.role.body='';
+        this.role.head='';
+        this.colList=null;
+      });
+    },
+        // 閲嶇疆琛ㄥ崟
+        handleResetq() {
+            this.$refs.edit.editor.txt.clear();
+            this.search();
+            this.$refs.user.resetFields();
+            this.role.body='';
+        this.role.head='';
+        },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106151542.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106151542.vue
new file mode 100644
index 0000000..c2801db
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106151542.vue
@@ -0,0 +1,620 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleResetq">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessageByMobileNumber } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.isShowDialog=false;
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+        this.role.body='';
+        this.role.head='';
+        this.colList=null;
+        this.messageType=null;
+      });
+    },
+        // 閲嶇疆琛ㄥ崟
+        handleResetq() {
+            this.$refs.edit.editor.txt.clear();
+            this.search();
+            this.$refs.user.resetFields();
+            this.role.body='';
+        this.role.head='';
+        },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106151642.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106151642.vue
new file mode 100644
index 0000000..fe0ded1
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106151642.vue
@@ -0,0 +1,621 @@
+<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="{
+          '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 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"
+              @click="sendMessage(scope.row.contact)"
+                >鎺ㄩ�佷俊鎭�</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>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog
+            title="鏂板缓娑堟伅"
+            :destroy-on-close="true"
+            :key="dialogType"
+            :visible.sync="isShowDialog"
+            width="80%"
+            :before-close="handleConfirmClose"
+        >
+        <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.title"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+                        <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+                        <!-- </div> -->
+                        <div class="message-item__left">
+                            <el-input v-model="role.phoneNumber" ></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit"></MyEditor>
+                    </el-form-item>
+
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                            <el-button class="btn cancel" @click.native.prevent="handleResetq">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </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";
+import { sendMessageByMobileNumber } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView , MyEditor},
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+          if (!value) {
+            callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+          } else {
+            callback();
+          }
+      }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '02',
+                phoneNumber:null,
+            },
+            rules: {
+                messageType: [
+                    { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+                ],
+                head: [
+                    { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+                ],
+                body: [
+                  { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+                ]
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName'
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info: {},
+            sendUser:""
+    };
+  },
+
+  methods: {
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+          this.role.body = this.$refs.edit.editor.txt.html();
+          this.$refs.user.validate((valid) => {
+                if (valid) {
+                  const params = Object.assign({}, this.role);
+                  params.targetTo = this.checkedList.join(',');
+                  params.status = mystatus;
+                  sendMessageByMobileNumber(params)
+                      .then(() => {
+                        this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+                        this.isShowDialog=false;
+                      })
+                      .catch(err => this.$message({ type: 'error', message: err }));
+                } else {
+                  this.$message.warning('璇锋鏌ュ繀濉」');
+                }
+            })
+        },
+    setTemplateValue(obj){
+            var _this=this
+            SMS.getSMSTemplateById(obj).then((result) =>{
+                _this.role.head=result.title
+                _this.role.body=result.body
+                _this.$refs.edit.editor.txt.html(result.body)
+            })
+        },
+    getSMSTemplateList() {
+          SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+              .then(({ records }) => {
+                this.colList = records;
+              })
+              .catch(err => this.$message.error(err))
+        },
+      // 纭鍏抽棴寮圭獥
+      handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+        this.role.body='';
+        this.role.head='';
+        this.$refs.edit.editor.txt.clear();
+            this.search();
+            this.$refs.user.resetFields();
+      });
+    },
+        // 閲嶇疆琛ㄥ崟
+        handleResetq() {
+            this.$refs.edit.editor.txt.clear();
+            this.search();
+            this.$refs.user.resetFields();
+            this.role.body='';
+        this.role.head='';
+        },
+    sendMessage(val){
+ this.isShowDialog=true;
+ this.role.phoneNumber=val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+            //&:deep(.el-dialog__title) {
+            //    color: #4b9bb7;
+            //}
+            //&::v-deep .el-form-item__label {
+            //    color: #4b9bb7;
+            //}
+            //
+            //&::v-deep .el-input__inner {
+            //    width: 400px;
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            //:deep(.el-input) {
+            //    width: 400px;
+            //}
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            //:deep(.el-input--suffix) {
+            //    width: 400px;
+            //}
+            //
+            //&::v-deep .el-textarea__inner {
+            //    background-color: #09152f;
+            //    border: 1px solid #17324c;
+            //}
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 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_20230106151736.vue b/.history/src/views/operate/fivepack/threepack/components/content_20230106151736.vue
new file mode 100644
index 0000000..c7b2580
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/components/content_20230106151736.vue
@@ -0,0 +1,543 @@
+<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="{
+        '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 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"
+                @click="sendMessage(scope.row.contact)">鎺ㄩ�佷俊鎭�</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>
+      <!-- 鏂板缓娑堟伅 -->
+      <el-dialog title="鏂板缓娑堟伅" :destroy-on-close="true" :key="dialogType" :visible.sync="isShowDialog" width="80%"
+        :before-close="handleConfirmClose">
+        <div class="mainContent">
+          <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules" label-position="right">
+            <!-- 娑堟伅鏍忕洰 -->
+            <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+              <div class="message-item">
+                <div class="message-item__left">
+                  <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                    <el-option v-for="item in colList" :key="item.id" :label="item.title" :value="item.id">
+                    </el-option>
+                  </el-select>
+                </div>
+              </div>
+            </el-form-item>
+            <!-- 娑堟伅鏍囬 -->
+            <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+              <div class="message-item__left">
+                <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+              </div>
+            </el-form-item>
+            <!-- 鎺ユ敹瀵硅薄 -->
+            <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+              <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+              <!-- </div> -->
+              <div class="message-item__left">
+                <el-input v-model="role.phoneNumber"></el-input>
+              </div>
+            </el-form-item>
+            <!-- 娑堟伅鍐呭 -->
+            <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+              <MyEditor ref="edit"></MyEditor>
+            </el-form-item>
+
+            <el-form-item>
+              <div class="optionBtn">
+                <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                <el-button class="btn cancel" @click.native.prevent="handleResetq">閲嶇疆</el-button>
+              </div>
+            </el-form-item>
+          </el-form>
+        </div>
+      </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";
+import { sendMessageByMobileNumber } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
+
+export default {
+  components: { updateUser, scoreView, MyEditor },
+  created() {
+    this.search();
+    this.getSMSTemplateList();
+  },
+
+  props: ["model"],
+
+  data() {
+    const validateMessageContent = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+      } else {
+        callback();
+      }
+    }
+    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: "",
+      isShowDialog: false,
+      storeInfo: null,
+      storeInfoScoreView: {},
+      role: {
+        messageType: '',
+        head: '',
+        targetTo: '',
+        targetFrom: null,
+        body: '',
+        channelCode: '02',
+        phoneNumber: null,
+      },
+      rules: {
+        messageType: [
+          { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+        ],
+        head: [
+          { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+        ],
+        body: [
+          { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+        ]
+      },
+      colList: [],
+      departList: [],
+      typeList: [],
+      dialogCreate: false,
+      dialogView: false,
+      defaultProps: {
+        children: 'children',
+        label: 'departName'
+      },
+      checkedList: [],
+      tempNameArr: [],
+      info: {},
+      sendUser: ""
+    };
+  },
+
+  methods: {
+    // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+    handleSubmit(mystatus) {
+      this.role.body = this.$refs.edit.editor.txt.html();
+      this.$refs.user.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.role);
+          params.targetTo = this.checkedList.join(',');
+          params.status = mystatus;
+          sendMessageByMobileNumber(params)
+            .then(() => {
+              this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+              this.isShowDialog = false;
+              this.role.body = '';
+              this.role.head = '';
+              this.$refs.edit.editor.txt.clear();
+              this.search();
+              this.$refs.user.resetFields();
+            })
+            .catch(err => this.$message({ type: 'error', message: err }));
+        } else {
+          this.$message.warning('璇锋鏌ュ繀濉」');
+        }
+      })
+    },
+    setTemplateValue(obj) {
+      var _this = this
+      SMS.getSMSTemplateById(obj).then((result) => {
+        _this.role.head = result.title
+        _this.role.body = result.body
+        _this.$refs.edit.editor.txt.html(result.body)
+      })
+    },
+    getSMSTemplateList() {
+      SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+        .then(({ records }) => {
+          this.colList = records;
+        })
+        .catch(err => this.$message.error(err))
+    },
+    // 纭鍏抽棴寮圭獥
+    handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+        this.role.body = '';
+        this.role.head = '';
+        this.$refs.edit.editor.txt.clear();
+        this.search();
+        this.$refs.user.resetFields();
+      });
+    },
+    // 閲嶇疆琛ㄥ崟
+    handleResetq() {
+      this.$refs.edit.editor.txt.clear();
+      this.search();
+      this.$refs.user.resetFields();
+      this.role.body = '';
+      this.role.head = '';
+    },
+    sendMessage(val) {
+      this.isShowDialog = true;
+      this.role.phoneNumber = val;
+    },
+    search() {
+      const status = this.storeStatus === 0 ? null : this.storeStatus;
+      getStoreInfoList({ keyword: this.storeCode, status })
+        .then(({ list, pageSize, totalPage }) => {
+          this.tableData = list;
+          console.log(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;
+
+    .mainContent {
+      display: flex;
+      justify-content: center;
+      padding-top: 50px;
+      //&:deep(.el-dialog__title) {
+      //    color: #4b9bb7;
+      //}
+      //&::v-deep .el-form-item__label {
+      //    color: #4b9bb7;
+      //}
+      //
+      //&::v-deep .el-input__inner {
+      //    width: 400px;
+      //    background-color: #09152f;
+      //    border: 1px solid #17324c;
+      //}
+
+      .message-item__left {
+        width: 400px;
+      }
+
+      .message-add {
+        &:hover {
+          cursor: pointer;
+        }
+      }
+
+      .el-form-item__content :deep(.el-select) {
+        width: 400px;
+      }
+
+      //:deep(.el-input) {
+      //    width: 400px;
+      //}
+
+      .message-item {
+        display: flex;
+
+        span {
+          margin-left: 20px;
+          color: #4b9bb7;
+        }
+      }
+
+      .message-tip {
+        margin-left: 20px;
+      }
+
+      //:deep(.el-input--suffix) {
+      //    width: 400px;
+      //}
+      //
+      //&::v-deep .el-textarea__inner {
+      //    background-color: #09152f;
+      //    border: 1px solid #17324c;
+      //}
+
+      .el-form-item__content {
+        width: 400px;
+
+        .el-select {
+          width: 100%;
+        }
+      }
+
+      .optionHandleSp {
+        display: flex;
+
+        .areaNumber,
+        .moreNumber {
+          flex: 1;
+        }
+
+        .telNumber {
+          flex: 2;
+        }
+      }
+
+      .optionBtn {
+        display: flex;
+        margin-top: 20px;
+
+        .btn {
+          padding: 12px 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/index_20221228101401.vue b/.history/src/views/operate/fivepack/threepack/index_20221228101401.vue
new file mode 100644
index 0000000..2ad75c1
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/index_20221228101401.vue
@@ -0,0 +1,149 @@
+<template>
+  <el-container style="height: 100%">
+    <el-aside heigth="100%" width="200px ">
+      <myAside @selectedDepartment="selectedDepartment" />
+    </el-aside>
+
+    <el-container>
+      <store-content :model="'three-pack'" />
+    </el-container>
+  </el-container>
+</template>
+<script>
+import myAside from "./components/aside";
+import updateUser from "@/views/operate/fivepack/threepack/components/updateUser";
+import storeContent from "@/views/operate/fivepack/threepack/components/content";
+import {
+  getStoreInfoList,
+  deleteStoreInfo,
+} from "@/api/operate/storeManagement";
+
+export default {
+  components: { myAside, storeContent, updateUser },
+
+  created() {
+    this.search();
+  },
+
+  data() {
+    return {
+      storeCode: null,
+      storeStatus: null,
+      options: [
+        { label: "鍏ㄩ儴", value: 0 },
+        { label: "缁忚惀", value: 1 },
+        { label: "鍊掗棴", value: 2 },
+      ],
+      tableData: [],
+      dialogUpdate: false,
+      currentPage: 1,
+      totalNum: 0,
+      pageSize: 10,
+      userInfo: null,
+      updateFlag: false,
+      storeInfo: null,
+    };
+  },
+
+  methods: {
+    search(data) {
+      let communityId, streetId;
+      if (data) {
+        communityId = data.id;
+        streetId = data.parentId;
+      }
+      getStoreInfoList({ keyword: this.storeCode, communityId, streetId })
+        .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.currentPage = 1;
+      this.search();
+    },
+
+    handleView(row, type) {
+      this.dialogUpdate = true;
+      this.storeInfo = row;
+      this.updateFlag = type === "update";
+    },
+
+    handleDelete(id) {
+      deleteStoreInfo(id)
+        .then(() => {
+          this.$message({ type: "success", message });
+          this.currentPage = 1;
+          this.search();
+        })
+        .catch((err) => this.$message({ type: "error", message: err }));
+    },
+
+    handleClose() {
+      this.dialogUpdate = false;
+    },
+
+    closeDialog() {
+      this.dialogUpdate = false;
+      this.currentPage = 1;
+      this.search();
+    },
+
+    changeCurrentPage(currentPage) {
+      this.currentPage = currentPage;
+      this.search();
+    },
+
+    tableRowClassName({ row, rowIndex }) {
+      if ((rowIndex + 1) % 2 === 0) {
+        return "warning-row";
+      } else {
+        return "success-row";
+      }
+    },
+    selectedDepartment(data) {
+      if (!data.children) {
+        this.searchData = data;
+        this.search(data);
+      } else {
+        data.parentId = data.id;
+        data.id = null;
+        this.searchData = data;
+        this.search(data);
+      }
+      this.currentPage = 1;
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+::v-deep .el-header {
+  // background-color: #09152f;
+  color: #000;
+  line-height: 60px;
+}
+
+// ::v-deep .el-aside {
+  // background-color: #09152f;
+// }
+
+// ::v-deep .el-menu {
+  // background-color: #09152f;
+// }
+
+// ::v-deep .el-main,
+// ::v-deep .el-footer {
+//   background-color: #09152f;
+// }
+
+::v-deep .el-tree-node__label {
+  line-height: 30px;
+  font-size: 14px;
+  // color: rgb(75, 155, 183);
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/operate/fivepack/threepack/index_20230106141041.vue b/.history/src/views/operate/fivepack/threepack/index_20230106141041.vue
new file mode 100644
index 0000000..2ad75c1
--- /dev/null
+++ b/.history/src/views/operate/fivepack/threepack/index_20230106141041.vue
@@ -0,0 +1,149 @@
+<template>
+  <el-container style="height: 100%">
+    <el-aside heigth="100%" width="200px ">
+      <myAside @selectedDepartment="selectedDepartment" />
+    </el-aside>
+
+    <el-container>
+      <store-content :model="'three-pack'" />
+    </el-container>
+  </el-container>
+</template>
+<script>
+import myAside from "./components/aside";
+import updateUser from "@/views/operate/fivepack/threepack/components/updateUser";
+import storeContent from "@/views/operate/fivepack/threepack/components/content";
+import {
+  getStoreInfoList,
+  deleteStoreInfo,
+} from "@/api/operate/storeManagement";
+
+export default {
+  components: { myAside, storeContent, updateUser },
+
+  created() {
+    this.search();
+  },
+
+  data() {
+    return {
+      storeCode: null,
+      storeStatus: null,
+      options: [
+        { label: "鍏ㄩ儴", value: 0 },
+        { label: "缁忚惀", value: 1 },
+        { label: "鍊掗棴", value: 2 },
+      ],
+      tableData: [],
+      dialogUpdate: false,
+      currentPage: 1,
+      totalNum: 0,
+      pageSize: 10,
+      userInfo: null,
+      updateFlag: false,
+      storeInfo: null,
+    };
+  },
+
+  methods: {
+    search(data) {
+      let communityId, streetId;
+      if (data) {
+        communityId = data.id;
+        streetId = data.parentId;
+      }
+      getStoreInfoList({ keyword: this.storeCode, communityId, streetId })
+        .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.currentPage = 1;
+      this.search();
+    },
+
+    handleView(row, type) {
+      this.dialogUpdate = true;
+      this.storeInfo = row;
+      this.updateFlag = type === "update";
+    },
+
+    handleDelete(id) {
+      deleteStoreInfo(id)
+        .then(() => {
+          this.$message({ type: "success", message });
+          this.currentPage = 1;
+          this.search();
+        })
+        .catch((err) => this.$message({ type: "error", message: err }));
+    },
+
+    handleClose() {
+      this.dialogUpdate = false;
+    },
+
+    closeDialog() {
+      this.dialogUpdate = false;
+      this.currentPage = 1;
+      this.search();
+    },
+
+    changeCurrentPage(currentPage) {
+      this.currentPage = currentPage;
+      this.search();
+    },
+
+    tableRowClassName({ row, rowIndex }) {
+      if ((rowIndex + 1) % 2 === 0) {
+        return "warning-row";
+      } else {
+        return "success-row";
+      }
+    },
+    selectedDepartment(data) {
+      if (!data.children) {
+        this.searchData = data;
+        this.search(data);
+      } else {
+        data.parentId = data.id;
+        data.id = null;
+        this.searchData = data;
+        this.search(data);
+      }
+      this.currentPage = 1;
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+::v-deep .el-header {
+  // background-color: #09152f;
+  color: #000;
+  line-height: 60px;
+}
+
+// ::v-deep .el-aside {
+  // background-color: #09152f;
+// }
+
+// ::v-deep .el-menu {
+  // background-color: #09152f;
+// }
+
+// ::v-deep .el-main,
+// ::v-deep .el-footer {
+//   background-color: #09152f;
+// }
+
+::v-deep .el-tree-node__label {
+  line-height: 30px;
+  font-size: 14px;
+  // color: rgb(75, 155, 183);
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/operate/message/myIndex/update/index_20230104153319.vue b/.history/src/views/operate/message/myIndex/update/index_20230104153319.vue
new file mode 100644
index 0000000..1c310b7
--- /dev/null
+++ b/.history/src/views/operate/message/myIndex/update/index_20230104153319.vue
@@ -0,0 +1,522 @@
+<template>
+  <div class="createUser">
+    <main>
+      <div class="mainContent">
+        <el-form
+          ref="user"
+          label-width="140px"
+          autoComplete="on"
+          :model="role"
+          :rules="createRoleRules"
+          label-position="right"
+          :disabled="type === 'view'"
+        >
+          <!-- 鎻愰啋鏂瑰紡 -->
+          <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode" >
+            <el-radio-group v-model="role.channelCode">
+              <el-radio label="01">绔欏唴淇�</el-radio>
+              <el-radio label="03">閭欢</el-radio>
+            </el-radio-group>
+            <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span>
+          </el-form-item>
+          <!-- 娑堟伅鏍忕洰 -->
+          <el-form-item
+            v-if="role.channelCode === '01'"
+            class="optionItem"
+            label="娑堟伅鏍忕洰:"
+            prop="messageType"
+          >
+            <div class="message-item">
+              <div class="message-item__left">
+                <el-select
+                  v-model="role.messageType"
+                  placeholder="璇烽�夋嫨娑堟伅鏍忕洰"
+                >
+                  <el-option
+                    v-for="item in colList"
+                    :key="item.id"
+                    :label="item.columnName"
+                    :value="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </div>
+              <span class="message-add" @click="dialogCreate = true">
+                娣诲姞鏍忕洰</span
+              >
+            </div>
+          </el-form-item>
+          <!-- 娑堟伅鏍囬 -->
+          <el-form-item class="optionItems" label="娑堟伅鏍囬:" prop="head">
+            <div class="message-item__left">
+              <el-input
+                v-model="role.head"
+                placeholder="璇烽�夋嫨娑堟伅鏍囬"
+              ></el-input>
+            </div>
+          </el-form-item>
+          <!-- 鎺ユ敹瀵硅薄 -->
+          <el-form-item class="optionItem" label="鎺ユ敹瀵硅薄:" prop="targetTo">
+            <div class="message-item__left">
+              <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹瀵硅薄">
+                <el-option :value="role.targetTo">
+                  <el-tree
+                    ref="tree"
+                    :data="departList"
+                    :props="defaultProps"
+                    show-checkbox
+                    @check="handleCheck"
+                    default-expand-all
+                    :default-checked-keys="checkedList"
+                    node-key="id"
+                  >
+                  </el-tree>
+                </el-option>
+              </el-select>
+            </div>
+          </el-form-item>
+          <!-- 娑堟伅鍐呭 -->
+          <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+            <MyEditor ref="edit"></MyEditor>
+          </el-form-item>
+          <el-form-item>
+            <div class="optionBtn">
+              <el-button
+                type="primary"
+                @click.native.prevent="handleSubmit(0)"
+                class="btn save"
+                v-if="type !== 'view'"
+                >淇濆瓨
+              </el-button>
+              <el-button
+                type="primary"
+                @click.native.prevent="handleSubmit(1)"
+                class="btn submit"
+                v-if="type !== 'view'"
+                >鍙戝竷
+              </el-button>
+              <el-button
+                type="primary"
+                @click.native.prevent="handleView"
+                class="btn submit"
+                v-if="type !== 'view'"
+                >棰勮
+              </el-button>
+              <el-button class="btn cancel" @click.native.prevent="handleReset" v-if="type !== 'view'"
+                >閲嶇疆</el-button
+              >
+            </div>
+          </el-form-item>
+        </el-form>
+        <!-- 鏂板鏍忕洰 -->
+        <el-dialog
+          title="娣诲姞鏍忕洰"
+          :visible.sync="dialogCreate"
+          v-if="dialogCreate"
+          width="60%"
+          :before-close="handleConfirmClose"
+          append-to-body
+        >
+          <MyColumnAdd @closeDialog="closeDialog"></MyColumnAdd>
+        </el-dialog>
+        <!-- 棰勮娑堟伅 -->
+        <el-dialog
+          title="娑堟伅棰勮"
+          :visible.sync="dialogView"
+          v-if="dialogView"
+          width="60%"
+          :before-close="handleConfirmClose"
+          append-to-body
+        >
+          <MyColView :info="info" @closeDialog="closeDialog"></MyColView>
+        </el-dialog>
+      </div>
+    </main>
+  </div>
+</template>
+<script>
+import MyEditor from "@/components/edit";
+import MyColumnAdd from "@/views/operate/message/mycontrol/createUser";
+import MyColView from "../messageView";
+import { sendMessage, updateMessage, getMessageById,saveMessage } from "@/api/operate/messageManagement";
+
+export default {
+  components: { MyEditor, MyColumnAdd, MyColView },
+  props: ["type", "myDataRow"],
+  data() {
+    const validateEditor = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error('璇疯緭鍏�'));
+      }
+    };
+    return {
+      role: {
+        messageType: null,
+        head: "",
+        targetTo: "",
+        body: "",
+        channelCode: null,
+      },
+      createRoleRules: {
+        messageType: [
+          {
+            required: true,
+            trigger: ["blur", "change"],
+            message: "璇疯緭鍏ユ秷鎭爮鐩�",
+          },
+        ],
+        head: [{ required: true, trigger: "blur", message: "璇烽�夋嫨娑堟伅鏍囬" }],
+        targetTo: [
+          { required: true, trigger: "blur", message: "璇烽�夋嫨鎺ュ彈瀵硅薄" },
+        ],
+        body: [
+          {
+            required: true,
+            validator: validateEditor
+          },
+        ],
+      },
+      colList: [],
+      departList: [],
+      typeList: [],
+      dialogCreate: false,
+      dialogView: false,
+      defaultProps: {
+        children: "children",
+        label: "departName",
+      },
+      checkedList: [],
+      tempNameArr: [],
+      info: {},
+      sendUser: "",
+    };
+  },
+  created() {
+    this.getColumnList();
+    this.getDepartList();
+    this.getLoginUserInfo();
+    if (this.type !== "create" && this.myDataRow) {
+      getMessageById(this.myDataRow.id)
+          .then(res => {
+            this.role = res;
+            if (res.targetTo) {
+              this.checkedList = res.targetTo.split(',');
+              this.role.targetTo = `${this.checkedList.length}浜篳;
+            }
+          })
+          .catch(err => this.$message.error(`${err}`))
+    }
+  },
+  mounted() {
+    if (this.type !== 'create') {
+      this.$refs.edit.editor.txt.append(this.myDataRow.body);
+    }
+
+  },
+  methods: {
+    // 鍏抽棴寮圭獥
+    handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then((_) => {
+        done();
+      });
+    },
+
+    // 鑾峰彇鏍忕洰
+    async getColumnList() {
+      await this.$axios({
+        method: "get",
+        url: "sccg/message_column/getShowColumn",
+      }).then((res) => {
+        this.colList = res.data;
+      });
+    },
+    // 鍏抽棴寮圭獥
+    closeDialog({ flag, index }) {
+      this.dialogCreate = flag;
+      if (index === 1) {
+        // 閲嶆柊璁剧疆鏍忕洰
+        this.getColumnList();
+      }
+    },
+    getType(){
+      return this.type;
+    },
+    // 鑾峰彇閮ㄩ棬鏍�
+    async getDepartList() {
+      await this.$axios({
+        method: "get",
+        url: "sccg/depart/tree",
+      }).then((res) => {
+        res.data.forEach((item) => {
+          this.departList.push(this.setChildren(item));
+        });
+      });
+    },
+
+    // 閫掑綊children
+    setChildren(obj) {
+      if (obj.children !== null) {
+        if (obj.children.length !== 0) {
+          obj.children.forEach((item) => {
+            return this.setChildren(item);
+          });
+        }
+      } else {
+        if (obj.userInfoDTOS.length !== 0) {
+          obj.children = [];
+          obj.userInfoDTOS.forEach((item) => {
+            obj.children.push({ id: item.userId, departName: item.username });
+          });
+        }
+      }
+      return obj;
+    },
+
+    // 閫変腑id
+    handleCheck(data, node) {
+      const checkedNodes = node.checkedNodes.filter(item => !item.children);
+      this.checkedList = checkedNodes.map(item => item.id);
+      this.tempNameArr = checkedNodes.map(item => item.departName);
+      this.role.targetTo = this.checkedList.length ? this.checkedList.length + "浜�" : null;
+    },
+
+    // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+    handleSubmit(mystatus) {
+      this.role.body = this.$refs.edit.editor.txt.html();
+      this.$refs.user.validate((valid) => {
+        if (valid) {
+          if(mystatus==1){
+            const { body, head, messageType, channelCode } = this.role;
+          const params = {
+            body,
+            head,
+            messageType,
+            channelCode: `${channelCode}`,
+            sendTime: new Date(),
+            targetTo: this.checkedList.join(","),
+            status: mystatus,
+          };
+          if (this.role.channelCode === '03') {
+            delete params.messageType;
+          }
+          if (this.type === "create") {
+            sendMessage(params)
+              .then(() => {
+                this.$emit("closeMyDialog");
+                this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" });
+              })
+              .catch((err) =>
+                this.$message({
+                  type: "error",
+                  message: err.data || err.message,
+                })
+              );
+          } else {
+            updateMessage({ id: this.myDataRow.id, ...params })
+              .then(() => {
+                this.$emit("closeMyDialog");
+                this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" });
+              })
+              .catch((err) =>
+                this.$message({
+                  type: "error",
+                  message: err.data || err.message,
+                })
+              );
+          }
+          }
+          if(mystatus==0){ 
+            const { body, head, messageType, channelCode } = this.role;
+          const params = {
+            body,
+            head,
+            messageType,
+            channelCode: `${channelCode}`,
+            sendTime: new Date(),
+            targetTo: this.checkedList.join(","),
+            status: mystatus,
+          };
+          if (this.role.channelCode === '03') {
+            delete params.messageType;
+          }
+          if (this.type === "create") {
+            saveMessage(params)
+              .then(() => {
+                this.$emit("closeMyDialog");
+                this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" });
+              })
+              .catch((err) =>
+                this.$message({
+                  type: "error",
+                  message: err.data || err.message,
+                })
+              );
+          } else {
+            updateMessage({ id: this.myDataRow.id, ...params })
+              .then(() => {
+                this.$emit("closeMyDialog");
+                this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" });
+              })
+              .catch((err) =>
+                this.$message({
+                  type: "error",
+                  message: err.data || err.message,
+                })
+              );
+          }
+          }
+        
+        } else {
+          this.$message.error({ type: "warning", message: "璇锋鏌ュ繀濉」" });
+        }
+      });
+    },
+
+    // 閲嶇疆琛ㄥ崟
+    handleReset() {
+      this.$refs.edit.editor.txt.clear();
+      this.$refs.user.resetFields();
+    },
+
+    // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛淇℃伅
+    getLoginUserInfo() {
+      const name = sessionStorage.getItem("name");
+      this.$axios({
+        method: "get",
+        url: "sccg/admin/info?name=" + name,
+      }).then((res) => {
+        this.role.targetFrom = res.data.userId;
+        this.sendUser = res.data.username;
+      });
+    },
+
+    // 娑堟伅棰勮
+    handleView() {
+      this.role.body = this.$refs.edit.editor.txt.html();
+      this.$refs.user.validate((valid) => {
+        if (valid) {
+          const { body, head, channelCode } = this.role;
+          this.dialogView = true;
+          this.info = {
+            body,
+            head,
+            channelCode:
+              channelCode === "01"
+                ? "绔欏唴淇�"
+                : channelCode === "03"
+                ? "閭欢"
+                : "鐭俊",
+            messageType: this.role.messageType,
+            targetTo: this.tempNameArr,
+            targetFrom: this.sendUser
+          };
+        } else {
+          this.$message({ type: "warning", message: "璇锋鏌ュ繀濉」" });
+        }
+      });
+    }
+  },
+};
+</script>
+<style lang="scss" scoped>
+.createUser {
+  border-radius: 1px;
+  background-color: white;
+
+  main {
+    text-align: left;
+    padding: 0 55px;
+    background-color: white;
+
+    .mainContent {
+      display: flex;
+      justify-content: center;
+      padding-top: 50px;
+      &:deep(.el-dialog__title) {
+        //color: #4b9bb7;
+      }
+      &::v-deep .el-form-item__label {
+        //color: #4b9bb7;
+      }
+
+      &::v-deep .el-input__inner {
+        width: 400px;
+        //background-color: #09152f;
+        //border: 1px solid #17324c;
+      }
+
+      .message-item__left {
+        width: 400px;
+      }
+
+      .message-add {
+        &:hover {
+          cursor: pointer;
+        }
+      }
+
+      .el-form-item__content :deep(.el-select) {
+        width: 400px;
+      }
+
+      :deep(.el-input) {
+        width: 400px;
+      }
+
+      .message-item {
+        display: flex;
+
+        span {
+          margin-left: 20px;
+          color: #606266;
+        }
+      }
+
+      .message-tip {
+        margin-left: 20px;
+      }
+
+      :deep(.el-input--suffix) {
+        width: 400px;
+      }
+
+      // &::v-deep .el-textarea__inner {
+      //   //background-color: #09152f;
+      //   //border: 1px solid #17324c;
+      // }
+
+      .el-form-item__content {
+        width: 400px;
+
+        .el-select {
+          width: 100%;
+        }
+      }
+
+      .optionHandleSp {
+        display: flex;
+
+        .areaNumber,
+        .moreNumber {
+          flex: 1;
+        }
+
+        .telNumber {
+          flex: 2;
+        }
+      }
+
+      .optionBtn {
+        display: flex;
+        margin-top: 20px;
+
+        .btn {
+          padding: 12px 50px;
+        }
+      }
+    }
+  }
+}
+</style>
diff --git a/src/api/operate/messageManagement.js b/src/api/operate/messageManagement.js
index c9a3fa0..24f2a77 100644
--- a/src/api/operate/messageManagement.js
+++ b/src/api/operate/messageManagement.js
@@ -16,6 +16,10 @@
     return http.post('/sccg/message/sendMessage', params);
 }
 
+export function sendMessageByMobileNumber(params) {
+    return http.post('/sccg/message/send_message_phone', params);
+}
+
 export function saveMessage(params) {
     return http.post('/sccg/message/saveMessage', params);
 }
diff --git a/src/views/operate/fivepack/threepack/components/content.vue b/src/views/operate/fivepack/threepack/components/content.vue
index 9e7e0b5..c7b2580 100644
--- a/src/views/operate/fivepack/threepack/components/content.vue
+++ b/src/views/operate/fivepack/threepack/components/content.vue
@@ -5,56 +5,31 @@
         <div class="find">
           <div class="search-item">
             <span>杈撳叆鏌ヨ:</span>
-            <el-input
-              style="flex: 1"
-              :placeholder="
-                isStorePage() ? '搴楅摵锛堥棬搴楋級鍚嶇О' : '璇疯緭鍏ュ簵閾虹紪鍙�'
-              "
-              v-model="storeCode"
-            />
+            <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-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
-            >
+            <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
-        >
+        <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="{
-          'font-weight': '650',
-          'line-height': '45px',
-        }"
-        :data="tableData"
-        style="width: 100%"
-        :row-class-name="tableRowClassName"
-      >
+      <el-table ref="multipleTable" :header-cell-style="{
+        '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>
@@ -64,11 +39,7 @@
         </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 prop="storeAddress" label="搴楅摵璇︾粏鍦板潃" min-width="10">
         </el-table-column>
         <el-table-column prop="storeScore" label="搴楅摵绉垎" min-width="10">
         </el-table-column>
@@ -79,90 +50,94 @@
         </el-table-column>
         <el-table-column prop="status" label="鐘舵��" min-width="10">
           <template slot-scope="scope">
-            <span>{{ scope.row.status==1?'缁忚惀':'鍊掗棴' }}</span>
+            <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 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
-              >
+                @click="sendMessage(scope.row.contact)">鎺ㄩ�佷俊鎭�</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
-              >
+              <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 :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"
-      >
+      <el-dialog :visible.sync="dialogScore" width="60%" :destroy-on-close="true" title="鏌ョ湅绉垎"
+        :before-close="handleCloseScoreView">
         <scoreView v-if="dialogScore" :storeInfo="storeInfoScoreView" />
+      </el-dialog>
+      <!-- 鏂板缓娑堟伅 -->
+      <el-dialog title="鏂板缓娑堟伅" :destroy-on-close="true" :key="dialogType" :visible.sync="isShowDialog" width="80%"
+        :before-close="handleConfirmClose">
+        <div class="mainContent">
+          <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules" label-position="right">
+            <!-- 娑堟伅鏍忕洰 -->
+            <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType">
+              <div class="message-item">
+                <div class="message-item__left">
+                  <el-select v-model="role.messageType" placeholder="璇烽�夋嫨鐭俊妯℃澘" @change="setTemplateValue">
+                    <el-option v-for="item in colList" :key="item.id" :label="item.title" :value="item.id">
+                    </el-option>
+                  </el-select>
+                </div>
+              </div>
+            </el-form-item>
+            <!-- 娑堟伅鏍囬 -->
+            <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head">
+              <div class="message-item__left">
+                <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input>
+              </div>
+            </el-form-item>
+            <!-- 鎺ユ敹瀵硅薄 -->
+            <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo">
+              <!-- <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select> -->
+              <!-- </div> -->
+              <div class="message-item__left">
+                <el-input v-model="role.phoneNumber"></el-input>
+              </div>
+            </el-form-item>
+            <!-- 娑堟伅鍐呭 -->
+            <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+              <MyEditor ref="edit"></MyEditor>
+            </el-form-item>
+
+            <el-form-item>
+              <div class="optionBtn">
+                <el-button type="primary" @click.native.prevent="handleSubmit(2)" class="btn submit">鍙戝竷</el-button>
+                <el-button class="btn cancel" @click.native.prevent="handleResetq">閲嶇疆</el-button>
+              </div>
+            </el-form-item>
+          </el-form>
+        </div>
       </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 background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
+          :page-size="pageSize" @current-change="changeCurrentPage">
         </el-pagination>
       </div>
     </main>
@@ -175,17 +150,27 @@
   getStoreInfoList,
   deleteStoreInfo,
 } from "@/api/operate/storeManagement";
+import { sendMessageByMobileNumber } from "@/api/operate/messageManagement";
+import MyEditor from '@/components/edit';
+import SMS from "@/api/operate/SMS";
 
 export default {
-  components: { updateUser, scoreView },
-
+  components: { updateUser, scoreView, MyEditor },
   created() {
     this.search();
+    this.getSMSTemplateList();
   },
 
   props: ["model"],
 
   data() {
+    const validateMessageContent = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�'));
+      } else {
+        callback();
+      }
+    }
     return {
       storeCode: null,
       storeStatus: null,
@@ -202,12 +187,109 @@
       pageSize: 10,
       userInfo: null,
       dialogType: "",
+      isShowDialog: false,
       storeInfo: null,
       storeInfoScoreView: {},
+      role: {
+        messageType: '',
+        head: '',
+        targetTo: '',
+        targetFrom: null,
+        body: '',
+        channelCode: '02',
+        phoneNumber: null,
+      },
+      rules: {
+        messageType: [
+          { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' },
+        ],
+        head: [
+          { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' },
+        ],
+        body: [
+          { required: true, trigger: ['blur', 'change'], validator: validateMessageContent }
+        ]
+      },
+      colList: [],
+      departList: [],
+      typeList: [],
+      dialogCreate: false,
+      dialogView: false,
+      defaultProps: {
+        children: 'children',
+        label: 'departName'
+      },
+      checkedList: [],
+      tempNameArr: [],
+      info: {},
+      sendUser: ""
     };
   },
 
   methods: {
+    // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+    handleSubmit(mystatus) {
+      this.role.body = this.$refs.edit.editor.txt.html();
+      this.$refs.user.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.role);
+          params.targetTo = this.checkedList.join(',');
+          params.status = mystatus;
+          sendMessageByMobileNumber(params)
+            .then(() => {
+              this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+              this.isShowDialog = false;
+              this.role.body = '';
+              this.role.head = '';
+              this.$refs.edit.editor.txt.clear();
+              this.search();
+              this.$refs.user.resetFields();
+            })
+            .catch(err => this.$message({ type: 'error', message: err }));
+        } else {
+          this.$message.warning('璇锋鏌ュ繀濉」');
+        }
+      })
+    },
+    setTemplateValue(obj) {
+      var _this = this
+      SMS.getSMSTemplateById(obj).then((result) => {
+        _this.role.head = result.title
+        _this.role.body = result.body
+        _this.$refs.edit.editor.txt.html(result.body)
+      })
+    },
+    getSMSTemplateList() {
+      SMS.getSMSTemplateList({ current: 1, pageSize: 100 })
+        .then(({ records }) => {
+          this.colList = records;
+        })
+        .catch(err => this.$message.error(err))
+    },
+    // 纭鍏抽棴寮圭獥
+    handleConfirmClose(done) {
+      this.$confirm("纭鍏抽棴?").then(() => {
+        done();
+        this.search();
+        this.role.body = '';
+        this.role.head = '';
+        this.$refs.edit.editor.txt.clear();
+        this.search();
+        this.$refs.user.resetFields();
+      });
+    },
+    // 閲嶇疆琛ㄥ崟
+    handleResetq() {
+      this.$refs.edit.editor.txt.clear();
+      this.search();
+      this.$refs.user.resetFields();
+      this.role.body = '';
+      this.role.head = '';
+    },
+    sendMessage(val) {
+      this.isShowDialog = true;
+      this.role.phoneNumber = val;
+    },
     search() {
       const status = this.storeStatus === 0 ? null : this.storeStatus;
       getStoreInfoList({ keyword: this.storeCode, status })
@@ -318,6 +400,94 @@
     margin-top: 20px;
     padding-bottom: 50px;
 
+    .mainContent {
+      display: flex;
+      justify-content: center;
+      padding-top: 50px;
+      //&:deep(.el-dialog__title) {
+      //    color: #4b9bb7;
+      //}
+      //&::v-deep .el-form-item__label {
+      //    color: #4b9bb7;
+      //}
+      //
+      //&::v-deep .el-input__inner {
+      //    width: 400px;
+      //    background-color: #09152f;
+      //    border: 1px solid #17324c;
+      //}
+
+      .message-item__left {
+        width: 400px;
+      }
+
+      .message-add {
+        &:hover {
+          cursor: pointer;
+        }
+      }
+
+      .el-form-item__content :deep(.el-select) {
+        width: 400px;
+      }
+
+      //:deep(.el-input) {
+      //    width: 400px;
+      //}
+
+      .message-item {
+        display: flex;
+
+        span {
+          margin-left: 20px;
+          color: #4b9bb7;
+        }
+      }
+
+      .message-tip {
+        margin-left: 20px;
+      }
+
+      //:deep(.el-input--suffix) {
+      //    width: 400px;
+      //}
+      //
+      //&::v-deep .el-textarea__inner {
+      //    background-color: #09152f;
+      //    border: 1px solid #17324c;
+      //}
+
+      .el-form-item__content {
+        width: 400px;
+
+        .el-select {
+          width: 100%;
+        }
+      }
+
+      .optionHandleSp {
+        display: flex;
+
+        .areaNumber,
+        .moreNumber {
+          flex: 1;
+        }
+
+        .telNumber {
+          flex: 2;
+        }
+      }
+
+      .optionBtn {
+        display: flex;
+        margin-top: 20px;
+
+        .btn {
+          padding: 12px 50px;
+        }
+      }
+    }
+
     .mainTitle {
       line-height: 60px;
     }
@@ -337,6 +507,7 @@
       justify-content: center;
 
       .el-pagination {
+
         &::v-deep li,
         &::v-deep .btn-prev,
         &::v-deep .btn-next {
diff --git a/src/views/operate/message/myIndex/update/index.vue b/src/views/operate/message/myIndex/update/index.vue
index 8bdd313..1c310b7 100644
--- a/src/views/operate/message/myIndex/update/index.vue
+++ b/src/views/operate/message/myIndex/update/index.vue
@@ -284,7 +284,6 @@
 
     // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
     handleSubmit(mystatus) {
-      debugger;
       this.role.body = this.$refs.edit.editor.txt.html();
       this.$refs.user.validate((valid) => {
         if (valid) {

--
Gitblit v1.8.0