| | |
| | | init() { |
| | | const editor = this.$refs.editor; |
| | | this.Quill = new Quill(editor, this.options); |
| | | // 新增:编辑区域点击聚焦逻辑 |
| | | const qlEditor = editor.querySelector('.ql-editor'); |
| | | if (qlEditor && !this.readOnly) { |
| | | qlEditor.addEventListener('click', () => { |
| | | this.Quill.focus(); // 点击时强制聚焦 |
| | | }); |
| | | if (!this.currentValue) { |
| | | qlEditor.classList.add('ql-blank'); // 空内容时显示占位符 |
| | | } |
| | | } |
| | | |
| | | // 如果设置了上传地址则自定义图片上传事件 |
| | | if (this.type == 'url') { |
| | | let toolbar = this.Quill.getModule("toolbar"); |
| | |
| | | </script> |
| | | |
| | | <style> |
| | | .editor, |
| | | .editor { |
| | | position: relative; |
| | | line-height: normal !important; |
| | | } |
| | | .ql-editor { |
| | | min-height: inherit !important; /* 继承父容器的min-height */ |
| | | height: 100% !important; /* 占满父容器高度 */ |
| | | cursor: text; /* 显示文本光标,提示可点击 */ |
| | | padding: 12px 15px; /* 扩大点击范围 */ |
| | | box-sizing: border-box; /* 内边距不超出容器 */ |
| | | } |
| | | .ql-editor.ql-blank::before { |
| | | content: attr(data-placeholder); |
| | | color: rgba(0, 0, 0, 0.3); |
| | | font-style: italic; |
| | | pointer-events: none; /* 不影响点击事件 */ |
| | | } |
| | | .ql-toolbar { |
| | | white-space: pre-wrap !important; |
| | | line-height: normal !important; |
| | |
| | | <div class="button-container"> |
| | | <el-button v-if="roles.includes('admin') || roles.includes('county_leader') || roles.includes('city_leader')" type="primary" @click="toScreen" size="small">可视化大屏</el-button> |
| | | </div> |
| | | <div class="button-container"> |
| | | <el-button type="primary" @click="toSystemB" size="small">跳转B系统</el-button> |
| | | </div> |
| | | <div class="button-container"> |
| | | <el-button type="primary" @click="toSystemA" size="small">跳转A系统</el-button> |
| | | </div> |
| | | <!-- <div class="button-container">--> |
| | | <!-- <el-button type="primary" @click="toSystemB" size="small">跳转B系统</el-button>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="button-container">--> |
| | | <!-- <el-button type="primary" @click="toSystemA" size="small">跳转A系统</el-button>--> |
| | | <!-- </div>--> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="select-container"> |
| | | <div style="margin-right: 20px"> |
| | | <el-date-picker v-model="date" format="yyyy-MM" value-format="yyyy-MM" type="month" placeholder="选择月份" |
| | | @change="dateChange"> |
| | | </el-date-picker> |
| | | </div> |
| | | |
| | | <div> |
| | | <el-select v-model="params.area" placeholder="区县" @change="getChart" clearable> |
| | | <el-option v-for="item in areaOption" :key="item.label" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="chart-container"> |
| | |
| | | }, |
| | | options: [ |
| | | {label: '省厅', value: 1}, |
| | | ], |
| | | areaOption:[ |
| | | {label:'自流井区',value:'510302'}, |
| | | {label:'贡井区',value:'510303'}, |
| | | {label:'大安区',value:'510304'}, |
| | | {label:'沿滩区',value:'510311'}, |
| | | {label:'荣县',value:'510321'}, |
| | | {label:'富顺县',value:'510322'}, |
| | | {label:'高新区',value:'510399'}, |
| | | ], |
| | | categories: [ |
| | | {label: '累计数据', value: 1}, |
| | |
| | | } |
| | | |
| | | .select-container { |
| | | margin-left: 20px; |
| | | margin: 0 20px; |
| | | width: 180px; |
| | | } |
| | | </style> |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="select-container"> |
| | | <div style="margin-right: 20px"> |
| | | <el-date-picker v-model="date" format="yyyy-MM" value-format="yyyy-MM" type="month" placeholder="选择月份" |
| | | @change="dateChange"> |
| | | </el-date-picker> |
| | | </div> |
| | | <div > |
| | | <el-select v-model="params.area" placeholder="区县" @change="getChart" clearable> |
| | | <el-option v-for="item in areaOption" :key="item.label" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="chart-container"> |
| | |
| | | categories: [ |
| | | {label: '累计数据', value: 1}, |
| | | {label: '每日数据', value: 2}, |
| | | ], |
| | | areaOption:[ |
| | | {label:'自流井区',value:'510302'}, |
| | | {label:'贡井区',value:'510303'}, |
| | | {label:'大安区',value:'510304'}, |
| | | {label:'沿滩区',value:'510311'}, |
| | | {label:'荣县',value:'510321'}, |
| | | {label:'富顺县',value:'510322'}, |
| | | {label:'高新区',value:'510399'}, |
| | | ], |
| | | options: [ |
| | | {label: '省厅', value: 1} |
| | |
| | | } |
| | | |
| | | .select-container { |
| | | margin-left: 20px; |
| | | margin: 0 20px; |
| | | width: 180px; |
| | | } |
| | | </style> |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div > |
| | | <div style="margin-right: 20px" > |
| | | <el-date-picker v-model="date" format="yyyy-MM" value-format="yyyy-MM" type="month" placeholder="选择月份" |
| | | @change="dateChange"> |
| | | </el-date-picker> |
| | | </div> |
| | | <div > |
| | | <el-select v-model="params.area" placeholder="区县" @change="getChart" clearable> |
| | | <el-option v-for="item in areaOption" :key="item.label" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="chart-container"> |
| | |
| | | {label: '省厅', value: 1}, |
| | | {label: '公安部', value: 2} |
| | | ], |
| | | areaOption:[ |
| | | {label:'自流井区',value:'510302'}, |
| | | {label:'贡井区',value:'510303'}, |
| | | {label:'大安区',value:'510304'}, |
| | | {label:'沿滩区',value:'510311'}, |
| | | {label:'荣县',value:'510321'}, |
| | | {label:'富顺县',value:'510322'}, |
| | | {label:'高新区',value:'510399'}, |
| | | ], |
| | | dataList: [], |
| | | } |
| | | }, |
| | |
| | | <div v-if="score.examineCategory == 2">车辆:</div> |
| | | <div v-else-if="score.examineCategory == 3">人脸:</div> |
| | | <div v-else-if="score.examineCategory == 1">视频:</div> |
| | | <div class="score">{{ score.score }}</div> |
| | | <div class="score">{{ (score.score * 10).toFixed(2) + '%' }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | this.loading = true; |
| | | listScore(this.queryParams).then(response => { |
| | | this.checkScoreList = response.data; |
| | | |
| | | |
| | | // this.setChartOption(this.checkScoreList); |
| | | this.loading = false; |
| | | }); |
| | |
| | | <el-option v-for="dict in dict.type.report_error_type" :value="dict.value" :key="dict.value" :label="dict.label" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="审核状态"> |
| | | <el-select v-model="queryParams.status" @change="handleQuery" placeholder="审核状态" clearable> |
| | | <el-form-item label="报备时间" prop="timeRange" > |
| | | <el-date-picker |
| | | v-model="reportTimeRange" |
| | | type="daterange" |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | @change="handleQuery" |
| | | clearable |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="有效时间" prop="timeRange" > |
| | | <el-date-picker |
| | | v-model="effectiveTimeRange" |
| | | type="daterange" |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | @change="handleQuery" |
| | | clearable |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label=""> |
| | | <el-select v-model="queryParams.status" @change="handleQuery" placeholder="" clearable> |
| | | <el-option label="全部" value="" /> |
| | | <el-option label="审核中" :value="0" /> |
| | | <el-option label="审核未通过" :value="2" /> |
| | | <el-option label="审核通过" :value="1" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button> |
| | |
| | | fileList: [], |
| | | url: process.env.VUE_APP_BASE_API + '/report/import', |
| | | addOrImport: 'add', |
| | | fileType: ["doc", "xls", "xlsx", "ppt", "txt", "pdf", "png", "jpg"], |
| | | fileType: ["doc", "xls", "xlsx", "ppt", "txt", "pdf", "png", "jpg","docx"], |
| | | auditingRecordList: [], |
| | | // 点位list |
| | | pointList: [], |
| | |
| | | auditingResult: false, |
| | | daterangeCreateTime: [] |
| | | }, |
| | | reportTimeRange:null,//报备时间 |
| | | effectiveTimeRange:null,//有效时间 |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | |
| | | errorType: null, |
| | | status: '', |
| | | reportType: null, |
| | | errorTypeList: [] |
| | | errorTypeList: [], |
| | | reportTimeStart:null, |
| | | reportTimeEnd:null, |
| | | effectTimeStart:null, |
| | | effectTimeEnd:null, |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | if (this.reportTimeRange && this.reportTimeRange.length > 0) { |
| | | this.queryParams.reportTimeStart = this.reportTimeRange[0] |
| | | this.queryParams.reportTimeEnd = this.reportTimeRange[1] |
| | | }else { |
| | | this.queryParams.reportTimeStart = null |
| | | this.queryParams.reportTimeEnd = null |
| | | } |
| | | |
| | | if (this.effectiveTimeRange && this.effectiveTimeRange.length >0){ |
| | | this.queryParams.effectTimeStart = this.effectiveTimeRange[0] |
| | | this.queryParams.effectTimeEnd = this.effectiveTimeRange[1] |
| | | }else { |
| | | this.queryParams.effectTimeStart = null |
| | | this.queryParams.effectTimeEnd = null |
| | | } |
| | | |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | |
| | | <el-form-item label="运维单位" prop="unitName" v-if="!isConditionList"> |
| | | <el-input v-model="ywConditionForm.unitName" disabled/> |
| | | </el-form-item> |
| | | <el-form-item label="现场情况" prop="ywCondition"> |
| | | <editor v-model="form.ywCondition" :min-height="192"/> |
| | | <el-form-item label="现场情况" prop="ywCondition" > |
| | | <editor ref="ywEditor" v-model="form.ywCondition" :min-height="192" /> |
| | | </el-form-item> |
| | | <el-form-item label="佐证材料" prop="ywProofMaterials"> |
| | | <file-upload v-model="form.ywProofMaterials"/> |
| | |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | activateEditor() { |
| | | console.log("触发点击事件") |
| | | // 获取编辑器实例并触发聚焦(具体方法取决于editor组件的API) |
| | | const editor = this.$refs.ywEditor; |
| | | if (editor && editor.focus) { |
| | | editor.focus(); // 触发编辑状态 |
| | | } else if (editor && editor.$el) { |
| | | // 兼容性处理:直接聚焦编辑器的DOM元素 |
| | | editor.$el.focus(); |
| | | } |
| | | }, |
| | | selectedDistribute(){ |
| | | this.form = {} |
| | | if (this.workOrderNumbers.length < 1) { |