shijian
This commit is contained in:
		
							parent
							
								
									3e35f22abc
								
							
						
					
					
						commit
						3eaeef63b4
					
				|  | @ -67,4 +67,43 @@ export default { | |||
| 			} | ||||
| 		}, | ||||
| 	} | ||||
| 	, | ||||
| 	vchannel:{ | ||||
|         list: { | ||||
| 			name: "获取", | ||||
| 			req: async function(data){ | ||||
| 				return await http.get( | ||||
| 					`${config.API_URL}/ecm/algo_vchannel/`, | ||||
| 					data | ||||
| 				); | ||||
| 			} | ||||
| 		}, | ||||
| 		create: { | ||||
| 			name: "创建", | ||||
| 			req: async function(data){ | ||||
| 				return await http.post( | ||||
| 					`${config.API_URL}/ecm/algo_vchannel/`, | ||||
| 					data); | ||||
| 			} | ||||
| 		} | ||||
| 		, | ||||
| 		creates: { | ||||
| 			name: "批量创建", | ||||
| 			req: async function(data){ | ||||
| 				return await http.post( | ||||
| 					`${config.API_URL}/ecm/algo_vchannel/creates/`, | ||||
| 					data); | ||||
| 			} | ||||
| 		}, | ||||
| 		delete: { | ||||
| 			name: "删除", | ||||
| 			req: async function(id, data){ | ||||
| 				return await http.delete( | ||||
| 					`${config.API_URL}/ecm/algo_vchannel/${id}/`, | ||||
| 					data); | ||||
| 			} | ||||
| 		}, | ||||
| 	} | ||||
| 	 | ||||
| 	 | ||||
| } | ||||
|  | @ -0,0 +1,17 @@ | |||
| import config from "@/config" | ||||
| import http from "@/utils/request" | ||||
| 
 | ||||
