src/views/other/commonDialog/SelectCommonDialog.vue
@@ -29,11 +29,13 @@
          </div>
        </div>
        <TableCommonView
        class="bg-list"
          ref="tableListRef"
          :table-list="tableList"
          :select-box="false"
          :select-box="editCommonConfig.isSelectBox"
          @selCommonClick="selNameClick"
          @selTableCol="selTableCol"
          @getSelectArray="getSelectArray"
        >
        </TableCommonView>
        <div slot="footer" class="dialog-footer">
@@ -42,6 +44,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>
@@ -55,6 +61,7 @@
import { getServiceOrderList } from "@/api/serviceManage/clientServiceOrder"
import { getProductList } from "@/api/common/other"
import { getSalesReturnList } from "@/api/sales/salesReturn"
import { getSubOrderList } from "@/api/sales/subOrder"
import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
export default {
  name: "EditSelCommonDialog",
@@ -65,12 +72,20 @@
      default: () => {
        return {
          editVisible: false,
          isSelectBox:false,
          title: "",
          clientId: 0,
          isRequest:true,
          client_name: "",
          tableInfomation: []
        }
      }
    }
    },
    // 根据报价单查询产品
    quotationNumber:{
      type:[String,Number],
      default:''
    },
  },
  components: {},
  computed: {},
@@ -90,13 +105,16 @@
      keyword: "",
      keywordType: "",
      tableColumn: [],
      showCol: []
      showCol: [],
      selectArray:[],
    }
  },
  created() {
    this.search_map = {
      client_id: this.editConfig.clientId
    }
    this.keyword = this.editConfig.client_name
    this.keywordType = "客户名称"
    this.setTable()
    this.getData()
  },
@@ -154,11 +172,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,
@@ -186,10 +210,12 @@
        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: "specs" },
          { label: "型号", prop: "type" }
        ]
        this.showCol = ["产品名称", "产品编号"]
        this.showCol = ["产品名称", "产品编号",'规格','型号']
        this.tableList = {
          selectIndex: true,
          tableInfomation: [],
@@ -214,6 +240,20 @@
          tableColumn: this.setColumnVisible(this.showCol)
        }
        this.searchSel = { value: "number", label: "销售退货单编号" }
      } else if (this.editConfig.title === "销售子单") {
        this.tableColumn = [
          { label: "单据编号", prop: "number", isClick: true, default: true }, // 单据编号
          { label: "负责人", prop: "member_name" } // 负责人
        ]
        this.showCol = ["单据编号", "负责人"]
        this.tableList = {
          selectIndex: true,
          tableInfomation: [],
          allcol: [],
          showcol: this.showCol,
          tableColumn: this.setColumnVisible(this.showCol)
        }
        this.searchSel = { value: "number", label: "单据编号" }
      }
      this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
      this.searchOptions = []
@@ -235,6 +275,14 @@
      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() {
      this.loading = true
@@ -252,6 +300,8 @@
        this.getProductList()
      } else if (this.editConfig.title === "销售退货单") {
        this.getSalesReturnList()
      } else if (this.editConfig.title === "销售子单") {
        this.getSubOrderList()
      }
    },
    // 销售总单
@@ -307,6 +357,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,
@@ -317,7 +380,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 || []
@@ -332,8 +398,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) => {
@@ -388,22 +453,27 @@
    },
    // 产品名称
    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.data.code === 200) {
          if (res.data.data.data && res.data.data.data.length > 0) {
            const list = res.data.data.data.map((item) => {
        if (res.code === 200) {
          if (res.data.data && res.data.data.length > 0) {
            const list = res.data.data.map((item) => {
              return {
                ...item
              }
            })
            this.tableList.tableInfomation = list || []
            this.pagerOptions.totalCount = res.data.data.count
            this.pagerOptions.totalCount = res.data.count
          } else {
            this.tableList.tableInfomation = []
          }
@@ -413,8 +483,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) => {
@@ -435,10 +504,37 @@
        this.loading = false
      })
    },
    // 销售子单
    async getSubOrderList() {
      await getSubOrderList({
        search_map: this.search_map,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
        if (res.code === 200) {
          if (res.data.list && res.data.list.length > 0) {
            const list = res.data.list.map((item) => {
              return {
                ...item,
                member_name: item.member.username
              }
            })
            this.tableList.tableInfomation = list || []
            this.pagerOptions.totalCount = res.data.count
          } else {
            this.tableList.tableInfomation = []
          }
        }
        this.loading = false
      })
    },
    handleClose() {
      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")
@@ -454,6 +550,8 @@
        this.$emit("selClient", row, "productName")
      } else if (this.editConfig.title === "销售退货单") {
        this.$emit("selClient", row, "salesReturn")
      } else if (this.editConfig.title === "销售子单") {
        this.$emit("selClient", row, "subbill")
      }
    },
    // 搜索
@@ -480,6 +578,9 @@
<style lang="scss" scoped>
.bg-view {
  margin: 10px;
  .bg-list{
    min-height:370px;
    }
  .query-bg {
    margin-left: -20px;
    margin-bottom: 10px;
@@ -491,6 +592,7 @@
        width: 100px;
      }
    }
    .btn {
      float: right;
    }