lmx пре 7 часа
родитељ
комит
68d2d1f206
2 измењених фајлова са 134 додато и 22 уклоњено
  1. 132 21
      src/views/company/companyVoiceRobotic/index.vue
  2. 2 1
      src/views/components/QwUserSelectTwo.vue

+ 132 - 21
src/views/company/companyVoiceRobotic/index.vue

@@ -10,14 +10,14 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="机器人" prop="robot">
+      <!-- <el-form-item label="机器人" prop="robot">
         <el-select v-model="queryParams.robot" filterable clearable>
           <el-option v-for="item in robotList" :label="item.name + '('+item.num+')'" :value="item.id"/>
         </el-select>
-      </el-form-item>
-      <el-form-item label="话术" prop="dialogId">
-        <el-select v-model="queryParams.dialogId" filterable clearable>
-          <el-option v-for="item in dialogList" :label="item.name" :value="item.id"/>
+      </el-form-item> -->
+      <el-form-item label="任务类型" prop="taskType">
+        <el-select v-model="queryParams.taskType" filterable clearable>
+          <el-option v-for="item in taskTypeList" :key="item.id" :label="item.name" :value="item.id"/>
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -87,9 +87,15 @@
       </el-table-column>
       <el-table-column label="添加类型" align="center" prop="isWeCom">
         <template slot-scope="scope">
-          <el-tag v-if="scope.row.isWeCom == 1">个微</el-tag>
+          <!-- <el-tag v-if="scope.row.isWeCom == 1">个微</el-tag> -->
           <el-tag v-if="scope.row.isWeCom == 2">企微</el-tag>
         </template>
+      </el-table-column>
+       <el-table-column label="任务类型" align="center" prop="taskType">
+        <template slot-scope="scope">
+          <el-tag v-if="scope.row.taskType == 1">普通任务</el-tag>
+          <el-tag v-if="scope.row.taskType == 2">场景任务</el-tag>
+        </template>
       </el-table-column>
       <el-table-column label="任务状态" align="center">
         <template slot-scope="scope">
@@ -139,13 +145,13 @@
             v-if="scope.row.taskStatus == 0"
             @click="taskRunFun(scope.row.id)"
           >启动任务</el-button>
-          <el-button
+          <!-- <el-button
             size="mini"
             type="text"
             v-if="statusObj.hasOwnProperty(scope.row.taskId) && (statusObj[scope.row.taskId].runningStatus == 0 || statusObj[scope.row.taskId].runningStatus == 3)"
             @click="startRoboticFun(scope.row.taskId)"
             v-hasPermi="['system:companyVoiceRobotic:list']"
-          >开启外呼任务</el-button>
+          >开启外呼任务</el-button> -->
           <el-button
             size="mini"
             type="text"
@@ -177,7 +183,19 @@
     <el-drawer size="45%" :title="title" :visible.sync="open" width="500px" append-to-body class="task-form-drawer">
       <div class="drawer-content">
         <el-form ref="form" :model="form" :rules="rules" label-width="90px" class="task-form">
-          <div class="form-section">
+            <div class="form-section" >
+               <div class="section-title">
+                <i class="el-icon-document"></i>
+                <span>任务类型</span>
+              </div>
+             <el-form-item label="任务类型" prop="taskType">
+              <el-select v-model="form.taskType" filterable placeholder="请选择任务类型" @change="taskTypeChange()">
+                <el-option v-for="item in taskTypeList" :key="item.id" :label="item.name" :value="item.id"/>
+              </el-select>
+            </el-form-item>
+             </div>
+         
+          <div class="form-section" v-if="form.taskType === 1" >
             <div class="section-title">
               <i class="el-icon-document"></i>
               <span>基本信息</span>
@@ -205,10 +223,11 @@
                   placeholder="任务运行开始时间"
                    style="width: 100%;"
                   v-model="form.runtimeRangeStart"
+                  key="runtimeRangeStart"
                   :picker-options="{
-                    start: '07:30',
-                    step: '00:10',
-                    end: '20:00'
+                    start: '07:00',
+                    step: '00:30',
+                    end: '22:00'
                   }">
                 </el-time-select>
                   </el-form-item>
@@ -220,10 +239,11 @@
                       style="width: 100%;"
                   placeholder="任务运行结束时间"
                   v-model="form.runtimeRangeEnd"
+                  key="runtimeRangeEnd"
                   :picker-options="{
-                    start: '08:30',
-                    step: '00:10',
-                    end: '21:00',
+                    start: '07:00',
+                    step: '00:30',
+                    end: '22:00',
                     minTime: form.runtimeRangeStart
                   }">
                 </el-time-select>
@@ -231,6 +251,60 @@
                 </el-col>
               </el-form-item>
           </div>