| export default { | ||||
| 	tdevice: { | ||||
| 		list: { | ||||
| 			name: "三方喇叭接口", | ||||
| 			req: async function(data){ | ||||
| 				return await http.get( | ||||
| 					`${config.API_URL}/third/tdevice/`, | ||||
| 					data | ||||
| 				); | ||||
| 			} | ||||
| 		}, | ||||
| 		 | ||||
| 	}, | ||||
| } | ||||
|  | @ -94,6 +94,16 @@ const routes = [ | |||
|         }, | ||||
|         "component": "ecm/notify_setting" | ||||
|       }, | ||||
|        | ||||
|       { | ||||
|         "name": "algo", | ||||
|         "path": "/ecm/algo", | ||||
|         "meta": { | ||||
|           "title": "算法配置", | ||||
|           "icon": "el-icon-menu", | ||||
|         }, | ||||
|         "component": "ecm/algo" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|  |  | |||
|  | @ -42,7 +42,7 @@ | |||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :md="12" :sm="24" id="posts" style="display: none"> | ||||
|         <el-col :md="12" :sm="24" v-show="postshow"> | ||||
|           <el-form-item label="关联岗位" prop="post"> | ||||
|             <el-select v-model="form.post" style="width: 100%"> | ||||
|               <el-option | ||||
|  | @ -54,7 +54,7 @@ | |||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :md="12" :sm="24" id="employee" style="display: none"> | ||||
|         <el-col :md="12" :sm="24" v-show="peopleshow"> | ||||
|           <el-form-item label="关联人员" prop="employee"> | ||||
|             <el-select v-model="form.employee" style="width: 100%"> | ||||
|               <el-option | ||||
|  | @ -66,7 +66,7 @@ | |||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :md="12" :sm="24" id="dept" style="display: none"> | ||||
|         <el-col :md="12" :sm="24" v-show="orgshow"> | ||||
|           <el-form-item label="关联部门" prop="dept"> | ||||
|             <el-cascader | ||||
|               v-model="form.dept" | ||||
|  | @ -161,6 +161,9 @@ export default { | |||
|       postOptions: [], | ||||
|       employeeOptions: [], | ||||
|       deptOptions: [], | ||||
|        postshow:false, | ||||
|       orgshow:false, | ||||
|      peopleshow:false, | ||||
|     }; | ||||
|   }, | ||||
|   mounted() { | ||||
|  | @ -197,18 +200,19 @@ export default { | |||
| 
 | ||||
|     // | ||||
|     cateChange() { | ||||
|       if (this.form.obj_cate == "岗位") { | ||||
|         document.getElementById("posts").style.display = "block"; | ||||
|         document.getElementById("employee").style.display = "none"; | ||||
|         document.getElementById("dept").style.display = "none"; | ||||
|       } else if (this.form.obj_cate == "单位") { | ||||
|         document.getElementById("posts").style.display = "none"; | ||||
|         document.getElementById("employee").style.display = "none"; | ||||
|         document.getElementById("dept").style.display = "block"; | ||||
|        if (this.form.obj_cate == 'post') { | ||||
|     | ||||
|        this.postshow=true; | ||||
|        this.peopleshow=false; | ||||
|         this.orgshow=false; | ||||
|       } else if (this.form.obj_cate == "people") { | ||||
|         this.postshow=false; | ||||
|        this.peopleshow=true; | ||||
|         this.orgshow=false; | ||||
|       } else { | ||||
|         document.getElementById("posts").style.display = "none"; | ||||
|         document.getElementById("employee").style.display = "block"; | ||||
|         document.getElementById("dept").style.display = "none"; | ||||
|         this.postshow=false; | ||||
|        this.peopleshow=false; | ||||
|         this.orgshow=true; | ||||
|       } | ||||
|     }, | ||||
|     //显示 | ||||
|  |  | |||
|  | @ -0,0 +1,210 @@ | |||
| <template> | ||||
|   <el-container> | ||||
|     <el-aside width="40%"> | ||||
|       <el-container> | ||||
|         <el-header> | ||||
|           <div class="left-panel"> | ||||
|              | ||||
|             <!-- <el-button type="danger" plain icon="el-icon-delete" :disabled="selection.length==0" @click="batch_del"></el-button> --> | ||||
|           </div> | ||||
|         </el-header> | ||||
|         <el-main class="nopadding"> | ||||
|           <scTable | ||||
|             ref="table" | ||||
|             :data="eventcateList" | ||||
|             row-key="id" | ||||
|             stripe | ||||
|             highlightCurrentRow | ||||
|             @row-click="rowClick" | ||||
|             :hidePagination="true" | ||||
|           > | ||||
|             <el-table-column | ||||
|               label="#" | ||||
|               type="index" | ||||
|               width="50" | ||||
|             ></el-table-column> | ||||
|             <el-table-column | ||||
|               label="名称" | ||||
|               prop="name" | ||||
|               width="120" | ||||
|             ></el-table-column> | ||||
|             <el-table-column | ||||
|               label="标识" | ||||
|               prop="code" | ||||
|               width="80" | ||||
|             ></el-table-column> | ||||
|             <el-table-column label="触发" prop="trigger" width="80"> | ||||
|               <template #default="scope"> | ||||
|                 <span v-if="scope.row.trigger == 10">监控</span> | ||||
|                 <span v-if="scope.row.trigger == 20">定位</span> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column label="音响" prop="speaker_on" width="50"> | ||||
|               <template #default="scope"> | ||||
|                 <el-switch | ||||
|                   v-model="scope.row.speaker_on" | ||||
|                   :disabled="true" | ||||
|                 ></el-switch> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column label="操作" fixed="right" align="right"> | ||||
|               <template #default="scope"> | ||||
| 				  <el-button | ||||
|                   type="primary" | ||||
|                   link | ||||
|                   size="small" | ||||
|                   @click="adds_edit(scope.row)" | ||||
|                   >批量布设</el-button> | ||||
|                 | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|           </scTable> | ||||
|         </el-main> | ||||
|       </el-container> | ||||
|     </el-aside> | ||||
|     <el-container> | ||||
|       <el-header> | ||||
|         <div class="left-panel"> | ||||
|           <el-button | ||||
|             type="primary" | ||||
|             plain | ||||
|             icon="el-icon-plus" | ||||
|             @click="add" | ||||
|           ></el-button> | ||||
|         </div> | ||||
|       </el-header> | ||||
|       <el-main class="nopadding"> | ||||
|         <scTable | ||||
|           ref="tablevchannel" | ||||
|           :data="vchannelList" | ||||
|           row-key="id" | ||||
|           stripe | ||||
|           :hidePagination="true" | ||||
|         > | ||||
|           <el-table-column label="#" type="index" width="50"></el-table-column> | ||||
|           <el-table-column label="算法名称" prop="algo_.name" width="150"></el-table-column> | ||||
| 		   <el-table-column label="视频名称" prop="vchannel_.name" width="150"></el-table-column> | ||||
|           <el-table-column label="始终开启" prop="always_on" width="150"></el-table-column> | ||||
|           <el-table-column label="操作" fixed="right" align="right"> | ||||
|             <template #default="scope"> | ||||
|               <el-button | ||||
|                 type="danger" | ||||
|                 link | ||||
|                 size="small" | ||||
|                 @click="table_del(scope.row, scope.$index)" | ||||
|                 >删除</el-button | ||||
|               > | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </scTable> | ||||
|       </el-main> | ||||
|     </el-container> | ||||
|   </el-container> | ||||
|   <save-dialog | ||||
|     v-if="dialog.save" | ||||
|     ref="saveDialog" | ||||
|     @success="handleSaveSuccess" | ||||
|     @closed="dialog.save = false" | ||||
|   ></save-dialog> | ||||
|    <algo-dialog | ||||
|     v-if="dialog.algos" | ||||
|     ref="algoDialog" | ||||
|     @success="handleSaveSuccessss" | ||||
|     @closed="dialog.algos = false" | ||||
|   ></algo-dialog> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import saveDialog from "./algo_form.vue"; | ||||
| import algoDialog from "./algos_form.vue"; | ||||
| import { CircleCheckFilled, CircleCloseFilled } from "@element-plus/icons-vue"; | ||||
| export default { | ||||
|   name: "algo", | ||||
|   components: { | ||||
|     saveDialog, | ||||
| 	algoDialog, | ||||
|     CircleCheckFilled, | ||||
|     CircleCloseFilled, | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       dialog: { | ||||
|         save: false, | ||||
| 		algos: false, | ||||
|       }, | ||||
|       | ||||
|       selection: [], | ||||
|       chosen_cate: null, | ||||
| 	  eventcateList:[], | ||||
| 	  vchannelList:[] | ||||
|     }; | ||||
|   }, | ||||
|   mounted() { | ||||
|     this.getEventCate(); | ||||
| 	this.getVchannel(); | ||||
|   }, | ||||
|   methods: { | ||||
| 	 //事件总类列表 | ||||
|     getEventCate() { | ||||
|       this.$API.ecm.event_cate.list.req({ self_algo:true,page: 0 }).then((res) => { | ||||
|         this.eventcateList = res; | ||||
|       }); | ||||
|     }, | ||||
| 	//左边列表点击,右边显示 | ||||
|     rowClick(row) { | ||||
|       | ||||
|       this.$API.ecm.vchannel.list.req({algo:row.id,page: 0 }).then((res) => { | ||||
|         this.vchannelList = res; | ||||
|       }); | ||||
|     }, | ||||
| 
 | ||||
| 	//算法列表 | ||||
| 	 getVchannel() { | ||||
|       this.$API.ecm.vchannel.list.req({page: 0 }).then((res) => { | ||||
|         this.vchannelList = res; | ||||
|       }); | ||||
|     }, | ||||
| 	 | ||||
| 	 //批量布设添加 | ||||
|     adds_edit() { | ||||
|       this.dialog.algos = true; | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs.algoDialog.open(); | ||||
|       }); | ||||
|     }, | ||||
| 
 | ||||
|     //窗口新增 | ||||
|     add() { | ||||
|       this.dialog.save = true; | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs.saveDialog.open(); | ||||
|       }); | ||||
|     }, | ||||
|     | ||||
|     //窗口编辑 | ||||
|     table_edit(row) { | ||||
|       this.dialog.save = true; | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs.saveDialog.open("edit").setData(row); | ||||
|       }); | ||||
|     }, | ||||
|     table_del(row) { | ||||
| 	 | ||||
|       this.$API.ecm.vchannel.delete.req(row.id).then((res) => { | ||||
|         this.$refs.tablevchannel.refresh(); | ||||
|         this.$message.success("删除成功"); | ||||
|         | ||||
|       }); | ||||
|     }, | ||||
|     //本地更新数据 | ||||
|     handleSaveSuccess() { | ||||
|       | ||||
|       this.$refs.tablevchannel.refresh(); | ||||
|     }, | ||||
|      | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style> | ||||
| </style> | ||||
|  | @ -0,0 +1,146 @@ | |||
| <template> | ||||
|   <el-dialog | ||||
|     :title="titleMap[mode]" | ||||
|     v-model="visible" | ||||
|     :width="500" | ||||
|     destroy-on-close | ||||
|     @closed="$emit('closed')" | ||||
|     :draggable="true" | ||||
|   > | ||||
|     <el-form | ||||
|       :model="form" | ||||
|       :rules="rules" | ||||
|       :disabled="mode == 'show'" | ||||
|       ref="dialogForm" | ||||
|       label-width="100px" | ||||
|     > | ||||
|       <el-form-item label="关联算法" prop="algo"> | ||||
|         <el-select v-model="form.algo"> | ||||
|           <el-option | ||||
|             v-for="item in algooptions" | ||||
|             :key="item.id" | ||||
|             :label="item.name" | ||||
|             :value="item.id" | ||||
|           /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
| 
 | ||||
