Procházet zdrojové kódy

修复工单管理页面bug

Memory_LG před 7 měsíci
rodič
revize
20b0dba2f7

+ 0 - 3
lawenforcement-ui/src/views/components/EnforcementUserSelect.vue

@@ -36,16 +36,13 @@ export default {
   watch: {
   watch: {
     // 监听 selectedUserList 的变化,如果需要可以通知父组件
     // 监听 selectedUserList 的变化,如果需要可以通知父组件
     localUserList(newValue) {
     localUserList(newValue) {
-      console.log("变化===》",newValue)
       this.$emit('user-selected', newValue);
       this.$emit('user-selected', newValue);
     },
     },
     selectedUserList(newValue){
     selectedUserList(newValue){
       this.localUserList = newValue
       this.localUserList = newValue
       this.$emit('user-selected', newValue);
       this.$emit('user-selected', newValue);
-      console.log("接受到的选中执法人为",this.localUserList)
     },
     },
     userList(newValue){
     userList(newValue){
-      console.log(newValue)
     },
     },
     reset(newVal) {
     reset(newVal) {
       if (newVal) {
       if (newVal) {

+ 24 - 35
lawenforcement-ui/src/views/lawenforcement/record/DetailsVue.vue

@@ -1,9 +1,9 @@
 <template>
 <template>
-    <el-dialog :visible.sync="show" title="工单详情" width="1700px" @close="closeDetail">
+  <el-dialog :visible.sync="detailDialog" title="工单详情" width="1700px" @close="closeDetail" class="form-style">
+    <div style="padding:20px 30px;">
       <el-descriptions title="基本信息" :column="4" border>
       <el-descriptions title="基本信息" :column="4" border>
         <el-descriptions-item label="任务类型">
         <el-descriptions-item label="任务类型">
           <dict-tag :options="dict.type.lawenforcement_jobType" :value="workOrderDetails.jobType"/>
           <dict-tag :options="dict.type.lawenforcement_jobType" :value="workOrderDetails.jobType"/>
-<!--          {{ workOrderDetails.jobType }}-->
         </el-descriptions-item>
         </el-descriptions-item>
         <el-descriptions-item label="任务创建人姓名">{{ workOrderDetails.creatorName }}</el-descriptions-item>
         <el-descriptions-item label="任务创建人姓名">{{ workOrderDetails.creatorName }}</el-descriptions-item>
         <el-descriptions-item label="任务创建部门名称">{{ workOrderDetails.deptName }}</el-descriptions-item>
         <el-descriptions-item label="任务创建部门名称">{{ workOrderDetails.deptName }}</el-descriptions-item>
@@ -36,7 +36,7 @@
         <el-descriptions-item label="扫码时间">
         <el-descriptions-item label="扫码时间">
           {{ formatDate(workOrderDetails.scanTime) }}
           {{ formatDate(workOrderDetails.scanTime) }}
         </el-descriptions-item>
         </el-descriptions-item>
-<!--        <el-descriptions-item label="核验人ID">{{ workOrderDetails.verifyPeopleId }}</el-descriptions-item>-->
+        <!--        <el-descriptions-item label="核验人ID">{{ workOrderDetails.verifyPeopleId }}</el-descriptions-item>-->
         <el-descriptions-item label="核验人姓名">{{ workOrderDetails.verifyPeopleName }}</el-descriptions-item>
         <el-descriptions-item label="核验人姓名">{{ workOrderDetails.verifyPeopleName }}</el-descriptions-item>
         <el-descriptions-item label="核验时间">
         <el-descriptions-item label="核验时间">
           {{ formatDate(workOrderDetails.verifyTime) }}
           {{ formatDate(workOrderDetails.verifyTime) }}
@@ -59,7 +59,6 @@
           {{ formatDate(workOrderDetails.resultTime) }}
           {{ formatDate(workOrderDetails.resultTime) }}
         </el-descriptions-item>
         </el-descriptions-item>
         <el-descriptions-item label="检查结果录入人员">{{ workOrderDetails.resultPersonId }}</el-descriptions-item>
         <el-descriptions-item label="检查结果录入人员">{{ workOrderDetails.resultPersonId }}</el-descriptions-item>
-<!--        <el-descriptions-item label="任务状态"> </el-descriptions-item>-->
         <el-descriptions-item label="任务创建时间">
         <el-descriptions-item label="任务创建时间">
           {{ formatDate(workOrderDetails.createTime) }}
           {{ formatDate(workOrderDetails.createTime) }}
         </el-descriptions-item>
         </el-descriptions-item>
@@ -68,7 +67,6 @@
           <span v-if="workOrderDetails.isLast === 0">否</span>
           <span v-if="workOrderDetails.isLast === 0">否</span>
           <span v-else-if="workOrderDetails.isLast === 1">是</span>
           <span v-else-if="workOrderDetails.isLast === 1">是</span>
         </el-descriptions-item>
         </el-descriptions-item>
-<!--        <el-descriptions-item label="原任务Id">{{ workOrderDetails.jobId }}</el-descriptions-item>-->
         <el-descriptions-item label="延续任务类型">{{ workOrderDetails.lastJobType }}</el-descriptions-item>
         <el-descriptions-item label="延续任务类型">{{ workOrderDetails.lastJobType }}</el-descriptions-item>
         <el-descriptions-item label="数据来源">{{ workOrderDetails.source }}</el-descriptions-item>
         <el-descriptions-item label="数据来源">{{ workOrderDetails.source }}</el-descriptions-item>
         <el-descriptions-item label="创建方式">
         <el-descriptions-item label="创建方式">
@@ -134,7 +132,6 @@
                 <span v-else-if="scope.row.measures === '3'">行政处罚</span>
                 <span v-else-if="scope.row.measures === '3'">行政处罚</span>
                 <span v-else-if="scope.row.measures === '4'">行政强制</span>
                 <span v-else-if="scope.row.measures === '4'">行政强制</span>
                 <span v-else>其他</span>
                 <span v-else>其他</span>
-<!--                {{ formatDate(scope.row.measures) }}-->
               </template>
               </template>
             </el-table-column>
             </el-table-column>
             <el-table-column prop="measuresDetail" label="其他处理措施详细内容"></el-table-column>
             <el-table-column prop="measuresDetail" label="其他处理措施详细内容"></el-table-column>
@@ -174,12 +171,12 @@
           </el-table>
           </el-table>
         </el-tab-pane>
         </el-tab-pane>
       </el-tabs>
       </el-tabs>
-    </el-dialog>
+    </div>
+  </el-dialog>
 </template>
 </template>
 
 
 <script>
 <script>
 import {getDetails} from "@/api/lawenforcement/record";
 import {getDetails} from "@/api/lawenforcement/record";
-import dict from "@/utils/dict";
 
 
 export default {
 export default {
   name: 'DetailsVue',
   name: 'DetailsVue',
@@ -188,72 +185,64 @@ export default {
     'lawenforcement_jobType'
     'lawenforcement_jobType'
   ],
   ],
   props: {
   props: {
-    workOrderId: {
+    detailRecordId: {
       type: String,
       type: String,
       required: true,
       required: true,
     },
     },
-    showDialog:{
+    visible: {
       type: Boolean,
       type: Boolean,
-      required: true
-    }
+      default: false
+    },
   },
   },
   data() {
   data() {
     return {
     return {
       workOrderDetails: {},
       workOrderDetails: {},
       activeTab: 'recordLogList', // 默认激活的页签
       activeTab: 'recordLogList', // 默认激活的页签
-      show: false
     };
     };
   },
   },
+  computed: {
+    detailDialog: {
+      get() {
+        return this.visible;
+      },
+      set(val) {
+        this.$emit('update:visible', val);
+      }
+    }
+  },
   methods: {
   methods: {
     getData(recordId) {
     getData(recordId) {
       getDetails(recordId).then(res => {
       getDetails(recordId).then(res => {
         this.workOrderDetails = res.data;
         this.workOrderDetails = res.data;
       });
       });
     },
     },
-    closeDetail(){
-      this.$emit('closeDialog');
+    closeDetail() {
+      this.detailDialog = false
     },
     },
-    /*formatDate(timestamp) {
-      if (!timestamp) return ''; // 如果时间戳为空,返回空字符串
-      const date = new Date(timestamp);
-      const year = date.getFullYear();
-      const month = String(date.getMonth() + 1).padStart(2, '0');
-      const day = String(date.getDate()).padStart(2, '0');
-      return `${year}-${month}-${day}`;
-    }*/
     formatDate(timestamp) {
     formatDate(timestamp) {
       if (!timestamp) return ''; // 如果时间戳为空,返回空字符串
       if (!timestamp) return ''; // 如果时间戳为空,返回空字符串
-
       // 将字符串时间戳转换为数字
       // 将字符串时间戳转换为数字
       const timestampNum = Number(timestamp);
       const timestampNum = Number(timestamp);
       if (isNaN(timestampNum)) {
       if (isNaN(timestampNum)) {
         console.error('Invalid timestamp:', timestamp);
         console.error('Invalid timestamp:', timestamp);
         return 'Invalid timestamp';
         return 'Invalid timestamp';
       }
       }
-
       const date = new Date(timestampNum);
       const date = new Date(timestampNum);
       const year = date.getFullYear();
       const year = date.getFullYear();
       const month = String(date.getMonth() + 1).padStart(2, '0');
       const month = String(date.getMonth() + 1).padStart(2, '0');
       const day = String(date.getDate()).padStart(2, '0');
       const day = String(date.getDate()).padStart(2, '0');
       return `${year}-${month}-${day}`;
       return `${year}-${month}-${day}`;
-    }
+    },
   },
   },
   watch: {
   watch: {
-    workOrderId: {
-      immediate: true,
+    detailRecordId: {
       handler(newVal) {
       handler(newVal) {
         if (newVal) {
         if (newVal) {
           this.getData(newVal)
           this.getData(newVal)
         }
         }
       },
       },
+      immediate: true,
     },
     },
-    showDialog:{
-      handler(newVal){
-        if(newVal){
-          this.show = newVal
-        }
-      }
-    }
   },
   },
 };
 };
 </script>
 </script>

+ 108 - 0
lawenforcement-ui/src/views/lawenforcement/record/bindDevice.vue

@@ -0,0 +1,108 @@
+<template>
+  <el-dialog :visible.sync="bindDeviceDialog" title="绑定设备" width="500px" @close="cancleBindHandle" class="form-style">
+    <div style="padding:20px 30px;">
+      <el-form>
+        <el-form-item label="任务名称" prop="jobName">
+          <el-input style="width: 80%" v-model="form.jobName" placeholder="请输入任务名称"/>
+        </el-form-item>
+        <el-form-item label="设备信息" prop="deviceId">
+          <el-select v-model="form.deviceId" @change="onDeviceChange" placeholder="请选择设备">
+            <el-option
+              v-for="item in deviceList"
+              :key="item.cameraCode"
+              :label="item.cameraName"
+              :value="item.cameraCode"
+            />
+          </el-select>
+        </el-form-item>
+      </el-form>
+    </div>
+    <div slot="footer">
+      <el-button @click="cancleBindHandle">取消</el-button>
+      <el-button type="primary" @click="submitBindHandle">确定</el-button>
+    </div>
+  </el-dialog>
+</template>
+<script>
+import {addRecordLog, getDeivceList, getDetails} from "@/api/lawenforcement/record";
+
+export default {
+  name: 'BindDevice',
+  data(){
+    return{
+      form:{},
+      deviceList:[]
+    }
+  },
+  props: {
+    bindDeviceRecordId: {
+      type: String,
+      required: true,
+    },
+    bindDeviceRecordName:{
+      type: String,
+      requried: true,
+    },
+    visible: {
+      type: Boolean,
+      default: false
+    },
+  },
+  computed: {
+    bindDeviceDialog: {
+      get() {
+        return this.visible;
+      },
+      set(val) {
+        this.$emit('update:visible', val);
+      }
+    }
+  },
+  created() {
+    this.getDeviceList();
+  },
+  methods:{
+    getDeviceList(){
+      getDeivceList().then(res => {
+        this.deviceList = res.data
+      })
+    },
+    cancleBindHandle() {
+      this.bindDeviceDialog = false
+    },
+    /** 绑定设备提交 */
+    submitBindHandle() {
+      this.form.recordStatus = "lawenforcement_type_6"
+      addRecordLog(this.form).then(res => {
+        this.$modal.msgSuccess("绑定成功, 开始执法!");
+        this.bindDeviceDialog = false;
+        this.$emit("get-list")
+      })
+    },
+    /** 选中设备事件 */
+    onDeviceChange(value) {
+      const selectedDevice = this.deviceList.find(item => item.cameraCode === value);
+      this.form.deviceName = selectedDevice ? selectedDevice.cameraName : ''; // 更新设备名称
+    },
+  },
+  watch: {
+    bindDeviceRecordId: {
+      handler(newVal) {
+        if (newVal) {
+          this.form.id=newVal
+        }
+      },
+      immediate: true,
+    },
+    bindDeviceRecordName:{
+      handler(newVal){
+        if(newVal){
+          this.form.jobName = newVal
+        }
+      },
+      immediate: true
+    }
+  },
+}
+</script>
+

+ 225 - 0
lawenforcement-ui/src/views/lawenforcement/record/distribute.vue

@@ -0,0 +1,225 @@
+<template>
+  <el-dialog :visible.sync="dialogVisible" title="派发" @close="closePaifa" class="form-style">
+    <div style="padding:20px 30px;">
+      <el-form :model="distributeData">
+        <el-form-item label="选择部门" class="xzbm">
+          <DepartmentSelect
+            ref="departmentSelect"
+            :deptOptions="deptOptions"
+            :selectedDepts="selectedDepts"
+            :reset="reset"
+            @selection-change="handleDeptSelectionChange"
+          />
+        </el-form-item>
+        <el-form-item label="选择人员" class="xzbm">
+          <EnforcementUserSelect
+            ref="enforcementUserSelect"
+            :userList="userList"
+            :selectedUserList="selectedUserList"
+            :reset="reset"
+            @user-selected="handleUserSelected"
+          />
+        </el-form-item>
+        <el-form-item label="主办人员" class="xzbm">
+          <el-select v-model="mainPerson" placeholder="请选择" @change="seeMainPerson">
+            <el-option
+              v-for="user in useredList"
+              :key="user.userId"
+              :label="user.nickName"
+              :value="user.certificateNumber"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="closePaifa">关闭</el-button>
+      <el-button type="primary" @click="handleDispatch">确定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+import DepartmentSelect from "@/views/components/DepartmentSelect.vue";
+import {distributeRecord, getRecord, getUserListByDeptId} from "@/api/lawenforcement/record";
+import {treeselect} from "@/api/system/dept";
+import EnforcementUserSelect from "@/views/components/EnforcementUserSelect.vue";
+
+export default {
+  components: {EnforcementUserSelect, DepartmentSelect},
+  props: {
+    visible: {
+      type: Boolean,
+      default: false
+    },
+    recordId: {
+      type: [String, Number, null],
+      default: null
+    },
+    deptOptions:{
+      type: Array
+    }
+  },
+  computed: {
+    dialogVisible: {
+      get() {
+        return this.visible;
+      },
+      set(val) {
+        this.$emit('update:visible', val);
+      }
+    }
+  },
+  data(){
+    return {
+      //数据回显+提交
+      distributeData: {},
+      //选中的执法部门对应的全部执法人员
+      userList:[],
+      //选中的执法人员集合
+      useredList:[],
+      //重置子表单
+      reset:true,
+      //选中的执法部门信息
+      selectedDepts:[],
+      //选中的执法人员
+      selectedUserList:[],
+      //主办人
+      mainPerson: null,
+    }
+  },
+  methods: {
+    /** 对选执法部门回调函数,根据选中的执法部门id集合,获取对应的人员列表 */
+    handleDeptSelectionChange(selectedIds) {
+      if (selectedIds.length > 0) {
+        getUserListByDeptId(selectedIds).then(res => {
+          //选中的部门中所有的执法人员信息
+          this.userList = res.data
+          console.log("根据选中的部门获取对应的人员列表===》",this.userList)
+        })
+      }else{
+        this.userList = []
+      }
+    },
+    /** 选中的执法人员回调事件 */
+    handleUserSelected(selectedUsersIds) {
+      setTimeout(()=>{
+        let usered = [];
+        selectedUsersIds.forEach(userId => {
+          // 在userList中查找对应的用户对象
+          const user = this.userList.find(user => user.certificateNumber === userId);
+          // 如果找到了用户对象,则将其添加到selectedUserList中
+          if (user) {
+            usered.push(user)
+          }
+        });
+        // 在这里处理选中的用户对象
+        this.useredList = usered;
+        console.log("选中的执法人员集合:",this.useredList)
+        this.distributeData.personList = usered;
+      },500)
+
+    },
+    /** 选中的主办人员回调 */
+    seeMainPerson(userId) {
+      this.distributeData.mainPerson = userId
+    },
+    /** 派发工单提交 */
+    handleDispatch() {
+      console.log(this.distributeData)
+      // 处理派发逻辑,这里可以写你的逻辑,比如保存数据或者提交请求
+      distributeRecord(this.distributeData).then(res => {
+        this.$modal.msgSuccess("派发成功");
+        this.dialogVisible = false;
+        this.$emit("get-list")
+      })
+    },
+    getDetail(redordId) {
+      console.log("子组件接受的工单id为==》",redordId)
+      //获取工单详情信息
+      getRecord(redordId).then(res => {
+        //将工单详情信息赋值到form
+        this.distributeData = res.data
+
+        //获取主办人员id
+        this.mainPerson = res.data.mainPerson
+        //初始化部门集合:用作查询人员集合
+        let path = []
+
+        //获取执法人员集合
+        let personList = res.data.personList;
+        //遍历数据
+        personList.forEach(person => {
+          //调用函数,处理复选选中的部门
+          this.findPath(person.deptId)
+          //赋值
+          path.push(person.deptId)
+          //将选中的执法人员证号放入到集合,传递给子页面使用
+          this.selectedUserList.push(person.certificateNumber)
+        })
+        //获取选中的部门中对应的人员集合
+        this.handleDeptSelectionChange(path)
+      })
+    },
+
+
+    /** 用于选中执法部门回显的辅助方法 */
+    findPath(targetId) {
+      // 转换为 key-value 类型的数据结构
+      this.departmentMap = this.flattenToMap(this.deptOptions);
+      let path = this.getPathFromMap(targetId).reverse();
+      this.selectedDepts.push(path) // 获取路径并反转
+      console.log("选中的执法部门有===》",this.selectedDepts)
+    },
+    flattenToMap(data, parentId = null) {
+      return data.reduce((map, node) => {
+        map[node.id] = {...node, parentId}; // 将节点添加到 map 中
+        if (node.children) {
+          Object.assign(map, this.flattenToMap(node.children, node.id)); // 递归处理子节点
+        }
+        return map;
+      }, {});
+    },
+    getPathFromMap(targetId) {
+      const path = [];
+      let currentId = targetId;
+      while (currentId) {
+        const node = this.departmentMap[currentId];
+        if (node) {
+          path.push(node.id); // 将部门标签加入路径
+          currentId = node.parentId; // 获取父节点 ID
+        } else {
+          break;
+        }
+      }
+      return path;
+    },
+    //关闭弹窗
+    closePaifa() {
+      this.dialogVisible = false;
+    },
+
+  },
+  watch:{
+    recordId: {
+      handler(newValue) {
+        if (newValue !== "" && newValue !== null) {
+          this.getDetail(newValue)
+        }
+      },
+      immediate: true // 立即调用一次观察者
+    },
+    deptOptions: {
+      handler(newValue){
+        console.log("子组件接受的部门集合为==》",newValue)
+      },
+      immediate: true // 立即调用一次观察者
+    }
+  }
+};
+</script>
+<style>
+.xzbm .el-form-item__content,.xzbm .el-form-item__content .el-cascader{
+  width: 100% !important;
+}
+</style>

+ 121 - 0
lawenforcement-ui/src/views/lawenforcement/record/fillForm.vue

@@ -0,0 +1,121 @@
+<template>
+  <el-dialog :visible.sync="fillFormDialog" title="填报" width="800px" @close="closeDialogFillForm" class="form-style">
+    <div style="padding:20px 30px;">
+      <el-form>
+        <el-form-item label="任务名称" prop="jobName" class="xinzeng">
+          <el-input style="width: 80%" v-model="form.jobName" placeholder="请输入任务名称"/>
+        </el-form-item>
+        <el-col :span="24">
+          <el-form-item label="附件" label-width="50px" prop="attachPath">
+            <fileUpload :fileType="fileType" :limit="1" v-model="form.attachPath" :setFileName="setFileName"
+                        :removeFileName="removeFile"></fileUpload>
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="说明" label-width="50px" prop="describe">
+            <el-input v-model="form.describe" placeholder="请输入材料说明" maxlength = "255"/>
+          </el-form-item>
+        </el-col>
+      </el-form>
+    </div>
+    <div slot="footer" class="dialog-footer">
+      <el-button @click="closeDialogFillForm">取 消</el-button>
+      <el-button type="primary" @click="submitFormFill">确 定</el-button>
+    </div>
+  </el-dialog>
+</template>
+<script>
+import {recordFillForm} from "@/api/lawenforcement/record";
+import fileUpload from '@/views/components/FileUpload/index.vue';
+
+export default {
+  name: 'FillForm',
+  components: {fileUpload},
+  data() {
+    return {
+      form: {},
+      fileType: ['pdf', 'jpg', 'jpeg', 'png'],
+      limit: 1,
+      isShowTip:false,
+    }
+  },
+  props: {
+    fillFormRecordId: {
+      type: String,
+      required: true,
+    },
+    fillFormRecordName: {
+      type: String,
+      requried: true,
+    },
+    visible: {
+      type: Boolean,
+      default: false
+    },
+  },
+  computed: {
+    fillFormDialog: {
+      get() {
+        return this.visible;
+      },
+      set(val) {
+        this.$emit('update:visible', val);
+      }
+    }
+  },
+  methods:{
+    /** 设置文件名 */
+    setFileName(fileName){
+      this.form.attachName = fileName;
+    },
+    /** 移除文件名 */
+    removeFile(){
+      this.form.attachPath = null;
+      this.form.attachName = null;
+    },
+    /** 关闭填报弹窗 */
+    closeDialogFillForm(){
+      this.fillFormDialog = false
+    },
+    /** 填报提交事件 */
+    submitFormFill() {
+      recordFillForm(this.form).then(res=>{
+        this.fillFormDialog = false
+        this.$modal.msgSuccess("填报成功");
+        this.$emit("get-list")
+      })
+    },
+  },
+  watch: {
+    fillFormRecordId: {
+      handler(newVal) {
+        if (newVal) {
+          this.form.id=newVal
+        }
+      },
+      immediate: true,
+    },
+    fillFormRecordName:{
+      handler(newVal){
+        if(newVal){
+          this.form.jobName = newVal
+        }
+      },
+      immediate: true
+    }
+  },
+}
+</script>
+<style>
+.xinzeng .el-input.is-disabled .el-input__inner, .xinzeng .el-input--medium .el-input__inner {
+  background-color: #fff !important;
+  width: 320px !important;
+  border-radius: 0px;
+}
+.xinzeng  .el-form-item--medium .el-form-item__label  {
+  width: 130px !important;
+}
+.tbfj .el-form-item__label{
+  width: 68px !important;
+}
+</style>

+ 222 - 484
lawenforcement-ui/src/views/lawenforcement/record/index.vue

@@ -8,7 +8,6 @@
           clearable
           clearable
           size="small"
           size="small"
           @keyup.enter.native="handleQuery"
           @keyup.enter.native="handleQuery"
-
         />
         />
       </el-form-item>
       </el-form-item>
       <el-form-item>
       <el-form-item>
@@ -65,28 +64,35 @@
           <el-button size="mini" type="text" icon="el-icon-paper-plus" @click="detailShow(scope.row)">
           <el-button size="mini" type="text" icon="el-icon-paper-plus" @click="detailShow(scope.row)">
             详情
             详情
           </el-button>
           </el-button>
-          <el-button v-if="scope.row.recordStatus === 'lawenforcement_type_1' && scope.row.createMethod === 1" size="mini" type="text" icon="el-icon-paper-plus" @click="showDispatchDialog(scope.row)">
+          <el-button v-if="scope.row.recordStatus === 'lawenforcement_type_1' && scope.row.createMethod === 1"
+                     size="mini" type="text" icon="el-icon-paper-plus" @click="distributeShow(scope.row)">
             派发
             派发
           </el-button>
           </el-button>
-          <el-button v-if="scope.row.recordStatus === 'lawenforcement_type_3'  || (scope.row.recordStatus === 'lawenforcement_type_1' && scope.row.createMethod !== 1)"
+          <el-button
+            v-if="scope.row.recordStatus === 'lawenforcement_type_3'  || (scope.row.recordStatus === 'lawenforcement_type_1' && scope.row.createMethod !== 1)"
             size="mini" type="text" icon="el-icon-paper-plus" @click="showBindDeviceDialog(scope.row)">
             size="mini" type="text" icon="el-icon-paper-plus" @click="showBindDeviceDialog(scope.row)">
             绑定设备
             绑定设备
           </el-button>
           </el-button>
-          <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">
+          <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)"
+                       v-hasPermi="['system:role:edit']">
             <span class="el-dropdown-link">
             <span class="el-dropdown-link">
               <i class="el-icon-d-arrow-right el-icon--right"></i>更多
               <i class="el-icon-d-arrow-right el-icon--right"></i>更多
             </span>
             </span>
             <el-dropdown-menu slot="dropdown">
             <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item command="la" icon="el-icon-edit" v-hasPermi="['lawenforcement:record:edit']">
+              <el-dropdown-item command="register" icon="el-icon-edit" v-hasPermi="['lawenforcement:record:edit']">
                 立案
                 立案
               </el-dropdown-item>
               </el-dropdown-item>
-             <el-dropdown-item command="tb" icon="el-icon-edit" v-hasPermi="['lawenforcement:record:edit']">
+              <el-dropdown-item command="fillForm" icon="el-icon-edit" v-hasPermi="['lawenforcement:record:edit']">
                 填报
                 填报
               </el-dropdown-item>
               </el-dropdown-item>
-              <el-dropdown-item v-if="scope.row.createMethod === 1 && scope.row.recordStatus === 'lawenforcement_type_1'" command="edit" icon="el-icon-edit" v-hasPermi="['lawenforcement:record:edit']">
+              <el-dropdown-item
+                v-if="scope.row.createMethod === 1 && scope.row.recordStatus === 'lawenforcement_type_1'" command="edit"
+                icon="el-icon-edit" v-hasPermi="['lawenforcement:record:edit']">
                 修改
                 修改
               </el-dropdown-item>
               </el-dropdown-item>
-              <el-dropdown-item v-if="scope.row.createMethod === 1 && scope.row.recordStatus === 'lawenforcement_type_1'" command="remove" icon="el-icon-delete" v-hasPermi="['lawenforcement:record:remove']">
+              <el-dropdown-item
+                v-if="scope.row.createMethod === 1 && scope.row.recordStatus === 'lawenforcement_type_1'"
+                command="remove" icon="el-icon-delete" v-hasPermi="['lawenforcement:record:remove']">
                 删除
                 删除
               </el-dropdown-item>
               </el-dropdown-item>
             </el-dropdown-menu>
             </el-dropdown-menu>
@@ -105,225 +111,134 @@
 
 
     <!-- 添加或修改任务数据对话框 -->
     <!-- 添加或修改任务数据对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body class="form-style">
     <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body class="form-style">
-      <el-form ref="form" :model="form" :rules="rules" label-width="130px">
-        <el-row :gutter="24">
-          <el-col :span="12">
-            <el-form-item label="任务名称" prop="jobName" class="xinzeng">
-              <el-input v-model="form.jobName" placeholder="请输入任务名称"/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="任务类型" prop="jobType"  class="xinzeng">
-              <el-select v-model="form.jobType">
-                <el-option
-                  v-for="dict in dict.type.lawenforcement_jobType"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                />
-              </el-select>
-            </el-form-item>
+      <div style="padding:20px 30px;">
+        <el-form ref="form" :model="form" :rules="rules" label-width="130px">
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="任务名称" prop="jobName" class="xinzeng">
+                <el-input v-model="form.jobName" placeholder="请输入任务名称"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="任务类型" prop="jobType" class="xinzeng">
+                <el-select v-model="form.jobType">
+                  <el-option
+                    v-for="dict in dict.type.lawenforcement_jobType"
+                    :key="dict.value"
+                    :label="dict.label"
+                    :value="dict.value"
+                  />
+                </el-select>
+              </el-form-item>
 
 
-          </el-col>
-        </el-row>
-        <el-row :gutter="24">
-          <el-col :span="12">
-            <el-form-item label="地区" prop="areaId" class="xinzeng">
-              <el-input v-model="form.areaId" placeholder="请输入地区"/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="检查对象类型" prop="checkObjectType" class="xinzeng">
-              <el-input v-model="form.checkObjectType" placeholder="请选择检查对象类型"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="24">
-          <el-col :span="12">
-            <el-form-item label="检查对象名称" prop="checkObjectName" class="xinzeng">
-              <el-input v-model="form.checkObjectName" placeholder="请输入检查对象名称"/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="检查对象代码" prop="checkObjectCode" class="xinzeng">
-              <el-input v-model="form.checkObjectCode" placeholder="请输入检查对象代码"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="24">
-          <el-col :span="12">
-            <el-form-item label="检查开始时间" prop="checkStartTime" class="xinzeng">
-              <el-date-picker clearable
-                              v-model="form.checkStartTime"
-                              type="date"
-                              value-format="yyyy-MM-dd"
-                              placeholder="请选择检查开始时间">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="检查结束时间" prop="checkEndTime" class="xinzeng">
-              <el-date-picker clearable
-                              v-model="form.checkEndTime"
-                              type="date"
-                              value-format="yyyy-MM-dd"
-                              placeholder="请选择检查结束时间">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="24">
-          <el-col :span="12">
-            <el-form-item label="检查对象联系电话" prop="checkObjectPhone" class="xinzeng">
-              <el-input v-model="form.checkObjectPhone" placeholder="请输入检查对象联系电话"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="24">
-          <el-col :span="24">
-            <el-form-item label="备注" prop="remark">
-              <el-input v-model="form.remark" placeholder="请输入备注"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="地区" prop="areaId" class="xinzeng">
+                <el-input v-model="form.areaId" placeholder="请输入地区"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="检查对象类型" prop="checkObjectType" class="xinzeng">
+                <el-input v-model="form.checkObjectType" placeholder="请选择检查对象类型"/>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="检查对象名称" prop="checkObjectName" class="xinzeng">
+                <el-input v-model="form.checkObjectName" placeholder="请输入检查对象名称"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="检查对象代码" prop="checkObjectCode" class="xinzeng">
+                <el-input v-model="form.checkObjectCode" placeholder="请输入检查对象代码"/>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="检查开始时间" prop="checkStartTime" class="xinzeng">
+                <el-date-picker
+                  clearable
+                  v-model="formattedCheckStartTime"
+                  type="date"
+                  value-format="yyyy-MM-dd"
+                  placeholder="请选择检查开始时间"
+                  @change="handleDateChange('checkStartTime')"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="检查结束时间" prop="checkEndTime" class="xinzeng">
+                <el-date-picker
+                  clearable
+                  v-model="formattedCheckEndTime"
+                  type="date"
+                  value-format="yyyy-MM-dd"
+                  placeholder="请选择检查结束时间"
+                  @change="handleDateChange('checkEndTime')"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="检查对象联系电话" prop="checkObjectPhone" class="xinzeng">
+                <el-input v-model="form.checkObjectPhone" placeholder="请输入检查对象联系电话"/>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col :span="24">
+              <el-form-item label="备注" prop="remark" class="xinzeng">
+                <el-input v-model="form.remark" placeholder="请输入备注"/>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
       <div slot="footer" class="dialog-footer">
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
 
 
+    <!--  详情弹窗  -->
+    <DetailsVue v-if="detailDialog" :visible.sync="detailDialog" :detailRecordId="detailRecordId"/>
 
 
-    <!-- 派发事件弹窗 -->
-    <el-dialog :visible.sync="dialogVisible" title="派发任务" width="800px" class="form-style">
-      <div style="padding:20px 30px;">
-      <el-form :model="form">
-        <el-row :gutter="24">
-          <el-col :span="24">
-            <el-form-item label="选择部门" class="xzbm">
-              <DepartmentSelect
-                ref="departmentSelect"
-                :deptOptions="deptOptions"
-                :selectedDepts="selectedDepts"
-                :reset="reset"
-                @selection-change="handleDeptSelectionChange"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col>
-            <el-form-item label="选择人员" class="xzbm">
-              <EnforcementUserSelect
-                ref="enforcementUserSelect"
-                :userList="userList"
-                :selectedUserList="selectedUserList"
-                :reset="reset"
-                @user-selected="handleUserSelected"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col>
-            <el-form-item v-if="useredList != null" label="主办人员" class="xzbm">
-              <el-select v-model="mainPerson" placeholder="请选择" @change="seeMainPerson">
-                <el-option
-                  v-for="user in useredList"
-                  :key="user.userId"
-                  :label="user.nickName"
-                  :value="user.certificateNumber"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-    </div>
-      <div slot="footer">
-        <el-button @click="dialogVisible = false">取消</el-button>
-        <el-button type="primary" @click="handleDispatch">确定</el-button>
-      </div>
-    </el-dialog>
+    <!--  派发弹窗  -->
+    <Distribute v-if="distributeDialog" :deptOptions="deptOptions" :visible.sync="distributeDialog"
+                :recordId="distributeRecordId" @get-list="getList"/>
 
 
-    <!-- 绑定设备弹窗 -->
-    <el-dialog :visible.sync="bindDialogVisible" title="绑定设备" width="500px">
-      <div style="padding:20px 30px;">
-      <el-form>
-        <el-form-item label="任务名称" prop="jobName">
-          <el-input style="width: 80%" v-model="form.jobName" placeholder="请输入任务名称"/>
-        </el-form-item>
-        <el-form-item label="设备信息" prop="deviceId">
-          <el-select v-model="form.deviceId" @change="onDeviceChange" placeholder="请选择设备">
-            <el-option
-              v-for="item in deviceList"
-              :key="item.cameraCode"
-              :label="item.cameraName"
-              :value="item.cameraCode"
-            />
-          </el-select>
-        </el-form-item>
-      </el-form>
-    </div>
-      <div slot="footer">
-        <el-button @click="cancleBindHandle">取消</el-button>
-        <el-button type="primary" @click="submitBindHandle">确定</el-button>
-      </div>
-    </el-dialog>
+    <!--  绑定设备弹窗  -->
+    <bind-device v-if="bindDeviceDialog" :visible.sync="bindDeviceDialog" @get-list="getList"
+                 :bindDeviceRecordId="bindDeviceRecordId" :bindDeviceRecordName="bindDeviceRecordName"/>
 
 
-<!--    立案-->
+    <!--  立案弹窗  -->
     <register ref="register" @send-ok="getList"/>
     <register ref="register" @send-ok="getList"/>
 
 
-
     <!--  填报弹窗  -->
     <!--  填报弹窗  -->
-    <el-dialog :visible.sync="dialogFillform" :title="title" width="1200px" @close="closeDialogFillForm">
-      <div style="padding:20px 30px;">
-      <el-form>
-        <el-form-item label="任务名称" prop="jobName"  class="xinzeng">
-          <el-input style="width: 80%" v-model="form.jobName" placeholder="请输入任务名称"/>
-        </el-form-item>
-        <el-form-item label="填报附件" label-width="50px" prop="attachPath" class="tbfj">
-          <fileUpload :limit="1" :fileType="fileType" v-model="form.attachPath" :setFileName="setFileName"
-                      :removeFileName="removeFile"></fileUpload>
-        </el-form-item>
-        <el-form-item label="填报说明"  prop="describe" class="shuoming">
-          <el-input v-model="form.describe" placeholder="请输入材料说明" maxlength = "255"  class="shuoming"/>
-        </el-form-item>
-      </el-form>
-    </div>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitFormFill">确 定</el-button>
-        <el-button @click="closeDialogFillForm">取 消</el-button>
-      </div>
-    </el-dialog>
+    <FillForm v-if="fillFormDialog" :visible.sync="fillFormDialog" :fillFormRecordId="fillFormRecordId"
+              :fillFormRecordName="fillFormRecordName" @get-list="getList"/>
 
 
-    <!--  详情弹窗  -->
-    <DetailsVue :workOrderId="workOrderId" :showDialog="showDialog" @closeDialog="detailShowClose"/>
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
-import {
-  addRecord,
-  addRecordLog,
-  delRecord,
-  distributeRecord,
-  getDeivceList,
-  getRecord,
-  getUserListByDeptId,
-  listRecord, recordFillForm
-} from "@/api/lawenforcement/record";
+import {addRecord, delRecord, getRecord, listRecord, updateRecord} from "@/api/lawenforcement/record";
+import moment from "moment/moment";
+import DetailsVue from "@/views/lawenforcement/record/DetailsVue.vue";
+import Distribute from "@/views/lawenforcement/record/distribute.vue";
 import {treeselect} from "@/api/system/dept";
 import {treeselect} from "@/api/system/dept";
-import DepartmentSelect from "@/views/components/DepartmentSelect.vue";
-import EnforcementUserSelect from "@/views/components/EnforcementUserSelect.vue";
+import BindDevice from "@/views/lawenforcement/record/bindDevice.vue";
 import register from "@/views/lawenforcement/register/index.vue";
 import register from "@/views/lawenforcement/register/index.vue";
-import moment from 'moment';
-import DetailsVue from "@/views/lawenforcement/record/DetailsVue.vue"
-import fileUpload from '@/views/components/FileUpload/index.vue';
+import FillForm from "@/views/lawenforcement/record/fillForm.vue";
 
 
 export default {
 export default {
   name: "Record",
   name: "Record",
-  components: {register, EnforcementUserSelect, DepartmentSelect, DetailsVue, fileUpload},
+  components: {register, BindDevice, Distribute, DetailsVue, FillForm},
   dicts: [
   dicts: [
     'lawenforcement_type',
     'lawenforcement_type',
     'lawenforcement_jobType'
     'lawenforcement_jobType'
@@ -332,7 +247,6 @@ export default {
     return {
     return {
       // 遮罩层
       // 遮罩层
       loading: true,
       loading: true,
-      mainPerson: null,
       // 选中数组
       // 选中数组
       ids: [],
       ids: [],
       // 非单个禁用
       // 非单个禁用
@@ -349,19 +263,11 @@ export default {
       title: "",
       title: "",
       // 是否显示弹出层
       // 是否显示弹出层
       open: false,
       open: false,
-      dialogVisible: false,
-      bindDialogVisible: false,
-      // 部门树选项
-      deptOptions: [],
-      //人员集合
-      userList: [],
-      //选中的执法人员集合
-      useredList: [],
       // 查询参数
       // 查询参数
       queryParams: {
       queryParams: {
         pageNum: 1,
         pageNum: 1,
         pageSize: 10,
         pageSize: 10,
-        jobName: null
+        jobName: null,
       },
       },
       // 表单参数
       // 表单参数
       form: {},
       form: {},
@@ -386,47 +292,57 @@ export default {
           {required: true, message: "检查结束时间不能为空", trigger: "change"}
           {required: true, message: "检查结束时间不能为空", trigger: "change"}
         ]
         ]
       },
       },
-      // 执法设备列表
-      deviceList: [],
-      // 选中的执法人员
-      selectedUserList: [],
-      // 选中的执法部门
-      selectedDepts: [],
-      departmentMap: {},
-      //立案弹窗
-      dialogVisibleLiAn: false,
-      recordId: null,
-      // 填报弹窗
-      dialogFillform: false,
-      workOrderId: "",
-      showDialog: false,
-      fileType: ['pdf', 'jpg', 'jpeg', 'png'],
+      //详情控制器
+      detailDialog: false,
+      detailRecordId: null,
+
+      //派发控制器
+      distributeDialog: false,
+      distributeRecordId: null,
+      //部门集合
+      deptOptions: [],
+
+      //绑定设备控制器
+      bindDeviceDialog: false,
+      bindDeviceRecordId: null,
+      bindDeviceRecordName: null,
+
+      //填报控制器
+      fillFormDialog: false,
+      fillFormRecordId: null,
+      fillFormRecordName: null,
     };
     };
   },
   },
   created() {
   created() {
     this.getList();
     this.getList();
     this.getTreeselectToDept();
     this.getTreeselectToDept();
   },
   },
+  computed: {
+    formattedCheckStartTime: {
+      get() {
+        const timestamp = this.form.checkStartTime;
+        return timestamp ? new Date(timestamp).toISOString().split("T")[0] : '';
+      },
+      set(value) {
+        this.form.checkStartTime = new Date(value).getTime();
+      },
+    },
+    formattedCheckEndTime: {
+      get() {
+        const timestamp = this.form.checkEndTime;
+        return timestamp ? new Date(timestamp).toISOString().split("T")[0] : '';
+      },
+      set(value) {
+        this.form.checkEndTime = new Date(value).getTime();
+      },
+    },
+  },
   methods: {
   methods: {
-    // 更多操作触发
-    handleCommand(command, row) {
-      switch (command) {
-        case 'edit':
-          this.handleUpdate(row)
-          break
-        case 'remove':
-          this.handleDelete(row)
-          break
-        case 'la':
-          this.registerLiAn(row)
-          break;
-        case 'tb':
-          this.fillFormHandle(row)
-          break;
-        default:
-          break
-      }
-
+    /** 获取部门列表 页面初始化执行 */
+    getTreeselectToDept() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
     },
     },
     /** 查询任务数据列表 */
     /** 查询任务数据列表 */
     getList() {
     getList() {
@@ -444,9 +360,6 @@ export default {
     },
     },
     // 表单重置
     // 表单重置
     reset() {
     reset() {
-      this.selectedDepts = []
-      this.useredList = []
-      this.userList = []
       this.form = {
       this.form = {
         id: null,
         id: null,
         jobType: null,
         jobType: null,
@@ -490,11 +403,7 @@ export default {
         createMethod: null,
         createMethod: null,
         isCrossDept: null,
         isCrossDept: null,
         deviceId: null,
         deviceId: null,
-        deviceName: null,
-        attachPath:null,
-        attachName:null,
-        recordId: null,
-        describe: null,
+        deviceName: null
       };
       };
       this.resetForm("form");
       this.resetForm("form");
     },
     },
@@ -532,18 +441,15 @@ export default {
     },
     },
     /** 提交按钮 */
     /** 提交按钮 */
     submitForm() {
     submitForm() {
-      console.log(this.form)
       this.$refs["form"].validate(valid => {
       this.$refs["form"].validate(valid => {
         if (valid) {
         if (valid) {
           if (this.form.id != null) {
           if (this.form.id != null) {
-            // updateRecord(this.form).then(response => {
-            //   this.$modal.msgSuccess("修改成功");
-            //   this.open = false;
-            //   this.getList();
-            // });
+            updateRecord(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
           } else {
           } else {
-            this.form.checkStartTime = new Date(this.form.checkStartTime).getTime()
-            this.form.checkEndTime = new Date(this.form.checkEndTime).getTime()
             addRecord(this.form).then(response => {
             addRecord(this.form).then(response => {
               this.$modal.msgSuccess("新增成功");
               this.$modal.msgSuccess("新增成功");
               this.open = false;
               this.open = false;
@@ -564,236 +470,78 @@ export default {
       }).catch(() => {
       }).catch(() => {
       });
       });
     },
     },
-    formatDate(row, column) {
-      const date = row[column.property];
-      if (date) {
-        return moment(date).format('YYYY-MM-DD');
-      }
-      return '';
-    },
     /** 导出按钮操作 */
     /** 导出按钮操作 */
     handleExport() {
     handleExport() {
       this.download('lawenforcement/record/export', {
       this.download('lawenforcement/record/export', {
         ...this.queryParams
         ...this.queryParams
       }, `record_${new Date().getTime()}.xlsx`)
       }, `record_${new Date().getTime()}.xlsx`)
     },
     },
-    /** 获取部门列表 页面初始化执行 */
-    getTreeselectToDept() {
-      treeselect().then(response => {
-        this.deptOptions = response.data;
-      });
-    },
-    findPath(targetId) {
-      // 转换为 key-value 类型的数据结构
-      this.departmentMap = this.flattenToMap(this.deptOptions);
-      let path = this.getPathFromMap(targetId).reverse();
-      this.selectedDepts.push(path) // 获取路径并反转
+    //列表展示时间格式处理
+    formatDate(row, column) {
+      const date = row[column.property];
+      if (date) {
+        return moment(date).format('YYYY-MM-DD');
+      }
+      return '';
     },
     },
-    flattenToMap(data, parentId = null) {
-      return data.reduce((map, node) => {
-        map[node.id] = {...node, parentId}; // 将节点添加到 map 中
-        if (node.children) {
-          Object.assign(map, this.flattenToMap(node.children, node.id)); // 递归处理子节点
-        }
-        return map;
-      }, {});
-    },
-    getPathFromMap(targetId) {
-      const path = [];
-      let currentId = targetId;
-      while (currentId) {
-        const node = this.departmentMap[currentId];
-        if (node) {
-          path.push(node.id); // 将部门标签加入路径
-          currentId = node.parentId; // 获取父节点 ID
-        } else {
-          break;
+    //新增修改时间格式处理
+    handleDateChange(prop) {
+      // 验证日期是否合法
+      const value = this.form[prop];
+      if (value) {
+        const date = new Date(value);
+        if (isNaN(date.getTime())) {
+          this.$message.error('选择的日期无效');
+          this.form[prop] = 0; // 重置为初始值
         }
         }
       }
       }
-      return path;
-    },
-
-    /** 派发按钮事件*/
-    showDispatchDialog(row) {
-      this.selectedDepts = []
-      this.userList = []
-      //获取工单详情信息
-      getRecord(row.id).then(res => {
-        //将工单详情信息赋值到form
-        this.form = res.data
-        //获取执法人员集合
-        let personList = res.data.personList;
-        //获取主办人员id
-        this.mainPerson = res.data.mainPerson
-        //初始化部门集合:用作查询人员集合
-        let path = []
-        //初始化 选中的执法人员列表
-        this.selectedUserList = []
-        //遍历数据
-        personList.forEach(person => {
-          //调用函数,处理复选选中的部门
-          this.findPath(person.deptId)
-          //赋值
-          path.push(person.deptId)
-          //将选中的执法人员证号放入到集合,传递给子页面使用
-          this.selectedUserList.push(person.certificateNumber)
-        })
-        //获取选中的部门中对应的人员集合
-        this.handleDeptSelectionChange(path)
-      })
-      //打开派发弹窗
-      this.dialogVisible = true;
-      this.$nextTick(() => {
-        //触发将选中的部门数据给子页面
-        this.$refs.departmentSelect.localedDepts = [...this.selectedDepts];
-      });
     },
     },
-    /** 选中执法部门回调 */
-    handleDeptSelectionChange(selectedIds) {
-      if (selectedIds.length > 0) {
-        getUserListByDeptId(selectedIds).then(res => {
-          //选中的部门中所有的执法人员信息
-          this.userList = res.data
-        })
+    // 更多操作触发
+    handleCommand(command, row) {
+      switch (command) {
+        case 'edit':
+          this.handleUpdate(row)
+          break
+        case 'remove':
+          this.handleDelete(row)
+          break
+        case 'register':
+          this.registerLiAn(row)
+          break;
+        case 'fillForm':
+          this.fillFormHandle(row)
+          break;
+        default:
+          break
       }
       }
     },
     },
-    /** 选中的执法人员回调事件 */
-    handleUserSelected(selectedUsersIds) {
-      let usered = [];
-      selectedUsersIds.forEach(userId => {
-        // 在userList中查找对应的用户对象
-        const user = this.userList.find(user => user.certificateNumber === userId);
-        // 如果找到了用户对象,则将其添加到selectedUserList中
-        if (user) {
-          usered.push(user)
-        }
-      });
-      // 在这里处理选中的用户对象
-      this.useredList = usered;
-      this.form.personList = usered;
-    },
-    /** 选中的主办人员回调 */
-    seeMainPerson(userId) {
-      this.form.mainPerson = userId
+    /** 详情事件 */
+    detailShow(row) {
+      this.detailRecordId = row.id
+      this.detailDialog = true
     },
     },
-    /** 派发工单提交 */
-    handleDispatch() {
-      // 处理派发逻辑,这里可以写你的逻辑,比如保存数据或者提交请求
-      distributeRecord(this.form).then(res => {
-        this.$modal.msgSuccess("派发成功");
-        this.dialogVisible = false;
-        this.getList();
-      })
+    /** 派发按钮事件*/
+    distributeShow(row) {
+      // 打开对话框
+      this.distributeDialog = true;
+      this.distributeRecordId = row.id;
     },
     },
-
     /** 绑定设备按钮事件 */
     /** 绑定设备按钮事件 */
     showBindDeviceDialog(row) {
     showBindDeviceDialog(row) {
-      this.reset();
-      /* 根据部门id获取执法设备 */
-      getDeivceList().then(res => {
-        this.deviceList = res.data
-        this.form.id = row.id
-        this.form.jobName = row.jobName
-        this.bindDialogVisible = true;
-      })
-    },
-    /** 选中设备事件 */
-    onDeviceChange(value) {
-      const selectedDevice = this.deviceList.find(item => item.cameraCode === value);
-      this.form.deviceName = selectedDevice ? selectedDevice.cameraName : ''; // 更新设备名称
-    },
-    /** 绑定设备提交 */
-    submitBindHandle() {
-      this.form.recordStatus = "lawenforcement_type_6"
-      addRecordLog(this.form).then(res => {
-        this.$modal.msgSuccess("绑定成功, 开始执法!");
-        this.bindDialogVisible = false;
-        this.reset()
-        this.getList();
-      })
-    },
-    cancleBindHandle() {
-      this.bindDialogVisible = false
-      this.reset();
+      this.bindDeviceDialog = true;
+      this.bindDeviceRecordId = row.id;
+      this.bindDeviceRecordName = row.jobName
     },
     },
     /** 立案函数 */
     /** 立案函数 */
-    registerLiAn(row){
-      this.$refs.register.registerLiAn(row.id,true)
+    registerLiAn(row) {
+      this.$refs.register.registerLiAn(row.id, true)
     },
     },
     /** 填报按钮事件 */
     /** 填报按钮事件 */
     fillFormHandle(row) {
     fillFormHandle(row) {
-      this.title = "填报"
-      this.form.recordId = row.id;
-      this.form.jobName = row.jobName
-      this.dialogFillform = true;
-    },
-    setFileName(fileName){
-      this.form.attachName = fileName;
-    },
-    removeFile(){
-      this.form.attachPath = null;
-      this.form.attachName = null;
-    },
-    closeDialogFillForm(){
-      this.form.attachPath = null;
-      this.form.attachName = null;
-      this.dialogFillform = false
-    },
-    /** 填报提交事件 */
-    submitFormFill() {
-      recordFillForm(this.form).then(res=>{
-        this.dialogFillform = false
-        this.getList();
-        this.$modal.msgSuccess("填报成功");
-      })
-
-
-      // console.log(this.form)
-    },
-
-    /** 详情事件 */
-    detailShow(row) {
-      this.workOrderId = row.id
-      this.showDialog = true
-    },
-    detailShowClose() {
-      this.workOrderId = "";
-      this.showDialog = false
-    }
-
-  },
-  watch: {
-    dialogVisible(newVal) {
-      this.mainPerson = "";
-      // this.reset();
-      if (newVal) {
-        // 打开弹窗时重置子组件
-        this.reset = true;
-      } else {
-        // 关闭弹窗时不重置子组件
-        this.reset = false;
-      }
-    },
-    userList(newValue) {
-      if (this.form.mainPerson) {
-        this.handleUserSelected(this.$refs.enforcementUserSelect.selectedUserList)
-      }
+      this.fillFormRecordId = row.id;
+      this.fillFormRecordName = row.jobName
+      this.fillFormDialog = true;
     },
     },
-    form: {
-      handler(val) {
-        if (val.checkStartTime && val.checkEndTime) {
-          if (new Date(val.checkStartTime) > new Date(val.checkEndTime)) {
-            this.$message({
-              message: '检查开始时间时间不允许大于检查结束时间',
-              type: 'warning',
-              duration: 3000,
-            })
-            this.form.checkEndTime = undefined
-          }
-        }
-      },
-      deep: true
-    }
   }
   }
 };
 };
 </script>
 </script>
@@ -803,18 +551,8 @@ export default {
   width: 320px !important;
   width: 320px !important;
   border-radius: 0px;
   border-radius: 0px;
 }
 }
-.xinzeng  .el-form-item--medium .el-form-item__label  {
-  width: 130px !important;
-}
 
 
-.el-form-item__label{
-  font-weight: normal !important;
-  white-space:nowrap !important;
-}
-.tbfj .el-form-item__label{
-  width: 68px !important;
-}
-.xzbm .el-form-item__content,.xzbm .el-form-item__content .el-cascader{
-  width: 100% !important;
+.xinzeng .el-form-item--medium .el-form-item__label {
+  width: 130px !important;
 }
 }
 </style>
 </style>