| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 | <template>  <div>    <basic-container v-if="isShow">      <avue-crud :option="option"                 :data="dataList"                 ref="crud"                 v-model="form"                 :page.sync="page"                 :search.sync="search"                 @row-del="rowDel"                 :before-open="beforeOpen"                 :before-close="beforeClose"                 @search-change="searchChange"                 @search-reset="searchReset"                 @selection-change="selectionChange"                 @current-change="currentChange"                 @size-change="sizeChange"                 @refresh-change="refreshChange"                 @on-load="onLoad"                 @tree-load="treeLoad"                 @saveColumn="saveColumn">        <template slot="menuLeft" slot-scope="{size}">          <el-button type="success" :size="size" @click="copyOrder" :disabled="single">复制新单</el-button>          <el-button type="info" :size="size" icon="el-icon-printer">报 表</el-button>        </template>        <template slot="corpIdSearch">          <select-component            v-model="search.corpId"            :configuration="configuration"          ></select-component>        </template>        <template slot-scope="scope" slot="corpId">          {{ scope.row.strCorpName }}        </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>    </basic-container>    <detail-page      ref="detail"      @goBack="goBack"      :detailData="detailData"      v-else    ></detail-page>  </div></template><script>import option from "./configuration/mainList.json";import {customerList, deleteDetails} from "@/api/basicData/purchaseOrder"import detailPage from "./detailsPageEdit";export default {  name: "customerInformation",  props: {    detailData: {      type: Object    }  },  components: {    detailPage  },  data() {    return {      configuration: {        multipleChoices: false,        multiple: false,        collapseTags: false,        placeholder: "请点击右边按钮选择",        dicData: [],      },      search: {},      form: {},      option: {},      parentId: 0,      dataList: [],      page: {        pageSize: 10,        pagerCount: 5,        total: 0,      },      // 非单个禁用      single: true,      // 非多个禁用      multiple: true,      selection: [],      isShow: true,      detailData: {},    }  },  async created() {    // this.option = option    this.option = await this.getColumnData(this.getColumnName(17), option);    let i = 0;    this.option.column.forEach(item => {      if (item.search) i++    })    if (i % 4 !== 0){      const num = 4 - Number(i % 4)      this.option.searchMenuSpan = num * 6;      this.option.searchMenuPosition = "right";    }    this.option.column.forEach(item => {      if (item.pickerOptions) {        item.pickerOptions = {          shortcuts: [{            text: '最近一周',            onClick(picker) {              const end = new Date();              const start = new Date();              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);              picker.$emit('pick', [start, end]);            }          }, {            text: '最近一个月',            onClick(picker) {              const end = new Date();              const start = new Date();              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);              picker.$emit('pick', [start, end]);            }          }, {            text: '最近三个月',            onClick(picker) {              const end = new Date();              const start = new Date();              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);              picker.$emit('pick', [start, end]);            }          }]        }      }    })  },  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: "操作成功!"        });        this.page.currentPage = 1;        this.onLoad(this.page, {parentId: 0});      });    },    //查询全部    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.detailData = {        id: row.id,      };      this.isShow = false;    },    //新增跳转页面    beforeOpen(row, index) {      this.detailData = {        id: row.id,      };      this.isShow = false;    },    editOpen(row, index) {      this.detailData = {        id: row.id,      };      this.isShow = false;    },    // 复制新单    copyOrder() {      const id = this.selection[0].id;      this.detailData = {        copyId: id,      };      this.isShow = false;    },    //点击新增时触发    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() {      console.log('1')    },    selectionChange(list) {      this.selection = list;      this.single = list.length !== 1;    },    currentChange() {      console.log('1')    },    sizeChange() {      console.log('1')    },    refreshChange() {      console.log('1')    },    onLoad(page, params) {      if (params) {        if (params.requiredArrivalDate) {          this.$set(params, 'requiredArrivalStartDate', params.requiredArrivalDate[0]+ " " + "00:00:00")          this.$set(params, 'requiredArrivalEndDate', params.requiredArrivalDate[1]+ " " + "23:59:59")          this.$delete(params,'requiredArrivalDate')        }      }      let queryParams = Object.assign({tradeType: 'GN'}, params, {        size: page.pageSize,        current: page.currentPage,        // billType:'CG',        // 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);      });    },    goBack() {      this.detailData=this.$options.data().detailData      this.isShow = true;    },    //列保存触发    async saveColumn() {      /**       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码       */      const inSave = await this.saveColumnData(        this.getColumnName(17),        this.option      );      if (inSave) {        this.$message.success("保存成功");        //关闭窗口        this.$refs.crud.$refs.dialogColumn.columnBox = false;      }    },  }}</script><style scoped></style>
 |