From 5bedda90646f8120624cc843f82d689a99f72e0b Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期三, 22 三月 2023 12:42:50 +0800
Subject: [PATCH] yxh

---
 ruoyi-ui/src/views/smartor/ivrtemplate/index.vue         |  606 +++++++
 ruoyi-ui/src/api/smartor/ivrextemplate.js                |   44 
 ruoyi-ui/src/views/smartor/ivrtarget/index.vue           |  554 +++++++
 ruoyi-ui/src/views/smartor/ivrtemplatescript/index.vue   |  520 ++++++
 ruoyi-ui/src/views/smartor/ivrscripttarget/index.vue     |  447 +++++
 ruoyi-ui/src/views/smartor/ivrtemplatetarget/index.vue   |  541 +++++++
 ruoyi-ui/src/api/smartor/ivrscripttarget.js              |   44 
 ruoyi-ui/src/views/smartor/ivrlibascript/index.vue       |  630 ++++++++
 ruoyi-ui/src/api/smartor/ivrtemplatescript.js            |   44 
 ruoyi-ui/src/api/smartor/ivrlibascript.js                |   44 
 ruoyi-ui/src/api/smartor/ivrextemplatescript.js          |   44 
 ruoyi-ui/src/api/smartor/ivrtemplate.js                  |   44 
 ruoyi-ui/src/api/smartor/ivrtemplatetarget.js            |   44 
 ruoyi-ui/src/api/smartor/ivrtarget.js                    |   44 
 ruoyi-ui/src/views/smartor/ivrextemplate/index.vue       |  483 ++++++
 ruoyi-ui/src/views/smartor/ivrextemplatescript/index.vue |  382 +++++
 16 files changed, 4,515 insertions(+), 0 deletions(-)

diff --git a/ruoyi-ui/src/api/smartor/ivrextemplate.js b/ruoyi-ui/src/api/smartor/ivrextemplate.js
new file mode 100644
index 0000000..8162c80
--- /dev/null
+++ b/ruoyi-ui/src/api/smartor/ivrextemplate.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ鎵╁睍璇濇湳妯℃澘搴撳垪琛�
+export function listIvrextemplate(query) {
+  return request({
+    url: '/smartor/ivrextemplate/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ鎵╁睍璇濇湳妯℃澘搴撹缁�
+export function getIvrextemplate(subModuleID) {
+  return request({
+    url: '/smartor/ivrextemplate/' + subModuleID,
+    method: 'get'
+  })
+}
+
+// 鏂板鎵╁睍璇濇湳妯℃澘搴�
+export function addIvrextemplate(data) {
+  return request({
+    url: '/smartor/ivrextemplate',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼鎵╁睍璇濇湳妯℃澘搴�
+export function updateIvrextemplate(data) {
+  return request({
+    url: '/smartor/ivrextemplate',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎鎵╁睍璇濇湳妯℃澘搴�
+export function delIvrextemplate(subModuleID) {
+  return request({
+    url: '/smartor/ivrextemplate/' + subModuleID,
+    method: 'delete'
+  })
+}
diff --git a/ruoyi-ui/src/api/smartor/ivrextemplatescript.js b/ruoyi-ui/src/api/smartor/ivrextemplatescript.js
new file mode 100644
index 0000000..57e3b87
--- /dev/null
+++ b/ruoyi-ui/src/api/smartor/ivrextemplatescript.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ鎵╁睍璇濇湳妯℃澘搴撹瘽鏈垪琛�
+export function listIvrextemplatescript(query) {
+  return request({
+    url: '/smartor/ivrextemplatescript/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ鎵╁睍璇濇湳妯℃澘搴撹瘽鏈缁�
+export function getIvrextemplatescript(DetailID) {
+  return request({
+    url: '/smartor/ivrextemplatescript/' + DetailID,
+    method: 'get'
+  })
+}
+
+// 鏂板鎵╁睍璇濇湳妯℃澘搴撹瘽鏈�
+export function addIvrextemplatescript(data) {
+  return request({
+    url: '/smartor/ivrextemplatescript',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼鎵╁睍璇濇湳妯℃澘搴撹瘽鏈�
+export function updateIvrextemplatescript(data) {
+  return request({
+    url: '/smartor/ivrextemplatescript',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎鎵╁睍璇濇湳妯℃澘搴撹瘽鏈�
+export function delIvrextemplatescript(DetailID) {
+  return request({
+    url: '/smartor/ivrextemplatescript/' + DetailID,
+    method: 'delete'
+  })
+}
diff --git a/ruoyi-ui/src/api/smartor/ivrlibascript.js b/ruoyi-ui/src/api/smartor/ivrlibascript.js
new file mode 100644
index 0000000..0007221
--- /dev/null
+++ b/ruoyi-ui/src/api/smartor/ivrlibascript.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ璇濇湳搴撳垪琛�
+export function listIvrlibascript(query) {
+  return request({
+    url: '/smartor/ivrlibascript/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ璇濇湳搴撹缁�
+export function getIvrlibascript(questionid) {
+  return request({
+    url: '/smartor/ivrlibascript/' + questionid,
+    method: 'get'
+  })
+}
+
+// 鏂板璇濇湳搴�
+export function addIvrlibascript(data) {
+  return request({
+    url: '/smartor/ivrlibascript',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼璇濇湳搴�
+export function updateIvrlibascript(data) {
+  return request({
+    url: '/smartor/ivrlibascript',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎璇濇湳搴�
+export function delIvrlibascript(questionid) {
+  return request({
+    url: '/smartor/ivrlibascript/' + questionid,
+    method: 'delete'
+  })
+}
diff --git a/ruoyi-ui/src/api/smartor/ivrscripttarget.js b/ruoyi-ui/src/api/smartor/ivrscripttarget.js
new file mode 100644
index 0000000..e1261c2
--- /dev/null
+++ b/ruoyi-ui/src/api/smartor/ivrscripttarget.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ璇濇湳搴撹瘽鏈寚鏍囧垪琛�
+export function listIvrscripttarget(query) {
+  return request({
+    url: '/smartor/ivrscripttarget/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ璇濇湳搴撹瘽鏈寚鏍囪缁�
+export function getIvrscripttarget(questionTargetID) {
+  return request({
+    url: '/smartor/ivrscripttarget/' + questionTargetID,
+    method: 'get'
+  })
+}
+
+// 鏂板璇濇湳搴撹瘽鏈寚鏍�
+export function addIvrscripttarget(data) {
+  return request({
+    url: '/smartor/ivrscripttarget',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼璇濇湳搴撹瘽鏈寚鏍�
+export function updateIvrscripttarget(data) {
+  return request({
+    url: '/smartor/ivrscripttarget',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎璇濇湳搴撹瘽鏈寚鏍�
+export function delIvrscripttarget(questionTargetID) {
+  return request({
+    url: '/smartor/ivrscripttarget/' + questionTargetID,
+    method: 'delete'
+  })
+}
diff --git a/ruoyi-ui/src/api/smartor/ivrtarget.js b/ruoyi-ui/src/api/smartor/ivrtarget.js
new file mode 100644
index 0000000..041f8b0
--- /dev/null
+++ b/ruoyi-ui/src/api/smartor/ivrtarget.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ鎸囨爣搴撳垪琛�
+export function listIvrtarget(query) {
+  return request({
+    url: '/smartor/ivrtarget/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ鎸囨爣搴撹缁�
+export function getIvrtarget(targetID) {
+  return request({
+    url: '/smartor/ivrtarget/' + targetID,
+    method: 'get'
+  })
+}
+
+// 鏂板鎸囨爣搴�
+export function addIvrtarget(data) {
+  return request({
+    url: '/smartor/ivrtarget',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼鎸囨爣搴�
+export function updateIvrtarget(data) {
+  return request({
+    url: '/smartor/ivrtarget',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎鎸囨爣搴�
+export function delIvrtarget(targetID) {
+  return request({
+    url: '/smartor/ivrtarget/' + targetID,
+    method: 'delete'
+  })
+}
diff --git a/ruoyi-ui/src/api/smartor/ivrtemplate.js b/ruoyi-ui/src/api/smartor/ivrtemplate.js
new file mode 100644
index 0000000..d98531b
--- /dev/null
+++ b/ruoyi-ui/src/api/smartor/ivrtemplate.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ璇濇湳妯℃澘搴撳垪琛�
+export function listIvrtemplate(query) {
+  return request({
+    url: '/smartor/ivrtemplate/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ璇濇湳妯℃澘搴撹缁�
+export function getIvrtemplate(templateID) {
+  return request({
+    url: '/smartor/ivrtemplate/' + templateID,
+    method: 'get'
+  })
+}
+
+// 鏂板璇濇湳妯℃澘搴�
+export function addIvrtemplate(data) {
+  return request({
+    url: '/smartor/ivrtemplate',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼璇濇湳妯℃澘搴�
+export function updateIvrtemplate(data) {
+  return request({
+    url: '/smartor/ivrtemplate',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎璇濇湳妯℃澘搴�
+export function delIvrtemplate(templateID) {
+  return request({
+    url: '/smartor/ivrtemplate/' + templateID,
+    method: 'delete'
+  })
+}
diff --git a/ruoyi-ui/src/api/smartor/ivrtemplatescript.js b/ruoyi-ui/src/api/smartor/ivrtemplatescript.js
new file mode 100644
index 0000000..3225b71
--- /dev/null
+++ b/ruoyi-ui/src/api/smartor/ivrtemplatescript.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ璇濇湳妯℃澘搴撹瘽鏈垪琛�
+export function listIvrtemplatescript(query) {
+  return request({
+    url: '/smartor/ivrtemplatescript/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ璇濇湳妯℃澘搴撹瘽鏈缁�
+export function getIvrtemplatescript(templateQuestionID) {
+  return request({
+    url: '/smartor/ivrtemplatescript/' + templateQuestionID,
+    method: 'get'
+  })
+}
+
+// 鏂板璇濇湳妯℃澘搴撹瘽鏈�
+export function addIvrtemplatescript(data) {
+  return request({
+    url: '/smartor/ivrtemplatescript',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼璇濇湳妯℃澘搴撹瘽鏈�
+export function updateIvrtemplatescript(data) {
+  return request({
+    url: '/smartor/ivrtemplatescript',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎璇濇湳妯℃澘搴撹瘽鏈�
+export function delIvrtemplatescript(templateQuestionID) {
+  return request({
+    url: '/smartor/ivrtemplatescript/' + templateQuestionID,
+    method: 'delete'
+  })
+}
diff --git a/ruoyi-ui/src/api/smartor/ivrtemplatetarget.js b/ruoyi-ui/src/api/smartor/ivrtemplatetarget.js
new file mode 100644
index 0000000..a5e14be
--- /dev/null
+++ b/ruoyi-ui/src/api/smartor/ivrtemplatetarget.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ璇濇湳妯℃澘搴撹瘽鏈寚鏍囧垪琛�
+export function listIvrtemplatetarget(query) {
+  return request({
+    url: '/smartor/ivrtemplatetarget/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ璇濇湳妯℃澘搴撹瘽鏈寚鏍囪缁�
+export function getIvrtemplatetarget(templateTargetID) {
+  return request({
+    url: '/smartor/ivrtemplatetarget/' + templateTargetID,
+    method: 'get'
+  })
+}
+
+// 鏂板璇濇湳妯℃澘搴撹瘽鏈寚鏍�
+export function addIvrtemplatetarget(data) {
+  return request({
+    url: '/smartor/ivrtemplatetarget',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼璇濇湳妯℃澘搴撹瘽鏈寚鏍�
+export function updateIvrtemplatetarget(data) {
+  return request({
+    url: '/smartor/ivrtemplatetarget',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎璇濇湳妯℃澘搴撹瘽鏈寚鏍�
+export function delIvrtemplatetarget(templateTargetID) {
+  return request({
+    url: '/smartor/ivrtemplatetarget/' + templateTargetID,
+    method: 'delete'
+  })
+}
diff --git a/ruoyi-ui/src/views/smartor/ivrextemplate/index.vue b/ruoyi-ui/src/views/smartor/ivrextemplate/index.vue
new file mode 100644
index 0000000..297c21a
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/ivrextemplate/index.vue
@@ -0,0 +1,483 @@
+<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="${comment}" prop="subModuleName">
+        <el-input
+          v-model="queryParams.subModuleName"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="language">
+        <el-input
+          v-model="queryParams.language"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="Remark">
+        <el-input
+          v-model="queryParams.Remark"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="version">
+        <el-input
+          v-model="queryParams.version"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isEnable">
+        <el-input
+          v-model="queryParams.isEnable"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isDel">
+        <el-input
+          v-model="queryParams.isDel"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="addUserID">
+        <el-input
+          v-model="queryParams.addUserID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="addTime">
+        <el-date-picker clearable
+          v-model="queryParams.addTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="璇烽�夋嫨${comment}">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="${comment}" prop="modifyUserID">
+        <el-input
+          v-model="queryParams.modifyUserID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="modifyTime">
+        <el-date-picker clearable
+          v-model="queryParams.modifyTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="璇烽�夋嫨${comment}">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="${comment}" prop="GroupID">
+        <el-input
+          v-model="queryParams.GroupID"
+          placeholder="璇疯緭鍏�${comment}"
+          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:ivrextemplate: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:ivrextemplate: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:ivrextemplate: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:ivrextemplate:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="ivrextemplateList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="${comment}" align="center" prop="subModuleID" />
+      <el-table-column label="${comment}" align="center" prop="subModuleName" />
+      <el-table-column label="${comment}" align="center" prop="language" />
+      <el-table-column label="${comment}" align="center" prop="Remark" />
+      <el-table-column label="${comment}" align="center" prop="version" />
+      <el-table-column label="${comment}" align="center" prop="isEnable" />
+      <el-table-column label="${comment}" align="center" prop="isDel" />
+      <el-table-column label="${comment}" align="center" prop="addUserID" />
+      <el-table-column label="${comment}" 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="${comment}" align="center" prop="modifyUserID" />
+      <el-table-column label="${comment}" align="center" prop="modifyTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.modifyTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="${comment}" align="center" prop="GroupID" />
+      <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:ivrextemplate:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['smartor:ivrextemplate: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="${comment}" prop="subModuleName">
+          <el-input v-model="form.subModuleName" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="language">
+          <el-input v-model="form.language" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="Remark">
+          <el-input v-model="form.Remark" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="version">
+          <el-input v-model="form.version" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isEnable">
+          <el-input v-model="form.isEnable" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isDel">
+          <el-input v-model="form.isDel" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="addUserID">
+          <el-input v-model="form.addUserID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="addTime">
+          <el-date-picker clearable
+            v-model="form.addTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="璇烽�夋嫨${comment}">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="${comment}" prop="modifyUserID">
+          <el-input v-model="form.modifyUserID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="modifyTime">
+          <el-date-picker clearable
+            v-model="form.modifyTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="璇烽�夋嫨${comment}">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="${comment}" prop="GroupID">
+          <el-input v-model="form.GroupID" placeholder="璇疯緭鍏�${comment}" />
+        </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 { listIvrextemplate, getIvrextemplate, delIvrextemplate, addIvrextemplate, updateIvrextemplate } from "@/api/smartor/ivrextemplate";
+
+export default {
+  name: "Ivrextemplate",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鎵╁睍璇濇湳妯℃澘搴撹〃鏍兼暟鎹�
+      ivrextemplateList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        subModuleName: null,
+        language: null,
+        Remark: null,
+        version: null,
+        isEnable: null,
+        isDel: null,
+        addUserID: null,
+        addTime: null,
+        modifyUserID: null,
+        modifyTime: null,
+        GroupID: null,
+        isupload: null,
+        uploadTime: null,
+        orgid: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        subModuleName: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        language: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        version: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isEnable: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isDel: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ鎵╁睍璇濇湳妯℃澘搴撳垪琛� */
+    getList() {
+      this.loading = true;
+      listIvrextemplate(this.queryParams).then(response => {
+        this.ivrextemplateList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        subModuleID: null,
+        subModuleName: null,
+        language: null,
+        Remark: null,
+        version: null,
+        isEnable: null,
+        isDel: null,
+        addUserID: null,
+        addTime: null,
+        modifyUserID: null,
+        modifyTime: null,
+        GroupID: 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.subModuleID)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞鎵╁睍璇濇湳妯℃澘搴�";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const subModuleID = row.subModuleID || this.ids
+      getIvrextemplate(subModuleID).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼鎵╁睍璇濇湳妯℃澘搴�";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.subModuleID != null) {
+            updateIvrextemplate(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addIvrextemplate(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const subModuleIDs = row.subModuleID || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎鎵╁睍璇濇湳妯℃澘搴撶紪鍙蜂负"' + subModuleIDs + '"鐨勬暟鎹」锛�').then(function() {
+        return delIvrextemplate(subModuleIDs);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/ivrextemplate/export', {
+        ...this.queryParams
+      }, `ivrextemplate_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/ruoyi-ui/src/views/smartor/ivrextemplatescript/index.vue b/ruoyi-ui/src/views/smartor/ivrextemplatescript/index.vue
new file mode 100644
index 0000000..5b30d5e
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/ivrextemplatescript/index.vue
@@ -0,0 +1,382 @@
+<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="${comment}" prop="subModuleID">
+        <el-input
+          v-model="queryParams.subModuleID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="switchID">
+        <el-input
+          v-model="queryParams.switchID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isEnable">
+        <el-input
+          v-model="queryParams.isEnable"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isDel">
+        <el-input
+          v-model="queryParams.isDel"
+          placeholder="璇疯緭鍏�${comment}"
+          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:ivrextemplatescript: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:ivrextemplatescript: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:ivrextemplatescript: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:ivrextemplatescript:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="ivrextemplatescriptList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="${comment}" align="center" prop="DetailID" />
+      <el-table-column label="${comment}" align="center" prop="subModuleID" />
+      <el-table-column label="${comment}" align="center" prop="switchID" />
+      <el-table-column label="${comment}" align="center" prop="switchText" />
+      <el-table-column label="${comment}" align="center" prop="switchWav" />
+      <el-table-column label="${comment}" align="center" prop="selfRegex" />
+      <el-table-column label="${comment}" align="center" prop="isEnable" />
+      <el-table-column label="${comment}" align="center" prop="isDel" />
+      <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:ivrextemplatescript:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['smartor:ivrextemplatescript: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="${comment}" prop="subModuleID">
+          <el-input v-model="form.subModuleID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="switchID">
+          <el-input v-model="form.switchID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="switchText">
+          <el-input v-model="form.switchText" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="switchWav">
+          <el-input v-model="form.switchWav" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="selfRegex">
+          <el-input v-model="form.selfRegex" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isEnable">
+          <el-input v-model="form.isEnable" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isDel">
+          <el-input v-model="form.isDel" placeholder="璇疯緭鍏�${comment}" />
+        </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 { listIvrextemplatescript, getIvrextemplatescript, delIvrextemplatescript, addIvrextemplatescript, updateIvrextemplatescript } from "@/api/smartor/ivrextemplatescript";
+
+export default {
+  name: "Ivrextemplatescript",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鎵╁睍璇濇湳妯℃澘搴撹瘽鏈〃鏍兼暟鎹�
+      ivrextemplatescriptList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        subModuleID: null,
+        switchID: null,
+        switchText: null,
+        switchWav: null,
+        selfRegex: null,
+        isEnable: null,
+        isDel: null,
+        isupload: null,
+        uploadTime: null,
+        orgid: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        subModuleID: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        switchID: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isEnable: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isDel: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ鎵╁睍璇濇湳妯℃澘搴撹瘽鏈垪琛� */
+    getList() {
+      this.loading = true;
+      listIvrextemplatescript(this.queryParams).then(response => {
+        this.ivrextemplatescriptList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        DetailID: null,
+        subModuleID: null,
+        switchID: null,
+        switchText: null,
+        switchWav: null,
+        selfRegex: null,
+        isEnable: null,
+        isDel: 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.DetailID)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞鎵╁睍璇濇湳妯℃澘搴撹瘽鏈�";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const DetailID = row.DetailID || this.ids
+      getIvrextemplatescript(DetailID).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼鎵╁睍璇濇湳妯℃澘搴撹瘽鏈�";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.DetailID != null) {
+            updateIvrextemplatescript(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addIvrextemplatescript(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const DetailIDs = row.DetailID || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎鎵╁睍璇濇湳妯℃澘搴撹瘽鏈紪鍙蜂负"' + DetailIDs + '"鐨勬暟鎹」锛�').then(function() {
+        return delIvrextemplatescript(DetailIDs);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/ivrextemplatescript/export', {
+        ...this.queryParams
+      }, `ivrextemplatescript_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/ruoyi-ui/src/views/smartor/ivrlibascript/index.vue b/ruoyi-ui/src/views/smartor/ivrlibascript/index.vue
new file mode 100644
index 0000000..98f7019
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/ivrlibascript/index.vue
@@ -0,0 +1,630 @@
+<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="questionpoint">
+        <el-input
+          v-model="queryParams.questionpoint"
+          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="nomatchtext">
+        <el-input
+          v-model="queryParams.nomatchtext"
+          placeholder="璇疯緭鍏�  "
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="  " prop="nomatchvoice">
+        <el-input
+          v-model="queryParams.nomatchvoice"
+          placeholder="璇疯緭鍏�  "
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="  " prop="sliencetext">
+        <el-input
+          v-model="queryParams.sliencetext"
+          placeholder="璇疯緭鍏�  "
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="  " prop="sliencevoice">
+        <el-input
+          v-model="queryParams.sliencevoice"
+          placeholder="璇疯緭鍏�  "
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="  " prop="submoduletext">
+        <el-input
+          v-model="queryParams.submoduletext"
+          placeholder="璇疯緭鍏�  "
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="  " prop="submodulevoice">
+        <el-input
+          v-model="queryParams.submodulevoice"
+          placeholder="璇疯緭鍏�  "
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="  " prop="noclearlytext">
+        <el-input
+          v-model="queryParams.noclearlytext"
+          placeholder="璇疯緭鍏�  "
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="  " prop="noclearlyvoice">
+        <el-input
+          v-model="queryParams.noclearlyvoice"
+          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="language">
+        <el-input
+          v-model="queryParams.language"
+          placeholder="璇疯緭鍏�  "
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="  " prop="version">
+        <el-input
+          v-model="queryParams.version"
+          placeholder="璇疯緭鍏�  "
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="  " prop="isenable">
+        <el-input
+          v-model="queryParams.isenable"
+          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="adduserid">
+        <el-input
+          v-model="queryParams.adduserid"
+          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="modifyuserid">
+        <el-input
+          v-model="queryParams.modifyuserid"
+          placeholder="璇疯緭鍏�  "
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="  " prop="modifytime">
+        <el-date-picker clearable
+          v-model="queryParams.modifytime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="璇烽�夋嫨  ">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="  " prop="groupid">
+        <el-input
+          v-model="queryParams.groupid"
+          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:ivrlibascript: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:ivrlibascript: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:ivrlibascript: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:ivrlibascript:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="ivrlibascriptList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="  " align="center" prop="questionid" />
+      <el-table-column label="  " align="center" prop="questionpoint" />
+      <el-table-column label="  " align="center" prop="questiontext" />
+      <el-table-column label="  " align="center" prop="questionvoice" />
+      <el-table-column label="  " align="center" prop="nomatchtext" />
+      <el-table-column label="  " align="center" prop="nomatchvoice" />
+      <el-table-column label="  " align="center" prop="sliencetext" />
+      <el-table-column label="  " align="center" prop="sliencevoice" />
+      <el-table-column label="  " align="center" prop="submoduletext" />
+      <el-table-column label="  " align="center" prop="submodulevoice" />
+      <el-table-column label="  " align="center" prop="noclearlytext" />
+      <el-table-column label="  " align="center" prop="noclearlyvoice" />
+      <el-table-column label="  " align="center" prop="questiontype" />
+      <el-table-column label="  " align="center" prop="categoryname" />
+      <el-table-column label="  " align="center" prop="targetoptions" />
+      <el-table-column label="  " align="center" prop="language" />
+      <el-table-column label="  " align="center" prop="remark" />
+      <el-table-column label="  " align="center" prop="version" />
+      <el-table-column label="  " align="center" prop="isenable" />
+      <el-table-column label="  " align="center" prop="isdel" />
+      <el-table-column label="  " align="center" prop="adduserid" />
+      <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="modifyuserid" />
+      <el-table-column label="  " align="center" prop="modifytime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.modifytime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="  " align="center" prop="groupid" />
+      <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:ivrlibascript:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['smartor:ivrlibascript: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="questionpoint">
+          <el-input v-model="form.questionpoint" 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="nomatchtext">
+          <el-input v-model="form.nomatchtext" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="nomatchvoice">
+          <el-input v-model="form.nomatchvoice" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="sliencetext">
+          <el-input v-model="form.sliencetext" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="sliencevoice">
+          <el-input v-model="form.sliencevoice" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="submoduletext">
+          <el-input v-model="form.submoduletext" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="submodulevoice">
+          <el-input v-model="form.submodulevoice" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="noclearlytext">
+          <el-input v-model="form.noclearlytext" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="noclearlyvoice">
+          <el-input v-model="form.noclearlyvoice" 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="language">
+          <el-input v-model="form.language" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="remark">
+          <el-input v-model="form.remark" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="version">
+          <el-input v-model="form.version" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="isenable">
+          <el-input v-model="form.isenable" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="isdel">
+          <el-input v-model="form.isdel" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="adduserid">
+          <el-input v-model="form.adduserid" 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="modifyuserid">
+          <el-input v-model="form.modifyuserid" placeholder="璇疯緭鍏�  " />
+        </el-form-item>
+        <el-form-item label="  " prop="modifytime">
+          <el-date-picker clearable
+            v-model="form.modifytime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="璇烽�夋嫨  ">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="  " prop="groupid">
+          <el-input v-model="form.groupid" 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 { listIvrlibascript, getIvrlibascript, delIvrlibascript, addIvrlibascript, updateIvrlibascript } from "@/api/smartor/ivrlibascript";
+
+export default {
+  name: "Ivrlibascript",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 璇濇湳搴撹〃鏍兼暟鎹�
+      ivrlibascriptList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        questionpoint: null,
+        questiontext: null,
+        questionvoice: null,
+        nomatchtext: null,
+        nomatchvoice: null,
+        sliencetext: null,
+        sliencevoice: null,
+        submoduletext: null,
+        submodulevoice: null,
+        noclearlytext: null,
+        noclearlyvoice: null,
+        questiontype: null,
+        categoryname: null,
+        targetoptions: null,
+        language: null,
+        version: null,
+        isenable: null,
+        isdel: null,
+        adduserid: null,
+        addtime: null,
+        modifyuserid: null,
+        modifytime: null,
+        groupid: 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;
+      listIvrlibascript(this.queryParams).then(response => {
+        this.ivrlibascriptList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        questionid: null,
+        questionpoint: null,
+        questiontext: null,
+        questionvoice: null,
+        nomatchtext: null,
+        nomatchvoice: null,
+        sliencetext: null,
+        sliencevoice: null,
+        submoduletext: null,
+        submodulevoice: null,
+        noclearlytext: null,
+        noclearlyvoice: null,
+        questiontype: null,
+        categoryname: null,
+        targetoptions: null,
+        language: null,
+        remark: null,
+        version: null,
+        isenable: null,
+        isdel: null,
+        adduserid: null,
+        addtime: null,
+        modifyuserid: null,
+        modifytime: null,
+        groupid: 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.questionid)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞璇濇湳搴�";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const questionid = row.questionid || this.ids
+      getIvrlibascript(questionid).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼璇濇湳搴�";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.questionid != null) {
+            updateIvrlibascript(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addIvrlibascript(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const questionids = row.questionid || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎璇濇湳搴撶紪鍙蜂负"' + questionids + '"鐨勬暟鎹」锛�').then(function() {
+        return delIvrlibascript(questionids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/ivrlibascript/export', {
+        ...this.queryParams
+      }, `ivrlibascript_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/ruoyi-ui/src/views/smartor/ivrscripttarget/index.vue b/ruoyi-ui/src/views/smartor/ivrscripttarget/index.vue
new file mode 100644
index 0000000..d7d03e4
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/ivrscripttarget/index.vue
@@ -0,0 +1,447 @@
+<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="${comment}" prop="questionID">
+        <el-input
+          v-model="queryParams.questionID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="targetID">
+        <el-input
+          v-model="queryParams.targetID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="categoryName">
+        <el-input
+          v-model="queryParams.categoryName"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="targetValue">
+        <el-input
+          v-model="queryParams.targetValue"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="sort">
+        <el-input
+          v-model="queryParams.sort"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="version">
+        <el-input
+          v-model="queryParams.version"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isEnable">
+        <el-input
+          v-model="queryParams.isEnable"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isDel">
+        <el-input
+          v-model="queryParams.isDel"
+          placeholder="璇疯緭鍏�${comment}"
+          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:ivrscripttarget: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:ivrscripttarget: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:ivrscripttarget: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:ivrscripttarget:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="ivrscripttargetList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="${comment}" align="center" prop="questionTargetID" />
+      <el-table-column label="${comment}" align="center" prop="questionID" />
+      <el-table-column label="${comment}" align="center" prop="targetID" />
+      <el-table-column label="${comment}" align="center" prop="targetType" />
+      <el-table-column label="${comment}" align="center" prop="categoryName" />
+      <el-table-column label="${comment}" align="center" prop="targetValue" />
+      <el-table-column label="${comment}" align="center" prop="basicRegex" />
+      <el-table-column label="${comment}" align="center" prop="selfRegex" />
+      <el-table-column label="${comment}" align="center" prop="regexUsedType" />
+      <el-table-column label="${comment}" align="center" prop="sort" />
+      <el-table-column label="${comment}" align="center" prop="version" />
+      <el-table-column label="${comment}" align="center" prop="isEnable" />
+      <el-table-column label="${comment}" align="center" prop="isDel" />
+      <el-table-column label="${comment}" align="center" prop="tipsJson" />
+      <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:ivrscripttarget:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['smartor:ivrscripttarget: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="${comment}" prop="questionID">
+          <el-input v-model="form.questionID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="targetID">
+          <el-input v-model="form.targetID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="categoryName">
+          <el-input v-model="form.categoryName" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="targetValue">
+          <el-input v-model="form.targetValue" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="basicRegex">
+          <el-input v-model="form.basicRegex" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="selfRegex">
+          <el-input v-model="form.selfRegex" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="sort">
+          <el-input v-model="form.sort" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="version">
+          <el-input v-model="form.version" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isEnable">
+          <el-input v-model="form.isEnable" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isDel">
+          <el-input v-model="form.isDel" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="tipsJson">
+          <el-input v-model="form.tipsJson" type="textarea" 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 { listIvrscripttarget, getIvrscripttarget, delIvrscripttarget, addIvrscripttarget, updateIvrscripttarget } from "@/api/smartor/ivrscripttarget";
+
+export default {
+  name: "Ivrscripttarget",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 璇濇湳搴撹瘽鏈寚鏍囪〃鏍兼暟鎹�
+      ivrscripttargetList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        questionID: null,
+        targetID: null,
+        targetType: null,
+        categoryName: null,
+        targetValue: null,
+        basicRegex: null,
+        selfRegex: null,
+        regexUsedType: null,
+        sort: null,
+        version: null,
+        isEnable: null,
+        isDel: null,
+        tipsJson: null,
+        isupload: null,
+        uploadTime: null,
+        orgid: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        questionID: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        sort: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        version: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isEnable: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isDel: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ璇濇湳搴撹瘽鏈寚鏍囧垪琛� */
+    getList() {
+      this.loading = true;
+      listIvrscripttarget(this.queryParams).then(response => {
+        this.ivrscripttargetList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        questionTargetID: null,
+        questionID: null,
+        targetID: null,
+        targetType: null,
+        categoryName: null,
+        targetValue: null,
+        basicRegex: null,
+        selfRegex: null,
+        regexUsedType: null,
+        sort: null,
+        version: null,
+        isEnable: null,
+        isDel: null,
+        tipsJson: 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.questionTargetID)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞璇濇湳搴撹瘽鏈寚鏍�";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const questionTargetID = row.questionTargetID || this.ids
+      getIvrscripttarget(questionTargetID).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼璇濇湳搴撹瘽鏈寚鏍�";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.questionTargetID != null) {
+            updateIvrscripttarget(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addIvrscripttarget(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const questionTargetIDs = row.questionTargetID || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎璇濇湳搴撹瘽鏈寚鏍囩紪鍙蜂负"' + questionTargetIDs + '"鐨勬暟鎹」锛�').then(function() {
+        return delIvrscripttarget(questionTargetIDs);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/ivrscripttarget/export', {
+        ...this.queryParams
+      }, `ivrscripttarget_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/ruoyi-ui/src/views/smartor/ivrtarget/index.vue b/ruoyi-ui/src/views/smartor/ivrtarget/index.vue
new file mode 100644
index 0000000..1ae0e99
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/ivrtarget/index.vue
@@ -0,0 +1,554 @@
+<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="${comment}" prop="categoryName">
+        <el-input
+          v-model="queryParams.categoryName"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="targetValue">
+        <el-input
+          v-model="queryParams.targetValue"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="Remark">
+        <el-input
+          v-model="queryParams.Remark"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="language">
+        <el-input
+          v-model="queryParams.language"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="version">
+        <el-input
+          v-model="queryParams.version"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isEnable">
+        <el-input
+          v-model="queryParams.isEnable"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isDel">
+        <el-input
+          v-model="queryParams.isDel"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="addUserID">
+        <el-input
+          v-model="queryParams.addUserID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="addTime">
+        <el-date-picker clearable
+          v-model="queryParams.addTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="璇烽�夋嫨${comment}">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="${comment}" prop="modifyUserID">
+        <el-input
+          v-model="queryParams.modifyUserID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="modifyTime">
+        <el-date-picker clearable
+          v-model="queryParams.modifyTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="璇烽�夋嫨${comment}">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="${comment}" prop="groupID">
+        <el-input
+          v-model="queryParams.groupID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="鏄惁寮傚父鏍囪瘑" prop="isAbnormal">
+        <el-input
+          v-model="queryParams.isAbnormal"
+          placeholder="璇疯緭鍏ユ槸鍚﹀紓甯告爣璇�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="棰勮闃�鍊间笂闄�" prop="WarnUp">
+        <el-input
+          v-model="queryParams.WarnUp"
+          placeholder="璇疯緭鍏ラ璀﹂榾鍊间笂闄�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="棰勮闃�鍊间笅闄�" prop="WarnDown">
+        <el-input
+          v-model="queryParams.WarnDown"
+          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:ivrtarget: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:ivrtarget: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:ivrtarget: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:ivrtarget:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="ivrtargetList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="${comment}" align="center" prop="targetID" />
+      <el-table-column label="${comment}" align="center" prop="targetType" />
+      <el-table-column label="${comment}" align="center" prop="categoryName" />
+      <el-table-column label="${comment}" align="center" prop="targetValue" />
+      <el-table-column label="${comment}" align="center" prop="targetRegex" />
+      <el-table-column label="${comment}" align="center" prop="Remark" />
+      <el-table-column label="${comment}" align="center" prop="language" />
+      <el-table-column label="${comment}" align="center" prop="version" />
+      <el-table-column label="${comment}" align="center" prop="isEnable" />
+      <el-table-column label="${comment}" align="center" prop="isDel" />
+      <el-table-column label="${comment}" align="center" prop="addUserID" />
+      <el-table-column label="${comment}" 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="${comment}" align="center" prop="modifyUserID" />
+      <el-table-column label="${comment}" align="center" prop="modifyTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.modifyTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="${comment}" align="center" prop="groupID" />
+      <el-table-column label="鏄惁寮傚父鏍囪瘑" align="center" prop="isAbnormal" />
+      <el-table-column label="棰勮闃�鍊间笂闄�" align="center" prop="WarnUp" />
+      <el-table-column label="棰勮闃�鍊间笅闄�" align="center" prop="WarnDown" />
+      <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:ivrtarget:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['smartor:ivrtarget: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="${comment}" prop="categoryName">
+          <el-input v-model="form.categoryName" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="targetValue">
+          <el-input v-model="form.targetValue" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="targetRegex">
+          <el-input v-model="form.targetRegex" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="Remark">
+          <el-input v-model="form.Remark" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="language">
+          <el-input v-model="form.language" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="version">
+          <el-input v-model="form.version" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isEnable">
+          <el-input v-model="form.isEnable" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isDel">
+          <el-input v-model="form.isDel" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="addUserID">
+          <el-input v-model="form.addUserID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="addTime">
+          <el-date-picker clearable
+            v-model="form.addTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="璇烽�夋嫨${comment}">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="${comment}" prop="modifyUserID">
+          <el-input v-model="form.modifyUserID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="modifyTime">
+          <el-date-picker clearable
+            v-model="form.modifyTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="璇烽�夋嫨${comment}">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="${comment}" prop="groupID">
+          <el-input v-model="form.groupID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="鏄惁寮傚父鏍囪瘑" prop="isAbnormal">
+          <el-input v-model="form.isAbnormal" placeholder="璇疯緭鍏ユ槸鍚﹀紓甯告爣璇�" />
+        </el-form-item>
+        <el-form-item label="棰勮闃�鍊间笂闄�" prop="WarnUp">
+          <el-input v-model="form.WarnUp" placeholder="璇疯緭鍏ラ璀﹂榾鍊间笂闄�" />
+        </el-form-item>
+        <el-form-item label="棰勮闃�鍊间笅闄�" prop="WarnDown">
+          <el-input v-model="form.WarnDown" 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 { listIvrtarget, getIvrtarget, delIvrtarget, addIvrtarget, updateIvrtarget } from "@/api/smartor/ivrtarget";
+
+export default {
+  name: "Ivrtarget",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鎸囨爣搴撹〃鏍兼暟鎹�
+      ivrtargetList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        targetType: null,
+        categoryName: null,
+        targetValue: null,
+        targetRegex: null,
+        Remark: null,
+        language: null,
+        version: null,
+        isEnable: null,
+        isDel: null,
+        addUserID: null,
+        addTime: null,
+        modifyUserID: null,
+        modifyTime: null,
+        groupID: null,
+        isAbnormal: null,
+        WarnUp: null,
+        WarnDown: null,
+        isupload: null,
+        uploadTime: null,
+        orgid: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        targetType: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "change" }
+        ],
+        categoryName: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        language: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        version: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isEnable: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isDel: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isAbnormal: [
+          { required: true, message: "鏄惁寮傚父鏍囪瘑涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ鎸囨爣搴撳垪琛� */
+    getList() {
+      this.loading = true;
+      listIvrtarget(this.queryParams).then(response => {
+        this.ivrtargetList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        targetID: null,
+        targetType: null,
+        categoryName: null,
+        targetValue: null,
+        targetRegex: null,
+        Remark: null,
+        language: null,
+        version: null,
+        isEnable: null,
+        isDel: null,
+        addUserID: null,
+        addTime: null,
+        modifyUserID: null,
+        modifyTime: null,
+        groupID: null,
+        isAbnormal: null,
+        WarnUp: null,
+        WarnDown: 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.targetID)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞鎸囨爣搴�";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const targetID = row.targetID || this.ids
+      getIvrtarget(targetID).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼鎸囨爣搴�";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.targetID != null) {
+            updateIvrtarget(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addIvrtarget(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const targetIDs = row.targetID || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎鎸囨爣搴撶紪鍙蜂负"' + targetIDs + '"鐨勬暟鎹」锛�').then(function() {
+        return delIvrtarget(targetIDs);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/ivrtarget/export', {
+        ...this.queryParams
+      }, `ivrtarget_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/ruoyi-ui/src/views/smartor/ivrtemplate/index.vue b/ruoyi-ui/src/views/smartor/ivrtemplate/index.vue
new file mode 100644
index 0000000..2f14f5b
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/ivrtemplate/index.vue
@@ -0,0 +1,606 @@
+<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="${comment}" prop="templateName">
+        <el-input
+          v-model="queryParams.templateName"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="silencetime">
+        <el-input
+          v-model="queryParams.silencetime"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="slienceRepeatTimes">
+        <el-input
+          v-model="queryParams.slienceRepeatTimes"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="nomatchRepeatTimes">
+        <el-input
+          v-model="queryParams.nomatchRepeatTimes"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="firstQuestionNum">
+        <el-input
+          v-model="queryParams.firstQuestionNum"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="submodule">
+        <el-input
+          v-model="queryParams.submodule"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="language">
+        <el-input
+          v-model="queryParams.language"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="Remark">
+        <el-input
+          v-model="queryParams.Remark"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isEnable">
+        <el-input
+          v-model="queryParams.isEnable"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isDel">
+        <el-input
+          v-model="queryParams.isDel"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="addUserID">
+        <el-input
+          v-model="queryParams.addUserID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="addTime">
+        <el-date-picker clearable
+          v-model="queryParams.addTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="璇烽�夋嫨${comment}">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="${comment}" prop="modifyUserID">
+        <el-input
+          v-model="queryParams.modifyUserID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="modifyTime">
+        <el-date-picker clearable
+          v-model="queryParams.modifyTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="璇烽�夋嫨${comment}">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="${comment}" prop="groupID">
+        <el-input
+          v-model="queryParams.groupID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="atuoTaskDayOffset">
+        <el-input
+          v-model="queryParams.atuoTaskDayOffset"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="fKsdm">
+        <el-input
+          v-model="queryParams.fKsdm"
+          placeholder="璇疯緭鍏�${comment}"
+          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:ivrtemplate: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:ivrtemplate: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:ivrtemplate: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:ivrtemplate:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="ivrtemplateList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="${comment}" align="center" prop="templateID" />
+      <el-table-column label="${comment}" align="center" prop="templateName" />
+      <el-table-column label="${comment}" align="center" prop="silencetime" />
+      <el-table-column label="${comment}" align="center" prop="slienceRepeatTimes" />
+      <el-table-column label="${comment}" align="center" prop="nomatchRepeatTimes" />
+      <el-table-column label="${comment}" align="center" prop="firstQuestionNum" />
+      <el-table-column label="${comment}" align="center" prop="submodule" />
+      <el-table-column label="${comment}" align="center" prop="language" />
+      <el-table-column label="${comment}" align="center" prop="Remark" />
+      <el-table-column label="${comment}" align="center" prop="isEnable" />
+      <el-table-column label="${comment}" align="center" prop="isDel" />
+      <el-table-column label="${comment}" align="center" prop="addUserID" />
+      <el-table-column label="${comment}" 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="${comment}" align="center" prop="modifyUserID" />
+      <el-table-column label="${comment}" align="center" prop="modifyTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.modifyTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="${comment}" align="center" prop="groupID" />
+      <el-table-column label="${comment}" align="center" prop="labelInfo" />
+      <el-table-column label="${comment}" align="center" prop="submoduleID" />
+      <el-table-column label="鎾姤绫诲瀷 0.璇煶浼樺厛 1.鏂囧瓧浼樺厛" align="center" prop="playType" />
+      <el-table-column label="${comment}" align="center" prop="icd10code" />
+      <el-table-column label="${comment}" align="center" prop="icd10codename" />
+      <el-table-column label="${comment}" align="center" prop="atuoTaskDayOffset" />
+      <el-table-column label="${comment}" align="center" prop="DeptIds" />
+      <el-table-column label="${comment}" align="center" prop="DeptNames" />
+      <el-table-column label="${comment}" align="center" prop="fKsdm" />
+      <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:ivrtemplate:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['smartor:ivrtemplate: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="${comment}" prop="templateName">
+          <el-input v-model="form.templateName" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="silencetime">
+          <el-input v-model="form.silencetime" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="slienceRepeatTimes">
+          <el-input v-model="form.slienceRepeatTimes" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="nomatchRepeatTimes">
+          <el-input v-model="form.nomatchRepeatTimes" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="firstQuestionNum">
+          <el-input v-model="form.firstQuestionNum" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="submodule">
+          <el-input v-model="form.submodule" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="language">
+          <el-input v-model="form.language" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="Remark">
+          <el-input v-model="form.Remark" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isEnable">
+          <el-input v-model="form.isEnable" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isDel">
+          <el-input v-model="form.isDel" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="addUserID">
+          <el-input v-model="form.addUserID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="addTime">
+          <el-date-picker clearable
+            v-model="form.addTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="璇烽�夋嫨${comment}">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="${comment}" prop="modifyUserID">
+          <el-input v-model="form.modifyUserID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="modifyTime">
+          <el-date-picker clearable
+            v-model="form.modifyTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="璇烽�夋嫨${comment}">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="${comment}" prop="groupID">
+          <el-input v-model="form.groupID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="labelInfo">
+          <el-input v-model="form.labelInfo" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="submoduleID">
+          <el-input v-model="form.submoduleID" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="icd10code">
+          <el-input v-model="form.icd10code" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="icd10codename">
+          <el-input v-model="form.icd10codename" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="atuoTaskDayOffset">
+          <el-input v-model="form.atuoTaskDayOffset" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="DeptIds">
+          <el-input v-model="form.DeptIds" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="DeptNames">
+          <el-input v-model="form.DeptNames" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="fKsdm">
+          <el-input v-model="form.fKsdm" placeholder="璇疯緭鍏�${comment}" />
+        </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 { listIvrtemplate, getIvrtemplate, delIvrtemplate, addIvrtemplate, updateIvrtemplate } from "@/api/smartor/ivrtemplate";
+
+export default {
+  name: "Ivrtemplate",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 璇濇湳妯℃澘搴撹〃鏍兼暟鎹�
+      ivrtemplateList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        templateName: null,
+        silencetime: null,
+        slienceRepeatTimes: null,
+        nomatchRepeatTimes: null,
+        firstQuestionNum: null,
+        submodule: null,
+        language: null,
+        Remark: null,
+        isEnable: null,
+        isDel: null,
+        addUserID: null,
+        addTime: null,
+        modifyUserID: null,
+        modifyTime: null,
+        groupID: null,
+        labelInfo: null,
+        submoduleID: null,
+        playType: null,
+        icd10code: null,
+        icd10codename: null,
+        atuoTaskDayOffset: null,
+        DeptIds: null,
+        DeptNames: null,
+        fKsdm: null,
+        isupload: null,
+        uploadTime: null,
+        orgid: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        templateName: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        language: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isEnable: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isDel: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        atuoTaskDayOffset: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ璇濇湳妯℃澘搴撳垪琛� */
+    getList() {
+      this.loading = true;
+      listIvrtemplate(this.queryParams).then(response => {
+        this.ivrtemplateList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        templateID: null,
+        templateName: null,
+        silencetime: null,
+        slienceRepeatTimes: null,
+        nomatchRepeatTimes: null,
+        firstQuestionNum: null,
+        submodule: null,
+        language: null,
+        Remark: null,
+        isEnable: null,
+        isDel: null,
+        addUserID: null,
+        addTime: null,
+        modifyUserID: null,
+        modifyTime: null,
+        groupID: null,
+        labelInfo: null,
+        submoduleID: null,
+        playType: null,
+        icd10code: null,
+        icd10codename: null,
+        atuoTaskDayOffset: null,
+        DeptIds: null,
+        DeptNames: null,
+        fKsdm: 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.templateID)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞璇濇湳妯℃澘搴�";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const templateID = row.templateID || this.ids
+      getIvrtemplate(templateID).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼璇濇湳妯℃澘搴�";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.templateID != null) {
+            updateIvrtemplate(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addIvrtemplate(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const templateIDs = row.templateID || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎璇濇湳妯℃澘搴撶紪鍙蜂负"' + templateIDs + '"鐨勬暟鎹」锛�').then(function() {
+        return delIvrtemplate(templateIDs);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/ivrtemplate/export', {
+        ...this.queryParams
+      }, `ivrtemplate_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/ruoyi-ui/src/views/smartor/ivrtemplatescript/index.vue b/ruoyi-ui/src/views/smartor/ivrtemplatescript/index.vue
new file mode 100644
index 0000000..96a825f
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/ivrtemplatescript/index.vue
@@ -0,0 +1,520 @@
+<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="${comment}" prop="templateQuestionNum">
+        <el-input
+          v-model="queryParams.templateQuestionNum"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="templateID">
+        <el-input
+          v-model="queryParams.templateID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="questionID">
+        <el-input
+          v-model="queryParams.questionID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="questionPoint">
+        <el-input
+          v-model="queryParams.questionPoint"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="categoryName">
+        <el-input
+          v-model="queryParams.categoryName"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="targetOptions">
+        <el-input
+          v-model="queryParams.targetOptions"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="language">
+        <el-input
+          v-model="queryParams.language"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="playWavOnly">
+        <el-input
+          v-model="queryParams.playWavOnly"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isEnable">
+        <el-input
+          v-model="queryParams.isEnable"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isDel">
+        <el-input
+          v-model="queryParams.isDel"
+          placeholder="璇疯緭鍏�${comment}"
+          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:ivrtemplatescript: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:ivrtemplatescript: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:ivrtemplatescript: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:ivrtemplatescript:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="ivrtemplatescriptList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="${comment}" align="center" prop="templateQuestionID" />
+      <el-table-column label="${comment}" align="center" prop="templateQuestionNum" />
+      <el-table-column label="${comment}" align="center" prop="templateID" />
+      <el-table-column label="${comment}" align="center" prop="questionID" />
+      <el-table-column label="${comment}" align="center" prop="questionPoint" />
+      <el-table-column label="${comment}" align="center" prop="questionText" />
+      <el-table-column label="${comment}" align="center" prop="questionVoice" />
+      <el-table-column label="${comment}" align="center" prop="noMatchText" />
+      <el-table-column label="${comment}" align="center" prop="noMatchVoice" />
+      <el-table-column label="${comment}" align="center" prop="slienceText" />
+      <el-table-column label="${comment}" align="center" prop="slienceVoice" />
+      <el-table-column label="${comment}" align="center" prop="submoduleText" />
+      <el-table-column label="${comment}" align="center" prop="submoduleVoice" />
+      <el-table-column label="${comment}" align="center" prop="noClearlyText" />
+      <el-table-column label="${comment}" align="center" prop="noClearlyVoice" />
+      <el-table-column label="${comment}" align="center" prop="categoryName" />
+      <el-table-column label="${comment}" align="center" prop="targetOptions" />
+      <el-table-column label="${comment}" align="center" prop="language" />
+      <el-table-column label="${comment}" align="center" prop="playWavOnly" />
+      <el-table-column label="${comment}" align="center" prop="isEnable" />
+      <el-table-column label="${comment}" align="center" prop="isDel" />
+      <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:ivrtemplatescript:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['smartor:ivrtemplatescript: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="${comment}" prop="templateQuestionNum">
+          <el-input v-model="form.templateQuestionNum" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="templateID">
+          <el-input v-model="form.templateID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="questionID">
+          <el-input v-model="form.questionID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="questionPoint">
+          <el-input v-model="form.questionPoint" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="questionText">
+          <el-input v-model="form.questionText" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="questionVoice">
+          <el-input v-model="form.questionVoice" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="noMatchText">
+          <el-input v-model="form.noMatchText" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="noMatchVoice">
+          <el-input v-model="form.noMatchVoice" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="slienceText">
+          <el-input v-model="form.slienceText" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="slienceVoice">
+          <el-input v-model="form.slienceVoice" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="submoduleText">
+          <el-input v-model="form.submoduleText" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="submoduleVoice">
+          <el-input v-model="form.submoduleVoice" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="noClearlyText">
+          <el-input v-model="form.noClearlyText" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="noClearlyVoice">
+          <el-input v-model="form.noClearlyVoice" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="categoryName">
+          <el-input v-model="form.categoryName" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="targetOptions">
+          <el-input v-model="form.targetOptions" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="language">
+          <el-input v-model="form.language" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="playWavOnly">
+          <el-input v-model="form.playWavOnly" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isEnable">
+          <el-input v-model="form.isEnable" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isDel">
+          <el-input v-model="form.isDel" placeholder="璇疯緭鍏�${comment}" />
+        </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 { listIvrtemplatescript, getIvrtemplatescript, delIvrtemplatescript, addIvrtemplatescript, updateIvrtemplatescript } from "@/api/smartor/ivrtemplatescript";
+
+export default {
+  name: "Ivrtemplatescript",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 璇濇湳妯℃澘搴撹瘽鏈〃鏍兼暟鎹�
+      ivrtemplatescriptList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        templateQuestionNum: null,
+        templateID: null,
+        questionID: null,
+        questionPoint: null,
+        questionText: null,
+        questionVoice: null,
+        noMatchText: null,
+        noMatchVoice: null,
+        slienceText: null,
+        slienceVoice: null,
+        submoduleText: null,
+        submoduleVoice: null,
+        noClearlyText: null,
+        noClearlyVoice: null,
+        categoryName: null,
+        targetOptions: null,
+        language: null,
+        playWavOnly: null,
+        isEnable: null,
+        isDel: null,
+        isupload: null,
+        uploadTime: null,
+        orgid: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        templateQuestionNum: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        templateID: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        questionID: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        questionPoint: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        language: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        playWavOnly: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isEnable: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isDel: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ璇濇湳妯℃澘搴撹瘽鏈垪琛� */
+    getList() {
+      this.loading = true;
+      listIvrtemplatescript(this.queryParams).then(response => {
+        this.ivrtemplatescriptList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        templateQuestionID: null,
+        templateQuestionNum: null,
+        templateID: null,
+        questionID: null,
+        questionPoint: null,
+        questionText: null,
+        questionVoice: null,
+        noMatchText: null,
+        noMatchVoice: null,
+        slienceText: null,
+        slienceVoice: null,
+        submoduleText: null,
+        submoduleVoice: null,
+        noClearlyText: null,
+        noClearlyVoice: null,
+        categoryName: null,
+        targetOptions: null,
+        language: null,
+        playWavOnly: null,
+        isEnable: null,
+        isDel: 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.templateQuestionID)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞璇濇湳妯℃澘搴撹瘽鏈�";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const templateQuestionID = row.templateQuestionID || this.ids
+      getIvrtemplatescript(templateQuestionID).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼璇濇湳妯℃澘搴撹瘽鏈�";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.templateQuestionID != null) {
+            updateIvrtemplatescript(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addIvrtemplatescript(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const templateQuestionIDs = row.templateQuestionID || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎璇濇湳妯℃澘搴撹瘽鏈紪鍙蜂负"' + templateQuestionIDs + '"鐨勬暟鎹」锛�').then(function() {
+        return delIvrtemplatescript(templateQuestionIDs);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/ivrtemplatescript/export', {
+        ...this.queryParams
+      }, `ivrtemplatescript_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/ruoyi-ui/src/views/smartor/ivrtemplatetarget/index.vue b/ruoyi-ui/src/views/smartor/ivrtemplatetarget/index.vue
new file mode 100644
index 0000000..8425b79
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/ivrtemplatetarget/index.vue
@@ -0,0 +1,541 @@
+<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="${comment}" prop="templateQuestionID">
+        <el-input
+          v-model="queryParams.templateQuestionID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="templateQuestionNum">
+        <el-input
+          v-model="queryParams.templateQuestionNum"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="nextQuestionNum">
+        <el-input
+          v-model="queryParams.nextQuestionNum"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="templateID">
+        <el-input
+          v-model="queryParams.templateID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="switchID">
+        <el-input
+          v-model="queryParams.switchID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="switchDescription">
+        <el-input
+          v-model="queryParams.switchDescription"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="categoryName">
+        <el-input
+          v-model="queryParams.categoryName"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="targetValue">
+        <el-input
+          v-model="queryParams.targetValue"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="targetID">
+        <el-input
+          v-model="queryParams.targetID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="questionTargetID">
+        <el-input
+          v-model="queryParams.questionTargetID"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="language">
+        <el-input
+          v-model="queryParams.language"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isEnable">
+        <el-input
+          v-model="queryParams.isEnable"
+          placeholder="璇疯緭鍏�${comment}"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="${comment}" prop="isDel">
+        <el-input
+          v-model="queryParams.isDel"
+          placeholder="璇疯緭鍏�${comment}"
+          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:ivrtemplatetarget: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:ivrtemplatetarget: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:ivrtemplatetarget: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:ivrtemplatetarget:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="ivrtemplatetargetList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="${comment}" align="center" prop="templateTargetID" />
+      <el-table-column label="${comment}" align="center" prop="templateQuestionID" />
+      <el-table-column label="${comment}" align="center" prop="templateQuestionNum" />
+      <el-table-column label="${comment}" align="center" prop="nextQuestionNum" />
+      <el-table-column label="${comment}" align="center" prop="templateID" />
+      <el-table-column label="${comment}" align="center" prop="switchID" />
+      <el-table-column label="${comment}" align="center" prop="switchDescription" />
+      <el-table-column label="${comment}" align="center" prop="switchText" />
+      <el-table-column label="${comment}" align="center" prop="switchWav" />
+      <el-table-column label="鑺傜偣寰呭尮閰嶈闊�" align="center" prop="switchTempWav" />
+      <el-table-column label="${comment}" align="center" prop="targetType" />
+      <el-table-column label="${comment}" align="center" prop="categoryName" />
+      <el-table-column label="${comment}" align="center" prop="targetValue" />
+      <el-table-column label="${comment}" align="center" prop="targetID" />
+      <el-table-column label="${comment}" align="center" prop="questionTargetID" />
+      <el-table-column label="${comment}" align="center" prop="basicRegex" />
+      <el-table-column label="${comment}" align="center" prop="selfRegex" />
+      <el-table-column label="${comment}" align="center" prop="regexUsedType" />
+      <el-table-column label="${comment}" align="center" prop="language" />
+      <el-table-column label="${comment}" align="center" prop="isEnable" />
+      <el-table-column label="${comment}" align="center" prop="isDel" />
+      <el-table-column label="鎾姤绫诲瀷 0.璇煶浼樺厛 1.鏂囧瓧浼樺厛" align="center" prop="playType" />
+      <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:ivrtemplatetarget:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['smartor:ivrtemplatetarget: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="${comment}" prop="templateQuestionID">
+          <el-input v-model="form.templateQuestionID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="templateQuestionNum">
+          <el-input v-model="form.templateQuestionNum" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="nextQuestionNum">
+          <el-input v-model="form.nextQuestionNum" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="templateID">
+          <el-input v-model="form.templateID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="switchID">
+          <el-input v-model="form.switchID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="switchDescription">
+          <el-input v-model="form.switchDescription" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="switchText">
+          <el-input v-model="form.switchText" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="switchWav">
+          <el-input v-model="form.switchWav" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="鑺傜偣寰呭尮閰嶈闊�" prop="switchTempWav">
+          <el-input v-model="form.switchTempWav" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="categoryName">
+          <el-input v-model="form.categoryName" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="targetValue">
+          <el-input v-model="form.targetValue" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="targetID">
+          <el-input v-model="form.targetID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="questionTargetID">
+          <el-input v-model="form.questionTargetID" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="basicRegex">
+          <el-input v-model="form.basicRegex" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="selfRegex">
+          <el-input v-model="form.selfRegex" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="language">
+          <el-input v-model="form.language" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isEnable">
+          <el-input v-model="form.isEnable" placeholder="璇疯緭鍏�${comment}" />
+        </el-form-item>
+        <el-form-item label="${comment}" prop="isDel">
+          <el-input v-model="form.isDel" placeholder="璇疯緭鍏�${comment}" />
+        </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 { listIvrtemplatetarget, getIvrtemplatetarget, delIvrtemplatetarget, addIvrtemplatetarget, updateIvrtemplatetarget } from "@/api/smartor/ivrtemplatetarget";
+
+export default {
+  name: "Ivrtemplatetarget",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 璇濇湳妯℃澘搴撹瘽鏈寚鏍囪〃鏍兼暟鎹�
+      ivrtemplatetargetList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        templateQuestionID: null,
+        templateQuestionNum: null,
+        nextQuestionNum: null,
+        templateID: null,
+        switchID: null,
+        switchDescription: null,
+        switchText: null,
+        switchWav: null,
+        switchTempWav: null,
+        targetType: null,
+        categoryName: null,
+        targetValue: null,
+        targetID: null,
+        questionTargetID: null,
+        basicRegex: null,
+        selfRegex: null,
+        regexUsedType: null,
+        language: null,
+        isEnable: null,
+        isDel: null,
+        playType: null,
+        isupload: null,
+        uploadTime: null,
+        orgid: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        templateQuestionID: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        templateQuestionNum: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        nextQuestionNum: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        templateID: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        switchID: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        language: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isEnable: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isDel: [
+          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ璇濇湳妯℃澘搴撹瘽鏈寚鏍囧垪琛� */
+    getList() {
+      this.loading = true;
+      listIvrtemplatetarget(this.queryParams).then(response => {
+        this.ivrtemplatetargetList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        templateTargetID: null,
+        templateQuestionID: null,
+        templateQuestionNum: null,
+        nextQuestionNum: null,
+        templateID: null,
+        switchID: null,
+        switchDescription: null,
+        switchText: null,
+        switchWav: null,
+        switchTempWav: null,
+        targetType: null,
+        categoryName: null,
+        targetValue: null,
+        targetID: null,
+        questionTargetID: null,
+        basicRegex: null,
+        selfRegex: null,
+        regexUsedType: null,
+        language: null,
+        isEnable: null,
+        isDel: null,
+        playType: 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.templateTargetID)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞璇濇湳妯℃澘搴撹瘽鏈寚鏍�";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const templateTargetID = row.templateTargetID || this.ids
+      getIvrtemplatetarget(templateTargetID).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼璇濇湳妯℃澘搴撹瘽鏈寚鏍�";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.templateTargetID != null) {
+            updateIvrtemplatetarget(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addIvrtemplatetarget(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const templateTargetIDs = row.templateTargetID || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎璇濇湳妯℃澘搴撹瘽鏈寚鏍囩紪鍙蜂负"' + templateTargetIDs + '"鐨勬暟鎹」锛�').then(function() {
+        return delIvrtemplatetarget(templateTargetIDs);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/ivrtemplatetarget/export', {
+        ...this.queryParams
+      }, `ivrtemplatetarget_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

--
Gitblit v1.9.3