| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 | <template>  <el-row>    <el-col :span="5">      <div class="box">        <el-scrollbar>          <basic-container>            <avue-tree              :option="treeOption"              :data="treeData"              @node-click="nodeClick"            />          </basic-container>        </el-scrollbar>      </div>    </el-col>    <el-col :span="19">      <basic-container>        <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"          @row-save="rowSave"          @search-change="searchChange"          @search-reset="searchReset"          @selection-change="selectionChange"          @current-change="currentChange"          @size-change="sizeChange"          @refresh-change="refreshChange"          @on-load="onLoad"          @tree-load="treeLoad"        >          <template slot="menuLeft">            <el-button              type="primary"              size="small"              icon="el-icon-plus"              @click="commodityImport()"            >导入            </el-button>            <el-button              type="success"              icon="el-icon-upload2"              size="small"              @click="derivation()"            >下载模板            </el-button>            <el-button              icon="el-icon-printer"              size="small"              type="primary"              @click.stop="openReport()"              >报 表            </el-button>          </template>          <template slot-scope="scope" slot="menu">            <el-button              type="text"              icon="el-icon-view"              size="small"              @click.stop="beforeOpenPage(scope.row, scope.index)"              >查看            </el-button>            <el-button              type="text"              icon="el-icon-edit"              size="small"              @click.stop="editOpen(scope.row, scope.index)"              >编辑            </el-button>            <el-button              type="text"              icon="el-icon-delete"              size="small"              @click.stop="rowDel(scope.row, scope.index)"              >删除            </el-button>          </template>        </avue-crud>        <report-dialog          :switchDialog="switchDialog"          @onClose="onClose()"        ></report-dialog>        <el-dialog title="导入商品"                   append-to-body                   :visible.sync="excelBox"                   width="555px">          <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter"/>        </el-dialog>      </basic-container>    </el-col>  </el-row></template><script>import option from "./configuration/mainList.json";import {  customerList,  typeSave,  detail,  deleteDetails,  getDeptLazyTree} from "@/api/basicData/customerInformation";import {getToken} from '@/util/auth';import reportDialog from "@/components/report-dialog/main";export default {  name: "customerInformation",  data() {    return {      reportQuery:{},      switchDialog: false,      treeDeptId:"",      form: {},      option: option,      parentId: 0,      dataList: [],      treeOption: {        nodeKey: "id",        lazy: true,        treeLoad: function(node, resolve) {          const parentId = node.level === 0 ? 0 : node.data.id;          getDeptLazyTree(parentId).then(res => {            resolve(              res.data.data.map(item => {                return {                  ...item,                  leaf: !item.hasChildren                };              })            );          });        },        addBtn: false,        menu: false,        size: "small",        props: {          labelText: "标题",          label: "title",          value: "value",          children: "children"        }      },      page: {        pageSize: 10,        pagerCount: 5,        total: 0      },      excelBox: false,      excelForm: {},      excelOption: {        submitBtn: false,        emptyBtn: false,        column: [          {            label: '模板上传',            prop: 'excelFile',            type: 'upload',            drag: true,            loadText: '模板上传中,请稍等',            span: 24,            propsHttp: {              res: 'data',            },            tip: '请上传 .xls,.xlsx 标准格式文件',            action: "",          }        ]      }    };  },  components: {    reportDialog  },  created() {    console.log("wangbadan");    // this.onLoad()  },  methods: {    commodityImport(){      if(this.treeDeptId === ''){        this.$message.warning("请选择客户类型")      }else{        this.excelBox = !this.excelBox        const column = this.findObject(this.excelOption.column, "excelFile");        column.action = "/api/blade-client/corpsdesc/import-desc?typeId="+this.treeDeptId+"";      }    },    derivation() {      this.$confirm("是否下载模板?", "提示", {        confirmButtonText: "确定",        cancelButtonText: "取消",        type: "warning"      }).then(() => {        window.open(`/api/blade-client/corpsdesc/export-template?${this.website.tokenHeader}=${getToken()}`);      });    },    uploadAfter(res, done, loading, column) {      window.console.log(column);      this.excelBox = false;      this.refreshChange();      done();    },    nodeClick(data) {      this.treeDeptId = data.id;      this.page.currentPage = 1;      this.onLoad(this.page);    },    //删除列表后面的删除按钮触发触发(row, index, done)    rowDel(row, index, done) {      this.$confirm("确定将选择数据删除?", {        confirmButtonText: "确定",        cancelButtonText: "取消",        type: "warning"      })        .then(() => {          return deleteDetails(row.id);        })        .then(() => {          this.$message({            type: "success",            message: "操作成功!"          });          this.page.currentPage = 1;          this.onLoad(this.page, { parentId: 0 });        });    },    //修改时的修改按钮点击触发    rowUpdate(row, index, done, loading) {      typeSave(row).then(        () => {          this.$message({            type: "success",            message: "操作成功!"          });          // 数据回调进行刷新          done(row);        },        error => {          window.console.log(error);          loading();        }      );    },    //新增修改时保存触发    rowSave(row, done, loading) {      typeSave(row).then(res => {        console.log(res);        done();      });    },    //查询全部    initData() {      customerList().then(res => {        console.log(this.form);        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();    },    //查看跳转页面    beforeOpenPage(row, index) {      this.$router.push({        path: "/detailsPageEdit",        query: { id: JSON.stringify(row.id) }      });    },    //新增跳转页面    beforeOpen(row, index) {      this.$router.push({        path: "/detailsPageEdit",        query: { id: JSON.stringify(row.id),treeDeptId:this.treeDeptId }      });    },    editOpen(row, index) {      this.$router.push({        path: "/detailsPageEdit",        query: { id: JSON.stringify(row.id) }      });    },    //点击新增时触发    beforeClose(done) {      this.parentId = "";      const column = this.findObject(this.option.column, "parentId");      column.value = "";      column.addDisabled = false;      done();    },    //点击搜索按钮触发    searchChange(params, done) {      console.log(params);      this.page.currentPage = 1;      this.onLoad(this.page, params);      done();    },    //搜索重置按钮触发    searchReset() {      this.treeDeptId = "";      this.onLoad(this.page);    },    selectionChange() {      console.log("1");    },    currentChange() {      console.log("1");    },    sizeChange() {      console.log("1");    },    refreshChange() {      this.onLoad(this.page);    },    onLoad(page, params = { parentId: 0 }) {      let queryParams = Object.assign({}, params, {        size: page.pageSize,        current: page.currentPage,        corpsTypeId: this.treeDeptId      });      customerList(queryParams).then(res => {        this.dataList = res.data.data.records;        this.page.total = res.data.data.total;      });    },    //树桩列点击展开触发    treeLoad(tree, treeNode, resolve) {      const parentId = tree.id;      customerList({ parentId: parentId }).then(res => {        resolve(res.data.data.records);      });    },    openReport() {      this.switchDialog =! this.switchDialog;    },    onClose(val) {      this.switchDialog = val;    }  }};</script><style scoped></style>
 |