From 76bd95ca79b03b84f6d011a81794aabcdeef169b Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期二, 21 三月 2023 10:35:46 +0800
Subject: [PATCH] Merge branch 'master' of http://116.62.18.175:6699/r/~yxh/smartor-web

---
 ruoyi-ui/src/views/smartor/svytitle/index0.vue              |  349 +++++++
 ruoyi-ui/src/views/smartor/svytopic/index.vue               |    8 
 ruoyi-ui/src/smartor/dataobject/dw_svytopic_maint.vue       |  137 ++
 ruoyi-ui/src/views/smartor/svytopicoption/index1.vue        |  343 +++++++
 ruoyi-ui/src/views/smartor/ivrquestionlib/QuestionMaint.vue |   67 -
 ruoyi-ui/src/views/smartor/svytopic/maint.vue               |   35 
 ruoyi-ui/src/smartor/dataobject/dw_svytopicoption_list.vue  |  128 ++
 ruoyi-ui/src/views/smartor/svytopic/index1.vue              |  366 +++++++
 ruoyi-ui/src/smartor/dataobject/dw_svytopic_view.vue        |  108 ++
 ruoyi-ui/src/views/smartor/svytitle/index.vue               |  578 +++++-------
 ruoyi-ui/src/views/smartor/svytitle/index1.vue              |  230 +++++
 ruoyi-ui/src/smartor/dataobject/dw_svytopicoption_maint.vue |  199 ++++
 ruoyi-ui/src/views/smartor/svytopicoption/index.vue         |  186 +--
 13 files changed, 2,211 insertions(+), 523 deletions(-)

diff --git a/ruoyi-ui/src/smartor/dataobject/dw_svytopic_maint.vue b/ruoyi-ui/src/smartor/dataobject/dw_svytopic_maint.vue
new file mode 100644
index 0000000..35e84d2
--- /dev/null
+++ b/ruoyi-ui/src/smartor/dataobject/dw_svytopic_maint.vue
@@ -0,0 +1,137 @@
+<template>
+  <div>
+    <!-- 娣诲姞鎴栦慨鏀归棶鍗烽鐩璇濇 -->
+    <el-form ref="form" :model="form" size="small" :inline="true" :rules="rules" label-width="80px">
+      <el-form-item label=" 鑰佺増鏈琁D " prop="oldid">
+        <el-input v-model="form.oldid" placeholder="璇疯緭鍏� 鑰佺増鏈琁D " />
+      </el-form-item>
+      <el-form-item label=" 闂嵎ID " prop="svyid">
+        <el-input v-model="form.svyid" placeholder="璇疯緭鍏� 闂嵎ID " />
+      </el-form-item>
+      <el-form-item label=" 棰樼洰Code " prop="topiccode">
+        <el-input v-model="form.topiccode" placeholder="璇疯緭鍏� 棰樼洰Code " />
+      </el-form-item>
+      <el-form-item label=" 棰樼洰 " prop="topic">
+        <el-input v-model="form.topic" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+      </el-form-item>
+      <el-form-item label=" 鎺掑簭 " prop="sort">
+        <el-input v-model="form.sort" placeholder="璇疯緭鍏� 鎺掑簭 " />
+      </el-form-item>
+      <el-form-item label=" 鏄惁蹇呭~ " prop="ismandatory">
+        <el-select v-model="form.ismandatory" placeholder="璇烽�夋嫨 鏄惁蹇呭~ ">
+          <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
+            :value="parseInt(dict.value)"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label=" 鏄惁闅愯棌 " prop="ishide">
+        <el-select v-model="form.ishide" placeholder="璇烽�夋嫨 鏄惁闅愯棌 ">
+          <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
+            :value="parseInt(dict.value)"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label=" 鍒犻櫎鏍囪 " prop="delFlag">
+        <el-select v-model="form.delFlag" placeholder="璇烽�夋嫨 鍒犻櫎鏍囪 ">
+          <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
+            :value="dict.value"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label=" 鏈烘瀯ID " prop="orgid">
+        <el-input v-model="form.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " />
+      </el-form-item>
+      <el-form-item label=" 涓婁紶鏍囪 " prop="isupload">
+        <el-select v-model="form.isupload" placeholder="璇烽�夋嫨 涓婁紶鏍囪 ">
+          <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
+            :value="parseInt(dict.value)"></el-option>
+        </el-select>
+      </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>
+    <div slot="footer" class="dialog-footer">
+      <el-button type="primary" @click="submitForm">淇� 瀛�</el-button>
+    </div>
+  </div>
+</template>
+<script>
+import { listSvytopic, getSvytopic, delSvytopic, addSvytopic, updateSvytopic } from "@/api/smartor/svytopic";
+
+export default {
+  name: "SvytopicBase",
+  dicts: ['sys_yes_no'],
+  data() {
+    return {
+      total: 0,
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "change" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "change" }
+        ],
+      }
+    };
+  },
+  created() {
+  },
+  methods: {
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        topicid: null,
+        oldid: null,
+        svyid: null,
+        topictype: null,
+        topiccode: null,
+        topic: null,
+        sort: null,
+        ismandatory: null,
+        ishide: null,
+        delFlag: null,
+        orgid: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        isupload: null,
+        uploadTime: null
+      };
+      this.resetForm("form");
+    },
+     /** 淇敼鎸夐挳鎿嶄綔 */
+    Retrieve(topicid) {
+      this.reset();
+      getSvytopic(topicid).then(response => {
+        this.form = response.data;
+        this.title = "淇敼闂嵎棰樼洰";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.topicid != null) {
+            updateSvytopic(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSvytopic(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+  }
+};
+</script>
diff --git a/ruoyi-ui/src/smartor/dataobject/dw_svytopic_view.vue b/ruoyi-ui/src/smartor/dataobject/dw_svytopic_view.vue
new file mode 100644
index 0000000..dffa0d6
--- /dev/null
+++ b/ruoyi-ui/src/smartor/dataobject/dw_svytopic_view.vue
@@ -0,0 +1,108 @@
+<template>
+    <div>
+      <!--el-card class="box-card"-->
+        <div v-for="(question,i) in questions" :key="i" style="margin-left:12pt;margin-top:12pt">
+            <div @click="handleRow">{{ (i+1).toString()+"銆�"+question.subject }}</div>
+            <div @click="handleItem" v-for="(item,index) in question.items" :key="index">
+                <el-radio v-model="question.radio" :label="index" >
+                    <div class="box-redio-span"> {{item.label}}</div> 
+                </el-radio>
+                <el-input label.width="0px" v-if="item.input" style="display:inline;height:14pt"
+                    :placeholder="item.placeholder"
+                    v-model="item.content">
+                </el-input>
+            </div>
+        </div>
+      <!--/el-card-->
+    </div>
+</template>
+
+<style>
+  input.el-input__inner
+  {
+    display:inline;
+    width:120pt;
+    height:12pt;
+    margin-right: 4pt;
+  }
+
+  .box-redio-span
+  {
+    display: inline-block;
+    padding-right:12pt ;
+  }
+  .box-card {
+    margin: 16px;
+    width: 640px;
+  }
+</style>
+
+<script>
+export default {
+  name: "IvrQuestionMaint",
+  data() {
+    return {
+      curindex:0,
+      selectnode:null,
+      selectitem:null,
+      questions:
+      [
+      {
+            radio:0,
+            subject:"Element濡備綍瑙e喅v-for鍜寁-if涓嶈兘鍦ㄤ竴涓爣绛句笂浣跨敤",
+            items:[
+                {index:2,single:true,label:"xxxx2"},
+                {index:3,single:false,label:"xxxx3",input1:true,content:"--222--",placeholder:"璇疯緭鍏ュ叿浣撴暟鎹�2"},
+                {index:4,single:false,label:"xxxx4"},
+                {index:1,single:true,label:"鍏朵粬",input:true,content:"",placeholder:"璇疯緭鍏ュ叿浣撴暟鎹�"},
+            ]
+        },
+        {
+            radio:0,
+            subject:"Element濡備綍瑙e喅v-for鍜寁-if涓嶈兘鍦ㄤ竴涓爣绛句笂浣跨敤",
+            items:[
+                {index:2,single:true,label:"xxxx2"},
+                {index:3,single:false,label:"xxxx3",input1:true,content:"--222--",placeholder:"璇疯緭鍏ュ叿浣撴暟鎹�2"},
+                {index:4,single:false,label:"xxxx4"},
+                {index:1,single:true,label:"鍏朵粬",input:true,content:"",placeholder:"璇疯緭鍏ュ叿浣撴暟鎹�"},
+            ]
+        },
+        {
+            radio:0,
+            subject:"Element濡備綍瑙e喅v-for鍜寁-if涓嶈兘鍦ㄤ竴涓爣绛句笂浣跨敤",
+            items:[
+                {index:2,single:true,label:"xxxx2"},
+                {index:3,single:false,label:"xxxx3",input1:true,content:"--222--",placeholder:"璇疯緭鍏ュ叿浣撴暟鎹�2"},
+                {index:4,single:false,label:"xxxx4"},
+                {index:1,single:true,label:"鍏朵粬",input:true,content:"",placeholder:"璇疯緭鍏ュ叿浣撴暟鎹�"},
+            ]
+        }
+      ]
+    };
+  },
+  methods:{
+    handleRow(evt)
+    {
+      if(this.selectnode)this.selectnode.style.border='none'
+      this.selectnode=evt.target.parentNode
+      this.selectnode.style.border="#ececec solid 1px"
+      if(this.selectitem)this.selectitem.style.border='none'
+    },
+    handleItem(evt)
+    {
+      if(this.selectitem!=evt.target)
+      {
+        if(this.selectnode != evt.target.parentNode)
+        {
+          if(this.selectnode)this.selectnode.style.border='none'
+          this.selectnode = evt.target.parentNode
+          this.selectnode.style.border="#ececec solid 1px"
+        }
+        if(this.selectitem)this.selectitem.style.border='none'
+        this.selectitem=evt.target
+        this.selectitem.style.border="blue solid 1px"
+      }
+    }
+  }
+};
+</script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/smartor/dataobject/dw_svytopicoption_list.vue b/ruoyi-ui/src/smartor/dataobject/dw_svytopicoption_list.vue
new file mode 100644
index 0000000..d5337f4
--- /dev/null
+++ b/ruoyi-ui/src/smartor/dataobject/dw_svytopicoption_list.vue
@@ -0,0 +1,128 @@
+<template>
+    <div class="app-container">
+       <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:svytopicoption: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:svytopicoption: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:svytopicoption: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:svytopicoption:export']">瀵煎嚭</el-button>
+        </el-col>
+        <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      </el-row>
+  
+      <el-table v-loading="loading" :data="svytopicoptionList" @selection-change="handleSelectionChange">
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column label=" 棰樼洰绫诲瀷 " width="150" align="center" prop="topictype" />
+        <el-table-column label=" 閫夐」鍐呭 " width="200" align="center" prop="optioncontent" />
+        <el-table-column label=" 鎻愮ず " width="200" align="center" prop="prompt" />
+        <el-table-column label=" 鍒嗘暟 " width="55" align="center" prop="score" />
+        <el-table-column label=" 楠岃瘉瑙勫垯 " width="250" align="center" prop="verifyrule" />
+        <el-table-column label=" 鏄惁瀛樺湪鏄庣粏 " width="150" align="center" prop="isexistdetail" />
+        <el-table-column label=" 褰掑睘鏈烘瀯 " width="200" 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:svytopicoption:edit']">淇敼</el-button>
+            <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+              v-hasPermi="['smartor:svytopicoption:remove']">鍒犻櫎</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <maintdlg ref="maint"/>
+    </div>
+  </template>
+  
+  <script>
+  import { listSvytopicoption, getSvytopicoption, delSvytopicoption, addSvytopicoption, updateSvytopicoption } from "@/api/smartor/svytopicoption";
+  import maintdlg from  "@/smartor/dataobject/dw_svytopicoption_maint.vue";
+  
+  export default {
+    name: "Svytopicoption",
+    data() {
+      return {
+        single: true,
+        // 闈炲涓鐢�
+        multiple: true,
+        // 鏄剧ず鎼滅储鏉′欢
+        showSearch: true,
+        loading : false,
+        showSearch: true,
+        // 鎬绘潯鏁�
+        total: 0,
+        // 闂嵎闂閫夐」琛ㄦ牸鏁版嵁
+        svytopicoptionList: [],
+         // 鏌ヨ鍙傛暟
+        queryParams: {
+          topicid: null
+        },
+      };
+    },
+    components:
+    {
+      maintdlg: maintdlg //()=>import("@/smartor/dataobject/dw_svytopicoption_maint")
+    },
+    created() {
+     },
+    mounted() {
+      
+    },
+    methods: {
+      /** 鏌ヨ闂嵎闂閫夐」鍒楄〃 */
+      getList(topicId) {
+        this.loading = true;
+        this.queryParams.topicid = topicId;
+        listSvytopicoption(this.queryParams).then(response => {
+          this.svytopicoptionList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      
+      // 澶氶�夋閫変腑鏁版嵁
+      handleSelectionChange(selection) {
+        this.ids = selection.map(item => item.optionid)
+        this.single = selection.length !== 1
+        this.multiple = !selection.length
+      },
+      /** 鏂板鎸夐挳鎿嶄綔 */
+      handleAdd() {
+        this.$refs["maint"].handleUpdate(null)
+        return
+      },
+      /** 淇敼鎸夐挳鎿嶄綔 */
+      handleUpdate(row) {
+        const optionid = row.optionid || this.ids
+        this.$refs["maint"].handleUpdate(optionid) 
+        return 
+      },
+      
+      /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+      handleDelete(row) {
+        const optionids = row.optionid || this.ids;
+        this.$modal.confirm('鏄惁纭鍒犻櫎闂嵎闂閫夐」缂栧彿涓�"' + optionids + '"鐨勬暟鎹」锛�').then(function () {
+          return delSvytopicoption(optionids);
+        }).then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        }).catch(() => { });
+      },
+      /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+      handleExport() {
+        this.download('smartor/svytopicoption/export', {
+          ...this.queryParams
+        }, `svytopicoption_${new Date().getTime()}.xlsx`)
+      }
+    }
+  };
+  </script>
+  
\ No newline at end of file
diff --git a/ruoyi-ui/src/smartor/dataobject/dw_svytopicoption_maint.vue b/ruoyi-ui/src/smartor/dataobject/dw_svytopicoption_maint.vue
new file mode 100644
index 0000000..8a47602
--- /dev/null
+++ b/ruoyi-ui/src/smartor/dataobject/dw_svytopicoption_maint.vue
@@ -0,0 +1,199 @@
+<template>
+    <div>
+  <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+    <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+      <el-row>
+        <el-col :span="6"><el-form-item label=" 111棰樼洰ID " prop="topicid">
+            <el-input v-model="form.topicid" placeholder="璇疯緭鍏� 棰樼洰ID " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 闂嵎ID " prop="svyid">
+            <el-input v-model="form.svyid" placeholder="璇疯緭鍏� 闂嵎ID " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 閫夐」Code " prop="optioncode">
+            <el-input v-model="form.optioncode" placeholder="璇疯緭鍏� 閫夐」Code " />
+          </el-form-item></el-col>
+        <el-col :span="6"></el-col>
+      </el-row>>
+
+      <el-row>
+        <el-form-item label=" 閫夐」鍐呭 ">
+          <el-input v-model="form.optioncontent" placeholder="璇疯緭鍏� 閫夐」鍐呭 " />
+        </el-form-item>
+      </el-row>
+      <el-row>
+        <el-col :span="6"><el-form-item label=" 鏄惁瀛樺湪鏄庣粏 " prop="isexistdetail">
+            <el-input v-model="form.isexistdetail" placeholder="璇疯緭鍏� 鏄惁瀛樺湪鏄庣粏 " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 鏄庣粏鏄惁蹇呭~ " prop="detailismandatory">
+            <el-input v-model="form.detailismandatory" placeholder="璇疯緭鍏� 鏄庣粏鏄惁蹇呭~ " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 鏄惁寮傚父椤圭洰 " prop="isexceptionitem">
+            <el-input v-model="form.isexceptionitem" placeholder="璇疯緭鍏� 鏄惁寮傚父椤圭洰 " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 鏄惁璺熻繘 " prop="istrack">
+            <el-input v-model="form.istrack" placeholder="璇疯緭鍏� 鏄惁璺熻繘 " />
+          </el-form-item></el-col>
+      </el-row>
+
+      <el-row>
+        <el-col :span="6">
+          <el-form-item label=" 鍒嗘暟 " prop="score">
+            <el-input v-model="form.score" placeholder="璇疯緭鍏� 鍒嗘暟 " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 鎻愮ず " prop="prompt">
+            <el-input v-model="form.prompt" placeholder="璇疯緭鍏� 鎻愮ず " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 璺宠浆 " prop="jump">
+            <el-input v-model="form.jump" placeholder="璇疯緭鍏� 璺宠浆 " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 鐖堕�夐」ID " prop="parentoptionid">
+            <el-input v-model="form.parentoptionid" placeholder="璇疯緭鍏� 鐖堕�夐」ID " />
+          </el-form-item></el-col>
+      </el-row>
+
+      <el-row>
+        <el-col :span="6"><el-form-item label=" 鏄惁浜掓枼 " prop="ismutex">
+            <el-input v-model="form.ismutex" placeholder="璇疯緭鍏� 鏄惁浜掓枼 " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 楠岃瘉瑙勫垯 " prop="verifyrule">
+            <el-input v-model="form.verifyrule" placeholder="璇疯緭鍏� 楠岃瘉瑙勫垯 " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 鎺掑簭 " prop="sort">
+            <el-input v-model="form.sort" placeholder="璇疯緭鍏� 鎺掑簭 " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 鏄惁闄愬埗鑼冨洿 " prop="isrange">
+            <el-input v-model="form.isrange" placeholder="璇疯緭鍏� 鏄惁闄愬埗鑼冨洿 " />
+          </el-form-item></el-col>
+      </el-row>
+
+
+      <el-row>
+        <el-col :span="6"><el-form-item label=" 鏈�灏忚寖鍥� " prop="minrange">
+            <el-input v-model="form.minrange" placeholder="璇疯緭鍏� 鏈�灏忚寖鍥� " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 " prop="rangelength">
+            <el-input v-model="form.rangelength" placeholder="璇疯緭鍏� 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 " prop="rangelength">
+            <el-input v-model="form.rangelength" placeholder="璇疯緭鍏� 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 " />
+          </el-form-item></el-col>
+        <el-col :span="6"><el-form-item label=" 鏈烘瀯ID " prop="orgid">
+            <el-input v-model="form.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " />
+          </el-form-item></el-col>
+      </el-row>
+    </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 { listSvytopicoption, getSvytopicoption, delSvytopicoption, addSvytopicoption, updateSvytopicoption } from "@/api/smartor/svytopicoption";
+
+export default {
+  name: "Svytopicoption",
+  dicts: ['sys_yes_no'],
+  data() {
+    return {
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "change" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "change" }
+        ],
+      }
+    };
+  },
+  created() {
+  },
+  methods: {
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        optionid: null,
+        topicid: null,
+        svyid: null,
+        topictype: null,
+        optioncode: null,
+        optioncontent: null,
+        isexistdetail: null,
+        detailismandatory: null,
+        isexceptionitem: null,
+        istrack: null,
+        score: null,
+        prompt: null,
+        jump: null,
+        parentoptionid: null,
+        ismutex: null,
+        verifyrule: null,
+        sort: null,
+        verificationtype: null,
+        isrange: null,
+        minrange: null,
+        maxrange: null,
+        rangelength: null,
+        orgid: null,
+        oldid: null,
+        delFlag: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        isupload: null,
+        uploadTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(id) {
+      this.reset();
+      this.open = true;
+      if (id != null) {
+        const optionid = id;
+        getSvytopicoption(optionid).then(response => {
+          this.form = response.data;
+          this.title = "淇敼闂嵎闂閫夐」";
+        });
+      }else
+      {
+        this.title = "鏂板闂嵎闂閫夐」";
+      }
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.optionid != null) {
+            updateSvytopicoption(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+            });
+          } else {
+            addSvytopicoption(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+            });
+          }
+        }
+      });
+    },
+  }
+};
+</script>
+  
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/smartor/ivrquestionlib/QuestionMaint.vue b/ruoyi-ui/src/views/smartor/ivrquestionlib/QuestionMaint.vue
index a70423a..e60c9cd 100644
--- a/ruoyi-ui/src/views/smartor/ivrquestionlib/QuestionMaint.vue
+++ b/ruoyi-ui/src/views/smartor/ivrquestionlib/QuestionMaint.vue
@@ -1,80 +1,21 @@
 <template>
     <div>
