gyj 2 лет назад
Родитель
Сommit
f4cec02f6e

+ 24
- 0
src/api/deliveryRecord/deliveryRecord.js Просмотреть файл

@@ -17,4 +17,28 @@ export function smsList(data,params) {
17 17
         data: data,
18 18
         params:params
19 19
     })
20
+}
21
+// 分页查询短信
22
+export function recordList(data) {
23
+    return request({
24
+        url: '/shortMessage/recordList',
25
+        method: 'get',
26
+        params: data
27
+    })
28
+}
29
+//更新短信内容
30
+export function updateSendContent(data) {
31
+    return request({
32
+        url: 'shortMessage/updateSendContent',
33
+        method: 'post',
34
+        data: data,
35
+    })
36
+}
37
+// 重新发送短信
38
+export function reSendShortMessage(data) {
39
+    return request({
40
+        url: 'shortMessage/reSendShortMessage',
41
+        method: 'post',
42
+        data: data,
43
+    })
20 44
 }

+ 69
- 0
src/views/deliveryRecord/components/resend.vue Просмотреть файл

@@ -0,0 +1,69 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="修改内容" :visible="resendVidable" v-if="resendVidable" @close="cancel" center
4
+            :distroy-on-close="true">
5
+            <div style="margin-bottom: 30px;"><span style="font-weight: bold;">发送内容:</span>{{ sendData }}</div>
6
+            <el-form label-width="100px">
7
+                <el-form-item v-for="(item,index) in rowData.templateParams" :label="item.paramName" :key="item.id"> 
8
+                    <el-input v-model="rowData.templateParams[index].paramValue" @input="changeContent"></el-input>
9
+                </el-form-item>
10
+            </el-form>
11
+            <div slot="footer" class="dialog-footer">
12
+                <el-button @click="cancel" class="endbutton1" round><span>取 消</span></el-button>
13
+                <el-button @click="submitSend" class="endbutton1" type="primary" round><span>确 认</span></el-button>
14
+            </div>
15
+        </el-dialog>
16
+    </div>
17
+</template>
18
+
19
+<script>
20
+import {
21
+    updateSendContent,
22
+} from "@/api/deliveryRecord/deliveryRecord.js";
23
+export default {
24
+    props: ["resendVidable", "rowData","queryParams"],
25
+    data() {
26
+        return {
27
+            sendData:'',
28
+            param:"",
29
+            paramValue:""
30
+
31
+        };
32
+    },
33
+    watch: {
34
+        resendVidable(val){
35
+            if(val){
36
+                this.sendData = this.rowData.sendContent;
37
+            }
38
+        }
39
+    },
40
+    methods: {
41
+        cancel() {
42
+            this.$emit("cancelSend");
43
+        },
44
+        submitSend() {
45
+            console.log(this.rowData)
46
+            this.updateSendContentFn({
47
+                id:this.rowData.id,
48
+                templateParams:this.rowData.templateParams
49
+            })
50
+        },
51
+        updateSendContentFn(data){
52
+            updateSendContent(data).then(res=>{
53
+                this.$message.success('更新成功');
54
+                this.$emit("cancelSend");
55
+                this.$emit('getList',this.queryParams);
56
+            })
57
+        },
58
+        changeContent(){
59
+            let templateContent = this.rowData.templateContent
60
+            this.rowData.templateParams.forEach(item => {
61
+                templateContent = templateContent.replace(item.param,item.paramValue)
62
+            });
63
+           this.sendData = templateContent
64
+        }
65
+    },
66
+};
67
+</script>
68
+
69
+<style lang="scss" scoped></style>

+ 60
- 10
src/views/deliveryRecord/smsRecord.vue Просмотреть файл

@@ -22,7 +22,16 @@
22 22
             <el-table-column label="发送时间" align="center" prop="sendTime" />
23 23
             <el-table-column label="发送状态" align="center" prop="sendStatus" />
24 24
             <el-table-column label="发送内容" align="center" prop="sendContent" :show-overflow-tooltip="true" />
