zhanghua
2024-11-26 556a06bbd866af3ef2dde46dce3f587ec58c3ca9
src/views/projectEngineering/projectLibrary/index.vue
@@ -189,6 +189,7 @@
    </el-form>
    <el-table
      :key="tableKey"
      ref="elTable"
      style="margin-top: 20px"
      v-loading="loading"
@@ -199,43 +200,42 @@
      :show-overflow-tooltip="true">
      <el-table-column type="selection" width="55" align="center"/>
      <!-- 动态列 -->
        <el-table-column
          v-for="item in columns"
          :key="item.id"
          v-if="item.visible"
          :prop="item.id"
          :label="item.label"
          v-bind="item"
          :min-width="item.minWidth"
        >
          <template slot-scope="scope">
            <!-- 使用具名插槽 -->
            <template v-if="item.slotName">
              <!-- projectStatus插槽 -->
              <template v-if="item.slotName === 'projectStatus'">
                <el-text class="mx-1">{{ '自定义样式' }}</el-text>
              </template>
              <!-- projectColorCode插槽 -->
              <template v-if="item.slotName === 'projectColorCode'">
                <el-text class="mx-1 has-dot">{{ '自定义样式' }}<span class="dot" style="margin-left: 5px"></span></el-text>
              </template>
              <!-- projectType插槽 -->
              <template v-if="item.slotName === 'projectType'">
                <el-text class="mx-1">{{ '自定义样式' }}</el-text>
              </template>
              <!-- investType插槽 -->
              <template v-if="item.slotName === 'investType'">
                <el-text class="mx-1">{{ '自定义样式' }}</el-text>
              </template>
              <!-- planStartTime插槽 -->
              <template v-if="item.slotName === 'planStartTime'">
                {{ '自定义样式' }}
              </template>
      <el-table-column
        v-for="item in columns"
        :key="item.id"
        v-if="item.visible"
        :prop="item.id"
        :label="item.label"
        :min-width="item.minWidth"
      >
        <template slot-scope="scope">
          <!-- 使用具名插槽 -->
          <template v-if="item.slotName">
            <!-- projectStatus插槽 -->
            <template v-if="item.slotName === 'projectStatus'">
              <el-text class="mx-1">{{ '自定义样式' }}</el-text>
            </template>
            <!-- 默认显示 -->
            <span v-else>{{ scope.row[item.id] }}</span>
            <!-- projectColorCode插槽 -->
            <template v-if="item.slotName === 'projectColorCode'">
              <el-text class="mx-1 has-dot">{{ '自定义样式' }}<span class="dot" style="margin-left: 5px"></span></el-text>
            </template>
            <!-- projectType插槽 -->
            <template v-if="item.slotName === 'projectType'">
              <el-text class="mx-1">{{ '自定义样式' }}</el-text>
            </template>
            <!-- investType插槽 -->
            <template v-if="item.slotName === 'investType'">
              <el-text class="mx-1">{{ '自定义样式' }}</el-text>
            </template>
            <!-- planStartTime插槽 -->
            <template v-if="item.slotName === 'planStartTime'">
              {{ '自定义样式' }}
            </template>
          </template>
        </el-table-column>
          <!-- 默认显示 -->
          <span v-else>{{ scope.row[item.id] }}</span>
        </template>
      </el-table-column>
      <!-- 操作列 -->
      <el-table-column label="操作" width="140" align="center" >
@@ -324,6 +324,7 @@
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      tableKey: 0,
      open: false,
      timeRange: [],
      // 查询参数
@@ -353,7 +354,7 @@
          {required: true, message: "项目名称不能为空", trigger: "blur"}
        ],
        projectStatus: [
          {required: true, message: "项目状态  (0未开工,1已开工,2已竣工,3暂停)不能为空", trigger: "change"}
          {required: true, message: "项目状态不能为空", trigger: "change"}
        ],
      }
    };
@@ -402,17 +403,18 @@
        return item;
      });
    },
    handleUpdateSort(data) {
    handleUpdateSort(row) {
      console.log( this.columns, '排序前的列');
      this.columns = this.columns.map(item => {
        if (item.key === data.key) {
          item.serialNumber = data.serialNumber;
        if (item.key === row.key) {
          return row;
        }
        return item;
      });
      this.defaultColumns = JSON.parse(JSON.stringify(this.columns)).sort((a, b) => a.index - b.index);
      this.columns.sort((a, b) => a.serialNumber - b.serialNumber);
      //强制table渲染
      this.tableKey = this.tableKey +1;
      console.log( this.columns, '排序后的列');
    },
    // 关闭文件处理弹框的方法