Эх сурвалжийг харах

作业指导书问题处理

Glying 11 сар өмнө
parent
commit
0f075e7fd8

+ 0 - 174
zkqy-ui/src/views/amichi/materiel/components/TableHeaderRender.vue

@@ -1,174 +0,0 @@
-<template>
-  <el-popover
-    placement="bottom"
-    width="200"
-    trigger="manual"
-    v-model="visible"
-    @show="showPopover"
-    popper-class="table-header-popover"
-  >
-    <div class="table-header-popover-template">
-      <el-input
-        placeholder="请输入内容"
-        v-model="value"
-        size="small"
-        clearable
-        @keyup.enter.native="confirm"
-        ref="sInput"
-      >
-        <!-- <el-button slot="append" icon="el-icon-search" @click="confirm"> -->
-        <!-- </el-button> -->
-      </el-input>
-    </div>
-    <div class="el-table-filter__bottom">
-      <button @click="confirm">筛选</button>
-      <button @click="resetData">重置</button>
-    </div>
-    <span
-      slot="reference"
-      style="margin-left: 5px"
-      @click.stop="popClick"
-      v-click-outside="closeOver"
-    >
-      <i
-        class="filter-icon el-icon-search"
-        :style="{ color: iconColor ? '#9a4b9b' : '#909399' }"
-      ></i>
-      <!-- <i class="el-icon-search" :style="{'color':iconColor}" ></i> -->
-      <!-- <svg
-        viewBox="64 64 896 896"
-        data-icon="search"
-        width="1em"
-        height="1em"
-        fill="currentColor"
-        :style="{
-          color: iconColor ? '#9A4B9B' : '',
-          'margin-right': '2px',
-          cursor: 'pointer',
-        }"
-      >
-        <path
-          d="M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0 0 11.6 0l43.6-43.5a8.2 8.2 0 0 0 0-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z"
-        ></path>
-      </svg> -->
-    </span>
-  </el-popover>
-</template>
-
-<script>
-export default {
-  name: "tableHeaderRender",
-  data() {
-    return {
-      // input 绑定的值
-      value: "",
-      visible: false,
-      iconColor: false,
-    };
-  },
-  props: {
-    tableColumn: {
-      type: Object,
-      default: () => {},
-    },
-    columnProp: {
-      type: String,
-      default: "",
-    },
-    defaultValue: {
-      type: String,
-      default: "",
-    },
-    inputFilteredMap: {
-      type: Object,
-      default: () => {},
-    },
-  },
-  created() {
-    this.value = this.defaultValue;
-    this.iconColor = this.value.trim() ? true : false;
-  },
-  methods: {
-    showPopover() {
-      this.$nextTick(() => {
-        this.$refs.sInput.focus();
-      });
-    },
-    resetData() {
-      console.log("reset");
-      this.value = "";
-      this.visible = false;
-      this.iconColor = false;
-      const self = this;
-      if (this.inputFilteredMap[self.columnProp]) {
-        delete this.inputFilteredMap[self.columnProp];
-      }
-      self.$emit("resetChangeMethod", this.tableColumn, self.columnProp);
-    },
-    closeOver() {
-      this.visible = false;
-    },
-    popClick(e) {
-      // e.stopPropagation()
-      this.visible = !this.visible;
-    },
-    confirm() {
-      this.visible = false;
-      if (this.value.trim()) {
-        this.iconColor = true;
-        this.inputFilteredMap[this.columnProp] = this.value;
-        this.$emit(
-          "filterInputMethod",
-          this.tableColumn,
-          this.inputFilteredMap
-        );
-      } else {
-        // 如果搜索input输入为空,等同重置
-        this.resetData();
-      }
-    },
-  },
-
-  directives: {
-    clickOutside: {
-      bind(el, binding, vnode) {
-        function clickHandler(e) {
-          // 这里判断点击的元素是否是本身,是本身,则返回
-          if (el.contains(e.target)) {
-            return false;
-          }
-          // 判断指令中是否绑定了函数
-          if (binding.expression) {
-            // 如果绑定了函数 则调用那个函数,此处binding.value就是handleClose方法
-            binding.value(e);
-          }
-        }
-        // 给当前元素绑定个私有变量,方便在unbind中可以解除事件监听
-        el.__vueClickOutside__ = clickHandler;
-        document.addEventListener("click", clickHandler);
-      },
-      update() {},
-      unbind(el, binding) {
-        // 解除事件监听
-        document.removeEventListener("click", el.__vueClickOutside__);
-        delete el.__vueClickOutside__;
-      },
-    },
-  },
-};
-</script>
-
-<style>
-.filter-icon {
-  font-size: 14px;
-  color: #909399;
-  cursor: pointer;
-  font-weight: 400;
-}
-.table-header-popover {
-  padding: 0;
-}
-.table-header-popover .table-header-popover-template {
-  margin: 10px;
-}
-</style>

