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

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

17
         data: data,
17
         data: data,
18
         params:params
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 Просмотреть файл

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
             <el-table-column label="发送时间" align="center" prop="sendTime" />
22
             <el-table-column label="发送时间" align="center" prop="sendTime" />
23
             <el-table-column label="发送状态" align="center" prop="sendStatus" />
23
             <el-table-column label="发送状态" align="center" prop="sendStatus" />
24
             <el-table-column label="发送内容" align="center" prop="sendContent" :show-overflow-tooltip="true" />
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
         </el-table>
33
         </el-table>
34
+        <resend :resendVidable="resendVidable" :rowData="rowData" @getList="getList" @cancelSend="cancelSend" :queryParams="queryParams"></resend>
26
         <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
35
         <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
27
             @pagination="getList({caseNum:queryParams.caseNum},{pageNum:queryParams.pageNum,pageSize:queryParams.pageSize})" />
36
             @pagination="getList({caseNum:queryParams.caseNum},{pageNum:queryParams.pageNum,pageSize:queryParams.pageSize})" />
28
        
37
        
31
   
40
   
32
 <script>
41
 <script>
33
 import {
42
 import {
34
-    smsList,
43
+    recordList,reSendShortMessage
35
 } from "@/api/deliveryRecord/deliveryRecord.js";
44
 } from "@/api/deliveryRecord/deliveryRecord.js";
36
-
45
+import resend from "./components/resend.vue";
37
 import { getDicts } from '@/api/system/dict/data.js'
46
 import { getDicts } from '@/api/system/dict/data.js'
38
 export default {
47
 export default {
39
     name: "paymentList",
48
     name: "paymentList",
40
     dicts: ["case_status"],
49
     dicts: ["case_status"],
41
-    components: { },
50
+    components: {resend },
42
     data() {
51
     data() {
43
         return {
52
         return {
44
             queryParams: {
53
             queryParams: {
45
                 pageNum: 1,
54
                 pageNum: 1,
46
                 pageSize: 10,
55
                 pageSize: 10,
47
             },
56
             },
57
+            resendVidable:false,
58
+            rowData:{},
48
             caseStatus: [],
59
             caseStatus: [],
49
             // 遮罩层
60
             // 遮罩层
50
             loading: false,
61
             loading: false,
76
         // 查询列表数据
87
         // 查询列表数据
77
         getList(data,params) {
88
         getList(data,params) {
78
             this.loading = true;
89
             this.loading = true;
79
-            smsList(data,params).then((response) => {
90
+            recordList(data,params).then((response) => {
80
                 this.dataList = response.rows;
91
                 this.dataList = response.rows;
92
+                console.log(this.dataList)
81
                 this.dataList.forEach(item=>{
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
                     }else if(item.sendStatus == 2){
97
                     }else if(item.sendStatus == 2){
87
-                        item.sendStatus = "已读取"
88
-                    }else{
98
+                        item.sendStatus = "发送中"
99
+                    }else if(item.sendStatus == 3){
89
                         item.sendStatus = "发送失败"
100
                         item.sendStatus = "发送失败"
90
                     }
101
                     }
91
                 })
102
                 })
93
                 this.loading = false;
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
 </script>
148
 </script>