yangfeng
2024-02-28 7979474ca5570945126d7f087fa4363272d964b4
src/views/other/commonDialog/SelectCommonDialog.vue
@@ -29,11 +29,14 @@
          </div>
        </div>
        <TableCommonView
          class="bg-list"
          ref="tableListRef"
          :table-list="tableList"
          :select-box="false"
          :select-box="editCommonConfig.isSelectBox"
          :selectBoxList="selectBoxList"
          @selCommonClick="selNameClick"
          @selTableCol="selTableCol"
          @getSelectArray="getSelectArray"
        >
        </TableCommonView>
        <div slot="footer" class="dialog-footer">
@@ -42,6 +45,10 @@
            <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
          </div>
        </div>
      </div>
      <div slot="footer" class="dialog-footer" v-if="editCommonConfig.isSelectBox">
        <el-button type="primary" size="small" @click="saveClick()">确定</el-button>
        <el-button size="small" @click="editConfig.editVisible = false">取消</el-button>
      </div>
    </el-dialog>
  </div>
@@ -66,12 +73,23 @@
      default: () => {
        return {
          editVisible: false,
          isSelectBox: false,
          title: "",
          clientId: 0,
          isRequest: true,
          client_name: "",
          tableInfomation: []
        }
      }
    },
    // 根据报价单查询产品
    quotationNumber: {
      type: [String, Number],
      default: ""
    },
    selectBoxList: {
      type: Array,
      default: () => []
    }
  },
  components: {},
@@ -92,7 +110,8 @@
      keyword: "",
      keywordType: "",
      tableColumn: [],
      showCol: []
      showCol: [],
      selectArray: []
    }
  },
  created() {
@@ -158,11 +177,17 @@
      } else if (this.editConfig.title === "报价单") {
        this.tableColumn = [
          { label: "报价单号", prop: "number", isClick: true, default: true }, // 报价单号
          { label: "销售负责人", prop: "member_name" } // 销售负责人
          { label: "报价名称", prop: "quotationName" },
          { label: "销售负责人", prop: "member_name" }, // 销售负责人
          { label: "客户名称", prop: "client_name" },
          { label: "所属业务机会", prop: "sale_chance_name" },
          { label: "报价单状态", prop: "quotationStatus" },
          { label: "合计", prop: "amountTotal" }
        ]
        this.showCol = ["报价单号", "销售负责人"]
        this.showCol = ["报价单号", "报价名称", "销售负责人", "客户名称", "所属业务机会", "报价单状态", "合计"]
        this.tableList = {
          selectIndex: true,
          tableInfomation: [],
          allcol: [],
          showcol: this.showCol,
@@ -190,10 +215,14 @@
        this.searchSel = { value: "serviceNumber", label: "服务单编号" }
      } else if (this.editConfig.title === "产品名称") {
        this.tableColumn = [
          { label: "产品名称", prop: "name", isClick: true, default: true }, // 产品名称
          { label: "产品编号", prop: "number" }
          { label: "产品名称", prop: "name", isClick: this.editCommonConfig.isSelectBox ? false : true, default: true }, // 产品名称
          { label: "产品编号", prop: "number" },
          { label: "销售单价", prop: "price" },
          { label: "单位", prop: "unit" },
          { label: "产品规格", prop: "specs" },
          { label: "型号", prop: "type" }
        ]
        this.showCol = ["产品名称", "产品编号"]
        this.showCol = ["产品名称", "产品编号", "销售单价", "单位", "产品规格", "型号"]
        this.tableList = {
          selectIndex: true,
          tableInfomation: [],
@@ -252,6 +281,14 @@
    selTableCol(val) {
      this.showcol = val
      this.tableList.tableColumn = this.setColumnVisible(val)
    },
    // 列表多选
    getSelectArray(val) {
      this.selectArray = val
    },
    saveClick() {
      this.$emit("getSelectArray", this.selectArray)
      this.editConfig.editVisible = false
    },
    // 请求数据
    async getData() {
@@ -327,6 +364,19 @@
    },
    // 报价单
    async getQuotationList() {
      if (!this.editConfig.isRequest) {
        this.tableList.tableInfomation = this.editConfig.tableInfomation.map((item) => {
          return {
            ...item,
            client_name: item.client.name,
            sale_chance_name: item.sale_chance.name,
            member_name: item.member.username,
            quotationStatus: item.quotation_status.name
          }
        })
        this.pagerOptions.totalCount = this.editConfig.count ? this.editConfig.count : 0
        return true
      }
      await getQuotationList({
        search_map: this.search_map,
        page: this.pagerOptions.currPage,
@@ -337,7 +387,10 @@
            const list = res.data.list.map((item) => {
              return {
                ...item,
                member_name: item.member.username
                client_name: item.client.name,
                sale_chance_name: item.sale_chance.name,
                member_name: item.member.username,
                quotationStatus: item.quotation_status.name
              }
            })
            this.tableList.tableInfomation = list || []
@@ -352,8 +405,7 @@
    // 销售明细单
    async getSalesDetailsList() {
      await getSalesDetailsList({
        keyword: this.keyword,
        keywordType: this.keywordType,
        clientId: Number(this.editCommonConfig.clientId),
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
@@ -408,12 +460,17 @@
    },
    // 产品名称
    async getProductList() {
      await getProductList({
      let params = {
        productName: this.keywordType === "产品名称" ? this.keyword : "",
        productNumber: this.keywordType === "产品编号" ? this.keyword : "",
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
      }
      // 根据报价单查询产品
      if (this.quotationNumber) {
        params.quotationNumber = this.quotationNumber
      }
      await getProductList(params).then((res) => {
        console.log(res.data)
        if (res.code === 200) {
          if (res.data.data && res.data.data.length > 0) {
@@ -433,8 +490,7 @@
    },
    async getSalesReturnList() {
      await getSalesReturnList({
        keyword: this.keyword,
        keywordType: this.keywordType,
        clientId: Number(this.editCommonConfig.clientId),
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
@@ -483,6 +539,9 @@
      this.editConfig.editVisible = false
    },
    selNameClick(row) {
      if (this.editCommonConfig.isSelectBox) {
        return true
      }
      this.editConfig.editVisible = false
      if (this.editConfig.title === "销售总单") {
        this.$emit("selClient", row, "master")
@@ -526,6 +585,9 @@
<style lang="scss" scoped>
.bg-view {
  margin: 10px;
  .bg-list {
    min-height: 370px;
  }
  .query-bg {
    margin-left: -20px;
    margin-bottom: 10px;
@@ -537,6 +599,7 @@
        width: 100px;
      }
    }
    .btn {
      float: right;
    }