+ 0 - 779
zkqy-ui/src/views/amichi/materiel/components/operateTable.vue

@@ -1,779 +0,0 @@
-<template>
-  <div class="operateTable">
-    <el-dropdown
-      size="small"
-      trigger="click"
-      v-if="options.columnsSelect || options.columnsTreeSelect"
-      class="column-dropdown"
-    >
-      <el-button style="padding: 9px 10px!important" size="small">
-        <i style="font-size: 12px" class="el-icon-menu"></i>
-        <i class="el-icon-arrow-down el-icon--right"></i>
-      </el-button>
-      <el-dropdown-menu slot="dropdown">
-        <div style="margin:10px;" class="caoz_ft_warp" v-if="isInit||isSave">
-          <el-button
-            v-if="isInit"
-            size="small"
-            type="primary"
-            plain
-            style="width:70px;"
-            @click="initColumns(true)"
-          >初始化</el-button>
-          <el-button
-            v-if="isSave"
-            size="small"
-            type="primary"
-            plain
-            style="width:70px;"
-            @click="$emit('saveSettingColumns',checkedList)"
-           >保存</el-button>
-        </div>
-        <div style="margin:10px;" class="caoz_ft_warp">
-          <el-input size="small" placeholder="请输入关键字" v-model="cloumnKeyword" clearable></el-input>
-        </div>
-        <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange" style="padding-left:10px;">Select All</el-checkbox>
-        <el-checkbox-group
-          v-if="!options.columnsTreeSelect"
-          v-model="checkedList"
-          style="max-height: 300px"
-          @change="handleCheckedCitiesChange"
-        >
-          <div class="checkboxScorll">
-            <template v-for="(option, index) in checkBoxOptions">
-              <template v-if="cloumnKeyword && option.toLowerCase().indexOf(cloumnKeyword.toLowerCase())>-1">
-                <el-checkbox
-                  :key="index"
-                  class="checkbox"
-                  :label="option"
-                ></el-checkbox>
-              </template>
-              <template v-else-if="!cloumnKeyword">
-                <el-checkbox
-                  :key="index"
-                  class="checkbox"
-                  :label="option"
-                ></el-checkbox>
-              </template>
-              <template v-else></template>
-            </template>
-          </div>
-        </el-checkbox-group>
-        <div v-else class="checkboxTree">
-          <el-tree
-            ref="tree"
-            :check-on-click-node="true"
-            :data="treeColumn"
-            show-checkbox
-            node-key="label"
-            :default-expanded-keys="defaultExpanded"
-            :default-checked-keys="defaultChecked"
-            :props="{
-              children: 'children',
-              label: 'label',
-            }"
-            @check="checkChange"
-            style="max-height: 300px; overflow-y: auto"
-          >
-          </el-tree>
-        </div>
-      </el-dropdown-menu>
-    </el-dropdown>
-    <el-table
-      id="iTable"
-      ref="operateTable"
-      border
-      :data="dataSource"
-      :stripe="options.stripe"
-      :highlight-current-row="options.highlightCurrentRow"
-      :max-height="options.maxHeight"
-      :size="options.size"
-      :fit="options.fit"
-      :show-header="options.showHeader"
-      :empty-text="options.emptyText"
-      :default-sort="options.defaultSort"
-      :row-key="getRowKeys"
-      :default-expand-all="options.defaultExpandAll"
-      :tree-props="options.treeProps"
-      :lazy="options.lazy"
-      :load="load"
-      @cell-mouse-enter="cellMouseEnter"
-      @cell-mouse-leave="cellMouseLeave"
-      @cell-click="cellClick"
-      @cell-dblclick="cellDblclick"
-      @row-click="rowClick"
-      @row-contextmenu="rowContextmenu"
-      @row-dblclick="rowDblclick"
-      @header-click="headerClick"
-      @header-contextmenu="headerContextmenu"
-      @sort-change="sortChange"
-      @select="select"
-      @select-all="selectAll"
-      @selection-change="checkboxSelected"
-      @filter-change="filterChange"
-    >
-      <slot name="expandRow"></slot>
-      <!-- 复选框 -->
-      <el-table-column
-        :reserve-selection="options.reserveSelection"
-        :key="0"
-        type="selection"
-        :selectable="selectable"
-        width="40"
-        align="left"
-        v-if="options.showCheckBox"
-        :resizable="false"
-      >
-      </el-table-column>
-      <el-table-column
-        ref="fixedColumn"
-        label="操作"
-        align="left"
-        :width="operates.dropDown ? '50' : operates.width"
-        :fixed="operates.fixed"
-        :min-width="operates.minwidth"
-        :resizable="operates.resizable"
-        v-if="operates.list.length > 0"
-      >
-        <template slot-scope="scope">
-          <!-- 操作列 不折叠 全为icon-->
-          <div
-            class="operate-group"
-            v-if="!operates.dropDown && !operates.isText"
-          >
-            <template
-              v-for="item in operates.list[0] instanceof Array
-                ? operates.list[scope.$index]
-                : operates.list"
-            >
-              <div class="item" v-if="item.show" :key="item.id">
-                <el-switch
-                  v-if="item.type === 'switch'"
-                  v-model="scope.row[item.prop]"
-                  active-color="#13ce66"
-                  @change="item.method(scope.$index, scope.row)"
-                ></el-switch>
-                <el-tooltip
-                  v-else-if="item.type === 'tooltipIcon'"
-                  :enterable="false"
-                  effect="light"
-                  placement="bottom"
-                >
-                  <div slot="content">{{ item.tooltip }}</div>
-                  <el-button
-                    type="primary"
-                    plain
-                    :icon="item.icon"
-                    size="mini"
-                    :disabled="item.disabled"
-                    @click="item.method(scope.$index, scope.row)"
-                  ></el-button>
-                </el-tooltip>
-                <el-button
-                  v-else-if="item.type === 'icon'"
-                  type="primary"
-                  plain
-                  :icon="item.icon"
-                  size="mini"
-                  :disabled="item.disabled"
-                  @click="item.method(scope.$index, scope.row)"
-                ></el-button>
-              </div>
-            </template>
-          </div>
-          <!-- 操作列 不折叠 全为文字-->
-          <div
-            class="operate-group"
-            v-if="!operates.dropDown && operates.isText"
-          >
-            <template
-              v-for="item in operates.list[0] instanceof Array
-                ? operates.list[scope.$index]
-                : operates.list"
-            >
-              <div class="item" v-if="item.show" :key="item.id">
-                <el-button
-                  size="small"
-                  type="text"
-                  :disabled="item.disabled"
-                  @click.native.prevent="item.method(scope.$index, scope.row)"
-                  >{{ item.label }}</el-button
-                >
-              </div>
-            </template>
-          </div>
-          <!-- 操作列 折叠下拉-->
-          <div class="operate-group" v-else-if="operates.dropDown">
-            <el-dropdown
-              @command="handleCommand"
-              trigger="hover"
-              placement="bottom-start"
-            >
-              <span class="el-dropdown-link">
-                <i class="el-icon-s-unfold" style="font-size: 16px;"></i>
-              </span>
-              <!-- 根据operates.list 来渲染操作列下拉的内容 -->
-              <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item
-                  v-for="(item, index) in operates.list[0] instanceof Array
-                    ? operates.list[scope.$index]
-                    : operates.list"
-                  :disabled="item.disabled"
-                  :key="index"
-                  :command="composeValue(item, scope.row, scope.$index)"
-                  >{{ item.label }}</el-dropdown-item
-                >
-              </el-dropdown-menu>
-            </el-dropdown>
-          </div>
-        </template>
-      </el-table-column>
-      <!--region 数据列-->
-      <template v-for="column in columns">
-        <!-- :filter-method="column.filters ? column.filterMethod : undefined" -->
-        <!-- v-if="
-            options.columnsSelect || options.columnsTreeSelect
-              ? checkedList.includes(column.label)
-              : true
-          " -->
-        <el-table-column
-          v-if="
-            options.columnsSelect || options.columnsTreeSelect
-              ? checkedList.includes(column.label)
-              : true
-          "
-          :prop="column.prop"
-          :key="column.label"
-          :label="column.label"
-          align="left"
-          :width="column.width"
-          :min-width="column.minwidth"
-          :resizable="column.resizable"
-          :sortable="column.sortable"
-          :filters="column.filters"
-          :filter-method="column.filters ? column.filterMethod : undefined"
-          :filtered-value="column.filteredValue"
-          :fixed="column.fixed"
-          :column-key="column.prop"
-        >
-          <template slot="header" slot-scope="scope"
-            >{{ column.label }}
-            <TableHeaderRender
-              v-if="column.filterInput"
-              :columnProp="column.prop"
-              :tableColumn="scope.column"
-              :defaultValue="column.defaultValue"
-              :inputFilteredMap="inputFilteredMap"
-              @filterInputMethod="filterInputMethod"
-              @resetChangeMethod="resetChangeMethod"
-            ></TableHeaderRender>
-          </template>
-          <!-- :filtered-value="column.filteredValue" -->
-          <template slot-scope="scope">
-            <!-- 如果传进来的column没有render函数执行以下代码 -->
-            <template v-if="!column.render">
-              <!-- 如果传进来的column没有render函数但有formatter函数执行以下代码 -->
-              <template v-if="column.formatter">
-                <span v-html="column.formatter(scope.row, column)"></span>
-              </template>
-              <!-- 如果传进来的column既没有render函数也没有formatter函数执行以下代码 -->
-              <template v-else>
-                <span>{{ scope.row[column.prop] }}</span>
-              </template>
-            </template>
-            <!-- 如果传进来的column有render函数执行以下代码 -->
-            <template v-else>
-              <expand-dom
-                :column="column"
-                :row="scope.row"
-                :render="column.render"
-                :index="scope.$index"
-              ></expand-dom>
-            </template>
-          </template>
-        </el-table-column>
-      </template>
-      <!--endregion-->
-    </el-table>
-  </div>
-</template>
-
-<script>
-import TableHeaderRender from "./TableHeaderRender.vue";
-export default {
-  name: "OperateTable",
-  props: {
-    // 表格的数据源
-    dataSource: {
-      type: Array,
-      default: () => [],
-    },
-    // 需要展示的列
-    columns: {
-      type: Array,
-      default: () => [{}],
-    },
-    // table 表格的控制参数
-    options: {
-      type: Object,
-      default: () => {
-        return {
-          stripe: true, // 是否为斑马纹 table
-        };
-      },
-    },
-    // 操作按钮组 === label: 文本,show:是否显示,icon:按钮图标,disabled:是否禁用,method:回调方法, 等等
-    operates: {
-      type: Object,
-      default: () => {
-        return {
-          list: [],
-        };
-      },
-    },
-    defaultSelectedColumn: {
-      type: Array,
-      default: () => [],
-    },
-    defaultColumn: {
-      type: Array,
-      default: () => [],
-    },
-    totalColumn: {
-      type: Array,
-      default: () => [],
-    },
-    treeColumn: {
-      type: Array,
-      default: () => [],
-    },
-    defaultChecked: {
-      type: Array,
-      default: () => [],
-    },
-    defaultExpanded: {
-      type: Array,
-      default: () => [],
-    },
-    isInit: {
-      type: Boolean,
-      default: false
-    },
-    isSave: {
-      type: Boolean,
-      default: false
-    }
-  },
-  components: {
-    TableHeaderRender,
-    expandDom: {
-      functional: true,
-      props: {
-        row: Object,
-        render: Function,
-        index: Number,
-        column: {
-          type: Object,
-          default: null,
-        },
-      },
-      render: (h, ctx) => {
-        const params = {
-          row: ctx.props.row,
-          index: ctx.props.index,
-        };
-        if (ctx.props.column) params.column = ctx.props.column;
-        return ctx.props.render(h, params);
-      },
-    },
-  },
-  data() {
-    return {
-      cloumnKeyword:"",//字段关键字搜索
-      isIndeterminate:true,//全选状态
-      checkAll:false,//字段全选
-      checkBoxOptions: [], // 全部表头
-      checkedList: [], // 选中表头
-      count: 0, // 用于判断表格是否刚渲染
-      isCheckBoxSort: false, // 用于判断是否是由自定义数据列引发的排序
-      // 以下是之前放于vuex中用于记录状态
-      preCheckedList: [], // 前一次的checkbox
-      // 排序的状态
-      sort: {
-        prop: "",
-        order: "",
-        label: "",
-      },
-      // 筛选的状态
-      checkBoxFilteredMap: {},
-      // input 所有的筛选
-      inputFilteredMap: {},
-      // columns label及prop对应的键值对
-      columnsLabelMap: {}
-    };
-  },
-  watch: {
-    // 监听defaultColumn,若这个发生变化,代表传入的默认column变化,即数据表格发生了切换
-    defaultColumn() {
-      this.initColumns();
-    },
-    checkedList() {
-      // if(this.checkedList.length>0){
-      //   this.$emit("selectedColumn",this.checkedList);
-      // }
-      // 处理当点击checkbox显示的是排序列时,恢复排序列的显示
-      let showLabelArray = this.checkboxShowLabel();
-      console.log("showLabelArray", showLabelArray);
-      // if (value.length !== 0) {
-      //   value.map((item) => {
-      //     this.handleStatusRevert(item);
-      //   });
-      this.columns.map((column, index) => {
-        this.handleStatusRevert(column, index, showLabelArray);
-      });
-    },
-  },
-  created() {
-    this.normalizeColumnsLabelMap();
-  },
-  mounted() {
-    if (!this.options.columnsTreeSelect) {
-      this.checkedList = this.$props.defaultColumn;
-      this.checkBoxOptions = this.$props.totalColumn;
-    } else {
-      this.checkedList = this.$refs.tree
-        .getCheckedNodes()
-        .map((item) => item.label);
-    }
-    // 挂载时将defaultSort属性传给vuex
-    this.handleDefaultSort();
-  },
-  // 动态切换表头的时候闪烁是因为表头重新计算高度导致的,以下方法解决此bug
-  beforeUpdate() {
-    this.$nextTick(() => {
-      //在数据加载完,重新渲染表格
-      this.$refs["operateTable"].doLayout();
-    });
-  },
-  methods: {
-    //全选字段
-    handleCheckAllChange(val){
-      this.checkedList = val ? this.checkBoxOptions : [];
-      this.isIndeterminate = false;
-    },
-    //反选
-    handleCheckedCitiesChange(value){
-      let checkedCount = value.length;
-      this.checkAll = checkedCount === this.checkBoxOptions.length;
-      this.isIndeterminate = checkedCount > 0 && checkedCount < this.checkBoxOptions.length;
-    },
-    //初始化字段
-    initColumns(flag){
-      if(flag){
-        this.checkedList = this.$props.defaultSelectedColumn;
-      }else{
-        this.checkedList = this.$props.defaultColumn;
-      }
-      this.checkBoxOptions = this.$props.totalColumn;
-    },
-    // 处理判断checkbox 点击时,显示的是哪个字段名
-    checkboxShowLabel() {
-      // 判断显示的字段是哪个字段,如果是树形,可能有多个,故更改为数组接收
-      let value = [];
-      console.log("this.checkedList", this.checkedList);
-      if (this.count === 0) {
-        this.saveCheckedList(this.checkedList);
-        // this.$componentsStore.commit("table/saveCheckedList", this.checkedList);
-        this.count++;
-      } else {
-        if (this.checkedList.length > this.preCheckedList.length) {
-          for (let index = 0; index < this.checkedList.length; index++) {
-            if (!this.preCheckedList.includes(this.checkedList[index])) {
-              value.push(this.checkedList[index]);
-            }
-            // if (this.checkedList[index] !== this.preCheckedList[index]) {
-            //   value = this.checkedList[index];
-            // }
-          }
-        }
-        this.saveCheckedList(this.checkedList);
-        // this.$componentsStore.commit("table/saveCheckedList", this.checkedList);
-      }
-      return value;
-    },
-    // 处理sort\filterd由隐藏变为显示状态的恢复
-    handleStatusRevert(column, index, showLabelArray) {
-      let compareLabel = column.label;
-      if (showLabelArray.includes(compareLabel)) {
-        // 如果是有checkbox 筛选的字段,恢复筛选
-        let filteredValue =
-          this.checkBoxFilteredMap[this.columnsLabelMap[compareLabel]];
-        // 如果是有input 筛选的字段,恢复筛选
-        let filteredInputValue =
-          this.inputFilteredMap[this.columnsLabelMap[compareLabel]];
-        this.columns[index].filteredValue = filteredValue;
-        this.columns[index].defaultValue = filteredInputValue;
-        this.$nextTick(() => {
-          this.$refs.operateTable.store.states.columns.map((column) => {
-            if (column.filteredValue && column.filteredValue.length) {
-              this.$refs.operateTable.store.commit("filterChange", {
-                column,
-                values: column.filteredValue,
-                silent: true,
-              });
-            }
-          });
-        });
-      } else {
-        this.columns[index].filteredValue = [];
-        this.columns[index].defaultValue = "";
-      }
-      // 如果是有排序的字段,恢复排序
-      if (showLabelArray.includes(this.sort.label)) {
-        this.$nextTick(() => {
-          //在数据加载完,重新渲染表格
-          this.isCheckBoxSort = true;
-          this.$refs.operateTable.sort(this.sort.prop, this.sort.order);
-        });
-      }
-      /**
-      // 如果是有checkbox 筛选的字段,恢复筛选
-      let filteredValue = this.checkBoxFilteredMap[this.columnsLabelMap[value]];
-      // 如果是有input 筛选的字段,恢复筛选
-      let filteredInputValue = this.inputFilteredMap[
-        this.columnsLabelMap[value]
-      ];
-      for (let i = 0; i < this.columns.length; i++) {
-        if (this.columns[i].label === value) {
-          this.columns[i].filteredValue = filteredValue;
-          this.columns[i].defaultValue = filteredInputValue;
-          this.$nextTick(() => {
-            this.$refs.operateTable.store.states.columns.map((column) => {
-              if (column.filteredValue && column.filteredValue.length) {
-                console.log("!11");
-                this.$refs.operateTable.store.commit("filterChange", {
-                  column,
-                  values: column.filteredValue,
-                  silent: true,
-                });
-              }
-            });
-          });
-        } else {
-          this.columns[i].filteredValue = [];
-          this.columns[i].defaultValue = "";
-        }
-      }
-      // for (let i = 0; i < this.columns.length; i++) {
-      //   if (this.columns[i].label === value) {
-      //     this.columns[i].defaultValue = filteredInputValue;
-      //   } else {
-      //     this.columns[i].defaultValue = "";
-      //   }
-      // }
-      // 如果是有排序的字段,恢复排序
-      if (value === this.sort.label) {
-        this.$nextTick(() => {
-          //在数据加载完,重新渲染表格
-          this.isCheckBoxSort = true;
-          this.$refs.operateTable.sort(this.sort.prop, this.sort.order);
-        });
-      }
-      */
-    },
-    // 处理生成columns 的label prop键值对
-    normalizeColumnsLabelMap() {
-      this.columns.map((column) => {
-        this.columnsLabelMap[column.label] = column.prop;
-      });
-    },
-    filterInputMethod(column, inputFilteredMap) {
-      console.log("column, inputFilteredMap", column, inputFilteredMap);
-      this.inputFilteredMap = inputFilteredMap;
-      this.$emit("filterInputMethod", column, inputFilteredMap);
-    },
-    resetChangeMethod(tableColumn, columnProp) {
-      this.$emit("resetChangeMethod", tableColumn, this.inputFilteredMap);
-    },
-    cellMouseEnter(row, column, cell, event) {
-      this.$emit("cell-mouse-enter", row, column, cell, event);
-    },
-    cellMouseLeave(row, column, cell, event) {
-      this.$emit("cell-mouse-leave", row, column, cell, event);
-    },
-    cellClick(row, column, cell, event) {
-      this.$emit("cell-click", row, column, cell, event);
-    },
-    cellDblclick(row, column, cell, event) {
-      this.$emit("cell-dblclick", row, column, cell, event);
-    },
-    rowClick(row, column, event) {
-      this.$emit("row-click", row, column, event);
-    },
-    rowContextmenu(row, column, event) {
-      this.$emit("row-contextmenu", row, column, event);
-    },
-    rowDblclick(row, column, event) {
-      this.$emit("row-dblclick", row, column, event);
-    },
-    headerClick(column, event) {
-      this.$emit("header-click", column, event);
-    },
-    headerContextmenu(column, event) {
-      this.$emit("header-contextmenu", column, event);
-    },
-    sortChange(sortObj) {
-      this.changeSort(sortObj);
-      // this.$componentsStore.commit("table/changeSort", sortObj);
-      if (!this.isCheckBoxSort) {
-        this.$emit("sort-change", sortObj);
-      }
-      // 还原isCheckBoxSort
-      this.isCheckBoxSort = false;
-    },
-    handleDefaultSort() {
-      if (this.options.defaultSort !== undefined) {
-        let column = { label: "" };
-        // for (let index = 0; index < this.columns.length; index++) {
-        //   if (this.columns[index].prop === this.options.defaultSort.prop) {
-        //     column.label = this.columns[index].label;
-        //     break;
-        //   }
-        // }
-        column.label = this.columnsLabelMap[this.options.defaultSort.prop];
-        this.changeSort({
-          ...this.options.defaultSort,
-          column,
-        });
-      }
-    },
-    // 点击操作的下拉项目后触发事件
-    handleCommand(command) {
-      if (command.method) {
-        command.method(command.index, command.row, command.label);
-      }
-    },
-    // 点击dropDown传参方法
-    composeValue(item, row, index) {
-      return {
-        label: item.label,
-        row: row,
-        index: index,
-        method: item.method,
-      };
-    },
-    select(selection, row) {
-      this.$emit("select", selection, row);
-    },
-    selectAll(selection) {
-      this.$emit("select-all", selection);
-    },
-    checkboxSelected(selection) {
-      this.$emit("selection-change", selection);
-    },
-    selectable(row, index) {
-      let data = true;
-      this.$emit("selectable", row, index, (val) => {
-        data = val;
-      });
-      return data;
-    },
-    getRowKeys(row) {
-      let data;
-      for (let index = 0; index < this.dataSource.length; index++) {
-        if (row === this.dataSource[index]) {
-          data = index;
-          break;
-        }
-      }
-      // this.dataSource.map((item, index) => {
-      //   if (row === item) {
-      //     data = index;
-      //   }
-      // });
-      this.$emit("row-key", row, (val) => {
-        data = val;
-      });
-      return data;
-    },
-    load(tree, treeNode, resolve) {
-      this.$emit("load", tree, treeNode, resolve);
-    },
-    // 记录表格总的筛选状态,用于列显示隐藏时保存checkbox状态
-    filterChange(filters) {
-      let currKey = Object.keys(filters)[0];
-      if (filters[currKey].length === 0) {
-        delete this.checkBoxFilteredMap[currKey];
-      } else {
-        this.checkBoxFilteredMap[currKey] = filters[currKey];
-      }
-      this.$emit("filter-change", filters);
-    },
-    checkChange(nodeObj, checkObj) {
-      this.checkedList = checkObj.checkedNodes.map((item) => {
-        return item.label;
-      });
-    },
-    // 之前写在vuex里的方法
-    changeSort(sort) {
-      this.sort.prop = sort.prop;
-      this.sort.order = sort.order;
-      this.sort.label = sort.column.label;
-    },
-    saveCheckedList(preCheckedList) {
-      this.preCheckedList = preCheckedList;
-    },
-  },
-};
-</script>
-
-<style>
-    .operateTable{
-        position: relative;
-        width: 100%;
-    }
-    .operateTable .column-dropdown{
-        position: absolute;
-        right: 0px;
-        top: -42px;
-        z-index: 99;
-    }
-    .caoz_ft_warp{
-      text-align: center;
-    }
-    .caoz_ft_warp .el-input.is-active .el-input__inner, .caoz_ft_warp .el-input__inner:focus{
-        border-color: #9A4B9B;
-        outline: 0;
-    }
-    .el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner {
-        background-color: #9a4b9b;
-        border-color: #9a4b9b;
-    }
-    .el-checkbox__inner:hover {
-        border-color: #9A4B9B;
-    }
-    .el-checkbox__input.is-focus .el-checkbox__inner{
-        border-color: #9A4B9B;
-    }
-    .el-checkbox__input.is-checked+.el-checkbox__label {
-        color: #9A4B9B;
-    }
-    .checkboxScorll .el-checkbox__input.is-checked + .el-checkbox__label {
-        color: #666;
-    }
-    .column-dropdown .el-button{margin-right: 0 !important;min-width:0;}
-    .column-dropdown .el-button:focus, .el-button:hover{
-        color: #9A4B9B;
-        border-color: #e1c9e1;
-        background-color: #f5edf5;
-    }
-    .checkboxScorll {
-        max-height: 300px;
-        overflow-y: auto;
-    }
-    .checkboxScorll .checkbox {
-        display: block;
-        margin-top: 10px;
-        padding-left: 20px;
-    }
-</style>

