From e21dd8e2494a47ff4702a321479aa6ae16cbb0fb Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Tue, 02 Apr 2024 15:17:21 +0800
Subject: [PATCH] 短信+议事导出

---
 src/views/sms/smsRecord.vue |  448 ++++++++++++++++++++++++++-----------------------------
 1 files changed, 213 insertions(+), 235 deletions(-)

diff --git a/src/views/sms/smsRecord.vue b/src/views/sms/smsRecord.vue
index 1da0915..b7f6ee1 100644
--- a/src/views/sms/smsRecord.vue
+++ b/src/views/sms/smsRecord.vue
@@ -4,28 +4,8 @@
       :before-open="beforeOpen" v-model="form" ref="crud" @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel"
       @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
       @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
-      <template slot="menuLeft">
-        <el-button type="danger" size="small" icon="el-icon-delete" plain v-if="permission.messageRecord_delete"
-          @click="handleDelete">删 除
-        </el-button>
-      </template>
 
-      <template slot-scope="{disabled,size}" slot="receiverForm">
-        <div style="display: flex">
-          <el-input :disabled="disabled" :size="size" v-model="form.receiver" placeholder="请选择接收人"></el-input>
-
-          <div style="margin-left: 10px">
-            <el-button type="primary" size="small" @click="showDialog">选择</el-button>
-          </div>
-        </div>
-      </template>
     </avue-crud>
-
-
-
-    <DeptUserTable ref="deptUserTable" @selectPersonList="selectPersonList"></DeptUserTable>
-
-
 
   </basic-container>
 </template>
@@ -36,28 +16,20 @@
     getDetail,
     add,
     update,