-      <div is='dw_1'/>
-      <div is='dw_3'/>
-      <el-card class="box-card">
-        <div style="height:27pt;margin:4pt;color1:blue">{{ question.subject }}</div>
-
-        <span v-for="(item,index) in question.items" :key="index" :inline="true">
-          <el-radio v-model="radio" :label="index">
-            <div class="box-redio-span"> {{item.label}}</div> </el-radio>
-          <el-input :id="'xxx'+index" :inline="true" label.width="0px" v-if="item.input" style="display:inline"
-              :placeholder="item.placeholder"
-              v-model="item.content">
-          </el-input>
-        </span>
-      </el-card>
-      <div style="padding-left:64pt">
-            <el-button>淇敼</el-button>
-            <el-button>纭</el-button>
-            <el-button>&lt;</el-button>
-            <el-button>&gt;</el-button>
-      </div>
+      <div is='dw_topic'/>
     </div>
 </template>
 
-<style>
-  input.el-input__inner
-  {
-    display:inline;
-    width:120pt;
-    margin-right: 12pt;
-  }
-
-  .box-redio-span
-  {
-    display: inline-block;
-    padding-right:12pt ;
-  }
-  .box-card {
-    margin: 16px;
-    width: 640px;
-  }
-</style>
-
 <script>
 export default {
-  name: "IvrQuestionMaint",
+  name: "IvrTopicView",
   data() {
     return {
-      //dw_2:null,
-      radio:0,
-      question:{
-        subject:"Element濡備綍瑙e喅v-for鍜寁-if涓嶈兘鍦ㄤ竴涓爣绛句笂浣跨敤",
-        items:[
-          {index:2,single:true,label:"xxxx2"},
-          {index:3,single:false,label:"xxxx3",input1:true,content:"--222--",placeholder:"璇疯緭鍏ュ叿浣撴暟鎹�2"},
-          {index:4,single:false,label:"xxxx4"},
-          {index:1,single:true,label:"鍏朵粬",input:true,content:"",placeholder:"璇疯緭鍏ュ叿浣撴暟鎹�"},
-        ]
-      },
-      comps: ['dw_2'],
-      apps: []
      };
   },
   components:
   {
-    dw_1: ()=>import("@/smartor/dataobject/dw_patarchive_list.vue"),
-    dw_3: ()=>import("@/smartor/dataobject/dw_patarchive_list.vue"),
- },
+    dw_topic: ()=>import("@/smartor/dataobject/dw_svytopic_view.vue")
+  },
   methods: {
-     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleMaint(row) {
-      
-    },
-    /** 纭鎸夐挳鎿嶄綔 */
-    handleOk() {
-     }
   }
 };
 </script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/smartor/svytitle/index.vue b/ruoyi-ui/src/views/smartor/svytitle/index.vue
index a184a28..52476c0 100644
--- a/ruoyi-ui/src/views/smartor/svytitle/index.vue
+++ b/ruoyi-ui/src/views/smartor/svytitle/index.vue
@@ -1,347 +1,259 @@
 <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="categoryid">
-    
-                <el-input v-model="queryParams.categoryid" placeholder="璇疯緭鍏� 闂嵎绫诲埆 " clearable @keyup.enter.native="handleQuery" />
-    
-            </el-form-item>
-    
-            <el-form-item label=" 闂嵎鍚嶇О " prop="svyname">
-    
-                <el-input v-model="queryParams.svyname" 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="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:svytitle: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:svytitle: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:svytitle: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:svytitle:export']">瀵煎嚭</el-button>
-    
-            </el-col>
-    
-            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    
-        </el-row>
-    
-    
-    
-        <el-table v-loading="loading" :data="svytitleList" @selection-change="handleSelectionChange">
-    
-            <el-table-column type="selection" width="55" align="center" />
-    
-            <el-table-column label=" 闂嵎绫诲埆 " width="120" align="center" prop="categoryid" />
-    
-            <el-table-column label=" 闂嵎浠g爜 " width="120" align="center" prop="svycode" />
-    
-            <el-table-column label=" 闂嵎鍚嶇О " width="200" align="center" prop="svyname" />
-    
-            <el-table-column label=" 鎻忚堪 " width="300" align="center" prop="description" />
-    
-            <el-table-column label=" 閲囩敤妯℃澘 " width="120" align="center" prop="templateid" />
-    
-            <el-table-column label=" 鐗堟湰 " width="120" align="center" prop="version" />
-    
-            <el-table-column label=" 鏄惁鍚敤 " width="120" align="center" prop="isenable" />
-    
-            <el-table-column label=" 褰掑睘鏈烘瀯 " width="200" 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:svytitle:edit']">淇敼</el-button>
-    
-              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
-    
-                v-hasPermi="['smartor:svytitle: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="1000px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-row>
-          <el-col :span="8">
-            <el-form-item label=" 闂嵎浠g爜 " prop="svycode">
-              <el-input v-model="form.svycode" placeholder="璇疯緭鍏� 闂嵎浠g爜 " />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label=" 闂嵎鍚嶇О " prop="svyname">
-              <el-input v-model="form.svyname" placeholder="璇疯緭鍏� 闂嵎鍚嶇О " />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label=" 闂嵎鍒嗙被 " prop="categoryid">
-              <el-input v-model="form.categoryid" placeholder="璇疯緭鍏� 闂嵎鍒嗙被ID " />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-form-item label=" 闂嵎鎻忚堪 " prop="description">
-            <el-input v-model="form.description" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
-          </el-form-item>
-        </el-row>
-        <el-row>
-          <el-form-item label=" 闂嵎浠嬬粛 " prop="introduce">
-            <el-input v-model="form.introduce" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
-          </el-form-item>
-        </el-row>
-        <el-row>
-          <el-form-item label=" 闂嵎鎻愮ず " prop="submitprompt">
-            <el-input v-model="form.submitprompt" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
-          </el-form-item>
-        </el-row>
-
-        <el-row>
-          <el-form-item label=" 褰掑睘鏈烘瀯 " prop="orgid">
-            <el-input v-model="form.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " />
-          </el-form-item>
-        </el-row><el-row><el-col :span="8">
-            <el-form-item label=" 鐗堟湰 " prop="version">
-              <el-input v-model="form.version" placeholder="璇疯緭鍏� 鐗堟湰 " />
-            </el-form-item></el-col><el-col :span="8">
-            <el-form-item label=" 鏄惁鍚敤 " prop="isenable">
-              <el-input v-model="form.isenable" placeholder="璇疯緭鍏� 鏄惁鍚敤 " />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label=" 閲囩敤妯℃澘 " prop="templateid">
-              <el-input v-model="form.templateid" placeholder="璇疯緭鍏� 妯℃澘ID " />
-            </el-form-item></el-col>
-        </el-row>
-      </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>
+    <div style="height:32pt" />
+    <div style="padding-left:16pt;">
+      <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="input3" class="input-with-select">
+        <!--el-select v-model="select" slot="prepend" placeholder="璇烽�夋嫨">
+          <el-option label="椁愬巺鍚�" value="1"></el-option>
+          <el-option label="璁㈠崟鍙�" value="2"></el-option>
+          <el-option label="鐢ㄦ埛鐢佃瘽" value="3"></el-option>
+        </el-select-->
+        <el-button slot="append" icon="el-icon-search" style="width:32pt"></el-button>
+      </el-input>
+      <!--el-button type="primary" icon="el-icon-search">鎼滅储</el-button-->
+      <el-button size="small" type1="primary" @click="handleQueryGrid">琛ㄦ绱�</el-button>
+      <el-button size="small" type1="primary" @click="handleQueryTree">鏍戞绱�</el-button>
+    </div>
+    <div id="content">
+      <div v-for="(item,i) in svytitleList" :key="i" style="margin-left:12pt;margin-top:12pt">
+            <a style="color:#000080;font-size:11pt">{{item.svyname}}({{item.version}})</a>
+            <div>{{item.description}}</div>
+       </div>
+    </div>
   </div>
 </template>
