| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429 | <template>  <div>    <basic-container v-show="isShow">      <avue-crud :option="option"                 :data="dataList"                 ref="crud"                 v-model="form"                 :page.sync="page"                 :search.sync="search"                 :table-loading="loading"                 @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"                 @saveColumn="saveColumn"                 @resetColumn="resetColumn">        <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-scope="scope" slot="orgOrderNo">          <span style="color: #409EFF;cursor: pointer" @click.stop="beforeOpenPage(scope.row,scope.index)">{{ scope.row.orgOrderNo }}</span>        </template>        <template slot="corpIdSearch">          <crop-select            v-model="search.corpId"            corpType="GYS"          ></crop-select>        </template>        <template slot-scope="scope" slot="corpId">          <span style="color: #409EFF;cursor: pointer" @click.stop="beforeOpenPage(scope.row,scope.index)">{{ scope.row.corpsName }}</span>        </template>        <template slot="salesCompanySearch">          <select-component            v-model="search.salesCompany"            :configuration="configuration"          ></select-component>        </template>        <template slot-scope="scope" slot="salesCompany">          {{ scope.row.salesCompanyName }}        </template>        <template slot="storageIdSearch">          <warehouseSelect            v-model="search.storageId"            :configuration="configurationWarehouse"          ></warehouseSelect>        </template>        <template slot-scope="scope" slot="storageId">          {{ scope.row.storageName }}        </template>        <template slot-scope="scope" slot="createUser">          {{ scope.row.createUserName }}        </template>        <template slot-scope="scope" slot="menu"><!--          <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-if="!isShow"    ></detail-page>  </div></template><script>import option from "./configuration/mainList.json";import {customerList, typeSave, deleteDetails} from "@/api/basicData/receipt"import detailPage from "./detailsPageEdit";import { defaultDate } from "@/util/date";export default {  name: "customerInformation",  components: {    detailPage  },  data() {    return {      configuration: {        multipleChoices: false,        multiple: false,        collapseTags: false,        placeholder: "请点击右边按钮选择",        dicData: [],        clearable: true,      },      configurationWarehouse: {        multipleChoices: false,        multiple: false,        collapseTags: false,        placeholder: "请点击右边按钮选择",        dicData: [],        clearable: true,      },      form: {},      search: {},      loading: false,      option: {},      parentId: 0,      dataList: [],      page: {        pageSize: 10,        currentPage: 1,        total: 0,        pageSizes: [10,50,100,200,300]      },      // 非单个禁用      single: true,      // 非多个禁用      multiple: true,      selection: [],      isShow: true,      detailData: {},    }  },  async created() {    this.search.businessDate = defaultDate(1)    this.option = option      // this.option = await this.getColumnData(this.getColumnName(23), option);    let i = 0;    this.option.column.forEach(item => {      if (item.search) i++    })    if (i % 3 !== 0){      const num = 3 - Number(i % 3)      this.option.searchMenuSpan = num * 8;      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]);            }          }]        }      }    })  },  activated() {    // this.isShow = true;    setTimeout(() => {      if (this.$route.query.form) {        this.detailData = {          form: this.$route.query.form,        };        this.$store.commit("DOM_IN_DETAIL");        this.isShow = false;      }    }, 100);  },  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});      });    },    //修改时的修改按钮点击触发    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) {      const data = {        moduleName: 'sh',        tableName: 'business_delivery',        billId: row.id,        no: localStorage.getItem('browserID')      }      this.checkLock(data).then(res => {        if (res.data.code == 200) {          this.detailData = {            seeDisabled: true,            id: row.id,          };          this.isShow = false;          this.$store.commit("DOM_IN_DETAIL");        }      }).catch(err => {        this.detailData = {          id: row.id,          seeDisabled: true,          opDisabled: true        };        this.isShow = false;        this.$store.commit("DOM_IN_DETAIL");      })    },    //新增跳转页面    beforeOpen(row, index) {      this.detailData = {        id: row.id,      };      this.isShow = false;      this.$store.commit("DOM_IN_DETAIL");    },    editOpen(row, index) {      this.detailData = {        id: row.id,      };      this.isShow = false;      this.$store.commit("DOM_IN_DETAIL");    },    // 复制新单    copyOrder() {      const id = this.selection[0].id;      this.detailData = {        copyId: id,      };      this.isShow = false;      this.$store.commit("DOM_IN_DETAIL");    },    //点击新增时触发    beforeClose(done) {      this.parentId = "";      const column = this.findObject(this.option.column, "parentId");      column.value = "";      column.addDisabled = false;      done();    },    //点击搜索按钮触发    searchChange(params, done) {      if (params.businessDate) {        this.$set(params, 'businessStartDate', params.businessDate[0]+ " " + "00:00:00")        this.$set(params, 'businessEndDate', params.businessDate[1]+ " " + "23:59:59")        this.$delete(params,'businessDate')      }      if (params.createTime) {        this.$set(params, 'createStartTime', params.createTime[0]+ " " + "00:00:00")        this.$set(params, 'createEndTime', params.createTime[1]+ " " + "23:59:59")        this.$delete(params,'createTime')      }      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(currentPage) {      this.page.currentPage = currentPage;    },    sizeChange(pageSize) {      this.page.pageSize = pageSize;    },    refreshChange() {      this.page.currentPage = 1;      this.onLoad(this.page,this.search);    },    onLoad(page, params) {      let data = this.gobackSearch(params)      let queryParams = Object.assign({}, data, {        size: page.pageSize,        current: page.currentPage,        billType:'SH',        corpsTypeId: this.treeDeptId      })      this.loading = true;      customerList(queryParams).then(res => {        this.dataList = res.data.data.records        this.page.total = res.data.data.total      }).finally(() => {        this.loading = false;      })    },    //树桩列点击展开触发    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      if (this.$route.query.form) {        this.$router.$avueRouter.closeTag();        this.$router.push({          path: "/businessManagement/receipt/index"        });      }      this.isShow = true;      this.$store.commit("DOM_OUT_DETAIL");      this.onLoad(this.page, this.search)    },    gobackSearch(params) {      params = Object.assign({}, this.search)      if (params.businessDate && params.businessDate != '') {        this.$set(params, 'businessStartDate', params.businessDate[0]+ " " + "00:00:00")        this.$set(params, 'businessEndDate', params.businessDate[1]+ " " + "23:59:59")        this.$delete(params,'businessDate')      }      if (params.createTime && params.createTime != '') {        this.$set(params, 'createStartTime', params.createTime[0]+ " " + "00:00:00")        this.$set(params, 'createEndTime', params.createTime[1]+ " " + "23:59:59")        this.$delete(params,'createTime')      }      return params    },    //列保存触发    async saveColumn() {      /**       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码       */      const inSave = await this.saveColumnData(        this.getColumnName(23),        this.option      );      if (inSave) {        this.$message.success("保存成功");        //关闭窗口        this.$refs.crud.$refs.dialogColumn.columnBox = false;      }    },    async resetColumn() {      this.option = option;      const inSave = await this.delColumnData(        this.getColumnName(23),        option      );      if (inSave) {        this.$message.success("重置成功");        //关闭窗口        this.$refs.crud.$refs.dialogColumn.columnBox = false;      }    },  }}</script><style scoped></style>
 |