+          <!-- 场景任务 -->
+          <div class="form-section" v-if="form.taskType === 2" >
+            <div class="section-title">
+              <i class="el-icon-document"></i>
+              <span>基本信息</span>
+            </div>
+            <el-form-item label="任务名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入任务名称" clearable/>
+            </el-form-item>
+            <el-form-item label="任务流程" prop="companyAiWorkflowId">
+              <el-select v-model="form.companyAiWorkflowId" filterable placeholder="请选择任务流程">
+                <el-option v-for="item in workflowList" :key="item.value" :label="item.label" :value="item.value"/>
+              </el-select>
+            </el-form-item>
+             <el-form-item label="场景类型" prop="sceneType">
+              <el-select v-model="form.sceneType" filterable placeholder="请选择场景类型">
+                <el-option v-for="opt in sceneList" :key="opt.dictValue" :label="opt.dictLabel" :value="opt.dictValue"/>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="适用时间" required>
+                <el-col :span="11">
+                  <el-form-item prop="availableStartTime">
+                     <el-time-select
+                  placeholder="场景适用开始时间"
+                   style="width: 100%;"
+                  v-model="form.availableStartTime"
+                  key="availableStartTime"
+                  :picker-options="{
+                    start: '00:00',
+                    step: '00:30',
+                    end: '24:00'
+                  }">
+                </el-time-select>
+                  </el-form-item>
+                </el-col>
+                <el-col class="line" :span="2" style="text-align: center">-</el-col>
+                <el-col :span="11">
+                  <el-form-item prop="availableEndTime">
+                   <el-time-select
+                  style="width: 100%;"
+                  placeholder="场景适用结束时间"
+                  v-model="form.availableEndTime"
+                  key="availableEndTime"
+                  :picker-options="{
+                    start: '00:00',
+                    step: '00:30',
+                    end: '24:00'
+                  }">
+                </el-time-select>
+                  </el-form-item>
+                </el-col>
+              </el-form-item>
+          
+          </div>
 
           <div class="form-section">
             <div class="section-title">
@@ -258,10 +332,10 @@
             </div>
             <el-form-item label="添加类型" prop="isWeCom">
               <el-radio-group v-model="form.isWeCom">
-                <el-radio :label="1" border>
+                <!-- <el-radio :label="1" border>
                   <i class="el-icon-pie-chart"></i>
                   个微
-                </el-radio>
+                </el-radio> -->
                 <el-radio :label="2" border>
                   <i class="el-icon-star-on"></i>
                   企微
@@ -592,6 +666,8 @@ export default {
   components: { draggable, customerDetails, customerSelect, qwUserSelect,qwUserSelectTwo},
   data() {
     return {
+      taskType:1,
+      taskTypeList:[{id:1,name:"普通任务"},{id:2,name:"场景任务"}],
       currentCompanyId:null,
       // 遮罩层
       loading: true,
@@ -644,10 +720,13 @@ export default {
         weekDay2: null,
         startTime2: null,
         endTime2: null,
-        createUser: null
+        createUser: null,
+        taskType:null
       },
       // 表单参数
-      form: {},
+      form: {
+        taskType:1
+      },
       taskFlowList: [{key: "cellPhone", value: "外呼"}, {key: "qwAddWx", value: "企微加微"}, {key: "sendMsg", value: "发短信"}, {key: "addWx", value: "加微"}],
       taskFlowMap: {cellPhone: "外呼", sendMsg: "发短信", addWx: "加微", qwAddWx: "企微加微"},
       statusObj: {},
@@ -709,6 +788,9 @@ export default {
       },
       // 表单校验
       rules: {
+        taskType:[
+           { required: true, message: '请选择任务类型', trigger: 'change' },
+        ],
         name: [
             { required: true, message: '请输入任务名称', trigger: 'blur' },
           ],
@@ -722,7 +804,8 @@ export default {
              { required: true, message: '请选择任务运行结束时间', trigger: 'change' }
           ]
       },
-      smsTempList:[]
+      smsTempList:[],
+      sceneList:[]
     };
   },
   created() {
@@ -747,6 +830,10 @@ export default {
     getDicts("customer_intention_level").then(e => {
       this.levelList = e.data;
     })
+    getDicts("task_scene_type").then(e => {
+      console.log(e);
+      this.sceneList = e.data;
+    })
     this.getList();
     this.getSmsTempDropList();
 
@@ -855,6 +942,9 @@ export default {
         runtimeRangeStart:null,
         runtimeRangeEnd:null,
         isWeCom: 1,
+        taskType:1,
+        availableStartTime :null,
+        availableEndTime: null
       };
       this.resetForm("form");
     },
@@ -877,8 +967,11 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
+      optionList().then(e => {
+      this.workflowList = e.data;
+      })
       this.open = true;
-      this.title = "添加机器人外呼任务";
+      this.title = "添加任务";
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
@@ -1185,6 +1278,24 @@ export default {
     getAvatarColor(index) {
       const colors = ['#1890ff', '#52c41a', '#faad14', '#722ed1', '#eb2f96'];
       return colors[index % colors.length];
+    },
+    /**
+     * 选择任务类型
+     */
+    taskTypeChange(){
+      console.log(this.form.taskType);
+      this.form.runtimeRangeStart=null;
+      this.form.runtimeRangeEnd= null;
+      this.form.userIds= [];
+      this.form.userNames= [];
+      this.form.userTableList= [];
+      this.form.companyAiWorkflowId = null;
+      this.form.name = null;
+      this.form.availableStartTime = null;
+      this.form.availableEndTime = null;
+      this.$nextTick(() => {
+      this.$refs.form.clearValidate();
+      })
     }
   }
 };

+ 2 - 1
src/views/components/QwUserSelectTwo.vue

@@ -64,7 +64,8 @@
       </el-card>
 
       <!-- 底部按钮 -->
-      <div class="footer-actions">
+      <div class="footer-actions" style="    text-align: right;
+    margin: 20px;">
         <el-button @click="shows = false">取 消</el-button>
         <el-button type="primary" @click="submitForm">确定选择</el-button>
       </div>