25
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
26
+                <template slot-scope="scope">
27
+                    <el-button size="mini" @click="copyContent(scope.row.sendContent)" type="text"
28
+                        icon="el-icon-document-copy">复制内容</el-button>
29
+                    <el-button size="mini" @click="resend(scope.row)" type="text" icon="el-icon-s-promotion">编辑内容</el-button>
30
+                    <el-button v-if="scope.row.sendStatus == '发送失败'|| scope.row.sendStatus == '发送中'" size="mini" type="text" @click="resendMessage(scope.row)" icon="el-icon-s-promotion">重新发送</el-button>
31
+                </template>
32
+            </el-table-column>
25 33
         </el-table>
34
+        <resend :resendVidable="resendVidable" :rowData="rowData" @getList="getList" @cancelSend="cancelSend" :queryParams="queryParams"></resend>
26 35
         <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
27 36
             @pagination="getList({caseNum:queryParams.caseNum},{pageNum:queryParams.pageNum,pageSize:queryParams.pageSize})" />
28 37
        
@@ -31,20 +40,22 @@
31 40
   
32 41
 <script>
33 42
 import {
34
-    smsList,
43
+    recordList,reSendShortMessage
35 44
 } from "@/api/deliveryRecord/deliveryRecord.js";
36
-
45
+import resend from "./components/resend.vue";
37 46
 import { getDicts } from '@/api/system/dict/data.js'
38 47
 export default {
39 48
     name: "paymentList",
40 49
     dicts: ["case_status"],
41
-    components: { },
50
+    components: {resend },
42 51
     data() {
43 52
         return {
44 53
             queryParams: {
45 54
                 pageNum: 1,
46 55
                 pageSize: 10,
47 56
             },
57
+            resendVidable:false,
58
+            rowData:{},
48 59
             caseStatus: [],
49 60
             // 遮罩层
50 61
             loading: false,
@@ -76,16 +87,16 @@ export default {
76 87
         // 查询列表数据
77 88
         getList(data,params) {
78 89
             this.loading = true;
79
-            smsList(data,params).then((response) => {
90
+            recordList(data,params).then((response) => {
80 91
                 this.dataList = response.rows;
92
+                console.log(this.dataList)
81 93
                 this.dataList.forEach(item=>{
82
-                    if(item.sendStatus == 0){
83
-                        item.sendStatus = "发送失败"
84
-                    }else if(item.sendStatus == 1){
85
-                        item.sendStatus = "已送达"
94
+                    console.log(item)
95
+                    if(item.sendStatus == 1){
96
+                        item.sendStatus = "发送成功"
86 97
                     }else if(item.sendStatus == 2){
87
-                        item.sendStatus = "已读取"
88
-                    }else{
98
+                        item.sendStatus = "发送中"
99
+                    }else if(item.sendStatus == 3){
89 100
                         item.sendStatus = "发送失败"
90 101
                     }
91 102
                 })
@@ -93,6 +104,45 @@ export default {
93 104
                 this.loading = false;
94 105
             });
95 106
         },
107
+          /** 复制内容 */
108
+        copyContent(row) {
109
+            const el = document.createElement('textarea');
110
+            el.value = row;
111
+            document.body.appendChild(el);
112
+            el.select();
113
+            document.execCommand('copy');
114
+            document.body.removeChild(el);
115
+            this.$message.success('复制成功');
116
+        },
117
+          /**重新发送 */
118
+        resend(row){
119
+            console.log(row)
120
+            this.resendVidable = true;
121
+            this.rowData = row;
122
+        },
123
+                /**关闭弹窗 */
124
+        cancelSend(){
125
+            this.resendVidable = false;
126
+        },
127
+                // 重新发送
128
+        resendMessage(row){
129
+            console.log(row.sendStatus)
130
+            let valuesRow ={
131
+                id:row.id,
132
+                templateId:row.templateId,
133
+                phone:row.phone,
134
+                templateParams:row.templateParams
135
+            }
136
+            this.reSendShortMessageFn(valuesRow)
137
+            console.log(valuesRow)
138
+           
139
+        },
140
+        reSendShortMessageFn(valuesRow){
141
+            reSendShortMessage(valuesRow).then(res=>{
142
+                this.$message.success('发送成功');
143
+                this.getList({ caseNum: this.queryParams.caseNum }, { pageNum: this.queryParams.pageNum, pageSize: this.queryParams.pageSize });
144
+            })
145
+        }
96 146
     },
97 147
 };
98 148
 </script>