-    remove,
-    customizeSave
-  } from "@/api/messageRecord/messageRecord";
+    remove
+  } from "@/api/resource/smsRecord"
   import {
     mapGetters
-  } from "vuex";
-  import {
-    getDeptLazyTree,
-    getDeptUserTree,
-    getLazyList
-  } from "@/api/system/dept";
-  import DeptUserTable from "@/views/message/components/DeptUserTable.vue";
+  } from "vuex"
+  import func from "@/util/func"
 
   export default {
-    components: {
-      DeptUserTable
-    },
     data() {
       return {
         form: {},
         query: {},
         loading: true,
+        box: false,
         page: {
           pageSize: 10,
           currentPage: 1,
@@ -65,188 +37,182 @@
         },
         selectionList: [],
         option: {
-          dialogDirection: 'rtl',
-          dialogType: 'drawer',
+          labelWidth: 96,
+          searchLabelWidth: 96,
+          searchShow: true,
+          searchMenuSpan: 3,
+          menuWidth: 350,
+          menu: false,
           height: 'auto',
           calcHeight: 30,
           tip: false,
-          searchShow: true,
-          searchMenuSpan: 6,
           border: true,
           index: true,
           viewBtn: true,
-          dialogClickModal: false,
-          editBtn: false,
-          addBtnText: "消息发送",
-          saveBtnText: "发送",
-          delBtn: false,
           selection: true,
+          dialogWidth: 880,
+          dialogClickModal: false,
           column: [{
-              label: "消息类型",
-              prop: "type",
-              type: "checkbox",
-              dataType: "string",
-              search: true,
-              searchSpan: 4,
-              searchLabelWidth: 96,
-              row: true,
-              dicUrl: "/api/blade-system/dict-biz/dictionary?code=messageType",
-              props: {
-                label: "dictValue",
-                value: "dictKey",
-              },
-              rules: [{
-                required: true,
-                message: "请选择消息类型",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "接收人",
-              prop: "receiver",
-              type: "select",
-              formslot: true,
-              disabled: true,
-              hide: true,
+              // width: 100,
+              label: "电话号码",
+              prop: "phone",
               span: 24,
-              viewDisplay: false,
-              rules: [{
-                required: true,
-                message: "请选择接收人",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "接收人",
-              prop: "userName",
+              align: "center",
+              slot: true,
               addDisplay: false,
-            },
-            {
-              label: "标题",
-              prop: "title",
-              type: "input",
-              span: 24,
-              rules: [{
-                required: true,
-                message: "请输入标题",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "内容",
+              editDisplay: false,
+              viewDisplay: false,
+            }, {
+              label: "短信内容",
               prop: "content",
-              type: "textarea",
-              minRow: 5,
               span: 24,
+              width: 800,
+              searchSpan: 4,
+              align: "center",
+              search: true,
               rules: [{
                 required: true,
-                message: "请输入内容",
+                message: "请输入模版内容",
                 trigger: "blur"
               }]
             },
             {
-              label: "发送时间",
+              // width: 100,
+              label: "模版ID",
+              prop: "templateId",
+              span: 24,
+              align: "center",
+              slot: true,
+              addDisplay: false,
+              editDisplay: false,
+              viewDisplay: false,
+            },
+            {
+              label: "创建时间",
               prop: "createTime",
               span: 24,
-              display: false
+              // width: 200,
+              align: "center",
+              addDisplay: false,
+              rules: [{
+                required: true,
+                message: "请输入短信签名",
+                trigger: "blur"
+              }],
             },
-            {
-              label: "发送时间",
-              prop: "dateTime",
-              type: "daterange",
-              format: "yyyy-MM-dd",
-              valueFormat: "yyyy-MM-dd",
-              searchRange: true,
-              hide: true,
-              display: false,
-              search: true,
-              searchLabelWidth: 96,
-            },
+
           ]
         },
         data: [],
-
-        personList: [],
-      };
-    },
-    computed: {
-      ...mapGetters(["permission", "userInfo"]),
-      permissionList() {
-        return {
-          addBtn: this.vaildData(this.permission.messageRecord_add, false),
-          viewBtn: this.vaildData(this.permission.messageRecord_view, false),
-          delBtn: this.vaildData(this.permission.messageRecord_delete, false),
-          editBtn: this.vaildData(this.permission.messageRecord_edit, false)
-        };
-      },
-      ids() {
-        let ids = [];
-        this.selectionList.forEach(ele => {
-          ids.push(ele.id);
-        });
-        return ids.join(",");
+        debugForm: {
+          code: '',
+        },
+        debugOption: {
+          submitText: "发送",
+          column: [{
+              label: "资源编号",
+              prop: "code",
+              disabled: true,
+              span: 24,
+            },
+            {
+              label: "发送手机",
+              prop: "phones",
+              span: 24,
+            },
+            {
+              label: "发送参数",
+              prop: "params",
+              span: 24,
+              placeholder: "例: {'code':2333,'title':'通知标题'}",
+            },
+          ]
+        }
       }
     },
-    created() {
-      // this.getTreeData()
+    watch: {
+      'form.category'() {
+        const category = func.toInt(this.form.category)
+        this.$refs.crud.option.column.filter(item => {
+          if (item.prop === "templateId") {
+            if (category === 1) {
+              item.label = "模版内容"
+            } else {
+              item.label = "模版ID"
+            }
+          }
+          if (item.prop === "accessKey") {
+            if (category === 1) {
+              item.label = "apiKey"
+            } else if (category === 4) {
+              item.label = "appId"
+            } else {
+              item.label = "accessKey"
+            }
+          }
+          if (item.prop === "secretKey") {
+            item.display = category !== 1
+            if (category === 4) {
+              item.label = "appKey"
+            } else {
+              item.label = "secretKey"
+            }
+          }
+          if (item.prop === "regionId") {
+            if (category === 3) {
+              item.display = true
+              item.value = "cn-hangzhou"
+            } else {
+              item.display = false
+            }
+          }
+        })
+      }
+    },
+    computed: {
+      ...mapGetters(["userInfo", "permission"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.sms_add, false),
+          viewBtn: this.vaildData(this.permission.sms_view, false),
+          delBtn: this.vaildData(this.permission.sms_delete, false),
+          editBtn: this.vaildData(this.permission.sms_edit, false)
+        }
+      },
+      ids() {
+        let ids = []
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      }
     },
     methods: {
-      selectPersonList(personList) {
-        console.log(personList, "++++++++++++")
-
-        this.personList = personList
-
-        let nameList = personList.map(e => {
-          return e.name
-        })
-        this.form.receiver = nameList.join(",")
-      },
-
-      showDialog() {
-        this.$refs.deptUserTable.show()
-      },
-
-      getTreeData() {
-        getDeptUserTree({
-          id: this.userInfo.dept_id
-        }).then(res => {
-          console.log(res, "+++++++++++")
-          let data = res.data.data
-          let receiver = this.findObject(this.option.column, 'receiver')
-          receiver.dicData = data
-        })
-
-      },
-
       rowSave(row, done, loading) {
-        console.log(row)
-        row.type = row.type.split(",").sort((a, b) => a - b).join(",")
-        row['messageResource'] = 2
-        row.receiver = this.personList.map(e => e.id).join(",")
-        customizeSave(row).then(() => {
-          this.onLoad(this.page);
+        add(row).then(() => {
+          this.onLoad(this.page)
           this.$message({
             type: "success",
             message: "操作成功!"
-          });
-          done();
+          })
+          done()
         }, error => {
-          loading();
-          window.console.log(error);
-        });
+          window.console.log(error)
+          loading()
+        })
       },
       rowUpdate(row, index, done, loading) {
         update(row).then(() => {
-          this.onLoad(this.page);
+          this.onLoad(this.page)
           this.$message({
             type: "success",
             message: "操作成功!"
-          });
-          done();
+          })
+          done()
         }, error => {
-          loading();
-          console.log(error);
-        });
+          window.console.log(error)
+          loading()
+        })
       },
       rowDel(row) {
         this.$confirm("确定将选择数据删除?", {
@@ -255,20 +221,56 @@
             type: "warning"
           })
           .then(() => {
-            return remove(row.id);
+            return remove(row.id)
           })
           .then(() => {
-            this.onLoad(this.page);
+            this.onLoad(this.page)
             this.$message({
               type: "success",
               message: "操作成功!"
-            });
-          });
+            })
+          })
+      },
+      handleEnable(row) {
+        this.$confirm("是否确定启用这条配置?", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          })
+          .then(() => {
+            return enable(row.id)
+          })
+          .then(() => {
+            this.onLoad(this.page)
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            })
+            this.$refs.crud.toggleSelection()
+          })
+      },
+      handleDebug(row) {
+        this.box = true
+        this.debugForm.code = row.smsCode
+      },
+      handleSend(form, done, loading) {
+        send(form.code, form.phones, form.params).then((res) => {
+          this.$message({
+            type: "success",
+            message: "发送成功!"
+          })
+          done()
+          window.console.log(res)
+          this.box = false
+        }, error => {
+          window.console.log(error)
+          loading()
+        })
       },
       handleDelete() {
         if (this.selectionList.length === 0) {
-          this.$message.warning("请选择至少一条数据");
-          return;
+          this.$message.warning("请选择至少一条数据")
+          return
         }
         this.$confirm("确定将选择数据删除?", {
             confirmButtonText: "确定",
@@ -276,85 +278,61 @@
             type: "warning"
           })
           .then(() => {
-            return remove(this.ids);
+            return remove(this.ids)
           })
           .then(() => {
-            this.onLoad(this.page);
+            this.onLoad(this.page)
             this.$message({
               type: "success",
               message: "操作成功!"
-            });
-            this.$refs.crud.toggleSelection();
-          });
+            })
+            this.$refs.crud.toggleSelection()
+          })
       },
       beforeOpen(done, type) {
         if (["edit", "view"].includes(type)) {
           getDetail(this.form.id).then(res => {
-            this.form = res.data.data;
-          });
+            this.form = res.data.data
+          })
         }