|       <el-form-item label="视频" prop="vchannel"> | ||||
|         <el-select v-model="form.vchannel"> | ||||
|           <el-option | ||||
|             v-for="item in vchanneloptions" | ||||
|             :key="item.id" | ||||
|             :label="item.name" | ||||
|             :value="item.id" | ||||
|           /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
|       <el-form-item label="始终开启" prop="always_on"> | ||||
|         <el-switch v-model="form.always_on"></el-switch> | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|     <template #footer> | ||||
|       <el-button @click="visible = false">取 消</el-button> | ||||
|       <el-button | ||||
|         v-if="mode != 'show'" | ||||
|         type="primary" | ||||
|         :loading="isSaveing" | ||||
|         @click="submit()" | ||||
|         >保 存</el-button | ||||
|       > | ||||
|     </template> | ||||
|   </el-dialog> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|   emits: ["success", "closed"], | ||||
|   data() { | ||||
|     return { | ||||
|       mode: "add", | ||||
|       titleMap: { | ||||
|         add: "新增", | ||||
|         edit: "编辑", | ||||
|         show: "查看", | ||||
|       }, | ||||
|       visible: false, | ||||
|       isSaveing: false, | ||||
|       //表单数据 | ||||
|       form: { | ||||
|         algo: "", | ||||
|         vchannel: "", | ||||
|         always_on: false, | ||||
|       }, | ||||
|       //验证规则 | ||||
|       rules: { | ||||
|         algo: [{ required: true, message: "请选择算法" }], | ||||
|         vchannel: [{ required: true, message: "请选择视频" }], | ||||
|       }, | ||||
|       algooptions: [], | ||||
|       vchanneloptions: [], | ||||
|     }; | ||||
|   }, | ||||
|   mounted() { | ||||
|     this.getAlgo(); | ||||
|     this.getVchannel(); | ||||
|   }, | ||||
|   methods: { | ||||
|     //显示 | ||||
|     open(mode = "add") { | ||||
|       this.mode = mode; | ||||
|       this.visible = true; | ||||
|       return this; | ||||
|     }, | ||||
|      //视频列表 | ||||
|     getAlgo() { | ||||
|       this.$API.ecm.event_cate.list.req({ self_algo:true,page: 0 }).then((res) => { | ||||
|         this.algooptions = res; | ||||
|       }); | ||||
|     }, | ||||
|     //视频列表 | ||||
|     getVchannel() { | ||||
|       this.$API.third.tdevice.list.req({ type: 60, page: 0 }).then((res) => { | ||||
|         this.vchanneloptions = res; | ||||
|       }); | ||||
|     }, | ||||
| 
 | ||||
|     //表单提交方法 | ||||
|     async submit() { | ||||
|       var valid = await this.$refs.dialogForm.validate().catch(() => {}); | ||||
|       if (!valid) { | ||||
|         return false; | ||||
|       } | ||||
|       this.isSaveing = true; | ||||
|       try { | ||||
|         var res; | ||||
|         if (this.mode == "add") { | ||||
|           res = await this.$API.ecm.vchannel.create.req(this.form); | ||||
|         } else if (this.mode == "edit") { | ||||
|           res = await this.$API.ecm.vchannel.update.req( | ||||
|             this.form.id, | ||||
|             this.form | ||||
|           ); | ||||
|         } | ||||
|         this.isSaveing = false; | ||||
|         this.$emit("success", this.form, this.mode); | ||||
|         this.visible = false; | ||||
|         this.$message.success("操作成功"); | ||||
|         return res; | ||||
|       } catch (err) { | ||||
|         //可以处理校验错误 | ||||
|         this.isSaveing = false; | ||||
|         return err; | ||||
|       } | ||||
|     }, | ||||
|     //表单注入数据 | ||||
|     setData(data) { | ||||
|       Object.assign(this.form, data); | ||||
|       debugger; | ||||
|       console.log(this.form); | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style> | ||||
| </style> | ||||
|  | @ -0,0 +1,146 @@ | |||
| <template> | ||||
|   <el-dialog | ||||
|     :title="titleMap[mode]" | ||||
|     v-model="visible" | ||||
|     :width="500" | ||||
|     destroy-on-close | ||||
|     @closed="$emit('closed')" | ||||
|     :draggable="true" | ||||
|   > | ||||
|     <el-form | ||||
|       :model="form" | ||||
|       :rules="rules" | ||||
|       :disabled="mode == 'show'" | ||||
|       ref="dialogForm" | ||||
|       label-width="100px" | ||||
|     > | ||||
|       <el-form-item label="关联算法" prop="algo"> | ||||
|         <el-select v-model="form.algo"> | ||||
|           <el-option | ||||
|             v-for="item in algooptions" | ||||
|             :key="item.id" | ||||
|             :label="item.name" | ||||
|             :value="item.id" | ||||
|           /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
| 
 | ||||
|       <el-form-item label="视频" prop="vchannel"> | ||||
|         <el-select v-model="form.vchannels" multiple="true"> | ||||
|           <el-option | ||||
|             v-for="item in vchanneloptions" | ||||
|             :key="item.id" | ||||
|             :label="item.name" | ||||
|             :value="item.id" | ||||
|           /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
|       <el-form-item label="始终开启" prop="always_on"> | ||||
|         <el-switch v-model="form.always_on"></el-switch> | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|     <template #footer> | ||||
|       <el-button @click="visible = false">取 消</el-button> | ||||
|       <el-button | ||||
|         v-if="mode != 'show'" | ||||
|         type="primary" | ||||
|         :loading="isSaveing" | ||||
|         @click="submit()" | ||||
|         >保 存</el-button | ||||
|       > | ||||
|     </template> | ||||
|   </el-dialog> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| export default { | ||||
|   emits: ["success", "closed"], | ||||
|   data() { | ||||
|     return { | ||||
|       mode: "add", | ||||
|       titleMap: { | ||||
|         add: "新增", | ||||
|         edit: "编辑", | ||||
|         show: "查看", | ||||
|       }, | ||||
|       visible: false, | ||||
|       isSaveing: false, | ||||
|       //表单数据 | ||||
|       form: { | ||||
|         algo: "", | ||||
|         vchannel: "", | ||||
|         always_on: false, | ||||
|       }, | ||||
|       //验证规则 | ||||
|       rules: { | ||||
|         algo: [{ required: true, message: "请选择算法" }], | ||||
|         vchannel: [{ required: true, message: "请选择视频" }], | ||||
|       }, | ||||
|       algooptions: [], | ||||
|       vchanneloptions: [], | ||||
|     }; | ||||
|   }, | ||||
|   mounted() { | ||||
|     this.getEventCate(); | ||||
|     this.getVchannel(); | ||||
|   }, | ||||
|   methods: { | ||||
|     //显示 | ||||
|     open(mode = "add") { | ||||
|       this.mode = mode; | ||||
|       this.visible = true; | ||||
|       return this; | ||||
|     }, | ||||
|      //事件列表 | ||||
|     getEventCate() { | ||||
|       this.$API.ecm.event_cate.list.req({ self_algo:true,page: 0 }).then((res) => { | ||||
|         this.algooptions = res; | ||||
|       }); | ||||
|     }, | ||||
|     //视频列表 | ||||
|     getVchannel() { | ||||
|       this.$API.third.tdevice.list.req({ type: 60, page: 0 }).then((res) => { | ||||
|         this.vchanneloptions = res; | ||||
|       }); | ||||
|     }, | ||||
| 
 | ||||
|     //表单提交方法 | ||||
|     async submit() { | ||||
|       var valid = await this.$refs.dialogForm.validate().catch(() => {}); | ||||
|       if (!valid) { | ||||
|         return false; | ||||
|       } | ||||
|       this.isSaveing = true; | ||||
|       try { | ||||
|         var res; | ||||
|         if (this.mode == "add") { | ||||
|           res = await this.$API.ecm.vchannel.creates.req(this.form); | ||||
|         } else if (this.mode == "edit") { | ||||
|           res = await this.$API.ecm.vchannel.update.req( | ||||
|             this.form.id, | ||||
|             this.form | ||||
|           ); | ||||
|         } | ||||
|         this.isSaveing = false; | ||||
|         this.$emit("success", this.form, this.mode); | ||||
|         this.visible = false; | ||||
|         this.$message.success("操作成功"); | ||||
|         return res; | ||||
|       } catch (err) { | ||||
|         //可以处理校验错误 | ||||
|         this.isSaveing = false; | ||||
|         return err; | ||||
|       } | ||||
|     }, | ||||
|     //表单注入数据 | ||||
|     setData(data) { | ||||
|       Object.assign(this.form, data); | ||||
|       debugger; | ||||
|       console.log(this.form); | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style> | ||||
| </style> | ||||
|  | @ -14,30 +14,91 @@ | |||
| 			</div> | ||||
| 		</el-header> --> | ||||
|     <el-main class="nopadding"> | ||||
| 			<scTable ref="table" :apiObj="apiObj" row-key="id" fit stripe @resetQuery="resetQuery"> | ||||
|       <scTable | ||||
|         ref="table" | ||||
|         :apiObj="apiObj" | ||||
|         row-key="id" | ||||
|         fit | ||||
|         stripe | ||||
|         @resetQuery="resetQuery" | ||||
|       > | ||||
|         <el-table-column label="#" type="index" width="50"></el-table-column> | ||||
| 				<el-table-column label="事件种类" prop="cate_name"></el-table-column> | ||||
| 				<el-table-column label="发生区域" prop="area_name"> | ||||
| 				</el-table-column> | ||||
|                 <el-table-column label="人员类型" prop="peope_type"> | ||||
|         <el-table-column label="事件种类" > | ||||
| 			 <template #default="scope" > | ||||
|                         <span v-if="scope.row.peope_type=='employee'">企业员工</span> | ||||
|                         <span v-if="scope.row.peope_type=='remployee'">相关方</span> | ||||
|                         <span v-if="scope.row.peope_type=='visitor'">访客</span> | ||||
|             <el-span v-for="item in scope.row.cates_" | ||||
|                     :key="item.id" | ||||
|                     :label="item.name" | ||||
|                     :value="item.id">{{item.name}}</el-span> | ||||
|           </template> | ||||
| 		</el-table-column> | ||||
|         <el-table-column label="发生区域" prop="area_.name"></el-table-column> | ||||
|         <el-table-column label="当事人" prop="employee_.name"> | ||||
|           <template #default="scope"> | ||||
|             <span v-if="scope.row.employee && scope.row.obj_cate == 'people'">{{ | ||||
|               scope.row.employee_.name | ||||
|             }}</span> | ||||
|             <span v-else>未知人员</span> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
| 
 | ||||
|         <el-table-column label="人员类型" prop="employee_.type"> | ||||
|           <template #default="scope"> | ||||
|             <span v-if="scope.row.employee && scope.row.obj_cate == 'people'"> | ||||
|               <span | ||||
|                 v-if=" | ||||
|                   scope.row.employee_.type != '' && | ||||
|                   scope.row.employee_.type == 'employee' | ||||
|                 " | ||||
|                 >企业员工</span | ||||
|               > | ||||
|               <span | ||||
|                 v-if=" | ||||
|                   scope.row.employee_.type != '' && | ||||
|                   scope.row.employee_.type == 'remployee' | ||||
|                 " | ||||
|                 >相关方</span | ||||
|               > | ||||
|               <span | ||||
|                 v-if=" | ||||
|                   scope.row.employee_.type != '' && | ||||
|                   scope.row.employee_.type == 'visitor' | ||||
|                 " | ||||
|                 >访客</span | ||||
|               > | ||||
|             </span> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
| 				<el-table-column label="当事人" prop="people_name"></el-table-column> | ||||
|         <el-table-column label="发生时间" prop="create_time"></el-table-column> | ||||
|                 <el-table-column label="是否已处理"> | ||||
|        | ||||
| 		  <el-table-column | ||||
|           label="处理人" | ||||
|           prop="handle_user_name" | ||||
|         ></el-table-column> | ||||
| 
 | ||||
|         <el-table-column label="处理时间" prop="handle_time"></el-table-column> | ||||
|         <el-table-column label="事件标记" prop="mark"> | ||||
|           <template #default="scope"> | ||||
|                         <el-icon v-if="scope.row.handle_user" color="green"><CircleCheckFilled /></el-icon> | ||||
|                         <el-icon v-else color="red"><CircleCloseFilled /></el-icon> | ||||
|             <el-span v-if="scope.row.mark == 20" color="red">误报</el-span> | ||||
|             <el-span v-else color="green">正常</el-span> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="是否超时"> | ||||
|           <template #default="scope"> | ||||
|             <el-span v-if="scope.row.is_timeout" color="red">是</el-span> | ||||
|             <el-span v-else color="green">否</el-span> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|      | ||||
|         <el-table-column label="操作" fixed="right" align="right"> | ||||
|           <template #default="scope"> | ||||
|             <el-button-group> | ||||
| 							<el-button text type="primary" size="small" @click="table_show(scope.row, scope.$index)">查看</el-button> | ||||
|               <el-button | ||||
|                 text | ||||
|                 type="primary" | ||||
|                 size="small" | ||||
|                 @click="table_show(scope.row, scope.$index)" | ||||
|                 >查看</el-button | ||||
|               > | ||||
|               <!-- <el-button text type="warning" size="small" @click="table_edit(scope.row, scope.$index)">编辑</el-button> --> | ||||
|               <!-- <el-popconfirm title="确定删除吗?" @confirm="table_del(scope.row, scope.$index)"> | ||||
| 								<template #reference> | ||||
|  | @ -47,56 +108,55 @@ | |||
|             </el-button-group> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
| 
 | ||||
|       </scTable> | ||||
|     </el-main> | ||||
|   </el-container> | ||||
|    <save-dialog | ||||
|     v-if="dialog.save" | ||||
|     ref="saveDialog" | ||||
|    | ||||
|     @closed="dialog.save = false" | ||||
|   ></save-dialog> | ||||
| </template> | ||||
|     <script> | ||||
|     import { CircleCheckFilled, CircleCloseFilled } from '@element-plus/icons-vue' | ||||
| import { CircleCheckFilled, CircleCloseFilled } from "@element-plus/icons-vue"; | ||||
| import saveDialog from "./event_from.vue"; | ||||
| export default { | ||||
| 		name: 'event', | ||||
|   name: "event", | ||||
|   components: { | ||||
|     CircleCheckFilled, | ||||
|             CircleCloseFilled | ||||
|     CircleCloseFilled, | ||||
| 	saveDialog | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       dialog: { | ||||
|         save: false, | ||||
| 					permission: false | ||||
|         permission: false, | ||||
|       }, | ||||
|       apiObj: this.$API.ecm.event.list, | ||||
|       query: {}, | ||||
|       selection: [], | ||||
|       search: { | ||||
| 					keyword: null | ||||
| 				} | ||||
| 			} | ||||
|         keyword: null, | ||||
|       }, | ||||
|     }; | ||||
|   }, | ||||
|   methods: { | ||||
|     //查看 | ||||
|     table_show(row) { | ||||
| 				this.dialog.save = true | ||||
|       this.dialog.save = true; | ||||
|       this.$nextTick(() => { | ||||
| 					this.$refs.saveDialog.open('show').setData(row) | ||||
| 				}) | ||||
|         this.$refs.saveDialog.open("show").setData(row); | ||||
|       }); | ||||
|     }, | ||||
|     //搜索 | ||||
| 			upsearch(){ | ||||
| 
 | ||||
| 			}, | ||||
|     upsearch() {}, | ||||
|     //本地更新数据 | ||||
| 			handleSaveSuccess(data, mode){ | ||||
| 				if(mode=='add'){ | ||||
| 					this.$refs.table.refresh() | ||||
| 				}else if(mode=='edit'){ | ||||
| 					this.$refs.table.refresh() | ||||
| 				} | ||||
| 			}, | ||||
|     | ||||
|     resetQuery() { | ||||
| 				this.query = {} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|       this.query = {}; | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
|  | @ -30,8 +30,30 @@ | |||
|           /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
|       <el-form-item label="自主算法" prop="self_algo"> | ||||
|         <el-switch v-model="form.self_algo"></el-switch> | ||||
|       </el-form-item> | ||||
|       <el-form-item label="处理时间" prop="hanle_minute"> | ||||
|         <el-input-number | ||||
|           v-model="form.hanle_minute" | ||||
|           :min="0" | ||||
|           :max="32767" | ||||
|           placeholder="分钟" | ||||
|           controls-position="right" | ||||
|         ></el-input-number> | ||||
|       </el-form-item> | ||||
|       <sc-title title="音响配置"></sc-title> | ||||
|       <el-form-item label="音响开启" prop="speaker_on"> | ||||
|        <el-form-item label="喇叭" prop="speakers"> | ||||
|         <el-select v-model="form.speakers" multiple="true"> | ||||
|           <el-option | ||||
|             v-for="item in speakersptions" | ||||
|             :key="item.id" | ||||
|             :label="item.name" | ||||
|             :value="item.id" | ||||
|           /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
|       <el-form-item label="喇叭开启" prop="speaker_on"> | ||||
|         <el-switch v-model="form.speaker_on"></el-switch> | ||||
|       </el-form-item> | ||||
|       <el-form-item label="开启区域" prop="filter_area_level"> | ||||
|  | @ -73,7 +95,9 @@ export default { | |||
|       isSaveing: false, | ||||
|       //表单数据 | ||||
|       form: { | ||||
|         speaker_on: true | ||||
|         speaker_on: true, | ||||
|         self_algo: false, | ||||
|         speakers:[] | ||||
|       }, | ||||
|       //验证规则 | ||||
|       rules: { | ||||
|  | @ -103,6 +127,7 @@ export default { | |||
|           label: "定位", | ||||
|         }, | ||||
|       ], | ||||
|       speakersptions:[], | ||||
|       //所需数据选项 | ||||
|       groups: [], | ||||
|       groupsProps: { | ||||
|  | @ -112,7 +137,9 @@ export default { | |||
|       }, | ||||
|     }; | ||||
|   }, | ||||
|   mounted() {}, | ||||
|   mounted() { | ||||
|     this.getSpeakers(); | ||||
|   }, | ||||
|   methods: { | ||||
|     //显示 | ||||
|     open(mode = "add") { | ||||
|  | @ -120,6 +147,13 @@ export default { | |||
|       this.visible = true; | ||||
|       return this; | ||||
|     }, | ||||
|     //固定喇叭列表 | ||||
|     getSpeakers() { | ||||
|       this.$API.third.tdevice.list.req({type:50, page: 0 }).then((res) => { | ||||
|         this.speakersptions = res; | ||||
|       }); | ||||
|     }, | ||||
|      | ||||
|     //表单提交方法 | ||||
|     async submit() { | ||||
|       var valid = await this.$refs.dialogForm.validate().catch(() => {}); | ||||
|  | @ -132,13 +166,16 @@ export default { | |||
|         if (this.mode == "add") { | ||||
|           res = await this.$API.ecm.event_cate.create.req(this.form); | ||||
|         } else if (this.mode == "edit") { | ||||
|           res = await this.$API.ecm.event_cate.update.req(this.form.id, this.form); | ||||
|           res = await this.$API.ecm.event_cate.update.req( | ||||
|             this.form.id, | ||||
|             this.form | ||||
|           ); | ||||
|         } | ||||
|         this.isSaveing = false; | ||||
|         this.$emit("success", this.form, this.mode); | ||||
|         this.visible = false; | ||||
|         this.$message.success("操作成功"); | ||||
|         return res | ||||
|         return res; | ||||
|       } catch (err) { | ||||
|         //可以处理校验错误 | ||||
|         this.isSaveing = false; | ||||
|  | @ -148,6 +185,8 @@ export default { | |||
|     //表单注入数据 | ||||
|     setData(data) { | ||||
|       Object.assign(this.form, data); | ||||
|       debugger; | ||||
|       console.log(this.form) | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
|  |  | |||
|  | @ -0,0 +1,192 @@ | |||
| <template> | ||||
|   <el-drawer | ||||
|     :title="titleMap[mode]" | ||||
|     v-model="visible" | ||||
|     :size="1000" | ||||
|     destroy-on-close | ||||
|     @closed="closeDrawer" | ||||
|   > | ||||
|     <el-container v-loading="loading"> | ||||
|       <!--<sc-title title="详细信息"></sc-title>--> | ||||
|       <el-main style="padding: 0 20px 20px 20px"> | ||||
|         <el-form :model="form" :disabled="mode === 'show'" label-width="120px"> | ||||
|           <el-row> | ||||
|             <el-col :md="12" :sm="24"> | ||||
|               <el-form-item label="事件种类" prop="cates"> | ||||
|                 <el-input v-model="form.cates_.name" clearable></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :md="12" :sm="24" v-if="form.area"> | ||||
|               <el-form-item label="发生区域" prop="area"> | ||||
|                 <el-input v-model="form.area_.name" clearable></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :md="12" :sm="24" v-if="form.employee"> | ||||
|               <el-form-item label="当事人" prop="employee"> | ||||
|                 <el-input v-model="form.employee_.name" clearable></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
| 
 | ||||
|             <el-col | ||||
|               :md="12" | ||||
|               :sm="24" | ||||
|               v-if="form.employee && form.employee_.type" | ||||
|             > | ||||
|               <el-form-item label="人员类型" prop="employee"> | ||||
| 				  <el-select v-model="form.employee_.type" style="width: 100%"> | ||||
|                   <el-option | ||||
|                     v-for="item in type_options" | ||||
|                     :key="item.id" | ||||
|                     :label="item.name" | ||||
|                     :value="item.id" | ||||
|                   /> | ||||
|                 </el-select> | ||||
| 
 | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             | ||||
|              <el-col :md="12" :sm="24"> | ||||
|               <el-form-item label="发生时间"> | ||||
|                 <el-input | ||||
|                   v-model="form.create_time" | ||||
|                   clearable | ||||
|                 ></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|            | ||||
|             <el-col :md="12" :sm="24"> | ||||
|               <el-form-item label="处理人"> | ||||
|                <el-input v-model="form.handle_user" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :md="12" :sm="24"> | ||||
|               <el-form-item label="处理时间"> | ||||
|                 <el-input | ||||
|                   v-model="form.handle_time" | ||||
|                   clearable | ||||
|                 ></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
| 			 <el-col :md="12" :sm="24"> | ||||
|               <el-form-item label="处理描述"> | ||||
|                 <el-input | ||||
|                   v-model="form.handle_desc" | ||||
|                   clearable | ||||
|                 ></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
| 			 | ||||
|             <el-col :md="12" :sm="24"> | ||||
|               <el-form-item label="事件标记"> | ||||
|                | ||||
|                   <el-select v-model="form.mark " style="width: 100%"> | ||||
|                   <el-option | ||||
|                     v-for="item in mark_options" | ||||
|                     :key="item.id" | ||||
|                     :label="item.name" | ||||
|                     :value="item.id" | ||||
|                   /> | ||||
|                 </el-select> | ||||
| 
 | ||||
| 				 | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :md="12" :sm="24"> | ||||
|               <el-form-item label="是否超时"> | ||||
|                 <el-switch v-model="form.is_timeout" /> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|            | ||||
|             <el-col :md="12" :sm="24"> | ||||
|               <el-form-item label="人脸照"> | ||||
|                 <sc-upload | ||||
|                   v-model="form.face_img" | ||||
|                  | ||||
|                   title="人脸照" | ||||
|                 ></sc-upload> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :md="12" :sm="24"> | ||||
|               <el-form-item label="全景照"> | ||||
|                 <sc-upload v-model="form.global_img" title="全景照"></sc-upload> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|           </el-row> | ||||
|         </el-form> | ||||
|       </el-main> | ||||
|     </el-container> | ||||
|   </el-drawer> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| const defaultForm = { | ||||
|   id: null, | ||||
|   phone: "", | ||||
|   name: "", | ||||
|   email: "", | ||||
|   number: "", | ||||
|   photo: "", | ||||
|   id_number: "", | ||||
|   gender: "男", | ||||
|   signature: "", | ||||
|   birthday: null, | ||||
|   qualification: "", | ||||
|   job_state: 10, | ||||
|   show_atwork: true, | ||||
|   belong_dept: "", | ||||
|   user: "", | ||||
| }; | ||||
| export default { | ||||
|   emits: ["success", "closed"], | ||||
|   data() { | ||||
|     return { | ||||
|       loading: false, | ||||
|       visible: false, | ||||
|       isSaveing: false, | ||||
|       form: defaultForm, | ||||
|       mode: "show", | ||||
|       titleMap: { | ||||
|         show: "事件信息查看", | ||||
|       }, | ||||
|       type_options: [ | ||||
|         { id: "employee", name: "企业员工" }, | ||||
|         { id: "remployee", name: "相关方" }, | ||||
|         { id: "visitor", name: "访客" }, | ||||
|       ], | ||||
| 	    mark_options: [ | ||||
|         { id: 10, name: "正常" }, | ||||
|         { id: 20, name: "误报" } | ||||
|       ], | ||||
|     }; | ||||
|   }, | ||||
|   mounted() {}, | ||||
|   methods: { | ||||
|     //显示 | ||||
|     open(mode) { | ||||
|       this.mode = mode; | ||||
|       this.visible = true; | ||||
|       return this; | ||||
|     }, | ||||
|     closeDrawer() { | ||||
|       this.visible = false; | ||||
|       this.$emit("closed"); | ||||
|     }, | ||||
| 
 | ||||
|     //表单注入数据 | ||||
|     setData(data) { | ||||
|       //debugger; | ||||
|       console.log(defaultForm); | ||||
|       // this.form = defaultForm; | ||||
|       Object.assign(this.form, data); | ||||
|     }, | ||||
|     //设置过滤项 | ||||
|     setFilters(filters) { | ||||
|       this.selectionFilters = filters; | ||||
|       this.setFiltersVisible = true; | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style> | ||||
| </style> | ||||
|  | @ -86,19 +86,50 @@ | |||
|           stripe | ||||
|           :hidePagination="true" | ||||
|         > | ||||
|           <el-table-column label="#" type="index" width="50"></el-table-column> | ||||
|           <el-table-column label="提醒岗位" prop="post_name" width="150"> | ||||
|           <el-table-column label="#" type="index" fixed="left" width="50"></el-table-column> | ||||
|            <el-table-column label="事件名称" prop="event_cate_name" fixed="left" width="100"> | ||||
|             | ||||
|           </el-table-column> | ||||
|           <el-table-column label="提醒对象" prop="obj_cate" fixed="left" width="100"> | ||||
|             <template #default="scope"> | ||||
|               <el-space v-if="scope.row.obj_cate">{{ | ||||
|                 objcate_[scope.row.obj_cate] | ||||
|               }}</el-space></template | ||||
|             > | ||||
|           </el-table-column> | ||||
|           <el-table-column label="具体对象" fixed="left" prop="post_name" width="100"> | ||||
|             <template #default="scope"> | ||||
|               {{ | ||||
|                 scope.row.post_name | ||||
|               }} | ||||
|                {{ | ||||
|                 scope.row.user_name | ||||
|               }} | ||||
|               <el-space v-if="scope.row.variable">{{ | ||||
|                 variable_[scope.row.variable] | ||||
|               }}</el-space></template | ||||
|             > | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             label="岗位人员过滤" | ||||
|             prop="filter_recipient" | ||||
|             width="150" | ||||
|           ></el-table-column> | ||||
|             ><template #default="scope"> | ||||
|               <el-space v-if="scope.row.filter_recipient">{{ | ||||
|                 filter_recipient_[scope.row.filter_recipient] | ||||
|               }}</el-space></template | ||||
|             ></el-table-column | ||||
|           > | ||||
|           <el-table-column | ||||
|             label="区域级别过滤" | ||||
|             prop="filter_area_level" | ||||
|             width="150" | ||||
|           ></el-table-column> | ||||
|             width="100" | ||||
|             ><template #default="scope"> | ||||
|               <el-space v-if="scope.row.filter_area_level">{{ | ||||
|                 filter_area_level_[scope.row.filter_area_level] | ||||
|               }}</el-space></template | ||||
|             ></el-table-column | ||||
|           > | ||||
|           <el-table-column label="可处理" prop="can_handle" width="80"> | ||||
|             <template #default="scope"> | ||||
|               <el-icon v-if="scope.row.can_handle" color="green" | ||||
|  | @ -176,7 +207,27 @@ export default { | |||
|       }, | ||||
|       selection: [], | ||||
|       chosen_cate: null, | ||||
|       filter_recipient_: { | ||||
|         10: "当事人部门以上", | ||||
|         30: "属地部门以上", | ||||
|       }, | ||||
|       objcate_: { post: "岗位", user: "用户", variable: "变量" }, | ||||
|       variable_: { | ||||
|         self: "本人", | ||||
|         area_manager: "区域负责人", | ||||
|         visit_receptionist: "访客接待人", | ||||
|       }, | ||||
| 
 | ||||
|       filter_area_level_: { | ||||
|         10: "低风险", | ||||
|         20: "一般风险", | ||||
|         30: "较大风险", | ||||
|         40: "重大风险", | ||||
|       }, | ||||
|     }; | ||||
|   }, | ||||
|    mounted() { | ||||
|      this.apiObj2 = this.$API.ecm.notify_setting.list; | ||||
|   }, | ||||
|   methods: { | ||||
|     rowClick(row) { | ||||
|  |  | |||
|  | @ -2,7 +2,6 @@ | |||
|   <el-dialog | ||||
|     :title="titleMap[mode]" | ||||
|     v-model="visible" | ||||
|     :width="500" | ||||
|     destroy-on-close | ||||
|     @closed="$emit('closed')" | ||||
|     :draggable="true" | ||||
|  | @ -14,8 +13,35 @@ | |||
|       ref="dialogForm" | ||||
|       label-width="100px" | ||||
|     > | ||||
|       <el-row> | ||||
|         <el-col :md="12" :sm="24"> | ||||
|           <el-form-item label="事件" prop="event_cate"> | ||||
|             <el-select v-model="form.event_cate"> | ||||
|               <el-option | ||||
|                 v-for="item in eventcate_options" | ||||
|                 :key="item.id" | ||||
|                 :label="item.name" | ||||
|                 :value="item.id" | ||||
|               /> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
| 
 | ||||
|         <el-col :md="12" :sm="24"> | ||||
|           <el-form-item label="提醒对象" prop="obj_cate"> | ||||
|             <el-select v-model="form.obj_cate" @change="cateChange"> | ||||
|               <el-option | ||||
|                 v-for="item in objcate_options" | ||||
|                 :key="item.id" | ||||
|                 :label="item.name" | ||||
|                 :value="item.id" | ||||
|               /> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :md="12" :sm="24" v-show="postshow"> | ||||
|           <el-form-item label="岗位" prop="post"> | ||||
|         <el-select v-model="form.post"> | ||||
|             <el-select v-model="form.post" style="width: 100%"> | ||||
|               <el-option | ||||
|                 v-for="item in post_options" | ||||
|                 :key="item.id" | ||||
|  | @ -24,8 +50,42 @@ | |||
|               /> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :md="12" :sm="24" v-show="usershow"> | ||||
|           <el-form-item label="人员" prop="user"> | ||||
|             <el-select v-model="form.user" style="width: 100%"> | ||||
|               <el-option | ||||
|                 v-for="item in user_options" | ||||
|                 :key="item.id" | ||||
|                 :label="item.name" | ||||
|                 :value="item.id" | ||||
|               /> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|          <el-col :md="12" :sm="24" v-show="variableshow"> | ||||
|           <el-form-item label="变量" prop="variable"> | ||||
|             <el-select v-model="form.variable" style="width: 100%"> | ||||
|               <el-option | ||||
|                 v-for="item in variable_options" | ||||
|                 :key="item.id" | ||||
|                 :label="item.name" | ||||
|                 :value="item.id" | ||||
|               /> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :md="12" :sm="24" v-show="postshow"> | ||||
|           <el-form-item label="提醒人员过滤" prop="filter_recipient"> | ||||
|         <el-select v-model="form.filter_recipient" clearable @clear="() => { form.filter_recipient=null } "> | ||||
|             <el-select | ||||
|               v-model="form.filter_recipient" | ||||
|               clearable | ||||
|               @clear=" | ||||
|                 () => { | ||||
|                   form.filter_recipient = null; | ||||
|                 } | ||||
|               " | ||||
|             > | ||||
|               <el-option | ||||
|                 v-for="item in filter_recipient_options" | ||||
|                 :key="item.value" | ||||
|  | @ -34,8 +94,18 @@ | |||
|               /> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :md="12" :sm="24"> | ||||
|           <el-form-item label="区域级别过滤" prop="filter_area_level"> | ||||
|         <el-select v-model="form.filter_area_level" clearable @clear="() => { form.filter_area_level=null } "> | ||||
|             <el-select | ||||
|               v-model="form.filter_area_level" | ||||
|               clearable | ||||
|               @clear=" | ||||
|                 () => { | ||||
|                   form.filter_area_level = null; | ||||
|                 } | ||||
|               " | ||||
|             > | ||||
|               <el-option | ||||
|                 v-for="item in filter_area_level_options" | ||||
|                 :key="item.value" | ||||
|  | @ -44,13 +114,33 @@ | |||
|               /> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :md="12" :sm="24"> | ||||
|           <el-form-item label="通知形式"> | ||||
|             <el-checkbox v-model="form.sms_enable" label="短信" size="small" /> | ||||
|         <el-checkbox v-model="form.wechat_enable" label="微信" size="small" /> | ||||
|             <el-checkbox | ||||
|               v-model="form.wechat_enable" | ||||
|               label="微信" | ||||
|               size="small" | ||||
|             /> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :md="12" :sm="24"> | ||||
|           <el-form-item label="可处理" prop="can_handle"> | ||||
|             <el-switch v-model="form.can_handle"></el-switch> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|         <el-col :md="12" :sm="24"> | ||||
|           <el-form-item label="排序" prop="sort"> | ||||
|             <el-input-number | ||||
|               v-model="form.sort" | ||||
|               :min="0" | ||||
|               :max="2147483647" | ||||
|               controls-position="right" | ||||
|             ></el-input-number> | ||||
|           </el-form-item> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|     </el-form> | ||||
|     <template #footer> | ||||
|       <el-button @click="visible = false">取 消</el-button> | ||||
|  | @ -66,6 +156,7 @@ | |||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import { genTree } from "@/utils/verificate"; | ||||
| export default { | ||||
|   emits: ["success", "closed"], | ||||
|   data() { | ||||
|  | @ -80,17 +171,19 @@ export default { | |||
|       isSaveing: false, | ||||
|       //表单数据 | ||||
|       form: { | ||||
|         id: null, | ||||
|         obj_cate: null, | ||||
|         can_handle: true, | ||||
|         wechat_enable: true, | ||||
|         sms_enable: false, | ||||
|         filter_recipient: null, | ||||
|         filter_area_level:null | ||||
|         filter_area_level: null, | ||||
|       }, | ||||
|       //验证规则 | ||||
|       rules: { | ||||
|         name: [{ required: true, message: "请输入" }], | ||||
|       }, | ||||
|       post_options:[], | ||||
| 
 | ||||
|       filter_recipient_options: [ | ||||
|         { | ||||
|           value: 10, | ||||
|  | @ -101,24 +194,46 @@ export default { | |||
|           label: "属地部门以上", | ||||
|         }, | ||||
|       ], | ||||
|       objcate_options: [ | ||||
|         { id: "post", name: "岗位" }, | ||||
|         { id: "user", name: "用户" }, | ||||
|         { id: "variable", name: "变量" }, | ||||
|       ], | ||||
|       post_options: [], | ||||
|       user_options: [], | ||||
|       variable_options: [ | ||||
|         { id: "self", name: "本人" }, | ||||
|         { id: "area_manager", name: "区域负责人" }, | ||||
|         { id: "visit_receptionist", name: "访客接待人" }, | ||||
|       ], | ||||
|       filter_area_level_options: [ | ||||
|         { | ||||
|           value: 10, | ||||
|           label: "办公生活区以上", | ||||
|           label: "低风险", | ||||
|         }, | ||||
|         { | ||||
|           value: 20, | ||||
|           label: "生产一般区以上", | ||||
|           label: "一般风险", | ||||
|         }, | ||||
|         { | ||||
|           value: 30, | ||||
|           label: "生产重点区以上", | ||||
|           label: "较大风险", | ||||
|         }, | ||||
|         { | ||||
|           value: 40, | ||||
|           label: "重大风险", | ||||
|         }, | ||||
|       ], | ||||
|       eventcate_options: [], | ||||
|       postshow: false, | ||||
|       usershow: false, | ||||
|       variableshow: false, | ||||
|     }; | ||||
|   }, | ||||
|   mounted() { | ||||
|     this.getPostOptions() | ||||
|     this.getPostOptions(); | ||||
|     this.getUserOptions(); | ||||
|     this.getEventCate(); | ||||
|   }, | ||||
|   methods: { | ||||
|     //显示 | ||||
|  | @ -126,14 +241,45 @@ export default { | |||
|       this.mode = mode; | ||||
|       this.visible = true; | ||||
|       if (mode == "add") { | ||||
|         this.form.event_cate = this.$parent.chosen_cate | ||||
|         this.form.event_cate = this.$parent.chosen_cate; | ||||
|       } | ||||
|       return this; | ||||
|     }, | ||||
| 
 | ||||
|     //事件列表 | ||||
|     getEventCate() { | ||||
|       this.$API.ecm.event_cate.list.req({ page: 0 }).then((res) => { | ||||
|         this.eventcate_options = res; | ||||
|       }); | ||||
|     }, | ||||
| 
 | ||||
|     // | ||||
|     cateChange() { | ||||
|       if (this.form.obj_cate == "post") { | ||||
|         this.postshow = true; | ||||
|         this.usershow = false; | ||||
|         this.variableshow = false; | ||||
|       } else if (this.form.obj_cate == "user") { | ||||
|         this.postshow = false; | ||||
|         this.usershow = true; | ||||
|         this.variableshow = false; | ||||
|       } else { | ||||
|         this.postshow = false; | ||||
|         this.usershow = false; | ||||
|         this.variableshow = true; | ||||
|       } | ||||
|     }, | ||||
|     //岗位列表 | ||||
|     getPostOptions() { | ||||
|         this.$API.system.post.list.req({page:0}).then(res=>{ | ||||
|       this.$API.system.post.list.req({ page: 0 }).then((res) => { | ||||
|         this.post_options = res; | ||||
|         }) | ||||
|       }); | ||||
|     }, | ||||
|     //岗位列表 | ||||
|     getUserOptions() { | ||||
|       this.$API.system.user.list.req({ page: 0 }).then((res) => { | ||||
|         this.user_options = res; | ||||
|       }); | ||||
|     }, | ||||
|     //表单提交方法 | ||||
|     async submit() { | ||||
|  | @ -147,13 +293,16 @@ export default { | |||
|         if (this.mode == "add") { | ||||
|           res = await this.$API.ecm.notify_setting.create.req(this.form); | ||||
|         } else if (this.mode == "edit") { | ||||
|           res = await this.$API.ecm.notify_setting.update.req(this.form.id, this.form); | ||||
|           res = await this.$API.ecm.notify_setting.update.req( | ||||
|             this.form.id, | ||||
|             this.form | ||||
|           ); | ||||
|         } | ||||
|         this.isSaveing = false; | ||||
|         this.$emit("success", this.form, this.mode); | ||||
|         this.visible = false; | ||||
|         this.$message.success("操作成功"); | ||||
|         return res | ||||
|         return res; | ||||
|       } catch (err) { | ||||
|         //可以处理校验错误 | ||||
|         this.isSaveing = false; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue