| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 | <template>  <basic-container class="page-crad">    <avue-crud      :option="option"      :data="dataList"      ref="crud"      v-model="form"      :page.sync="page"      @row-del="rowDel"      @row-update="rowUpdate"      :before-open="beforeOpen"      :before-close="beforeClose"      :table-loading="loading"      @row-save="rowSave"      :search.sync="search"      @search-change="searchChange"      @search-reset="searchReset"      @selection-change="selectionChange"      @current-change="currentChange"      @size-change="sizeChange"      @refresh-change="refreshChange"      @saveColumn="saveColumn"      @resetColumn="resetColumn"      @on-load="onLoad"      @tree-load="treeLoad"    >      <template slot-scope="scope" slot="menu">        <el-button          type="text"          icon="el-icon-circle-plus-outline"          size="small"          @click.stop="handleAdd(scope.row, scope.index)"          >新增子项        </el-button>      </template>    </avue-crud>  </basic-container></template><script>import option from "./configuration/mainList.json";import {  customerList,  typeSave,  detail,  deleteDetails} from "@/api/basicData/customerCategory";import { customerParameter } from "@/enums/management-type";export default {  name: "customerInformation",  data() {    return {      form: {},      search:{},      option: option,      loading: false,      parentId: 0,      dataList: [],      page: {        pageSize: 20,        currentPage: 1,        total: 0,        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]      },      query: {}    };  },  async created() {    this.option = await this.getColumnData(this.getColumnName(141), option);  },  methods: {    //删除列表后面的删除按钮触发触发(row, index, done)    rowDel(row, index, done) {      this.$confirm("确定将选择数据删除?", {        confirmButtonText: "确定",        cancelButtonText: "取消",        type: "warning"      })        .then(() => {          return deleteDetails(row.id);        })        .then(() => {          this.$message({            type: "success",            message: "操作成功!"          });          // 数据回调进行刷新          done(row);        });    },    //修改时的修改按钮点击触发    rowUpdate(row, index, done, loading) {      row.corpType = customerParameter.code;      typeSave(row).then(        () => {          this.$message({            type: "success",            message: "操作成功!"          });          // 数据回调进行刷新          done(row);          this.onLoad(this.page);        },        error => {          window.console.log(error);          loading();        }      );    },    //新增修改时保存触发    rowSave(row, done, loading) {      row.corpType = customerParameter.code;      typeSave(row).then(        res => {          this.$message({            type: "success",            message: "操作成功!"          });          done(row);          this.onLoad(this.page);        },        error => {          window.console.log(error);          loading();        }      );    },    //查询全部    initData() {      customerList({ corpType: customerParameter.code }).then(res => {        const column = this.findObject(this.option.column, "parentId");        column.dicData = res.data.data.records;      });    },    //新增子项触发    handleAdd(row) {      this.parentId = row.id;      const column = this.findObject(this.option.column, "parentId");      column.value = row.id;      column.addDisabled = true;      this.$refs.crud.rowAdd();    },    //新增子项和新增触发查询所有    beforeOpen(done, type) {      if (["add", "edit"].includes(type)) {        this.initData();      }      if (["edit", "view"].includes(type)) {        detail(this.form.id).then(res => {          this.form = res.data.data;        });      }      done();    },    //点击新增时触发    beforeClose(done) {      this.parentId = "";      const column = this.findObject(this.option.column, "parentId");      column.value = "";      column.addDisabled = false;      done();    },    //点击搜索按钮触发    searchChange(params, done) {      this.query = params;      this.page.currentPage = 1;      params.parentId = 0;      this.onLoad(this.page, params);      done();    },    searchReset() {      console.log("1");    },    selectionChange() {      console.log("1");    },    currentChange() {      console.log("1");    },    sizeChange() {      console.log("1");    },    refreshChange() {      console.log("1");    },    onLoad(page, params = {}) {      this.loading = true;      const { createTimeA } = this.query;      let values = {        ...params,        corpType: customerParameter.code,        size: this.page.pageSize,        current: this.page.currentPage      };      if (createTimeA) {        values = {          ...params,          createTime: createTimeA[0] + " 00:00:00",          endTime: createTimeA[1] + " 23:59:59",          ...this.query,          size: this.page.pageSize,          current: this.page.currentPage        };        values.createTimeA = null;      }      values.parentId = 0;      customerList(values)        .then(res => {          this.dataList = res.data.data.records;          this.page.total = res.data.data.total;          if (this.page.total || this.page.total === 0) {            this.option.height = window.innerHeight - 210;          }        })        .finally(() => {          this.loading = false;        });    },    async saveColumn() {      /**       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码       */      const inSave = await this.saveColumnData(        this.getColumnName(141),        this.option      );      if (inSave) {        this.$nextTick(() => {          this.$refs.crud.doLayout();        });        this.$message.success("保存成功");        //关闭窗口        this.$refs.crud.$refs.dialogColumn.columnBox = false;      }    },    async resetColumn() {      this.option = option;      const inSave = await this.delColumnData(this.getColumnName(141), option);      if (inSave) {        this.$nextTick(() => {          this.$refs.crud.doLayout();        });        this.$message.success("重置成功");        this.$refs.crud.$refs.dialogColumn.columnBox = false;      }    },    //树桩列点击展开触发    treeLoad(tree, treeNode, resolve) {      const parentId = tree.id;      customerList({ parentId: parentId }).then(res => {        resolve(res.data.data.records);      });    }  }};</script><style scoped>.page-crad ::v-deep .basic-container__card {  height: 94.8vh;}</style>
 |