-
+<style> 
+  .input-with-select
+  {
+    width:50%;
+    margin-right: 12pt;
+  }
+</style>
 <script>
 import { listSvytitle, getSvytitle, delSvytitle, addSvytitle, updateSvytitle } from "@/api/smartor/svytitle";
 
 export default {
-    name: "Svytitle",
-    data() {
-        return {
-            // 閬僵灞�
-            loading: true,
-            // 閫変腑鏁扮粍
-            ids: [],
-            // 闈炲崟涓鐢�
-            single: true,
-            // 闈炲涓鐢�
-            multiple: true,
-            // 鏄剧ず鎼滅储鏉′欢
-            showSearch: true,
-            // 鎬绘潯鏁�
-            total: 0,
-            // 闂嵎琛ㄦ牸鏁版嵁
-            svytitleList: [],
-            // 寮瑰嚭灞傛爣棰�
-            title: "",
-            // 鏄惁鏄剧ず寮瑰嚭灞�
-            open: false,
-            // 鏌ヨ鍙傛暟
-            queryParams: {
-                pageNum: 1,
-                pageSize: 10,
-                categoryid: null,
-                svycode: null,
-                svyname: null,
-                description: null,
-                introduce: null,
-                submitprompt: null,
-                templateid: null,
-                version: null,
-                centerlibrarycode: null,
-                centerlibraryid: null,
-                islocal: null,
-                isenable: null,
-                orgid: null,
-                isupload: null,
-                uploadTime: null
-            },
-            // 琛ㄥ崟鍙傛暟
-            form: {},
-            // 琛ㄥ崟鏍¢獙
-            rules: {
-                delFlag: [
-                    { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
-                ],
-                isupload: [
-                    { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
-                ],
-            }
-        };
+  name: "Svytitle",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 闂嵎琛ㄦ牸鏁版嵁
+      svytitleList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        categoryid: null,
+        svycode: null,
+        svyname: null,
+        description: null,
+        introduce: null,
+        submitprompt: null,
+        templateid: null,
+        version: null,
+        centerlibrarycode: null,
+        centerlibraryid: null,
+        islocal: null,
+        isenable: null,
+        orgid: null,
+        isupload: null,
+        uploadTime: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      },
+      data: [{
+        label: '涓�绾� 1',
+        children: [{
+          label: '浜岀骇 1-1',
+          children: [{
+            label: '涓夌骇 1-1-1'
+          }]
+        }]
+      }, {
+        label: '涓�绾� 2',
+        children: [{
+          label: '浜岀骇 2-1',
+          children: [{
+            label: '涓夌骇 2-1-1'
+          }]
+        }, {
+          label: '浜岀骇 2-2',
+          children: [{
+            label: '涓夌骇 2-2-1'
+          }]
+        }]
+      }, {
+        label: '涓�绾� 3',
+        children: [{
+          label: '浜岀骇 3-1',
+          children: [{
+            label: '涓夌骇 3-1-1'
+          }]
+        }, {
+          label: '浜岀骇 3-2',
+          children: [{
+            label: '涓夌骇 3-2-1'
+          }]
+        }]
+      }],
+      defaultProps: {
+        children: 'children',
+        label: 'label'
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ闂嵎鍒楄〃 */
+    getList() {
+      this.loading = true;
+      listSvytitle(this.queryParams).then(response => {
+        this.svytitleList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
     },
-    created() {
-        this.getList();
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
     },
-    methods: {
-        /** 鏌ヨ闂嵎鍒楄〃 */
-        getList() {
-            this.loading = true;
-            listSvytitle(this.queryParams).then(response => {
-                this.svytitleList = response.rows;
-                this.total = response.total;
-                this.loading = false;
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        svyid: null,
+        categoryid: null,
+        svycode: null,
+        svyname: null,
+        description: null,
+        introduce: null,
+        submitprompt: null,
+        templateid: null,
+        version: null,
+        centerlibrarycode: null,
+        centerlibraryid: null,
+        islocal: null,
+        isenable: null,
+        orgid: null,
+        delFlag: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        isupload: null,
+        uploadTime: 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.svyid)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞闂嵎";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const svyid = row.svyid || this.ids
+      getSvytitle(svyid).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼闂嵎";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.svyid != null) {
+            updateSvytitle(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
             });
-        },
-        // 鍙栨秷鎸夐挳
-        cancel() {
-            this.open = false;
-            this.reset();
-        },
-        // 琛ㄥ崟閲嶇疆
-        reset() {
-            this.form = {
-                svyid: null,
-                categoryid: null,
-                svycode: null,
-                svyname: null,
-                description: null,
-                introduce: null,
-                submitprompt: null,
-                templateid: null,
-                version: null,
-                centerlibrarycode: null,
-                centerlibraryid: null,
-                islocal: null,
-                isenable: null,
-                orgid: null,
-                delFlag: null,
-                createBy: null,
-                createTime: null,
-                updateBy: null,
-                updateTime: null,
-                isupload: null,
-                uploadTime: 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.svyid)
-            this.single = selection.length !== 1
-            this.multiple = !selection.length
-        },
-        /** 鏂板鎸夐挳鎿嶄綔 */
-        handleAdd() {
-            this.reset();
-            this.open = true;
-            this.title = "娣诲姞闂嵎";
-        },
-        /** 淇敼鎸夐挳鎿嶄綔 */
-        handleUpdate(row) {
-            this.reset();
-            const svyid = row.svyid || this.ids
-            getSvytitle(svyid).then(response => {
-                this.form = response.data;
-                this.open = true;
-                this.title = "淇敼闂嵎";
+          } else {
+            addSvytitle(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
             });
-        },
-        /** 鎻愪氦鎸夐挳 */
-        submitForm() {
-            this.$refs["form"].validate(valid => {
-                if (valid) {
-                    if (this.form.svyid != null) {
-                        updateSvytitle(this.form).then(response => {
-                            this.$modal.msgSuccess("淇敼鎴愬姛");
-                            this.open = false;
-                            this.getList();
-                        });
-                    } else {
-                        addSvytitle(this.form).then(response => {
-                            this.$modal.msgSuccess("鏂板鎴愬姛");
-                            this.open = false;
-                            this.getList();
-                        });
-                    }
-                }
-            });
-        },
-        /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-        handleDelete(row) {
-            const svyids = row.svyid || this.ids;
-            this.$modal.confirm('鏄惁纭鍒犻櫎闂嵎缂栧彿涓�"' + svyids + '"鐨勬暟鎹」锛�').then(function() {
-                return delSvytitle(svyids);
-            }).then(() => {
-                this.getList();
-                this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-            }).catch(() => {});
-        },
-        /** 瀵煎嚭鎸夐挳鎿嶄綔 */
-        handleExport() {
-            this.download('smartor/svytitle/export', {
-                ...this.queryParams
-            }, `svytitle_${new Date().getTime()}.xlsx`)
+          }
         }
-    }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const svyids = row.svyid || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎闂嵎缂栧彿涓�"' + svyids + '"鐨勬暟鎹」锛�').then(function () {
+        return delSvytitle(svyids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => { });
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/svytitle/export', {
+        ...this.queryParams
+      }, `svytitle_${new Date().getTime()}.xlsx`)
+    },
+    handleNodeClick(data) {
+      console.log(data);
+    },
+    handleQueryGrid() {
+      const params = { };
+      this.$tab.openPage("闂嵎鏌ヨ1", '/surveysetting/svytitle1/', params);
+    },
+    handleQueryTree() {
+      const params = { };
+      this.$tab.openPage("闂嵎鏌ヨ2", '/surveysetting/svytitle2/', params);
+    },
+  },
+  components:
+  {
+    dw_topic: () => import("@/smartor/dataobject/dw_svytopic_view.vue")
+  }
 };
 </script>
diff --git a/ruoyi-ui/src/views/smartor/svytitle/index0.vue b/ruoyi-ui/src/views/smartor/svytitle/index0.vue
new file mode 100644
index 0000000..6ac977e
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/svytitle/index0.vue
@@ -0,0 +1,349 @@
+<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="categoryid">
+
+        <el-input v-model="queryParams.categoryid" placeholder="璇疯緭鍏� 闂嵎绫诲埆 " clearable @keyup.enter.native="handleQuery" />
+
+      </el-form-item>
+
+      <el-form-item label=" 闂嵎鍚嶇О " prop="svyname">
+
+        <el-input v-model="queryParams.svyname" 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="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:svytitle: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:svytitle: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:svytitle: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:svytitle:export']">瀵煎嚭</el-button>
+
+      </el-col>
+
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+
+    </el-row>
+
+
+
+    <el-table v-loading="loading" :data="svytitleList" @selection-change="handleSelectionChange">
+
+      <el-table-column type="selection" width="55" align="center" />
+
+      <el-table-column label=" 闂嵎绫诲埆 " width="120" align="center" prop="categoryid" />
+
+      <el-table-column label=" 闂嵎浠g爜 " width="120" align="center" prop="svycode" />
+
+      <el-table-column label=" 闂嵎鍚嶇О " width="200" align="center" prop="svyname" />
+
+      <el-table-column label=" 鎻忚堪 " width="300" align="center" prop="description" />
+
+      <el-table-column label=" 閲囩敤妯℃澘 " width="120" align="center" prop="templateid" />
+
+      <el-table-column label=" 鐗堟湰 " width="120" align="center" prop="version" />
+
+      <el-table-column label=" 鏄惁鍚敤 " width="120" align="center" prop="isenable" />
+
+      <el-table-column label=" 褰掑睘鏈烘瀯 " width="200" 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:svytitle:edit']">淇敼</el-button>
+
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+            v-hasPermi="['smartor:svytitle: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="1000px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label=" 闂嵎浠g爜 " prop="svycode">
+              <el-input v-model="form.svycode" placeholder="璇疯緭鍏� 闂嵎浠g爜 " />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label=" 闂嵎鍚嶇О " prop="svyname">
+              <el-input v-model="form.svyname" placeholder="璇疯緭鍏� 闂嵎鍚嶇О " />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label=" 闂嵎鍒嗙被 " prop="categoryid">
+              <el-input v-model="form.categoryid" placeholder="璇疯緭鍏� 闂嵎鍒嗙被ID " />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-form-item label=" 闂嵎鎻忚堪 " prop="description">
+            <el-input v-model="form.description" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-form-item label=" 闂嵎浠嬬粛 " prop="introduce">
+            <el-input v-model="form.introduce" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-form-item label=" 闂嵎鎻愮ず " prop="submitprompt">
+            <el-input v-model="form.submitprompt" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+          </el-form-item>
+        </el-row>
+
+        <el-row>
+          <el-form-item label=" 褰掑睘鏈烘瀯 " prop="orgid">
+            <el-input v-model="form.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " />
+          </el-form-item>
+        </el-row><el-row><el-col :span="8">
+            <el-form-item label=" 鐗堟湰 " prop="version">
+              <el-input v-model="form.version" placeholder="璇疯緭鍏� 鐗堟湰 " />
+            </el-form-item></el-col><el-col :span="8">
+            <el-form-item label=" 鏄惁鍚敤 " prop="isenable">
+              <el-input v-model="form.isenable" placeholder="璇疯緭鍏� 鏄惁鍚敤 " />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label=" 閲囩敤妯℃澘 " prop="templateid">
+              <el-input v-model="form.templateid" placeholder="璇疯緭鍏� 妯℃澘ID " />
+            </el-form-item></el-col>
+        </el-row>
+      </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 { listSvytitle, getSvytitle, delSvytitle, addSvytitle, updateSvytitle } from "@/api/smartor/svytitle";
+
+export default {
+  name: "Svytitle",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 闂嵎琛ㄦ牸鏁版嵁
+      svytitleList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        categoryid: null,
+        svycode: null,
+        svyname: null,
+        description: null,
+        introduce: null,
+        submitprompt: null,
+        templateid: null,
+        version: null,
+        centerlibrarycode: null,
+        centerlibraryid: null,
+        islocal: null,
+        isenable: null,
+        orgid: null,
+        isupload: null,
+        uploadTime: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ闂嵎鍒楄〃 */
+    getList() {
+      this.loading = true;
+      listSvytitle(this.queryParams).then(response => {
+        this.svytitleList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        svyid: null,
+        categoryid: null,
+        svycode: null,
+        svyname: null,
+        description: null,
+        introduce: null,
+        submitprompt: null,
+        templateid: null,
+        version: null,
+        centerlibrarycode: null,
+        centerlibraryid: null,
+        islocal: null,
+        isenable: null,
+        orgid: null,
+        delFlag: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        isupload: null,
+        uploadTime: 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.svyid)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞闂嵎";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const svyid = row.svyid || this.ids
+      getSvytitle(svyid).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼闂嵎";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.svyid != null) {
+            updateSvytitle(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSvytitle(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const svyids = row.svyid || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎闂嵎缂栧彿涓�"' + svyids + '"鐨勬暟鎹」锛�').then(function () {
+        return delSvytitle(svyids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => { });
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/svytitle/export', {
+        ...this.queryParams
+      }, `svytitle_${new Date().getTime()}.xlsx`)
+    },
+  },
+};
+</script>
diff --git a/ruoyi-ui/src/views/smartor/svytitle/index1.vue b/ruoyi-ui/src/views/smartor/svytitle/index1.vue
new file mode 100644
index 0000000..36d512a
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/svytitle/index1.vue
@@ -0,0 +1,230 @@
+<template>
+     <el-container>
+      <el-aside width="200px">
+        <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
+      </el-aside>
+      <el-main>
+        <div is='dw_topic' />
+      </el-main>
+    </el-container>
+ </template>
+<script>
+import { listSvytitle, getSvytitle, delSvytitle, addSvytitle, updateSvytitle } from "@/api/smartor/svytitle";
+
+export default {
+  name: "Svytitle",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 闂嵎琛ㄦ牸鏁版嵁
+      svytitleList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        categoryid: null,
+        svycode: null,
+        svyname: null,
+        description: null,
+        introduce: null,
+        submitprompt: null,
+        templateid: null,
+        version: null,
+        centerlibrarycode: null,
+        centerlibraryid: null,
+        islocal: null,
+        isenable: null,
+        orgid: null,
+        isupload: null,
+        uploadTime: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      },
+      data: [{
+        label: '涓�绾� 1',
+        children: [{
+          label: '浜岀骇 1-1',
+          children: [{
+            label: '涓夌骇 1-1-1'
+          }]
+        }]
+      }, {
+        label: '涓�绾� 2',
+        children: [{
+          label: '浜岀骇 2-1',
+          children: [{
+            label: '涓夌骇 2-1-1'
+          }]
+        }, {
+          label: '浜岀骇 2-2',
+          children: [{
+            label: '涓夌骇 2-2-1'
+          }]
+        }]
+      }, {
+        label: '涓�绾� 3',
+        children: [{
+          label: '浜岀骇 3-1',
+          children: [{
+            label: '涓夌骇 3-1-1'
+          }]
+        }, {
+          label: '浜岀骇 3-2',
+          children: [{
+            label: '涓夌骇 3-2-1'
+          }]
+        }]
+      }],
+      defaultProps: {
+        children: 'children',
+        label: 'label'
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ闂嵎鍒楄〃 */
+    getList() {
+      this.loading = true;
+      listSvytitle(this.queryParams).then(response => {
+        this.svytitleList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        svyid: null,
+        categoryid: null,
+        svycode: null,
+        svyname: null,
+        description: null,
+        introduce: null,
+        submitprompt: null,
+        templateid: null,
+        version: null,
+        centerlibrarycode: null,
+        centerlibraryid: null,
+        islocal: null,
+        isenable: null,
+        orgid: null,
+        delFlag: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        isupload: null,
+        uploadTime: 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.svyid)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞闂嵎";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const svyid = row.svyid || this.ids
+      getSvytitle(svyid).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼闂嵎";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.svyid != null) {
+            updateSvytitle(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSvytitle(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const svyids = row.svyid || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎闂嵎缂栧彿涓�"' + svyids + '"鐨勬暟鎹」锛�').then(function () {
+        return delSvytitle(svyids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => { });
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/svytitle/export', {
+        ...this.queryParams
+      }, `svytitle_${new Date().getTime()}.xlsx`)
+    },
+    handleNodeClick(data) {
+      console.log(data);
+    },
+   },
+  components:
+  {
+    dw_topic: () => import("@/smartor/dataobject/dw_svytopic_view.vue")
+  }
+};
+</script>
diff --git a/ruoyi-ui/src/views/smartor/svytopic/index.vue b/ruoyi-ui/src/views/smartor/svytopic/index.vue
index 9cd6cbf..0b3da56 100644
--- a/ruoyi-ui/src/views/smartor/svytopic/index.vue
+++ b/ruoyi-ui/src/views/smartor/svytopic/index.vue
@@ -317,9 +317,13 @@
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
+      const topicId = row.topicid || this.ids
+      //const tableName = row.tableName || this.tableNames[0];
+      const params = { };
+      this.$tab.openPage("淇敼闂嵎", '/surveysetting/svytopic/maint/' + topicId, params);
+      return
       this.reset();
-      const topicid = row.topicid || this.ids
-      getSvytopic(topicid).then(response => {
+       getSvytopic(topicid).then(response => {
         this.form = response.data;
         this.open = true;
         this.title = "淇敼闂嵎棰樼洰";
diff --git a/ruoyi-ui/src/views/smartor/svytopic/index1.vue b/ruoyi-ui/src/views/smartor/svytopic/index1.vue
new file mode 100644
index 0000000..9cd6cbf
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/svytopic/index1.vue
@@ -0,0 +1,366 @@
+<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=" 鑰佺増鏈琁D " prop="oldid">
+        <el-input
+          v-model="queryParams.oldid"
+          placeholder="璇疯緭鍏� 鑰佺増鏈琁D "
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label=" 鏄惁闅愯棌 " prop="ishide">
+        <el-select v-model="queryParams.ishide" placeholder="璇烽�夋嫨 鏄惁闅愯棌 " clearable>
+          <el-option
+            v-for="dict in dict.type.sys_yes_no"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </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:svytopic: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:svytopic: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:svytopic: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:svytopic:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="svytopicList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label=" 鑷ID " align="center" prop="topicid" />
+      <el-table-column label=" 闂嵎ID " align="center" prop="svyid" />
+      <el-table-column label=" 棰樼洰绫诲瀷;鏋氫妇 1.鍗曢�� 2澶氶�� 3濉┖ " align="center" prop="topictype" />
+      <el-table-column label=" 棰樼洰 " align="center" prop="topic" />
+      <el-table-column label=" 鎺掑簭 " align="center" prop="sort" />
+      <el-table-column label=" 鏄惁闅愯棌 " align="center" prop="ishide">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.ishide"/>
+        </template>
+      </el-table-column>
+      <el-table-column label=" 鏈烘瀯ID " align="center" prop="orgid" />
+      <el-table-column label=" 鍒涘缓鏃堕棿 " align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <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:svytopic:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['smartor:svytopic: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=" 鑰佺増鏈琁D " prop="oldid">
+          <el-input v-model="form.oldid" placeholder="璇疯緭鍏� 鑰佺増鏈琁D " />
+        </el-form-item>
+        <el-form-item label=" 闂嵎ID " prop="svyid">
+          <el-input v-model="form.svyid" placeholder="璇疯緭鍏� 闂嵎ID " />
+        </el-form-item>
+        <el-form-item label=" 棰樼洰Code " prop="topiccode">
+          <el-input v-model="form.topiccode" placeholder="璇疯緭鍏� 棰樼洰Code " />
+        </el-form-item>
+        <el-form-item label=" 棰樼洰 " prop="topic">
+          <el-input v-model="form.topic" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label=" 鎺掑簭 " prop="sort">
+          <el-input v-model="form.sort" placeholder="璇疯緭鍏� 鎺掑簭 " />
+        </el-form-item>
+        <el-form-item label=" 鏄惁蹇呭~ " prop="ismandatory">
+          <el-select v-model="form.ismandatory" placeholder="璇烽�夋嫨 鏄惁蹇呭~ ">
+            <el-option
+              v-for="dict in dict.type.sys_yes_no"
+              :key="dict.value"
+              :label="dict.label"
+              :value="parseInt(dict.value)"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label=" 鏄惁闅愯棌 " prop="ishide">
+          <el-select v-model="form.ishide" placeholder="璇烽�夋嫨 鏄惁闅愯棌 ">
+            <el-option
+              v-for="dict in dict.type.sys_yes_no"
+              :key="dict.value"
+              :label="dict.label"
+              :value="parseInt(dict.value)"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label=" 鍒犻櫎鏍囪 " prop="delFlag">
+          <el-select v-model="form.delFlag" placeholder="璇烽�夋嫨 鍒犻櫎鏍囪 ">
+            <el-option
+              v-for="dict in dict.type.sys_yes_no"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label=" 鏈烘瀯ID " prop="orgid">
+          <el-input v-model="form.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " />
+        </el-form-item>
+        <el-form-item label=" 涓婁紶鏍囪 " prop="isupload">
+          <el-select v-model="form.isupload" placeholder="璇烽�夋嫨 涓婁紶鏍囪 ">
+            <el-option
+              v-for="dict in dict.type.sys_yes_no"
+              :key="dict.value"
+              :label="dict.label"
+              :value="parseInt(dict.value)"
+            ></el-option>
+          </el-select>
+        </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>
+      <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 { listSvytopic, getSvytopic, delSvytopic, addSvytopic, updateSvytopic } from "@/api/smartor/svytopic";
+
+export default {
+  name: "Svytopic",
+  dicts: ['sys_yes_no'],
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 闂嵎棰樼洰琛ㄦ牸鏁版嵁
+      svytopicList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        oldid: null,
+        topictype: null,
+        topic: null,
+        ishide: null,
+        orgid: null,
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "change" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "change" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ闂嵎棰樼洰鍒楄〃 */
+    getList() {
+      this.loading = true;
+      listSvytopic(this.queryParams).then(response => {
+        this.svytopicList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        topicid: null,
+        oldid: null,
+        svyid: null,
+        topictype: null,
+        topiccode: null,
+        topic: null,
+        sort: null,
+        ismandatory: null,
+        ishide: null,
+        delFlag: null,
+        orgid: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        isupload: null,
+        uploadTime: 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.topicid)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞闂嵎棰樼洰";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const topicid = row.topicid || this.ids
+      getSvytopic(topicid).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼闂嵎棰樼洰";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.topicid != null) {
+            updateSvytopic(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSvytopic(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const topicids = row.topicid || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎闂嵎棰樼洰缂栧彿涓�"' + topicids + '"鐨勬暟鎹」锛�').then(function() {
+        return delSvytopic(topicids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/svytopic/export', {
+        ...this.queryParams
+      }, `svytopic_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/ruoyi-ui/src/views/smartor/svytopic/maint.vue b/ruoyi-ui/src/views/smartor/svytopic/maint.vue
new file mode 100644
index 0000000..b1d00b7
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/svytopic/maint.vue
@@ -0,0 +1,35 @@
+<template>
+    <div class="app-container">
+    <dw_base ref="base"/>
+    <dw_detail ref="detail"/>
+    </div>
+</template>
+<script>
+ import { listSvytopic, getSvytopic, delSvytopic, addSvytopic, updateSvytopic } from "@/api/smartor/svytopic";
+ import dw_base from "@/smartor/dataobject/dw_svytopic_maint.vue";
+ import dw_detail from  "@/smartor/dataobject/dw_svytopicoption_list.vue";
+
+export default {
+  name: "SvytopicMaint",
+  dicts: ['sys_yes_no'],
+  data() {
+    return {
+        topicid:null,
+    }
+  },
+  components:
+  {
+    dw_base: dw_base,
+    dw_detail: dw_detail
+  },
+  created() {
+    
+  },
+  mounted() {
+    const topicId = this.$route.params && this.$route.params.topicId
+    //const topicId = 1
+    this.$refs["base"].Retrieve(topicId) 
+    this.$refs["detail"].getList(topicId) 
+  }
+}
+</script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/smartor/svytopicoption/index.vue b/ruoyi-ui/src/views/smartor/svytopicoption/index.vue
index a796792..4d15767 100644
--- a/ruoyi-ui/src/views/smartor/svytopicoption/index.vue
+++ b/ruoyi-ui/src/views/smartor/svytopicoption/index.vue
@@ -5,7 +5,7 @@
         <el-input v-model="queryParams.optioncontent" placeholder="璇疯緭鍏� 閫夐」鍐呭 " clearable
           @keyup.enter.native="handleQuery" />
       </el-form-item>
-      <el-form-item label=" 褰掑鏈烘瀯 " prop="orgid">
+      <el-form-item label=" 褰掑睘鏈烘瀯 " prop="orgid">
         <el-input v-model="queryParams.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " clearable @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item>
@@ -67,38 +67,22 @@
     <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
         <el-row>
-          <el-col :span="6"><el-form-item label=" 閫夐」缂栫爜 " prop="optioncode">
-              <el-input v-model="form.optioncode" placeholder="璇疯緭鍏� 閫夐」缂栫爜 " />
-            </el-form-item></el-col><el-col :span="6"><el-form-item label=" 閫傜敤棰樼洰绫诲瀷 " prop="topictype">
-              <el-select v-model="form.topictype" placeholder="璇烽�夋嫨 閫傜敤棰樼洰绫诲瀷 ">
-                <el-option v-for="dict in dict.type.svy_topictype" :key="dict.value" :label="dict.label"
-                  :value="dict.value"></el-option>
-              </el-select>
+          <el-col :span="6"><el-form-item label=" 棰樼洰ID " prop="topicid">
+              <el-input v-model="form.topicid" placeholder="璇疯緭鍏� 棰樼洰ID " />
             </el-form-item></el-col>
-          <el-col :span="12"><el-form-item label=" 鎵�灞為櫌鍖� " prop="orgid">
-              <el-select v-model="form.orgid" placeholder="璇烽�夋嫨 鏈烘瀯ID ">
-                <el-option v-for="dict in dict.type.sys_patientfrom" :key="dict.value" :label="dict.label"
-                  :value="dict.value"></el-option>
-              </el-select>
+          <el-col :span="6"><el-form-item label=" 闂嵎ID " prop="svyid">
+              <el-input v-model="form.svyid" placeholder="璇疯緭鍏� 闂嵎ID " />
             </el-form-item></el-col>
-        </el-row>
+          <el-col :span="6"><el-form-item label=" 閫夐」Code " prop="optioncode">
+              <el-input v-model="form.optioncode" placeholder="璇疯緭鍏� 閫夐」Code " />
+            </el-form-item></el-col>
+          <el-col :span="6"></el-col>
+        </el-row>>
+
         <el-row>
           <el-form-item label=" 閫夐」鍐呭 ">
-            <el-input v-model="form.optioncontent" placeholder="璇疯緭鍏� 閫夐」鐨勫唴瀹� " />
+            <el-input v-model="form.optioncontent" placeholder="璇疯緭鍏� 閫夐」鍐呭 " />
           </el-form-item>
-        </el-row>
-        <el-row>
-          <el-form-item label=" 閫夐」鎻愮ず " prop="prompt">
-            <el-input v-model="form.prompt" placeholder="璇疯緭鍏� 閫夐」鎻愮ず淇℃伅 " />
-          </el-form-item></el-row>
-        <el-row> <el-col :span="6"><el-form-item label=" 閫夐」搴忓彿 " prop="sort">
-              <el-input v-model="form.sort" placeholder="璇疯緭鍏� 閫夐」搴忓彿 " />
-            </el-form-item></el-col><el-col :span="6">
-            <el-form-item label=" 鍒嗘暟 " prop="score">
-              <el-input v-model="form.score" placeholder="璇疯緭鍏� 鍒嗘暟 " />
-            </el-form-item></el-col><el-col :span="12"><el-form-item label=" 楠岃瘉瑙勫垯 " prop="verifyrule">
-              <el-input v-model="form.verifyrule" placeholder="璇疯緭鍏� 楠岃瘉瑙勫垯 " />
-            </el-form-item></el-col>
         </el-row>
         <el-row>
           <el-col :span="6"><el-form-item label=" 鏄惁瀛樺湪鏄庣粏 " prop="isexistdetail">
@@ -107,25 +91,47 @@
           <el-col :span="6"><el-form-item label=" 鏄庣粏鏄惁蹇呭~ " prop="detailismandatory">
               <el-input v-model="form.detailismandatory" placeholder="璇疯緭鍏� 鏄庣粏鏄惁蹇呭~ " />
             </el-form-item></el-col>
-          <el-col :span="6"><el-form-item label=" 鐖堕�夐」ID " prop="parentoptionid">
-              <el-input v-model="form.parentoptionid" placeholder="璇疯緭鍏� 鐖堕�夐」ID " />
-            </el-form-item></el-col><el-col :span="6"><el-form-item label=" 璺宠浆 " prop="jump">
-              <el-input v-model="form.jump" placeholder="璇疯緭鍏� 璺宠浆 " />
-            </el-form-item></el-col>
-        </el-row>
-        <el-row> <el-col :span="6"><el-form-item label=" 鏄惁寮傚父椤圭洰 " prop="isexceptionitem">
+          <el-col :span="6"><el-form-item label=" 鏄惁寮傚父椤圭洰 " prop="isexceptionitem">
               <el-input v-model="form.isexceptionitem" placeholder="璇疯緭鍏� 鏄惁寮傚父椤圭洰 " />
             </el-form-item></el-col>
           <el-col :span="6"><el-form-item label=" 鏄惁璺熻繘 " prop="istrack">
               <el-input v-model="form.istrack" placeholder="璇疯緭鍏� 鏄惁璺熻繘 " />
             </el-form-item></el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label=" 鍒嗘暟 " prop="score">
+              <el-input v-model="form.score" placeholder="璇疯緭鍏� 鍒嗘暟 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鎻愮ず " prop="prompt">
+              <el-input v-model="form.prompt" placeholder="璇疯緭鍏� 鎻愮ず " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 璺宠浆 " prop="jump">
+              <el-input v-model="form.jump" placeholder="璇疯緭鍏� 璺宠浆 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鐖堕�夐」ID " prop="parentoptionid">
+              <el-input v-model="form.parentoptionid" placeholder="璇疯緭鍏� 鐖堕�夐」ID " />
+            </el-form-item></el-col>
+        </el-row>
+
+        <el-row>
           <el-col :span="6"><el-form-item label=" 鏄惁浜掓枼 " prop="ismutex">
               <el-input v-model="form.ismutex" placeholder="璇疯緭鍏� 鏄惁浜掓枼 " />
             </el-form-item></el-col>
-        </el-row>
-        <el-row><el-col :span="6"><el-form-item label=" 鏄惁闄愬埗鑼冨洿 " prop="isrange">
+          <el-col :span="6"><el-form-item label=" 楠岃瘉瑙勫垯 " prop="verifyrule">
+              <el-input v-model="form.verifyrule" placeholder="璇疯緭鍏� 楠岃瘉瑙勫垯 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鎺掑簭 " prop="sort">
+              <el-input v-model="form.sort" placeholder="璇疯緭鍏� 鎺掑簭 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鏄惁闄愬埗鑼冨洿 " prop="isrange">
               <el-input v-model="form.isrange" placeholder="璇疯緭鍏� 鏄惁闄愬埗鑼冨洿 " />
             </el-form-item></el-col>
+        </el-row>
+
+
+        <el-row>
           <el-col :span="6"><el-form-item label=" 鏈�灏忚寖鍥� " prop="minrange">
               <el-input v-model="form.minrange" placeholder="璇疯緭鍏� 鏈�灏忚寖鍥� " />
             </el-form-item></el-col>
@@ -134,6 +140,9 @@
             </el-form-item></el-col>
           <el-col :span="6"><el-form-item label=" 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 " prop="rangelength">
               <el-input v-model="form.rangelength" placeholder="璇疯緭鍏� 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鏈烘瀯ID " prop="orgid">
+              <el-input v-model="form.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " />
             </el-form-item></el-col>
         </el-row>
       </el-form>
@@ -147,6 +156,7 @@
 
 <script>
 import { listSvytopicoption, getSvytopicoption, delSvytopicoption, addSvytopicoption, updateSvytopicoption } from "@/api/smartor/svytopicoption";
+import maintdlg from  "@/smartor/dataobject/dw_svytopicoption_maint.vue";
 
 export default {
   name: "Svytopicoption",
@@ -167,11 +177,7 @@
       total: 0,
       // 闂嵎闂閫夐」琛ㄦ牸鏁版嵁
       svytopicoptionList: [],
-      // 寮瑰嚭灞傛爣棰�
-      title: "",
-      // 鏄惁鏄剧ず寮瑰嚭灞�
-      open: false,
-      // 鏌ヨ鍙傛暟
+       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
         pageSize: 10,
@@ -201,21 +207,17 @@
         isupload: null,
         uploadTime: null
       },
-      // 琛ㄥ崟鍙傛暟
-      form: {},
-      // 琛ㄥ崟鏍¢獙
-      rules: {
-        delFlag: [
-          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        isupload: [
-          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-      }
     };
   },
+  components:
+  {
+    maintdlg: maintdlg //()=>import("@/smartor/dataobject/dw_svytopicoption_maint")
+  },
   created() {
-    this.getList();
+     this.getList();
+   },
+  mounted() {
+    
   },
   methods: {
     /** 鏌ヨ闂嵎闂閫夐」鍒楄〃 */
@@ -226,48 +228,6 @@
         this.total = response.total;
         this.loading = false;
       });
-    },
-    // 鍙栨秷鎸夐挳
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 琛ㄥ崟閲嶇疆
-    reset() {
-      this.form = {
-        optionid: null,
-        topicid: null,
-        svyid: null,
-        topictype: null,
-        optioncode: null,
-        optioncontent: null,
-        isexistdetail: null,
-        detailismandatory: null,
-        isexceptionitem: null,
-        istrack: null,
-        score: null,
-        prompt: null,
-        jump: null,
-        parentoptionid: null,
-        ismutex: null,
-        verifyrule: null,
-        sort: null,
-        verificationtype: null,
-        isrange: null,
-        minrange: null,
-        maxrange: null,
-        rangelength: null,
-        orgid: null,
-        oldid: null,
-        delFlag: null,
-        createBy: null,
-        createTime: null,
-        updateBy: null,
-        updateTime: null,
-        isupload: null,
-        uploadTime: null
-      };
-      this.resetForm("form");
     },
     /** 鎼滅储鎸夐挳鎿嶄綔 */
     handleQuery() {
@@ -287,40 +247,16 @@
     },
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "娣诲姞闂嵎闂閫夐」";
+      this.$refs["maint"].handleUpdate(null)
+      return
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
-      this.reset();
       const optionid = row.optionid || this.ids
-      getSvytopicoption(optionid).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "淇敼闂嵎闂閫夐」";
-      });
+      this.$refs["maint"].handleUpdate(optionid) 
+      return 
     },
-    /** 鎻愪氦鎸夐挳 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.optionid != null) {
-            updateSvytopicoption(this.form).then(response => {
-              this.$modal.msgSuccess("淇敼鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addSvytopicoption(this.form).then(response => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
+    
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
       const optionids = row.optionid || this.ids;
diff --git a/ruoyi-ui/src/views/smartor/svytopicoption/index1.vue b/ruoyi-ui/src/views/smartor/svytopicoption/index1.vue
new file mode 100644
index 0000000..d1329f4
--- /dev/null
+++ b/ruoyi-ui/src/views/smartor/svytopicoption/index1.vue
@@ -0,0 +1,343 @@
+<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="optioncontent">
+        <el-input v-model="queryParams.optioncontent" placeholder="璇疯緭鍏� 閫夐」鍐呭 " clearable
+          @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item label=" 褰掑睘鏈烘瀯 " 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:svytopicoption: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:svytopicoption: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:svytopicoption: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:svytopicoption:export']">瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="svytopicoptionList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label=" 棰樼洰绫诲瀷 " width="150" align="center" prop="topictype" />
+      <el-table-column label=" 閫夐」鍐呭 " width="200" align="center" prop="optioncontent" />
+      <el-table-column label=" 鎻愮ず " width="200" align="center" prop="prompt" />
+      <el-table-column label=" 鍒嗘暟 " width="55" align="center" prop="score" />
+      <el-table-column label=" 楠岃瘉瑙勫垯 " width="250" align="center" prop="verifyrule" />
+      <el-table-column label=" 鏄惁瀛樺湪鏄庣粏 " width="150" align="center" prop="isexistdetail" />
+      <el-table-column label=" 褰掑睘鏈烘瀯 " width="200" 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:svytopicoption:edit']">淇敼</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+            v-hasPermi="['smartor:svytopicoption: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="1000px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-row>
+          <el-col :span="6"><el-form-item label=" 棰樼洰ID " prop="topicid">
+              <el-input v-model="form.topicid" placeholder="璇疯緭鍏� 棰樼洰ID " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 闂嵎ID " prop="svyid">
+              <el-input v-model="form.svyid" placeholder="璇疯緭鍏� 闂嵎ID " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 閫夐」Code " prop="optioncode">
+              <el-input v-model="form.optioncode" placeholder="璇疯緭鍏� 閫夐」Code " />
+            </el-form-item></el-col>
+          <el-col :span="6"></el-col>
+        </el-row>>
+
+        <el-row>
+          <el-form-item label=" 閫夐」鍐呭 ">
+            <el-input v-model="form.optioncontent" placeholder="璇疯緭鍏� 閫夐」鍐呭 " />
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-col :span="6"><el-form-item label=" 鏄惁瀛樺湪鏄庣粏 " prop="isexistdetail">
+              <el-input v-model="form.isexistdetail" placeholder="璇疯緭鍏� 鏄惁瀛樺湪鏄庣粏 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鏄庣粏鏄惁蹇呭~ " prop="detailismandatory">
+              <el-input v-model="form.detailismandatory" placeholder="璇疯緭鍏� 鏄庣粏鏄惁蹇呭~ " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鏄惁寮傚父椤圭洰 " prop="isexceptionitem">
+              <el-input v-model="form.isexceptionitem" placeholder="璇疯緭鍏� 鏄惁寮傚父椤圭洰 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鏄惁璺熻繘 " prop="istrack">
+              <el-input v-model="form.istrack" placeholder="璇疯緭鍏� 鏄惁璺熻繘 " />
+            </el-form-item></el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label=" 鍒嗘暟 " prop="score">
+              <el-input v-model="form.score" placeholder="璇疯緭鍏� 鍒嗘暟 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鎻愮ず " prop="prompt">
+              <el-input v-model="form.prompt" placeholder="璇疯緭鍏� 鎻愮ず " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 璺宠浆 " prop="jump">
+              <el-input v-model="form.jump" placeholder="璇疯緭鍏� 璺宠浆 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鐖堕�夐」ID " prop="parentoptionid">
+              <el-input v-model="form.parentoptionid" placeholder="璇疯緭鍏� 鐖堕�夐」ID " />
+            </el-form-item></el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="6"><el-form-item label=" 鏄惁浜掓枼 " prop="ismutex">
+              <el-input v-model="form.ismutex" placeholder="璇疯緭鍏� 鏄惁浜掓枼 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 楠岃瘉瑙勫垯 " prop="verifyrule">
+              <el-input v-model="form.verifyrule" placeholder="璇疯緭鍏� 楠岃瘉瑙勫垯 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鎺掑簭 " prop="sort">
+              <el-input v-model="form.sort" placeholder="璇疯緭鍏� 鎺掑簭 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鏄惁闄愬埗鑼冨洿 " prop="isrange">
+              <el-input v-model="form.isrange" placeholder="璇疯緭鍏� 鏄惁闄愬埗鑼冨洿 " />
+            </el-form-item></el-col>
+        </el-row>
+
+
+        <el-row>
+          <el-col :span="6"><el-form-item label=" 鏈�灏忚寖鍥� " prop="minrange">
+              <el-input v-model="form.minrange" placeholder="璇疯緭鍏� 鏈�灏忚寖鍥� " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 " prop="rangelength">
+              <el-input v-model="form.rangelength" placeholder="璇疯緭鍏� 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 " prop="rangelength">
+              <el-input v-model="form.rangelength" placeholder="璇疯緭鍏� 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 " />
+            </el-form-item></el-col>
+          <el-col :span="6"><el-form-item label=" 鏈烘瀯ID " prop="orgid">
+              <el-input v-model="form.orgid" placeholder="璇疯緭鍏� 鏈烘瀯ID " />
+            </el-form-item></el-col>
+        </el-row>
+      </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 { listSvytopicoption, getSvytopicoption, delSvytopicoption, addSvytopicoption, updateSvytopicoption } from "@/api/smartor/svytopicoption";
+
+export default {
+  name: "Svytopicoption",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 闂嵎闂閫夐」琛ㄦ牸鏁版嵁
+      svytopicoptionList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        topicid: null,
+        svyid: null,
+        topictype: null,
+        optioncode: null,
+        optioncontent: null,
+        isexistdetail: null,
+        detailismandatory: null,
+        isexceptionitem: null,
+        istrack: null,
+        score: null,
+        prompt: null,
+        jump: null,
+        parentoptionid: null,
+        ismutex: null,
+        verifyrule: null,
+        sort: null,
+        verificationtype: null,
+        isrange: null,
+        minrange: null,
+        maxrange: null,
+        rangelength: null,
+        orgid: null,
+        oldid: null,
+        isupload: null,
+        uploadTime: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        delFlag: [
+          { required: true, message: " 鍒犻櫎鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        isupload: [
+          { required: true, message: " 涓婁紶鏍囪 涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ闂嵎闂閫夐」鍒楄〃 */
+    getList() {
+      this.loading = true;
+      listSvytopicoption(this.queryParams).then(response => {
+        this.svytopicoptionList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        optionid: null,
+        topicid: null,
+        svyid: null,
+        topictype: null,
+        optioncode: null,
+        optioncontent: null,
+        isexistdetail: null,
+        detailismandatory: null,
+        isexceptionitem: null,
+        istrack: null,
+        score: null,
+        prompt: null,
+        jump: null,
+        parentoptionid: null,
+        ismutex: null,
+        verifyrule: null,
+        sort: null,
+        verificationtype: null,
+        isrange: null,
+        minrange: null,
+        maxrange: null,
+        rangelength: null,
+        orgid: null,
+        oldid: null,
+        delFlag: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        isupload: null,
+        uploadTime: 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.optionid)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞闂嵎闂閫夐」";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const optionid = row.optionid || this.ids
+      getSvytopicoption(optionid).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼闂嵎闂閫夐」";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.optionid != null) {
+            updateSvytopicoption(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSvytopicoption(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const optionids = row.optionid || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎闂嵎闂閫夐」缂栧彿涓�"' + optionids + '"鐨勬暟鎹」锛�').then(function () {
+        return delSvytopicoption(optionids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => { });
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('smartor/svytopicoption/export', {
+        ...this.queryParams
+      }, `svytopicoption_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

--
Gitblit v1.9.3