fuliqi
2024-11-05 c79a020be41892e60021c2a750ea2976dd20f2f3
src/views/system/point/index.vue
@@ -29,7 +29,7 @@
          v-hasPermi="['point:remove']">删除</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" plain icon="el-icon-bottom" v-loading="download" size="mini" @click="handleExport"
        <el-button type="primary" plain icon="el-icon-top" v-loading="download" size="mini" @click="handleExport"
                   v-hasPermi="['point:export']">导出点位</el-button>
      </el-col>
      <el-col :span="1.5">
@@ -84,17 +84,17 @@
            <el-button class="bottom_" type="primary" size="small" v-loading="upload" @click="handleImport"
                       v-hasPermi="['point:import']">导入</el-button>
          </div>
          <el-button type="primary" size="mini" plain icon="el-icon-top" slot="reference">导入点位</el-button>
          <el-button type="primary" size="mini" plain icon="el-icon-bottom" slot="reference" v-hasPermi="['point:import']">导入点位</el-button>
        </el-popover>
      </el-col>
<!--      <el-col :span="1.5">-->
<!--        <el-button type="danger" plain icon="el-icon-receiving" size="mini" @click="handleEditBatch"-->
<!--          v-hasPermi="['point:edit']">批量修改</el-button>-->
<!--      </el-col>-->
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
      <right-toolbar @refreshHeader= "getDyColumn" :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="pointList" @selection-change="handleSelectionChange">
    <el-table :key = "refreshkey" v-loading="loading" :data="pointList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="点位名称" prop="pointName" width="200" show-overflow-tooltip/>
      <el-table-column label="标签" align="center" width="200" show-overflow-tooltip>
@@ -110,6 +110,11 @@
      <el-table-column label="运维单位" align="center" prop="unitName" />
      <el-table-column label="监管部门" align="center" prop="deptName" />
      <el-table-column label="备注" align="center" prop="remark" />
      <el-table-column v-for="(column, index) in dynamicColumnList" :key="index" :label="column.labelValue" :prop="column.propName" align="center">
        <template slot-scope="scope">
          {{ getDynamicValue(scope.row, column.propName) }}
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
@@ -124,81 +129,82 @@
      @pagination="getList" />
    <!-- 添加运维点位对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="130px">
        <el-form-item label="点位名称" prop="pointName">
          <el-input v-model="form.pointName" placeholder="请输入点位名称" />
        </el-form-item>
        <el-form-item label="重点标签" prop="importantTag">
          <el-switch
            style="display: block"
            v-model="form.importantTag"
            active-color="#13ce66"
            inactive-color="#409EFF"
            active-text="重点点位"
            inactive-text="普通点位">
          </el-switch>
          <!-- <el-select v-model="form.importantTag" placeholder="重点标签" clearable>
            <el-option label="重点点位" :value="true" />
            <el-option label="普通点位" :value="false" />
          </el-select> -->
        </el-form-item>
        <el-form-item label="省厅标签" prop="provinceTag">
          <el-switch
            style="display: block"
            v-model="form.provinceTag"
            active-color="#13ce66"
            inactive-color="#409EFF"
            active-text="省厅点位"
            inactive-text="普通点位">
          </el-switch>
          <!-- <el-select v-model="form.provinceTag" placeholder="省厅标签" clearable>
            <el-option label="省厅点位" :value="true" />
            <el-option label="普通点位" :value="false" />
          </el-select> -->
        </el-form-item>
        <el-form-item label="重点指挥图像标签" prop="importantCommandImageTag">
          <el-switch
            style="display: block"
            v-model="form.importantCommandImageTag"
            active-color="#13ce66"
            inactive-color="#409EFF"
            active-text="重点指挥图像点位"
            inactive-text="普通点位">
          </el-switch>
          <!-- <el-select v-model="form.importantCommandImageTag" placeholder="重点指挥图像标签" clearable>
            <el-option label="重点指挥图像点位" :value="true" />
            <el-option label="普通点位" :value="false" />
          </el-select> -->
        </el-form-item>
        <!--        <el-form-item label="点位所在地" prop="region">-->
        <!--          <el-cascader v-model="form.region" :options="regionList" placeholder="点位所在地" :props="props" collapse-tags></el-cascader>-->
        <!--        </el-form-item>-->
        <el-form-item label="监管部门" prop="deptId">
          <el-cascader v-model="form.deptId" :options="deptOptions" :show-all-levels="false" clearable
            :props="{ checkStrictly: true }">
          </el-cascader>
        </el-form-item>
        <el-form-item label="运维单位" prop="unitId">
          <el-select v-model="form.unitId" placeholder="运维单位">
            <el-option v-for="item in unitList" :key="item.id" :label="item.value" :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="运维时间" prop="timezone">
          <el-date-picker
            size="small"
            v-model="timezone"
            type="daterange"
            range-separator="至"
            start-placeholder="运维开始时间"
            end-placeholder="运维结束时间">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="点位备注" prop="remark">
          <el-input type="textarea" v-model="form.remark"/>
        </el-form-item>
      </el-form>
    <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
      <div style="display: flex;flex-direction: row">
        <div style="flex: 5; border-right: 1px solid #d3d3d3; padding-right: 10px">
          <el-form ref="form" :model="form" :rules="rules" label-width="130px">
            <el-form-item label="点位名称" prop="pointName">
              <el-input v-model="form.pointName" placeholder="请输入点位名称" />
            </el-form-item>
            <el-form-item label="监管部门" prop="deptId">
              <el-cascader v-model="form.deptId" :options="deptOptions" :show-all-levels="false" clearable
                           :props="{ checkStrictly: true }">
              </el-cascader>
            </el-form-item>
            <el-form-item label="运维单位" prop="unitId">
              <el-select v-model="form.unitId" placeholder="运维单位">
                <el-option v-for="item in unitList" :key="item.id" :label="item.value" :value="item.id">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="运维时间" prop="timezone">
              <el-date-picker
                size="small"
                v-model="timezone"
                type="daterange"
                range-separator="至"
                start-placeholder="运维开始时间"
                end-placeholder="运维结束时间">
              </el-date-picker>
            </el-form-item>
            <el-form-item label="点位备注" prop="remark">
              <el-input type="textarea" v-model="form.remark"/>
            </el-form-item>
          </el-form>
        </div>
        <div style="flex: 5">
          <el-form ref="form" :model="form" :rules="rules" label-width="130px">
            <el-form-item label="重点:" prop="importantTag">
              <el-switch
                v-model="form.importantTag"
                active-color="#13ce66"
                inactive-color="gray"
                active-text="重点点位"
                inactive-text="普通点位">
              </el-switch>
            </el-form-item>
            <el-form-item label="省厅:" prop="provinceTag">
              <el-switch
                v-model="form.provinceTag"
                active-color="#13ce66"
                inactive-color="gray"
                active-text="省厅点位"
                inactive-text="普通点位">
              </el-switch>
            </el-form-item>
            <el-form-item label="部级:" prop="deptTag">
              <el-switch
                v-model="form.deptTag"
                active-color="#13ce66"
                inactive-color="gray"
                active-text="部级点位"
                inactive-text="普通点位">
              </el-switch>
            </el-form-item>
            <el-form-item label="重点指挥图像:" prop="importantCommandImageTag">
              <el-switch
                v-model="form.importantCommandImageTag"
                active-color="#13ce66"
                inactive-color="gray"
                active-text="重点指挥图像点位"
                inactive-text="普通点位">
              </el-switch>
            </el-form-item>
          </el-form>
        </div>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button @click="cancel">取 消</el-button>
        <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -234,6 +240,7 @@
