From 085fa2fb257e9f11f8f6d34bf12e2dc281c36b4d Mon Sep 17 00:00:00 2001
From: odc.xiaohui <xiaohui@Q1>
Date: 星期四, 09 二月 2023 11:28:21 +0800
Subject: [PATCH] 2023/2/9 肖辉 修改部门管理

---
 src/views/operate/fivepack/threepack/components/content.vue |  336 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 321 insertions(+), 15 deletions(-)

diff --git a/src/views/operate/fivepack/threepack/components/content.vue b/src/views/operate/fivepack/threepack/components/content.vue
index d95fd4c..d399d6b 100644
--- a/src/views/operate/fivepack/threepack/components/content.vue
+++ b/src/views/operate/fivepack/threepack/components/content.vue
@@ -37,6 +37,7 @@
           v-if="isStorePage()"
           type="primary"
           icon="el-icon-plus"
+          class="button-addition"
           @click="handleView(null, 'create')"
           >娣诲姞</el-button
         >
@@ -45,11 +46,11 @@
     <main>
       <!-- 鏁版嵁灞曠ず -->
       <el-table
+        border
+        stripe
         ref="multipleTable"
         :header-cell-style="{
-          background: '#06122c',
-          'font-size': '12px',
-          color: '#4b9bb7',
+          background: '#F5F5F5',
           'font-weight': '650',
           'line-height': '45px',
         }"
@@ -79,6 +80,11 @@
             <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">
@@ -95,7 +101,11 @@
                 @click="handleDelete(scope.row.id)"
                 >鍒犻櫎</el-link
               >
-              <el-link class="leftPx" icon="el-icon-edit" :underline="false"
+              <el-link
+                class="leftPx"
+                icon="el-icon-edit"
+                :underline="false"
+                @click="sendMessage(scope.row.contact)"
                 >鎺ㄩ�佷俊鎭�</el-link
               >
               <el-link
@@ -150,6 +160,99 @@
       >
         <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
@@ -172,17 +275,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,
@@ -199,17 +312,121 @@
       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;
         })
@@ -275,8 +492,9 @@
 .content {
   flex: 1;
   height: 100%;
+  margin-left: 5px;
   padding-left: 20px;
-
+  border: 1px solid #ccc;
   .headerContent {
     display: flex;
     line-height: 100px;
@@ -310,9 +528,97 @@
   }
 
   main {
-    background-color: #09152f;
+    // 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;
@@ -330,30 +636,30 @@
       margin-top: 50px;
       display: flex;
       line-height: 50px;
-      justify-content: center;
+      justify-content: right;
 
       .el-pagination {
         &::v-deep li,
         &::v-deep .btn-prev,
         &::v-deep .btn-next {
-          background-color: #071f39;
+          // background-color: #071f39;
           color: #4b9bb7;
         }
       }
     }
 
     .el-table {
-      color: #4b9bb7;
-      font-size: 10px;
+      // color: #4b9bb7;
+      // font-size: 10px;
 
       &::v-deep .el-table__empty-block {
-        background-color: #09152f;
+        // background-color: #09152f;
         color: #4b9bb7;
       }
 
       .operation {
         display: flex;
-
+        color: var(--operation-color);
         .el-button {
           border: none;
         }
@@ -365,4 +671,4 @@
     }
   }
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.8.0