|
@@ -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>
|