</template>
<script>
import { addDynamicColumn, deleteDynamicColumnById, editDynamicColumn, getDynamicColumnList } from '@/api/platform/dynamicColumn'
import { listPoint, getPoint, delPoint, addPoint, batchEdit, updatePoint, exportData, importData, timeRange } from "@/api/platform/point";
import { unitSelect } from "@/api/platform/unit";
import { getCascader } from '@/api/platform/region'
@@ -241,9 +248,11 @@
export default {
  name: "Point",
  dicts: ['point_tag'],
  dicts: ['point_tag', 'area_code'],
  data() {
    return {
      refreshkey : 0,
      dynamicColumnList: [],
      needUpdateUnit: false,
      importantTag: false,
      provinceTag: false,
@@ -327,8 +336,24 @@
    this.getUnitSelect();
    // this.getCascader();
    this.getDeptCascader();
    this.getDyColumn();
  },
  methods: {
    getDyColumn() {
      // 查询动态列
      let params = {
        tableName: 't_yw_point'
      }
      getDynamicColumnList(params).then(res => {
        this.dynamicColumnList = res.data
        this.refreshkey+=1
        console.log("加载动态列"+this.refreshkey)
      })
    },
    getDynamicValue(row, propName) {
      let target = row.dynamicColumnList.filter(item => item.propName === propName)
      return target && target.length > 0 ? target[0].columnValue : ''
    },
    getTagText(row) {
      let text = '';
@@ -460,8 +485,9 @@
        createTime: null,
        updateTime: null,
        deleted: null,
        importantTag: null,
        provinceTag: null
        importantTag: false,
        provinceTag: false,
        deptTag: false,
      };
      this.resetForm("form");
    },