From 58c7cea677690dcdf5fc65057e836f6a775aec01 Mon Sep 17 00:00:00 2001 From: yxh <172933527@qq.com> Date: 星期五, 24 三月 2023 14:38:56 +0800 Subject: [PATCH] yxh --- ruoyi-ui/src/api/smartor/ivrtasksms.js | 44 ruoyi-ui/src/views/smartor/ivrtaskcallrecord/index.vue | 646 +++++++++++ ruoyi-ui/src/views/smartor/ivrtask/index.vue | 597 ++++++++++ ruoyi-ui/src/api/smartor/ivrtask.js | 44 ruoyi-ui/src/api/smartor/ivrtaskcalldetail.js | 44 ruoyi-ui/src/views/smartor/ivrtasksms/index.vue | 403 +++++++ ruoyi-ui/src/api/smartor/ivrtaskcall.js | 44 ruoyi-ui/src/api/smartor/ivrtaskcallrecord.js | 44 ruoyi-ui/src/views/smartor/ivrtaskcalldetail/index.vue | 739 ++++++++++++ ruoyi-ui/src/views/smartor/ivrtaskcall/index.vue | 790 +++++++++++++ 10 files changed, 3,395 insertions(+), 0 deletions(-) diff --git a/ruoyi-ui/src/api/smartor/ivrtask.js b/ruoyi-ui/src/api/smartor/ivrtask.js new file mode 100644 index 0000000..e82cdb6 --- /dev/null +++ b/ruoyi-ui/src/api/smartor/ivrtask.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 鏌ヨ璇煶浠诲姟鍒楄〃 +export function listIvrtask(query) { + return request({ + url: '/smartor/ivrtask/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ璇煶浠诲姟璇︾粏 +export function getIvrtask(taskid) { + return request({ + url: '/smartor/ivrtask/' + taskid, + method: 'get' + }) +} + +// 鏂板璇煶浠诲姟 +export function addIvrtask(data) { + return request({ + url: '/smartor/ivrtask', + method: 'post', + data: data + }) +} + +// 淇敼璇煶浠诲姟 +export function updateIvrtask(data) { + return request({ + url: '/smartor/ivrtask', + method: 'put', + data: data + }) +} + +// 鍒犻櫎璇煶浠诲姟 +export function delIvrtask(taskid) { + return request({ + url: '/smartor/ivrtask/' + taskid, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/smartor/ivrtaskcall.js b/ruoyi-ui/src/api/smartor/ivrtaskcall.js new file mode 100644 index 0000000..ed979a6 --- /dev/null +++ b/ruoyi-ui/src/api/smartor/ivrtaskcall.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 鏌ヨ璇煶浠诲姟鍛煎彨鍒楄〃 +export function listIvrtaskcall(query) { + return request({ + url: '/smartor/ivrtaskcall/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ璇煶浠诲姟鍛煎彨璇︾粏 +export function getIvrtaskcall(callid) { + return request({ + url: '/smartor/ivrtaskcall/' + callid, + method: 'get' + }) +} + +// 鏂板璇煶浠诲姟鍛煎彨 +export function addIvrtaskcall(data) { + return request({ + url: '/smartor/ivrtaskcall', + method: 'post', + data: data + }) +} + +// 淇敼璇煶浠诲姟鍛煎彨 +export function updateIvrtaskcall(data) { + return request({ + url: '/smartor/ivrtaskcall', + method: 'put', + data: data + }) +} + +// 鍒犻櫎璇煶浠诲姟鍛煎彨 +export function delIvrtaskcall(callid) { + return request({ + url: '/smartor/ivrtaskcall/' + callid, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/smartor/ivrtaskcalldetail.js b/ruoyi-ui/src/api/smartor/ivrtaskcalldetail.js new file mode 100644 index 0000000..c588f53 --- /dev/null +++ b/ruoyi-ui/src/api/smartor/ivrtaskcalldetail.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃 +export function listIvrtaskcalldetail(query) { + return request({ + url: '/smartor/ivrtaskcalldetail/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏璇︾粏 +export function getIvrtaskcalldetail(calldetailid) { + return request({ + url: '/smartor/ivrtaskcalldetail/' + calldetailid, + method: 'get' + }) +} + +// 鏂板璇煶浠诲姟鍛煎彨鏄庣粏 +export function addIvrtaskcalldetail(data) { + return request({ + url: '/smartor/ivrtaskcalldetail', + method: 'post', + data: data + }) +} + +// 淇敼璇煶浠诲姟鍛煎彨鏄庣粏 +export function updateIvrtaskcalldetail(data) { + return request({ + url: '/smartor/ivrtaskcalldetail', + method: 'put', + data: data + }) +} + +// 鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏 +export function delIvrtaskcalldetail(calldetailid) { + return request({ + url: '/smartor/ivrtaskcalldetail/' + calldetailid, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/smartor/ivrtaskcallrecord.js b/ruoyi-ui/src/api/smartor/ivrtaskcallrecord.js new file mode 100644 index 0000000..e331bcc --- /dev/null +++ b/ruoyi-ui/src/api/smartor/ivrtaskcallrecord.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 鏌ヨ璇煶浠诲姟鍛煎彨璁板綍鍒楄〃 +export function listIvrtaskcallrecord(query) { + return request({ + url: '/smartor/ivrtaskcallrecord/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ璇煶浠诲姟鍛煎彨璁板綍璇︾粏 +export function getIvrtaskcallrecord(uuid) { + return request({ + url: '/smartor/ivrtaskcallrecord/' + uuid, + method: 'get' + }) +} + +// 鏂板璇煶浠诲姟鍛煎彨璁板綍 +export function addIvrtaskcallrecord(data) { + return request({ + url: '/smartor/ivrtaskcallrecord', + method: 'post', + data: data + }) +} + +// 淇敼璇煶浠诲姟鍛煎彨璁板綍 +export function updateIvrtaskcallrecord(data) { + return request({ + url: '/smartor/ivrtaskcallrecord', + method: 'put', + data: data + }) +} + +// 鍒犻櫎璇煶浠诲姟鍛煎彨璁板綍 +export function delIvrtaskcallrecord(uuid) { + return request({ + url: '/smartor/ivrtaskcallrecord/' + uuid, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/smartor/ivrtasksms.js b/ruoyi-ui/src/api/smartor/ivrtasksms.js new file mode 100644 index 0000000..b1a7596 --- /dev/null +++ b/ruoyi-ui/src/api/smartor/ivrtasksms.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 鏌ヨ璇煶浠诲姟鐭俊鍒楄〃 +export function listIvrtasksms(query) { + return request({ + url: '/smartor/ivrtasksms/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ璇煶浠诲姟鐭俊璇︾粏 +export function getIvrtasksms(id) { + return request({ + url: '/smartor/ivrtasksms/' + id, + method: 'get' + }) +} + +// 鏂板璇煶浠诲姟鐭俊 +export function addIvrtasksms(data) { + return request({ + url: '/smartor/ivrtasksms', + method: 'post', + data: data + }) +} + +// 淇敼璇煶浠诲姟鐭俊 +export function updateIvrtasksms(data) { + return request({ + url: '/smartor/ivrtasksms', + method: 'put', + data: data + }) +} + +// 鍒犻櫎璇煶浠诲姟鐭俊 +export function delIvrtasksms(id) { + return request({ + url: '/smartor/ivrtasksms/' + id, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/views/smartor/ivrtask/index.vue b/ruoyi-ui/src/views/smartor/ivrtask/index.vue new file mode 100644 index 0000000..19e74e4 --- /dev/null +++ b/ruoyi-ui/src/views/smartor/ivrtask/index.vue @@ -0,0 +1,597 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label=" " prop="taskname"> + <el-input + v-model="queryParams.taskname" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="templateid"> + <el-input + v-model="queryParams.templateid" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="templatename"> + <el-input + v-model="queryParams.templatename" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="labelinfo"> + <el-input + v-model="queryParams.labelinfo" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="state"> + <el-input + v-model="queryParams.state" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="count"> + <el-input + v-model="queryParams.count" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="executed"> + <el-input + v-model="queryParams.executed" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="unexecuted"> + <el-input + v-model="queryParams.unexecuted" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="fail"> + <el-input + v-model="queryParams.fail" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="userid"> + <el-input + v-model="queryParams.userid" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="username"> + <el-input + v-model="queryParams.username" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="addtime"> + <el-date-picker clearable + v-model="queryParams.addtime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" " prop="checkuserid"> + <el-input + v-model="queryParams.checkuserid" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="checkusername"> + <el-input + v-model="queryParams.checkusername" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="checktime"> + <el-date-picker clearable + v-model="queryParams.checktime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" " prop="typename"> + <el-input + v-model="queryParams.typename" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 0.涓嶄娇鐢ㄦ挱鍓嶇煭淇� 1.浣跨敤鎾墠鐭俊 " prop="usebqsms"> + <el-input + v-model="queryParams.usebqsms" + placeholder="璇疯緭鍏� 0.涓嶄娇鐢ㄦ挱鍓嶇煭淇� 1.浣跨敤鎾墠鐭俊 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 0.涓嶄娇鐢ㄦ挱鍚庣煭淇� 1.浣跨敤鎾墠鐭俊 " prop="usebhsms"> + <el-input + v-model="queryParams.usebhsms" + placeholder="璇疯緭鍏� 0.涓嶄娇鐢ㄦ挱鍚庣煭淇� 1.浣跨敤鎾墠鐭俊 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="usesendsms"> + <el-input + v-model="queryParams.usesendsms" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="deptcode"> + <el-input + v-model="queryParams.deptcode" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 涓婁紶鏍囪 " prop="isupload"> + <el-input + v-model="queryParams.isupload" + placeholder="璇疯緭鍏� 涓婁紶鏍囪 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 涓婁紶鏃堕棿 " prop="uploadTime"> + <el-date-picker clearable + v-model="queryParams.uploadTime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 涓婁紶鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 鏈烘瀯ID " prop="orgid"> + <el-input + v-model="queryParams.orgid" + placeholder="璇疯緭鍏� 鏈烘瀯ID " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['smartor:ivrtask:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['smartor:ivrtask:edit']" + >淇敼</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['smartor:ivrtask:remove']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['smartor:ivrtask:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="ivrtaskList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label=" " align="center" prop="taskid" /> + <el-table-column label=" " align="center" prop="taskname" /> + <el-table-column label=" " align="center" prop="templateid" /> + <el-table-column label=" " align="center" prop="templatename" /> + <el-table-column label=" " align="center" prop="labelinfo" /> + <el-table-column label=" " align="center" prop="state" /> + <el-table-column label=" " align="center" prop="count" /> + <el-table-column label=" " align="center" prop="executed" /> + <el-table-column label=" " align="center" prop="unexecuted" /> + <el-table-column label=" " align="center" prop="fail" /> + <el-table-column label=" " align="center" prop="userid" /> + <el-table-column label=" " align="center" prop="username" /> + <el-table-column label=" " align="center" prop="addtime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.addtime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" " align="center" prop="checkuserid" /> + <el-table-column label=" " align="center" prop="checkusername" /> + <el-table-column label=" " align="center" prop="checktime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.checktime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" 1锛屽嚭闄㈤殢璁匡紱2锛屼綋妫�閫氱煡锛�3锛屾弧鎰忓害璋冩煡锛�4锛屽鏁欙紱 " align="center" prop="type" /> + <el-table-column label=" " align="center" prop="typename" /> + <el-table-column label=" 0.涓嶄娇鐢ㄦ挱鍓嶇煭淇� 1.浣跨敤鎾墠鐭俊 " align="center" prop="usebqsms" /> + <el-table-column label=" 0.涓嶄娇鐢ㄦ挱鍚庣煭淇� 1.浣跨敤鎾墠鐭俊 " align="center" prop="usebhsms" /> + <el-table-column label=" " align="center" prop="usesendsms" /> + <el-table-column label=" " align="center" prop="deptcode" /> + <el-table-column label=" 涓婁紶鏍囪 " align="center" prop="isupload" /> + <el-table-column label=" 涓婁紶鏃堕棿 " align="center" prop="uploadTime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.uploadTime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" 鏈烘瀯ID " align="center" prop="orgid" /> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['smartor:ivrtask:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['smartor:ivrtask:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 娣诲姞鎴栦慨鏀硅闊充换鍔″璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label=" " prop="taskname"> + <el-input v-model="form.taskname" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="templateid"> + <el-input v-model="form.templateid" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="templatename"> + <el-input v-model="form.templatename" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="labelinfo"> + <el-input v-model="form.labelinfo" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="state"> + <el-input v-model="form.state" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="count"> + <el-input v-model="form.count" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="executed"> + <el-input v-model="form.executed" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="unexecuted"> + <el-input v-model="form.unexecuted" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="fail"> + <el-input v-model="form.fail" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="userid"> + <el-input v-model="form.userid" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="username"> + <el-input v-model="form.username" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="addtime"> + <el-date-picker clearable + v-model="form.addtime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" " prop="checkuserid"> + <el-input v-model="form.checkuserid" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="checkusername"> + <el-input v-model="form.checkusername" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="checktime"> + <el-date-picker clearable + v-model="form.checktime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" " prop="typename"> + <el-input v-model="form.typename" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" 0.涓嶄娇鐢ㄦ挱鍓嶇煭淇� 1.浣跨敤鎾墠鐭俊 " prop="usebqsms"> + <el-input v-model="form.usebqsms" placeholder="璇疯緭鍏� 0.涓嶄娇鐢ㄦ挱鍓嶇煭淇� 1.浣跨敤鎾墠鐭俊 " /> + </el-form-item> + <el-form-item label=" 0.涓嶄娇鐢ㄦ挱鍚庣煭淇� 1.浣跨敤鎾墠鐭俊 " prop="usebhsms"> + <el-input v-model="form.usebhsms" placeholder="璇疯緭鍏� 0.涓嶄娇鐢ㄦ挱鍚庣煭淇� 1.浣跨敤鎾墠鐭俊 " /> + </el-form-item> + <el-form-item label=" " prop="usesendsms"> + <el-input v-model="form.usesendsms" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="deptcode"> + <el-input v-model="form.deptcode" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" 鍒犻櫎鏍囪 " prop="delFlag"> + <el-input v-model="form.delFlag" placeholder="璇疯緭鍏� 鍒犻櫎鏍囪 " /> + </el-form-item> + <el-form-item label=" 涓婁紶鏍囪 " prop="isupload"> + <el-input v-model="form.isupload" placeholder="璇疯緭鍏� 涓婁紶鏍囪 " /> + </el-form-item> + <el-form-item label=" 涓婁紶鏃堕棿 " prop="uploadTime"> + <el-date-picker clearable + v-model="form.uploadTime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 涓婁紶鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 鏈烘瀯ID " prop="orgid"> + <el-input v-model="form.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listIvrtask, getIvrtask, delIvrtask, addIvrtask, updateIvrtask } from "@/api/smartor/ivrtask"; + +export default { + name: "Ivrtask", + data() { + return { + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 璇煶浠诲姟琛ㄦ牸鏁版嵁 + ivrtaskList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + taskname: null, + templateid: null, + templatename: null, + labelinfo: null, + state: null, + count: null, + executed: null, + unexecuted: null, + fail: null, + userid: null, + username: null, + addtime: null, + checkuserid: null, + checkusername: null, + checktime: null, + type: null, + typename: null, + usebqsms: null, + usebhsms: null, + usesendsms: null, + deptcode: null, + isupload: null, + uploadTime: null, + orgid: null + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + delFlag: [ + { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" } + ], + isupload: [ + { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" } + ], + } + }; + }, + created() { + this.getList(); + }, + methods: { + /** 鏌ヨ璇煶浠诲姟鍒楄〃 */ + getList() { + this.loading = true; + listIvrtask(this.queryParams).then(response => { + this.ivrtaskList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + taskid: null, + taskname: null, + templateid: null, + templatename: null, + labelinfo: null, + state: null, + count: null, + executed: null, + unexecuted: null, + fail: null, + userid: null, + username: null, + addtime: null, + checkuserid: null, + checkusername: null, + checktime: null, + type: null, + typename: null, + usebqsms: null, + usebhsms: null, + usesendsms: null, + deptcode: null, + delFlag: null, + updateBy: null, + updateTime: null, + createBy: null, + createTime: null, + isupload: null, + uploadTime: null, + orgid: null + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.taskid) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "娣诲姞璇煶浠诲姟"; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const taskid = row.taskid || this.ids + getIvrtask(taskid).then(response => { + this.form = response.data; + this.open = true; + this.title = "淇敼璇煶浠诲姟"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.taskid != null) { + updateIvrtask(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addIvrtask(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const taskids = row.taskid || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎璇煶浠诲姟缂栧彿涓�"' + taskids + '"鐨勬暟鎹」锛�').then(function() { + return delIvrtask(taskids); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('smartor/ivrtask/export', { + ...this.queryParams + }, `ivrtask_${new Date().getTime()}.xlsx`) + } + } +}; +</script> diff --git a/ruoyi-ui/src/views/smartor/ivrtaskcall/index.vue b/ruoyi-ui/src/views/smartor/ivrtaskcall/index.vue new file mode 100644 index 0000000..55ceaa2 --- /dev/null +++ b/ruoyi-ui/src/views/smartor/ivrtaskcall/index.vue @@ -0,0 +1,790 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label=" 鍙戦�佷汉 " prop="sendname"> + <el-input + v-model="queryParams.sendname" + placeholder="璇疯緭鍏� 鍙戦�佷汉 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鎵嬫満鍙� " prop="phone"> + <el-input + v-model="queryParams.phone" + placeholder="璇疯緭鍏� 鎵嬫満鍙� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 骞撮緞 " prop="age"> + <el-input + v-model="queryParams.age" + placeholder="璇疯緭鍏� 骞撮緞 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 韬唤璇佸彿 " prop="sfzh"> + <el-input + v-model="queryParams.sfzh" + placeholder="璇疯緭鍏� 韬唤璇佸彿 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鍦板潃 " prop="addr"> + <el-input + v-model="queryParams.addr" + placeholder="璇疯緭鍏� 鍦板潃 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="senderdetail"> + <el-input + v-model="queryParams.senderdetail" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 浠诲姟ID " prop="taskid"> + <el-input + v-model="queryParams.taskid" + placeholder="璇疯緭鍏� 浠诲姟ID " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="templateid"> + <el-input + v-model="queryParams.templateid" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 妯℃澘鍚� " prop="templatename"> + <el-input + v-model="queryParams.templatename" + placeholder="璇疯緭鍏� 妯℃澘鍚� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鍙戦�佹棩鏈� " prop="senddate"> + <el-date-picker clearable + v-model="queryParams.senddate" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 鍙戦�佹棩鏈� "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 涓婂崍寮�濮嬪彂閫佹椂闂撮檺鍒� " prop="sendlimitabegin"> + <el-input + v-model="queryParams.sendlimitabegin" + placeholder="璇疯緭鍏� 涓婂崍寮�濮嬪彂閫佹椂闂撮檺鍒� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 涓婂崍缁撴潫鍙戦�佹椂闂撮檺鍒� " prop="sendlimitaend"> + <el-input + v-model="queryParams.sendlimitaend" + placeholder="璇疯緭鍏� 涓婂崍缁撴潫鍙戦�佹椂闂撮檺鍒� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 涓嬪崍寮�濮嬪彂閫佹椂闂撮檺鍒� " prop="sendlimitpbegin"> + <el-input + v-model="queryParams.sendlimitpbegin" + placeholder="璇疯緭鍏� 涓嬪崍寮�濮嬪彂閫佹椂闂撮檺鍒� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 涓嬪崍缁撴潫鍙戦�佹椂闂撮檺鍒� " prop="sendlimitpend"> + <el-input + v-model="queryParams.sendlimitpend" + placeholder="璇疯緭鍏� 涓嬪崍缁撴潫鍙戦�佹椂闂撮檺鍒� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鏅氫笂寮�濮嬪彂閫佹椂闂撮檺鍒� " prop="sendlimitnbegin"> + <el-input + v-model="queryParams.sendlimitnbegin" + placeholder="璇疯緭鍏� 鏅氫笂寮�濮嬪彂閫佹椂闂撮檺鍒� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鏅氫笂缁撴潫鍙戦�佹椂闂撮檺鍒� " prop="sendlimitnend"> + <el-input + v-model="queryParams.sendlimitnend" + placeholder="璇疯緭鍏� 鏅氫笂缁撴潫鍙戦�佹椂闂撮檺鍒� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鍙戦�佺姸鎬� " prop="sendstate"> + <el-input + v-model="queryParams.sendstate" + placeholder="璇疯緭鍏� 鍙戦�佺姸鎬� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鍙戦�乁UID " prop="senduuid"> + <el-input + v-model="queryParams.senduuid" + placeholder="璇疯緭鍏� 鍙戦�乁UID " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 缁撴灉 " prop="result"> + <el-input + v-model="queryParams.result" + placeholder="璇疯緭鍏� 缁撴灉 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 瀹屾垚鏃堕棿 " prop="finishtime"> + <el-date-picker clearable + v-model="queryParams.finishtime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 瀹屾垚鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 鐢ㄦ埛ID " prop="userid"> + <el-input + v-model="queryParams.userid" + placeholder="璇疯緭鍏� 鐢ㄦ埛ID " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鐢ㄦ埛鍚� " prop="username"> + <el-input + v-model="queryParams.username" + placeholder="璇疯緭鍏� 鐢ㄦ埛鍚� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 娣诲姞鏃堕棿 " prop="addtime"> + <el-date-picker clearable + v-model="queryParams.addtime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 娣诲姞鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" " prop="updatetime"> + <el-date-picker clearable + v-model="queryParams.updatetime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" " prop="outbounduuid"> + <el-input + v-model="queryParams.outbounduuid" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 灏辫瘖璁板綍缂栧彿 " prop="recordid"> + <el-input + v-model="queryParams.recordid" + placeholder="璇疯緭鍏� 灏辫瘖璁板綍缂栧彿 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 閲嶆嫧鎬绘暟 " prop="recallcount"> + <el-input + v-model="queryParams.recallcount" + placeholder="璇疯緭鍏� 閲嶆嫧鎬绘暟 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 褰撳墠閲嶆嫧娆℃暟 " prop="exrecallcount"> + <el-input + v-model="queryParams.exrecallcount" + placeholder="璇疯緭鍏� 褰撳墠閲嶆嫧娆℃暟 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鎷夊彇鏃堕棿 " prop="pulltime"> + <el-date-picker clearable + v-model="queryParams.pulltime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 鎷夊彇鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" " prop="bqsms"> + <el-input + v-model="queryParams.bqsms" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="bhsms"> + <el-input + v-model="queryParams.bhsms" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="deptcode"> + <el-input + v-model="queryParams.deptcode" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 涓婁紶鏍囪 " prop="isupload"> + <el-input + v-model="queryParams.isupload" + placeholder="璇疯緭鍏� 涓婁紶鏍囪 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 涓婁紶鏃堕棿 " prop="uploadTime"> + <el-date-picker clearable + v-model="queryParams.uploadTime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 涓婁紶鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 鏈烘瀯ID " prop="orgid"> + <el-input + v-model="queryParams.orgid" + placeholder="璇疯緭鍏� 鏈烘瀯ID " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['smartor:ivrtaskcall:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['smartor:ivrtaskcall:edit']" + >淇敼</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['smartor:ivrtaskcall:remove']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['smartor:ivrtaskcall:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="ivrtaskcallList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label=" " align="center" prop="callid" /> + <el-table-column label=" 鍙戦�佷汉 " align="center" prop="sendname" /> + <el-table-column label=" 鎵嬫満鍙� " align="center" prop="phone" /> + <el-table-column label=" " align="center" prop="sex" /> + <el-table-column label=" 骞撮緞 " align="center" prop="age" /> + <el-table-column label=" 韬唤璇佸彿 " align="center" prop="sfzh" /> + <el-table-column label=" 鍦板潃 " align="center" prop="addr" /> + <el-table-column label=" " align="center" prop="senderdetail" /> + <el-table-column label=" " align="center" prop="inserttype" /> + <el-table-column label=" 浠诲姟ID " align="center" prop="taskid" /> + <el-table-column label=" " align="center" prop="templateid" /> + <el-table-column label=" 妯℃澘鍚� " align="center" prop="templatename" /> + <el-table-column label=" 鍙戦�佹棩鏈� " align="center" prop="senddate" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.senddate, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" 涓婂崍寮�濮嬪彂閫佹椂闂撮檺鍒� " align="center" prop="sendlimitabegin" /> + <el-table-column label=" 涓婂崍缁撴潫鍙戦�佹椂闂撮檺鍒� " align="center" prop="sendlimitaend" /> + <el-table-column label=" 涓嬪崍寮�濮嬪彂閫佹椂闂撮檺鍒� " align="center" prop="sendlimitpbegin" /> + <el-table-column label=" 涓嬪崍缁撴潫鍙戦�佹椂闂撮檺鍒� " align="center" prop="sendlimitpend" /> + <el-table-column label=" 鏅氫笂寮�濮嬪彂閫佹椂闂撮檺鍒� " align="center" prop="sendlimitnbegin" /> + <el-table-column label=" 鏅氫笂缁撴潫鍙戦�佹椂闂撮檺鍒� " align="center" prop="sendlimitnend" /> + <el-table-column label=" 鍙戦�佺姸鎬� " align="center" prop="sendstate" /> + <el-table-column label=" 鍙戦�乁UID " align="center" prop="senduuid" /> + <el-table-column label=" 缁撴灉 " align="center" prop="result" /> + <el-table-column label=" 瀹屾垚鏃堕棿 " align="center" prop="finishtime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.finishtime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" 鐢ㄦ埛ID " align="center" prop="userid" /> + <el-table-column label=" 鐢ㄦ埛鍚� " align="center" prop="username" /> + <el-table-column label=" 娣诲姞鏃堕棿 " align="center" prop="addtime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.addtime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" " align="center" prop="updatetime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.updatetime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" " align="center" prop="outbounduuid" /> + <el-table-column label=" 灏辫瘖璁板綍缂栧彿 " align="center" prop="recordid" /> + <el-table-column label=" 閲嶆嫧鎬绘暟 " align="center" prop="recallcount" /> + <el-table-column label=" 褰撳墠閲嶆嫧娆℃暟 " align="center" prop="exrecallcount" /> + <el-table-column label=" 鎷夊彇鏃堕棿 " align="center" prop="pulltime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.pulltime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" " align="center" prop="bqsms" /> + <el-table-column label=" " align="center" prop="bhsms" /> + <el-table-column label=" " align="center" prop="deptcode" /> + <el-table-column label=" " align="center" prop="labelstatus" /> + <el-table-column label=" 涓婁紶鏍囪 " align="center" prop="isupload" /> + <el-table-column label=" 涓婁紶鏃堕棿 " align="center" prop="uploadTime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.uploadTime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" 鏈烘瀯ID " align="center" prop="orgid" /> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['smartor:ivrtaskcall:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['smartor:ivrtaskcall:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 娣诲姞鎴栦慨鏀硅闊充换鍔″懠鍙璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label=" 鍙戦�佷汉 " prop="sendname"> + <el-input v-model="form.sendname" placeholder="璇疯緭鍏� 鍙戦�佷汉 " /> + </el-form-item> + <el-form-item label=" 鎵嬫満鍙� " prop="phone"> + <el-input v-model="form.phone" placeholder="璇疯緭鍏� 鎵嬫満鍙� " /> + </el-form-item> + <el-form-item label=" 骞撮緞 " prop="age"> + <el-input v-model="form.age" placeholder="璇疯緭鍏� 骞撮緞 " /> + </el-form-item> + <el-form-item label=" 韬唤璇佸彿 " prop="sfzh"> + <el-input v-model="form.sfzh" placeholder="璇疯緭鍏� 韬唤璇佸彿 " /> + </el-form-item> + <el-form-item label=" 鍦板潃 " prop="addr"> + <el-input v-model="form.addr" placeholder="璇疯緭鍏� 鍦板潃 " /> + </el-form-item> + <el-form-item label=" " prop="senderdetail"> + <el-input v-model="form.senderdetail" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" 浠诲姟ID " prop="taskid"> + <el-input v-model="form.taskid" placeholder="璇疯緭鍏� 浠诲姟ID " /> + </el-form-item> + <el-form-item label=" " prop="templateid"> + <el-input v-model="form.templateid" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" 妯℃澘鍚� " prop="templatename"> + <el-input v-model="form.templatename" placeholder="璇疯緭鍏� 妯℃澘鍚� " /> + </el-form-item> + <el-form-item label=" 鍙戦�佹棩鏈� " prop="senddate"> + <el-date-picker clearable + v-model="form.senddate" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 鍙戦�佹棩鏈� "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 涓婂崍寮�濮嬪彂閫佹椂闂撮檺鍒� " prop="sendlimitabegin"> + <el-input v-model="form.sendlimitabegin" placeholder="璇疯緭鍏� 涓婂崍寮�濮嬪彂閫佹椂闂撮檺鍒� " /> + </el-form-item> + <el-form-item label=" 涓婂崍缁撴潫鍙戦�佹椂闂撮檺鍒� " prop="sendlimitaend"> + <el-input v-model="form.sendlimitaend" placeholder="璇疯緭鍏� 涓婂崍缁撴潫鍙戦�佹椂闂撮檺鍒� " /> + </el-form-item> + <el-form-item label=" 涓嬪崍寮�濮嬪彂閫佹椂闂撮檺鍒� " prop="sendlimitpbegin"> + <el-input v-model="form.sendlimitpbegin" placeholder="璇疯緭鍏� 涓嬪崍寮�濮嬪彂閫佹椂闂撮檺鍒� " /> + </el-form-item> + <el-form-item label=" 涓嬪崍缁撴潫鍙戦�佹椂闂撮檺鍒� " prop="sendlimitpend"> + <el-input v-model="form.sendlimitpend" placeholder="璇疯緭鍏� 涓嬪崍缁撴潫鍙戦�佹椂闂撮檺鍒� " /> + </el-form-item> + <el-form-item label=" 鏅氫笂寮�濮嬪彂閫佹椂闂撮檺鍒� " prop="sendlimitnbegin"> + <el-input v-model="form.sendlimitnbegin" placeholder="璇疯緭鍏� 鏅氫笂寮�濮嬪彂閫佹椂闂撮檺鍒� " /> + </el-form-item> + <el-form-item label=" 鏅氫笂缁撴潫鍙戦�佹椂闂撮檺鍒� " prop="sendlimitnend"> + <el-input v-model="form.sendlimitnend" placeholder="璇疯緭鍏� 鏅氫笂缁撴潫鍙戦�佹椂闂撮檺鍒� " /> + </el-form-item> + <el-form-item label=" 鍙戦�佺姸鎬� " prop="sendstate"> + <el-input v-model="form.sendstate" placeholder="璇疯緭鍏� 鍙戦�佺姸鎬� " /> + </el-form-item> + <el-form-item label=" 鍙戦�乁UID " prop="senduuid"> + <el-input v-model="form.senduuid" placeholder="璇疯緭鍏� 鍙戦�乁UID " /> + </el-form-item> + <el-form-item label=" 缁撴灉 " prop="result"> + <el-input v-model="form.result" placeholder="璇疯緭鍏� 缁撴灉 " /> + </el-form-item> + <el-form-item label=" 瀹屾垚鏃堕棿 " prop="finishtime"> + <el-date-picker clearable + v-model="form.finishtime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 瀹屾垚鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 鐢ㄦ埛ID " prop="userid"> + <el-input v-model="form.userid" placeholder="璇疯緭鍏� 鐢ㄦ埛ID " /> + </el-form-item> + <el-form-item label=" 鐢ㄦ埛鍚� " prop="username"> + <el-input v-model="form.username" placeholder="璇疯緭鍏� 鐢ㄦ埛鍚� " /> + </el-form-item> + <el-form-item label=" 娣诲姞鏃堕棿 " prop="addtime"> + <el-date-picker clearable + v-model="form.addtime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 娣诲姞鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" " prop="outbounduuid"> + <el-input v-model="form.outbounduuid" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" 灏辫瘖璁板綍缂栧彿 " prop="recordid"> + <el-input v-model="form.recordid" placeholder="璇疯緭鍏� 灏辫瘖璁板綍缂栧彿 " /> + </el-form-item> + <el-form-item label=" 閲嶆嫧鎬绘暟 " prop="recallcount"> + <el-input v-model="form.recallcount" placeholder="璇疯緭鍏� 閲嶆嫧鎬绘暟 " /> + </el-form-item> + <el-form-item label=" 褰撳墠閲嶆嫧娆℃暟 " prop="exrecallcount"> + <el-input v-model="form.exrecallcount" placeholder="璇疯緭鍏� 褰撳墠閲嶆嫧娆℃暟 " /> + </el-form-item> + <el-form-item label=" 鎷夊彇鏃堕棿 " prop="pulltime"> + <el-date-picker clearable + v-model="form.pulltime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 鎷夊彇鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" " prop="bqsms"> + <el-input v-model="form.bqsms" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="bhsms"> + <el-input v-model="form.bhsms" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="deptcode"> + <el-input v-model="form.deptcode" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" 鍒犻櫎鏍囪 " prop="delFlag"> + <el-input v-model="form.delFlag" placeholder="璇疯緭鍏� 鍒犻櫎鏍囪 " /> + </el-form-item> + <el-form-item label=" 涓婁紶鏍囪 " prop="isupload"> + <el-input v-model="form.isupload" placeholder="璇疯緭鍏� 涓婁紶鏍囪 " /> + </el-form-item> + <el-form-item label=" 涓婁紶鏃堕棿 " prop="uploadTime"> + <el-date-picker clearable + v-model="form.uploadTime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 涓婁紶鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 鏈烘瀯ID " prop="orgid"> + <el-input v-model="form.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listIvrtaskcall, getIvrtaskcall, delIvrtaskcall, addIvrtaskcall, updateIvrtaskcall } from "@/api/smartor/ivrtaskcall"; + +export default { + name: "Ivrtaskcall", + data() { + return { + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 璇煶浠诲姟鍛煎彨琛ㄦ牸鏁版嵁 + ivrtaskcallList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + sendname: null, + phone: null, + sex: null, + age: null, + sfzh: null, + addr: null, + senderdetail: null, + inserttype: null, + taskid: null, + templateid: null, + templatename: null, + senddate: null, + sendlimitabegin: null, + sendlimitaend: null, + sendlimitpbegin: null, + sendlimitpend: null, + sendlimitnbegin: null, + sendlimitnend: null, + sendstate: null, + senduuid: null, + result: null, + finishtime: null, + userid: null, + username: null, + addtime: null, + updatetime: null, + outbounduuid: null, + recordid: null, + recallcount: null, + exrecallcount: null, + pulltime: null, + bqsms: null, + bhsms: null, + deptcode: null, + labelstatus: null, + isupload: null, + uploadTime: null, + orgid: null + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + delFlag: [ + { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" } + ], + isupload: [ + { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" } + ], + } + }; + }, + created() { + this.getList(); + }, + methods: { + /** 鏌ヨ璇煶浠诲姟鍛煎彨鍒楄〃 */ + getList() { + this.loading = true; + listIvrtaskcall(this.queryParams).then(response => { + this.ivrtaskcallList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + callid: null, + sendname: null, + phone: null, + sex: null, + age: null, + sfzh: null, + addr: null, + senderdetail: null, + inserttype: null, + taskid: null, + templateid: null, + templatename: null, + senddate: null, + sendlimitabegin: null, + sendlimitaend: null, + sendlimitpbegin: null, + sendlimitpend: null, + sendlimitnbegin: null, + sendlimitnend: null, + sendstate: null, + senduuid: null, + result: null, + finishtime: null, + userid: null, + username: null, + addtime: null, + updatetime: null, + outbounduuid: null, + recordid: null, + recallcount: null, + exrecallcount: null, + pulltime: null, + bqsms: null, + bhsms: null, + deptcode: null, + labelstatus: null, + delFlag: null, + updateBy: null, + updateTime: null, + createBy: null, + createTime: null, + isupload: null, + uploadTime: null, + orgid: null + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.callid) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "娣诲姞璇煶浠诲姟鍛煎彨"; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const callid = row.callid || this.ids + getIvrtaskcall(callid).then(response => { + this.form = response.data; + this.open = true; + this.title = "淇敼璇煶浠诲姟鍛煎彨"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.callid != null) { + updateIvrtaskcall(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addIvrtaskcall(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const callids = row.callid || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎璇煶浠诲姟鍛煎彨缂栧彿涓�"' + callids + '"鐨勬暟鎹」锛�').then(function() { + return delIvrtaskcall(callids); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('smartor/ivrtaskcall/export', { + ...this.queryParams + }, `ivrtaskcall_${new Date().getTime()}.xlsx`) + } + } +}; +</script> diff --git a/ruoyi-ui/src/views/smartor/ivrtaskcalldetail/index.vue b/ruoyi-ui/src/views/smartor/ivrtaskcalldetail/index.vue new file mode 100644 index 0000000..924e9a1 --- /dev/null +++ b/ruoyi-ui/src/views/smartor/ivrtaskcalldetail/index.vue @@ -0,0 +1,739 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label=" " prop="callid"> + <el-input + v-model="queryParams.callid" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="uuid"> + <el-input + v-model="queryParams.uuid" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="phone"> + <el-input + v-model="queryParams.phone" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="operate"> + <el-input + v-model="queryParams.operate" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="displayno"> + <el-input + v-model="queryParams.displayno" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="inbound"> + <el-input + v-model="queryParams.inbound" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="incoming"> + <el-input + v-model="queryParams.incoming" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="assigntime"> + <el-input + v-model="queryParams.assigntime" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="starttime"> + <el-input + v-model="queryParams.starttime" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="answertime"> + <el-input + v-model="queryParams.answertime" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="silent"> + <el-input + v-model="queryParams.silent" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="dtmfKey"> + <el-input + v-model="queryParams.dtmfKey" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="musicpath"> + <el-input + v-model="queryParams.musicpath" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="sentIndex"> + <el-input + v-model="queryParams.sentIndex" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="sentBegin"> + <el-input + v-model="queryParams.sentBegin" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="asrtext"> + <el-input + v-model="queryParams.asrtext" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="beginTime"> + <el-input + v-model="queryParams.beginTime" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="endTime"> + <el-input + v-model="queryParams.endTime" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="sentEnd"> + <el-input + v-model="queryParams.sentEnd" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="recordpath"> + <el-input + v-model="queryParams.recordpath" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="recordurl"> + <el-input + v-model="queryParams.recordurl" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="templateid"> + <el-input + v-model="queryParams.templateid" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="templatequestionnum"> + <el-input + v-model="queryParams.templatequestionnum" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="switchid"> + <el-input + v-model="queryParams.switchid" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="questiontext"> + <el-input + v-model="queryParams.questiontext" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="questionvoice"> + <el-input + v-model="queryParams.questionvoice" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="categoryname"> + <el-input + v-model="queryParams.categoryname" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="targetoptions"> + <el-input + v-model="queryParams.targetoptions" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="targetvalue"> + <el-input + v-model="queryParams.targetvalue" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="matchedtext"> + <el-input + v-model="queryParams.matchedtext" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="addtime"> + <el-date-picker clearable + v-model="queryParams.addtime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 涓婁紶鏍囪 " prop="isupload"> + <el-input + v-model="queryParams.isupload" + placeholder="璇疯緭鍏� 涓婁紶鏍囪 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 涓婁紶鏃堕棿 " prop="uploadTime"> + <el-date-picker clearable + v-model="queryParams.uploadTime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 涓婁紶鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 鏈烘瀯ID " prop="orgid"> + <el-input + v-model="queryParams.orgid" + placeholder="璇疯緭鍏� 鏈烘瀯ID " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['smartor:ivrtaskcalldetail:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['smartor:ivrtaskcalldetail:edit']" + >淇敼</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['smartor:ivrtaskcalldetail:remove']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['smartor:ivrtaskcalldetail:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="ivrtaskcalldetailList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label=" " align="center" prop="calldetailid" /> + <el-table-column label=" " align="center" prop="callid" /> + <el-table-column label=" " align="center" prop="uuid" /> + <el-table-column label=" " align="center" prop="phone" /> + <el-table-column label=" " align="center" prop="operate" /> + <el-table-column label=" " align="center" prop="displayno" /> + <el-table-column label=" " align="center" prop="inbound" /> + <el-table-column label=" " align="center" prop="incoming" /> + <el-table-column label=" " align="center" prop="assigntime" /> + <el-table-column label=" " align="center" prop="starttime" /> + <el-table-column label=" " align="center" prop="answertime" /> + <el-table-column label=" " align="center" prop="silent" /> + <el-table-column label=" " align="center" prop="dtmfKey" /> + <el-table-column label=" " align="center" prop="musicpath" /> + <el-table-column label=" " align="center" prop="sentIndex" /> + <el-table-column label=" " align="center" prop="sentBegin" /> + <el-table-column label=" " align="center" prop="asrtext" /> + <el-table-column label=" " align="center" prop="beginTime" /> + <el-table-column label=" " align="center" prop="endTime" /> + <el-table-column label=" " align="center" prop="sentEnd" /> + <el-table-column label=" " align="center" prop="recordpath" /> + <el-table-column label=" " align="center" prop="recordurl" /> + <el-table-column label=" " align="center" prop="templateid" /> + <el-table-column label=" " align="center" prop="templatequestionnum" /> + <el-table-column label=" " align="center" prop="switchid" /> + <el-table-column label=" " align="center" prop="questiontext" /> + <el-table-column label=" " align="center" prop="questionvoice" /> + <el-table-column label=" " align="center" prop="categoryname" /> + <el-table-column label=" " align="center" prop="targetoptions" /> + <el-table-column label=" " align="center" prop="targetvalue" /> + <el-table-column label=" " align="center" prop="matchedtext" /> + <el-table-column label=" " align="center" prop="addtime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.addtime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" 涓婁紶鏍囪 " align="center" prop="isupload" /> + <el-table-column label=" 涓婁紶鏃堕棿 " align="center" prop="uploadTime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.uploadTime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" 鏈烘瀯ID " align="center" prop="orgid" /> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['smartor:ivrtaskcalldetail:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['smartor:ivrtaskcalldetail:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 娣诲姞鎴栦慨鏀硅闊充换鍔″懠鍙槑缁嗗璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label=" " prop="callid"> + <el-input v-model="form.callid" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="uuid"> + <el-input v-model="form.uuid" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="phone"> + <el-input v-model="form.phone" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="operate"> + <el-input v-model="form.operate" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="displayno"> + <el-input v-model="form.displayno" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="inbound"> + <el-input v-model="form.inbound" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="incoming"> + <el-input v-model="form.incoming" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="assigntime"> + <el-input v-model="form.assigntime" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="starttime"> + <el-input v-model="form.starttime" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="answertime"> + <el-input v-model="form.answertime" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="silent"> + <el-input v-model="form.silent" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="dtmfKey"> + <el-input v-model="form.dtmfKey" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="musicpath"> + <el-input v-model="form.musicpath" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="sentIndex"> + <el-input v-model="form.sentIndex" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="sentBegin"> + <el-input v-model="form.sentBegin" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="asrtext"> + <el-input v-model="form.asrtext" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="beginTime"> + <el-input v-model="form.beginTime" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="endTime"> + <el-input v-model="form.endTime" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="sentEnd"> + <el-input v-model="form.sentEnd" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="recordpath"> + <el-input v-model="form.recordpath" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="recordurl"> + <el-input v-model="form.recordurl" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="templateid"> + <el-input v-model="form.templateid" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="templatequestionnum"> + <el-input v-model="form.templatequestionnum" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="switchid"> + <el-input v-model="form.switchid" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="questiontext"> + <el-input v-model="form.questiontext" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="questionvoice"> + <el-input v-model="form.questionvoice" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="categoryname"> + <el-input v-model="form.categoryname" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="targetoptions"> + <el-input v-model="form.targetoptions" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="targetvalue"> + <el-input v-model="form.targetvalue" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="matchedtext"> + <el-input v-model="form.matchedtext" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="addtime"> + <el-date-picker clearable + v-model="form.addtime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 涓婁紶鏍囪 " prop="isupload"> + <el-input v-model="form.isupload" placeholder="璇疯緭鍏� 涓婁紶鏍囪 " /> + </el-form-item> + <el-form-item label=" 涓婁紶鏃堕棿 " prop="uploadTime"> + <el-date-picker clearable + v-model="form.uploadTime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 涓婁紶鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 鏈烘瀯ID " prop="orgid"> + <el-input v-model="form.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " /> + </el-form-item> + <el-form-item label=" 鍒犻櫎鏍囪 " prop="delFlag"> + <el-input v-model="form.delFlag" placeholder="璇疯緭鍏� 鍒犻櫎鏍囪 " /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listIvrtaskcalldetail, getIvrtaskcalldetail, delIvrtaskcalldetail, addIvrtaskcalldetail, updateIvrtaskcalldetail } from "@/api/smartor/ivrtaskcalldetail"; + +export default { + name: "Ivrtaskcalldetail", + data() { + return { + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 璇煶浠诲姟鍛煎彨鏄庣粏琛ㄦ牸鏁版嵁 + ivrtaskcalldetailList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + callid: null, + uuid: null, + phone: null, + operate: null, + displayno: null, + inbound: null, + incoming: null, + assigntime: null, + starttime: null, + answertime: null, + silent: null, + dtmfKey: null, + musicpath: null, + sentIndex: null, + sentBegin: null, + asrtext: null, + beginTime: null, + endTime: null, + sentEnd: null, + recordpath: null, + recordurl: null, + templateid: null, + templatequestionnum: null, + switchid: null, + questiontext: null, + questionvoice: null, + categoryname: null, + targetoptions: null, + targetvalue: null, + matchedtext: null, + addtime: null, + isupload: null, + uploadTime: null, + orgid: null, + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + isupload: [ + { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" } + ], + delFlag: [ + { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" } + ], + } + }; + }, + created() { + this.getList(); + }, + methods: { + /** 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃 */ + getList() { + this.loading = true; + listIvrtaskcalldetail(this.queryParams).then(response => { + this.ivrtaskcalldetailList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + calldetailid: null, + callid: null, + uuid: null, + phone: null, + operate: null, + displayno: null, + inbound: null, + incoming: null, + assigntime: null, + starttime: null, + answertime: null, + silent: null, + dtmfKey: null, + musicpath: null, + sentIndex: null, + sentBegin: null, + asrtext: null, + beginTime: null, + endTime: null, + sentEnd: null, + recordpath: null, + recordurl: null, + templateid: null, + templatequestionnum: null, + switchid: null, + questiontext: null, + questionvoice: null, + categoryname: null, + targetoptions: null, + targetvalue: null, + matchedtext: null, + addtime: null, + isupload: null, + uploadTime: null, + orgid: null, + createTime: null, + delFlag: null, + updateBy: null, + updateTime: null, + createBy: null + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.calldetailid) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "娣诲姞璇煶浠诲姟鍛煎彨鏄庣粏"; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const calldetailid = row.calldetailid || this.ids + getIvrtaskcalldetail(calldetailid).then(response => { + this.form = response.data; + this.open = true; + this.title = "淇敼璇煶浠诲姟鍛煎彨鏄庣粏"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.calldetailid != null) { + updateIvrtaskcalldetail(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addIvrtaskcalldetail(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const calldetailids = row.calldetailid || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏缂栧彿涓�"' + calldetailids + '"鐨勬暟鎹」锛�').then(function() { + return delIvrtaskcalldetail(calldetailids); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('smartor/ivrtaskcalldetail/export', { + ...this.queryParams + }, `ivrtaskcalldetail_${new Date().getTime()}.xlsx`) + } + } +}; +</script> diff --git a/ruoyi-ui/src/views/smartor/ivrtaskcallrecord/index.vue b/ruoyi-ui/src/views/smartor/ivrtaskcallrecord/index.vue new file mode 100644 index 0000000..691aa96 --- /dev/null +++ b/ruoyi-ui/src/views/smartor/ivrtaskcallrecord/index.vue @@ -0,0 +1,646 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label=" " prop="displayno"> + <el-input + v-model="queryParams.displayno" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="phone"> + <el-input + v-model="queryParams.phone" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="taskid"> + <el-input + v-model="queryParams.taskid" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="extension"> + <el-input + v-model="queryParams.extension" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="inbound"> + <el-input + v-model="queryParams.inbound" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="direct"> + <el-input + v-model="queryParams.direct" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="answered"> + <el-input + v-model="queryParams.answered" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="assignTime"> + <el-input + v-model="queryParams.assignTime" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="startTime"> + <el-input + v-model="queryParams.startTime" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="answerTime"> + <el-input + v-model="queryParams.answerTime" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="hangupTime"> + <el-input + v-model="queryParams.hangupTime" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="endTime"> + <el-input + v-model="queryParams.endTime" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="recordPath"> + <el-input + v-model="queryParams.recordPath" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="recordUrl"> + <el-input + v-model="queryParams.recordUrl" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="hangupSipcode"> + <el-input + v-model="queryParams.hangupSipcode" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="hangupCause"> + <el-input + v-model="queryParams.hangupCause" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="transfered"> + <el-input + v-model="queryParams.transfered" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="transUuid"> + <el-input + v-model="queryParams.transUuid" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="transPhone"> + <el-input + v-model="queryParams.transPhone" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="transAnswered"> + <el-input + v-model="queryParams.transAnswered" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="transStartTime"> + <el-input + v-model="queryParams.transStartTime" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="transAnswerTime"> + <el-input + v-model="queryParams.transAnswerTime" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="earlyAsrtext"> + <el-input + v-model="queryParams.earlyAsrtext" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="earlyPath"> + <el-input + v-model="queryParams.earlyPath" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="earlyUrl"> + <el-input + v-model="queryParams.earlyUrl" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 涓婁紶鏍囪 " prop="isupload"> + <el-input + v-model="queryParams.isupload" + placeholder="璇疯緭鍏� 涓婁紶鏍囪 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 涓婁紶鏃堕棿 " prop="uploadTime"> + <el-date-picker clearable + v-model="queryParams.uploadTime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 涓婁紶鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 鏈烘瀯ID " prop="orgid"> + <el-input + v-model="queryParams.orgid" + placeholder="璇疯緭鍏� 鏈烘瀯ID " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['smartor:ivrtaskcallrecord:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['smartor:ivrtaskcallrecord:edit']" + >淇敼</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['smartor:ivrtaskcallrecord:remove']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['smartor:ivrtaskcallrecord:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="ivrtaskcallrecordList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label=" " align="center" prop="uuid" /> + <el-table-column label=" " align="center" prop="displayno" /> + <el-table-column label=" " align="center" prop="phone" /> + <el-table-column label=" " align="center" prop="taskid" /> + <el-table-column label=" " align="center" prop="extension" /> + <el-table-column label=" " align="center" prop="inbound" /> + <el-table-column label=" " align="center" prop="direct" /> + <el-table-column label=" " align="center" prop="answered" /> + <el-table-column label=" " align="center" prop="assignTime" /> + <el-table-column label=" " align="center" prop="startTime" /> + <el-table-column label=" " align="center" prop="answerTime" /> + <el-table-column label=" " align="center" prop="hangupTime" /> + <el-table-column label=" " align="center" prop="endTime" /> + <el-table-column label=" " align="center" prop="recordPath" /> + <el-table-column label=" " align="center" prop="recordUrl" /> + <el-table-column label=" " align="center" prop="hangupSipcode" /> + <el-table-column label=" " align="center" prop="hangupCause" /> + <el-table-column label=" " align="center" prop="transfered" /> + <el-table-column label=" " align="center" prop="transUuid" /> + <el-table-column label=" " align="center" prop="transPhone" /> + <el-table-column label=" " align="center" prop="transAnswered" /> + <el-table-column label=" " align="center" prop="transStartTime" /> + <el-table-column label=" " align="center" prop="transAnswerTime" /> + <el-table-column label=" " align="center" prop="earlyAsrtext" /> + <el-table-column label=" " align="center" prop="earlyPath" /> + <el-table-column label=" " align="center" prop="earlyUrl" /> + <el-table-column label=" 涓婁紶鏍囪 " align="center" prop="isupload" /> + <el-table-column label=" 涓婁紶鏃堕棿 " align="center" prop="uploadTime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.uploadTime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" 鏈烘瀯ID " align="center" prop="orgid" /> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['smartor:ivrtaskcallrecord:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['smartor:ivrtaskcallrecord:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 娣诲姞鎴栦慨鏀硅闊充换鍔″懠鍙褰曞璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label=" " prop="displayno"> + <el-input v-model="form.displayno" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="phone"> + <el-input v-model="form.phone" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="taskid"> + <el-input v-model="form.taskid" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="extension"> + <el-input v-model="form.extension" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="inbound"> + <el-input v-model="form.inbound" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="direct"> + <el-input v-model="form.direct" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="answered"> + <el-input v-model="form.answered" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="assignTime"> + <el-input v-model="form.assignTime" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="startTime"> + <el-input v-model="form.startTime" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="answerTime"> + <el-input v-model="form.answerTime" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="hangupTime"> + <el-input v-model="form.hangupTime" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="endTime"> + <el-input v-model="form.endTime" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="recordPath"> + <el-input v-model="form.recordPath" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="recordUrl"> + <el-input v-model="form.recordUrl" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="hangupSipcode"> + <el-input v-model="form.hangupSipcode" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="hangupCause"> + <el-input v-model="form.hangupCause" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="transfered"> + <el-input v-model="form.transfered" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="transUuid"> + <el-input v-model="form.transUuid" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="transPhone"> + <el-input v-model="form.transPhone" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="transAnswered"> + <el-input v-model="form.transAnswered" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="transStartTime"> + <el-input v-model="form.transStartTime" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="transAnswerTime"> + <el-input v-model="form.transAnswerTime" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="earlyAsrtext"> + <el-input v-model="form.earlyAsrtext" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="earlyPath"> + <el-input v-model="form.earlyPath" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" " prop="earlyUrl"> + <el-input v-model="form.earlyUrl" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" 鍒犻櫎鏍囪 " prop="delFlag"> + <el-input v-model="form.delFlag" placeholder="璇疯緭鍏� 鍒犻櫎鏍囪 " /> + </el-form-item> + <el-form-item label=" 涓婁紶鏍囪 " prop="isupload"> + <el-input v-model="form.isupload" placeholder="璇疯緭鍏� 涓婁紶鏍囪 " /> + </el-form-item> + <el-form-item label=" 涓婁紶鏃堕棿 " prop="uploadTime"> + <el-date-picker clearable + v-model="form.uploadTime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 涓婁紶鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 鏈烘瀯ID " prop="orgid"> + <el-input v-model="form.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listIvrtaskcallrecord, getIvrtaskcallrecord, delIvrtaskcallrecord, addIvrtaskcallrecord, updateIvrtaskcallrecord } from "@/api/smartor/ivrtaskcallrecord"; + +export default { + name: "Ivrtaskcallrecord", + data() { + return { + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 璇煶浠诲姟鍛煎彨璁板綍琛ㄦ牸鏁版嵁 + ivrtaskcallrecordList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + displayno: null, + phone: null, + taskid: null, + extension: null, + inbound: null, + direct: null, + answered: null, + assignTime: null, + startTime: null, + answerTime: null, + hangupTime: null, + endTime: null, + recordPath: null, + recordUrl: null, + hangupSipcode: null, + hangupCause: null, + transfered: null, + transUuid: null, + transPhone: null, + transAnswered: null, + transStartTime: null, + transAnswerTime: null, + earlyAsrtext: null, + earlyPath: null, + earlyUrl: null, + isupload: null, + uploadTime: null, + orgid: null + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + delFlag: [ + { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" } + ], + isupload: [ + { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" } + ], + } + }; + }, + created() { + this.getList(); + }, + methods: { + /** 鏌ヨ璇煶浠诲姟鍛煎彨璁板綍鍒楄〃 */ + getList() { + this.loading = true; + listIvrtaskcallrecord(this.queryParams).then(response => { + this.ivrtaskcallrecordList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + uuid: null, + displayno: null, + phone: null, + taskid: null, + extension: null, + inbound: null, + direct: null, + answered: null, + assignTime: null, + startTime: null, + answerTime: null, + hangupTime: null, + endTime: null, + recordPath: null, + recordUrl: null, + hangupSipcode: null, + hangupCause: null, + transfered: null, + transUuid: null, + transPhone: null, + transAnswered: null, + transStartTime: null, + transAnswerTime: null, + earlyAsrtext: null, + earlyPath: null, + earlyUrl: null, + delFlag: null, + updateBy: null, + updateTime: null, + createBy: null, + createTime: null, + isupload: null, + uploadTime: null, + orgid: null + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.uuid) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "娣诲姞璇煶浠诲姟鍛煎彨璁板綍"; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const uuid = row.uuid || this.ids + getIvrtaskcallrecord(uuid).then(response => { + this.form = response.data; + this.open = true; + this.title = "淇敼璇煶浠诲姟鍛煎彨璁板綍"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.uuid != null) { + updateIvrtaskcallrecord(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addIvrtaskcallrecord(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const uuids = row.uuid || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎璇煶浠诲姟鍛煎彨璁板綍缂栧彿涓�"' + uuids + '"鐨勬暟鎹」锛�').then(function() { + return delIvrtaskcallrecord(uuids); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('smartor/ivrtaskcallrecord/export', { + ...this.queryParams + }, `ivrtaskcallrecord_${new Date().getTime()}.xlsx`) + } + } +}; +</script> diff --git a/ruoyi-ui/src/views/smartor/ivrtasksms/index.vue b/ruoyi-ui/src/views/smartor/ivrtasksms/index.vue new file mode 100644 index 0000000..01c34d2 --- /dev/null +++ b/ruoyi-ui/src/views/smartor/ivrtasksms/index.vue @@ -0,0 +1,403 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label=" 浠诲姟缂栧彿 " prop="taskid"> + <el-input + v-model="queryParams.taskid" + placeholder="璇疯緭鍏� 浠诲姟缂栧彿 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鐭俊妯℃澘涓婚敭 " prop="smstemplateid"> + <el-input + v-model="queryParams.smstemplateid" + placeholder="璇疯緭鍏� 鐭俊妯℃澘涓婚敭 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鐢佃瘽鐘舵�佷富閿� " prop="phonestatusid"> + <el-input + v-model="queryParams.phonestatusid" + placeholder="璇疯緭鍏� 鐢佃瘽鐘舵�佷富閿� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鐭俊妯℃澘鍚嶇О " prop="smstemplatename"> + <el-input + v-model="queryParams.smstemplatename" + placeholder="璇疯緭鍏� 鐭俊妯℃澘鍚嶇О " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鐢佃瘽鐘舵�佸悕绉� " prop="phonestatusname"> + <el-input + v-model="queryParams.phonestatusname" + placeholder="璇疯緭鍏� 鐢佃瘽鐘舵�佸悕绉� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" " prop="isdel"> + <el-input + v-model="queryParams.isdel" + placeholder="璇疯緭鍏� " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 鏍囩缂栧彿 " prop="tagid"> + <el-input + v-model="queryParams.tagid" + placeholder="璇疯緭鍏� 鏍囩缂栧彿 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 涓婁紶鏍囪 " prop="isupload"> + <el-input + v-model="queryParams.isupload" + placeholder="璇疯緭鍏� 涓婁紶鏍囪 " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label=" 涓婁紶鏃堕棿 " prop="uploadTime"> + <el-date-picker clearable + v-model="queryParams.uploadTime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 涓婁紶鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 鏈烘瀯ID " prop="orgid"> + <el-input + v-model="queryParams.orgid" + placeholder="璇疯緭鍏� 鏈烘瀯ID " + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['smartor:ivrtasksms:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['smartor:ivrtasksms:edit']" + >淇敼</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['smartor:ivrtasksms:remove']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['smartor:ivrtasksms:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="ivrtasksmsList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label=" " align="center" prop="id" /> + <el-table-column label=" 浠诲姟缂栧彿 " align="center" prop="taskid" /> + <el-table-column label=" 绫诲瀷0.涓嶄娇鐢� 1.浠诲姟鍓� 2.浠诲姟鍚� " align="center" prop="type" /> + <el-table-column label=" 鐭俊妯℃澘涓婚敭 " align="center" prop="smstemplateid" /> + <el-table-column label=" 鐢佃瘽鐘舵�佷富閿� " align="center" prop="phonestatusid" /> + <el-table-column label=" 鐭俊妯℃澘鍚嶇О " align="center" prop="smstemplatename" /> + <el-table-column label=" 鐢佃瘽鐘舵�佸悕绉� " align="center" prop="phonestatusname" /> + <el-table-column label=" " align="center" prop="isdel" /> + <el-table-column label=" " align="center" prop="content" /> + <el-table-column label=" 鏍囩缂栧彿 " align="center" prop="tagid" /> + <el-table-column label=" 涓婁紶鏍囪 " align="center" prop="isupload" /> + <el-table-column label=" 涓婁紶鏃堕棿 " align="center" prop="uploadTime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.uploadTime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label=" 鏈烘瀯ID " align="center" prop="orgid" /> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['smartor:ivrtasksms:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['smartor:ivrtasksms:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 娣诲姞鎴栦慨鏀硅闊充换鍔$煭淇″璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label=" 浠诲姟缂栧彿 " prop="taskid"> + <el-input v-model="form.taskid" placeholder="璇疯緭鍏� 浠诲姟缂栧彿 " /> + </el-form-item> + <el-form-item label=" 鐭俊妯℃澘涓婚敭 " prop="smstemplateid"> + <el-input v-model="form.smstemplateid" placeholder="璇疯緭鍏� 鐭俊妯℃澘涓婚敭 " /> + </el-form-item> + <el-form-item label=" 鐢佃瘽鐘舵�佷富閿� " prop="phonestatusid"> + <el-input v-model="form.phonestatusid" placeholder="璇疯緭鍏� 鐢佃瘽鐘舵�佷富閿� " /> + </el-form-item> + <el-form-item label=" 鐭俊妯℃澘鍚嶇О " prop="smstemplatename"> + <el-input v-model="form.smstemplatename" placeholder="璇疯緭鍏� 鐭俊妯℃澘鍚嶇О " /> + </el-form-item> + <el-form-item label=" 鐢佃瘽鐘舵�佸悕绉� " prop="phonestatusname"> + <el-input v-model="form.phonestatusname" placeholder="璇疯緭鍏� 鐢佃瘽鐘舵�佸悕绉� " /> + </el-form-item> + <el-form-item label=" " prop="isdel"> + <el-input v-model="form.isdel" placeholder="璇疯緭鍏� " /> + </el-form-item> + <el-form-item label=" "> + <editor v-model="form.content" :min-height="192"/> + </el-form-item> + <el-form-item label=" 鏍囩缂栧彿 " prop="tagid"> + <el-input v-model="form.tagid" placeholder="璇疯緭鍏� 鏍囩缂栧彿 " /> + </el-form-item> + <el-form-item label=" 鍒犻櫎鏍囪 " prop="delFlag"> + <el-input v-model="form.delFlag" placeholder="璇疯緭鍏� 鍒犻櫎鏍囪 " /> + </el-form-item> + <el-form-item label=" 涓婁紶鏍囪 " prop="isupload"> + <el-input v-model="form.isupload" placeholder="璇疯緭鍏� 涓婁紶鏍囪 " /> + </el-form-item> + <el-form-item label=" 涓婁紶鏃堕棿 " prop="uploadTime"> + <el-date-picker clearable + v-model="form.uploadTime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 涓婁紶鏃堕棿 "> + </el-date-picker> + </el-form-item> + <el-form-item label=" 鏈烘瀯ID " prop="orgid"> + <el-input v-model="form.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listIvrtasksms, getIvrtasksms, delIvrtasksms, addIvrtasksms, updateIvrtasksms } from "@/api/smartor/ivrtasksms"; + +export default { + name: "Ivrtasksms", + data() { + return { + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 璇煶浠诲姟鐭俊琛ㄦ牸鏁版嵁 + ivrtasksmsList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + taskid: null, + type: null, + smstemplateid: null, + phonestatusid: null, + smstemplatename: null, + phonestatusname: null, + isdel: null, + content: null, + tagid: null, + isupload: null, + uploadTime: null, + orgid: null + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + delFlag: [ + { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" } + ], + isupload: [ + { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" } + ], + } + }; + }, + created() { + this.getList(); + }, + methods: { + /** 鏌ヨ璇煶浠诲姟鐭俊鍒楄〃 */ + getList() { + this.loading = true; + listIvrtasksms(this.queryParams).then(response => { + this.ivrtasksmsList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + id: null, + taskid: null, + type: null, + smstemplateid: null, + phonestatusid: null, + smstemplatename: null, + phonestatusname: null, + isdel: null, + content: null, + tagid: null, + delFlag: null, + updateBy: null, + updateTime: null, + createBy: null, + createTime: null, + isupload: null, + uploadTime: null, + orgid: null + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.id) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "娣诲姞璇煶浠诲姟鐭俊"; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const id = row.id || this.ids + getIvrtasksms(id).then(response => { + this.form = response.data; + this.open = true; + this.title = "淇敼璇煶浠诲姟鐭俊"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.id != null) { + updateIvrtasksms(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addIvrtasksms(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const ids = row.id || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎璇煶浠诲姟鐭俊缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() { + return delIvrtasksms(ids); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('smartor/ivrtasksms/export', { + ...this.queryParams + }, `ivrtasksms_${new Date().getTime()}.xlsx`) + } + } +}; +</script> -- Gitblit v1.9.3