+ 5 - 3
zkqy-ui/src/views/amichi/materiel/index.vue

@@ -120,7 +120,9 @@
 <!--    /** 型号 */-->
 <!--    @Excel(name = "型号")-->
 <!--    private String modelNumber;-->
-      <div>111</div>
+      <div>
+
+      </div>
       <el-table
         class="sysDictInfoTable"
         :data="materialsList"
@@ -138,7 +140,7 @@
           width="180"
           >
         </el-table-column>
-        <el-table-column
+        <!-- <el-table-column
           prop="specification"
           align="center"
           label="规格">
@@ -262,7 +264,7 @@
           prop="actualSubitemUsage"
           align="center"
           label="实际子项用量">
-        </el-table-column>
+        </el-table-column> -->
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template slot-scope="scope">
             <el-dropdown @command="(command)=>{handleCommand(command, scope.row)}">

+ 4 - 2
zkqy-ui/src/views/amichi/operationInstruction/components/attentionComp.vue

@@ -18,8 +18,10 @@ export default {
   name: 'attentionComp',
   props: {
     attentData: {
-      type: String,
-      default: ''
+      type: Array,
+      default: function () {
+        return [] // 或者[]
+      }
     },
     isBorderBottom: {
       type: Boolean,

+ 3 - 1
zkqy-ui/src/views/amichi/operationInstruction/components/auxiliaryTools.vue

@@ -25,7 +25,9 @@ export default {
   props: {
     tableData: {
       type: Object,
-      default: {}
+      default: function () {
+        return {} // 或者[]
+      }
     },
     isBorderTop: {
       type: Boolean,

+ 13 - 5
zkqy-ui/src/views/amichi/operationInstruction/components/parameterComp.vue

@@ -136,15 +136,19 @@ export default {
   props: {
     tableData: {
       type: Array,
-      default: []
+      default: function () {
+        return [] // 或者[]
+      }
     },
     type: {
-      type: Number,
-      default: 1
+      type: String,
+      default: '1'
     },
     headData: {
       type: Array,
-      default: []
+      default: function () {
+        return []// 或者[]
+      }
     },
     title: {
       type: String,
@@ -152,7 +156,9 @@ export default {
     },
     objData: {
       type: Object,
-      default: {}
+      default: function () {
+        return {} // 或者[]
+      }
     }
   },
   data() {
@@ -186,9 +192,11 @@ table {
 tr:nth-last-child(1) {
   padding-bottom: 30px;
 }
+
 .td {
   height: 21px;
 }
+
 th,
 td {
   border: 1px solid #333;

+ 7 - 3
zkqy-ui/src/views/amichi/operationInstruction/components/stepImgComp.vue

@@ -77,11 +77,15 @@
   </div>
 </template>
 <script>
+import { string } from '@/components/updateModule/k-form-design/lib/k-form-design.common';
+
 export default {
   props: {
     data: {
       type: Array,
-      default: []
+      default: function () {
+        return [] // 或者[]
+      }
     },
     height: {
       type: String,
@@ -92,8 +96,8 @@ export default {
       default: ''
     },
     col: {
-      type: Number,
-      default: 3
+      type: String,
+      default: '3'
     }
   },
   data() {

+ 3 - 1
zkqy-ui/src/views/amichi/operationInstruction/components/titleComp.vue

@@ -63,7 +63,9 @@ export default {
   props: {
     titleData: {
       type: Object,
-      default: {}
+      default: function () {
+        return {} // 或者[]
+      }
     },
     title: {
       type: String,