yxh
yxh
2023-03-24 58c7cea677690dcdf5fc65057e836f6a775aec01
yxh
已添加10个文件
3395 ■■■■■ 文件已修改
ruoyi-ui/src/api/smartor/ivrtask.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/smartor/ivrtaskcall.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/smartor/ivrtaskcalldetail.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/smartor/ivrtaskcallrecord.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/smartor/ivrtasksms.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/smartor/ivrtask/index.vue 597 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/smartor/ivrtaskcall/index.vue 790 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/smartor/ivrtaskcalldetail/index.vue 739 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/smartor/ivrtaskcallrecord/index.vue 646 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/smartor/ivrtasksms/index.vue 403 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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'
  })
}
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'
  })
}
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'
  })
}
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'
  })
}
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'
  })
}
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>
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=" å‘送UUID " prop="senduuid">
        <el-input
          v-model="queryParams.senduuid"
          placeholder="请输入 å‘送UUID "
          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=" å‘送UUID " 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=" å‘送UUID " prop="senduuid">
          <el-input v-model="form.senduuid" placeholder="请输入 å‘送UUID " />
        </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>
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>
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>
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>