zxl
5 天以前 29ea0fd5d04dbaac800f211e0ac7701de0a7f3f4
新需求
8个文件已修改
174 ■■■■ 已修改文件
src/components/Editor/index.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Navbar.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/data-car/index.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/data-face/index.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/data-video/index.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/check/result/index.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/report/index.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/work-order/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Editor/index.vue
@@ -157,6 +157,17 @@
    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");
@@ -224,7 +235,23 @@
</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;
src/layout/components/Navbar.vue
@@ -41,12 +41,12 @@
    <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>
src/views/home/data-car/index.vue
@@ -16,10 +16,17 @@
              </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">
@@ -48,6 +55,15 @@
      },
      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},
@@ -346,7 +362,7 @@
}
.select-container {
  margin-left: 20px;
  margin: 0 20px;
  width: 180px;
}
</style>
src/views/home/data-face/index.vue
@@ -16,10 +16,16 @@
              </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">
@@ -50,6 +56,15 @@
      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}
@@ -348,7 +363,7 @@
}
.select-container {
  margin-left: 20px;
  margin: 0 20px;
  width: 180px;
}
</style>
src/views/home/data-video/index.vue
@@ -10,10 +10,16 @@
              </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">
@@ -42,6 +48,15 @@
        {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: [],
    }
  },
src/views/system/check/result/index.vue
@@ -107,7 +107,7 @@
                    <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>
@@ -456,6 +456,8 @@
      this.loading = true;
      listScore(this.queryParams).then(response => {
        this.checkScoreList = response.data;
        // this.setChartOption(this.checkScoreList);
        this.loading = false;
      });
src/views/system/report/index.vue
@@ -15,14 +15,44 @@
          <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>
@@ -319,7 +349,7 @@
      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: [],
@@ -361,6 +391,8 @@
        auditingResult: false,
        daterangeCreateTime: []
      },
      reportTimeRange:null,//报备时间
      effectiveTimeRange:null,//有效时间
      // 查询参数
      queryParams: {
        pageNum: 1,
@@ -369,7 +401,11 @@
        errorType: null,
        status: '',
        reportType: null,
        errorTypeList: []
        errorTypeList: [],
        reportTimeStart:null,
        reportTimeEnd:null,
        effectTimeStart:null,
        effectTimeEnd:null,
      },
      // 表单参数
      form: {},
@@ -524,6 +560,22 @@
    },
    /** 搜索按钮操作 */
    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();
    },
src/views/system/work-order/index.vue
@@ -356,7 +356,7 @@
          <el-input v-model="ywConditionForm.unitName" disabled/>
        </el-form-item>
        <el-form-item label="现场情况" prop="ywCondition">
          <editor v-model="form.ywCondition" :min-height="192"/>
          <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"/>
@@ -737,6 +737,17 @@
    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) {