-        done();
+        done()
       },
       searchReset() {
-        this.query = {};
-        this.onLoad(this.page);
+        this.query = {}
+        this.onLoad(this.page)
       },
       searchChange(params, done) {
-        this.query = params;
-        this.page.currentPage = 1;
-        this.onLoad(this.page, params);
-        done();
+        this.query = params
+        this.page.currentPage = 1
+        this.onLoad(this.page, params)
+        done()
       },
       selectionChange(list) {
-        console.log('selectionChange', list)
-        this.selectionList = list;
+        this.selectionList = list
       },
       selectionClear() {
-        this.selectionList = [];
-        this.$refs.crud.toggleSelection();
+        this.selectionList = []
+        this.$refs.crud.toggleSelection()
       },
       currentChange(currentPage) {
-        this.page.currentPage = currentPage;
+        this.page.currentPage = currentPage
       },
       sizeChange(pageSize) {
-        this.page.pageSize = pageSize;
+        this.page.pageSize = pageSize
       },
       refreshChange() {
-        this.onLoad(this.page, this.query);
+        this.onLoad(this.page, this.query)
       },
       onLoad(page, params = {}) {
-        this.loading = true;
-        //系统消息
-        params.messageResource = '2'
-        params.type = '3'
-        params.createUser = this.userInfo.user_id
-        const {
-          dateTime
-        } = this.query
-        let values = {
-          ...params,
-        }
-        if (dateTime) {
-          values = {
-            ...params,
-            startTime: dateTime[0],
-            endTime: dateTime[1],
-            ...this.query,
-          }
-          values.dateTime = null
-        }
-
-        getList(page.currentPage, page.pageSize, values).then(res => {
-          const data = res.data.data;
-          this.page.total = data.total;
-          this.data = data.records;
-          this.loading = false;
-          this.selectionClear();
-        });
+        this.loading = true
+        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+          const data = res.data.data
+          this.page.total = data.total
+          this.data = data.records
+          this.loading = false
+          this.selectionClear()
+        })
       }
     }
-  };
-</script>
-
-<style>
-</style>
+  }
+</script>
\ No newline at end of file

--
Gitblit v1.9.3