haoxuan
2023-12-26 eed27d3000e127c433fd45609d0d5e5d06b7868c
src/views/other/commonDialog/SelectCommonDialog.vue
@@ -31,9 +31,10 @@
        <TableCommonView
          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 +43,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 +60,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,11 +71,19 @@
      default: () => {
        return {
          editVisible: false,
          isSelectBox:false,
          title: "",
          clientId: 0,
          client_name: "",
          tableInfomation: []
        }
      }
    }
    },
    // 根据报价单查询产品
    quotationNumber:{
      type:[String,Number],
      default:''
    },
  },
  components: {},
  computed: {},
@@ -89,10 +103,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()
  },
@@ -182,7 +202,7 @@
        this.searchSel = { value: "serviceNumber", label: "服务单编号" }
      } else if (this.editConfig.title === "产品名称") {
        this.tableColumn = [
          { label: "产品名称", prop: "name", isClick: true, default: true }, // 产品名称
          { label: "产品名称", prop: "name", isClick: this.editCommonConfig.isSelectBox?false:true, default: true }, // 产品名称
          { label: "产品编号", prop: "number" }
        ]
        this.showCol = ["产品名称", "产品编号"]
@@ -210,6 +230,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 = []
@@ -231,6 +265,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
@@ -248,6 +290,8 @@
        this.getProductList()
      } else if (this.editConfig.title === "销售退货单") {
        this.getSalesReturnList()
      } else if (this.editConfig.title === "销售子单") {
        this.getSubOrderList()
      }
    },
    // 销售总单
@@ -279,8 +323,8 @@
      await getServiceContractList({
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: 0,
        pageSize: 0
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
        if (res.code === 200) {
          if (res.data.list && res.data.list.length > 0) {
@@ -292,7 +336,8 @@
                serviceContractStatus: item.serviceContractStatus.name
              }
            })
            this.tableList.tableInfomation = list.slice(0, 5) || []
            this.tableList.tableInfomation = list || []
            this.pagerOptions.totalCount = res.data.count
          } else {
            this.tableList.tableInfomation = []
          }
@@ -304,8 +349,8 @@
    async getQuotationList() {
      await getQuotationList({
        search_map: this.search_map,
        page: 0,
        pageSize: 0
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
        if (res.code === 200) {
          if (res.data.list && res.data.list.length > 0) {
@@ -315,7 +360,8 @@
                member_name: item.member.username
              }
            })
            this.tableList.tableInfomation = list.slice(0, 5) || []
            this.tableList.tableInfomation = list || []
            this.pagerOptions.totalCount = res.data.count
          } else {
            this.tableList.tableInfomation = []
          }
@@ -326,10 +372,9 @@
    // 销售明细单
    async getSalesDetailsList() {
      await getSalesDetailsList({
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: 0,
        pageSize: 0
        clientId:Number(this.editCommonConfig.clientId),
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
        if (res.code === 200) {
          if (res.data.list && res.data.list.length > 0) {
@@ -340,7 +385,8 @@
                member_name: item.Member.username
              }
            })
            this.tableList.tableInfomation = list.slice(0, 5) || []
            this.tableList.tableInfomation = list || []
            this.pagerOptions.totalCount = res.data.count
          } else {
            this.tableList.tableInfomation = []
          }
@@ -353,8 +399,8 @@
      await getServiceOrderList({
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: 0,
        pageSize: 0
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
        if (res.code === 200) {
          if (res.data.data && res.data.data.length > 0) {
@@ -370,7 +416,8 @@
                serviceOrderStatus_name: item.ServiceOrderStatus_name
              }
            })
            this.tableList.tableInfomation = list.slice(0, 5) || []
            this.tableList.tableInfomation = list || []
            this.pagerOptions.totalCount = res.data.count
          } else {
            this.tableList.tableInfomation = []
          }
@@ -380,21 +427,27 @@
    },
    // 产品名称
    async getProductList() {
      await getProductList({
      let params={
        productName: this.keywordType === "产品名称" ? this.keyword : "",
        productNumber: this.keywordType === "产品编号" ? this.keyword : "",
        page: 1,
        pageSize: 5
      }).then((res) => {
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }
       // 根据报价单查询产品
      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.slice(0, 5) || []
            this.tableList.tableInfomation = list || []
            this.pagerOptions.totalCount = res.data.count
          } else {
            this.tableList.tableInfomation = []
          }
@@ -404,10 +457,9 @@
    },
    async getSalesReturnList() {
      await getSalesReturnList({
        keyword: this.keyword,
        keywordType: this.keywordType,
        page: 0,
        pageSize: 0
        clientId:Number(this.editCommonConfig.clientId),
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
        if (res.code === 200) {
          if (res.data.list && res.data.list.length > 0) {
@@ -417,7 +469,32 @@
                salesReturnStatus_name: item.SalesReturnStatus.name
              }
            })
            this.tableList.tableInfomation = list.slice(0, 5) || []
            this.tableList.tableInfomation = list || []
            this.pagerOptions.totalCount = res.data.count
          } else {
            this.tableList.tableInfomation = []
          }
        }
        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 = []
          }
@@ -429,6 +506,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")
@@ -444,6 +524,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")
      }
    },
    // 搜索