zuozhengqing
2023-11-02 a7f37d5a76f80df4bad37a58ad95ab41ba0be22e
src/views/other/commonDialog/SelectCommonDialog.vue
@@ -28,10 +28,19 @@
            <el-button type="primary" size="mini" disabled>快速创建</el-button> -->
          </div>
        </div>
        <TableCommonView ref="tableListRef" :table-list="tableList" :select-box="false" @selCommonClick="selNameClick">
        <TableCommonView
          ref="tableListRef"
          :table-list="tableList"
          :select-box="false"
          @selCommonClick="selNameClick"
          @selTableCol="selTableCol"
        >
        </TableCommonView>
        <div slot="footer" class="dialog-footer">
          <div class="remark">说明:支持多字段模糊查询,仅显示符合条件的前5条数据</div>
          <!-- <div class="remark">说明:支持多字段模糊查询,仅显示符合条件的前5条数据</div> -->
          <div class="btn-pager">
            <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
          </div>
        </div>
      </div>
    </el-dialog>
@@ -39,9 +48,12 @@
</template>
<script>
import { getProductListFromGrpc } from "@/api/productManage/product"
import { getProductListFromGrpc, getProductList } from "@/api/productManage/product"
import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
export default {
  name: "EditSelCommonDialog",
  mixins: [pageMixin],
  props: {
    editCommonConfig: {
      type: Object,
@@ -52,13 +64,17 @@
          tableInfomation: []
        }
      }
    },
    sign: {
      type: String,
      default: ""
    }
  },
  components: {},
  computed: {},
  data() {
    return {
      dialogWidth: "50%",
      dialogWidth: "40%",
      editConfig: this.editCommonConfig,
      queryInput: "",
      select: "全部字段",
@@ -70,7 +86,14 @@
      search_map: {},
      searchSel: {},
      keyword: "",
      keywordType: ""
      keywordType: "",
      showProductCol: ["产品名称", "产品编号"],
      tableProductColumn: [
        { label: "产品名称", prop: "name", isClick: true },
        { label: "产品编号", prop: "number" }
      ],
      showCol: [],
      tableColumn: []
    }
  },
  created() {
@@ -78,17 +101,30 @@
    this.getData()
  },
  methods: {
    setColumnVisible(showCol) {
      return this.tableColumn.map((ele) => {
        return {
          ...ele,
          isShowColumn: showCol.includes(ele.label)
        }
      })
    },
    setTable() {
      if (this.editConfig.title === "产品名称") {
        this.tableList = {
          tableInfomation: [],
          tableColumn: [
            { label: "产品名称", prop: "name", isClick: true },
            { label: "产品编号", prop: "number" }
          ]
        }
        this.searchSel = { value: "name", label: "产品名称" }
        this.showCol = this.showProductCol
        this.tableColumn = this.tableProductColumn
      }
      this.tableList = {
        tableInfomation: [],
        selectIndex: true,
        highlight: true,
        ref: "tableListRef",
        showcol: this.showCol,
        allcol: [],
        tableColumn: this.setColumnVisible(this.showCol)
      }
      this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
      this.searchOptions = []
      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
        const label = this.tableList.tableColumn[i].label
@@ -96,6 +132,18 @@
        this.searchOptions.push({ value: value, label: label })
      }
    },
    selTableCol(val) {
      this.showcol = val;
      this.tableList.tableColumn = this.setColumnVisible(val);
    },
    // setColumnVisible(showCol){
    //   return  this.tableColumn.map(ele=>{
    //     return {
    //       ...ele,
    //       isShowColumn:showCol.includes(ele.label)
    //     }
    //   })
    // },
    // 请求数据
    async getData() {
      this.loading = true
@@ -105,9 +153,12 @@
    },
    // 产品名称
    async getProductList() {
      await getProductListFromGrpc({
        page: 1,
        pageSize: 100
      let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc
      await fn({
        productName: this.keywordType === "产品名称" ? this.keyword : "",
        productNumber: this.keywordType === "产品编号" ? this.keyword : "",
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
        console.log(res.data)
        if (res.data.code === 200) {
@@ -117,7 +168,8 @@
                ...item
              }
            })
            this.tableList.tableInfomation = list.slice(0, 5) || []
            this.tableList.tableInfomation = list
            this.pagerOptions.totalCount = res.data.data.total
          } else {
            this.tableList.tableInfomation = []
          }
@@ -179,9 +231,16 @@
  cursor: pointer;
}
.dialog-footer {
  height: 40px;
  line-height: 40px;
  height: 50px;
  line-height: 50px;
  color: red;
  .btn-pager {
    display: flex;
    margin-top: 0px;
    .page {
      margin-left: auto;
    }
  }
}
::v-deep {
  .input-with-select .el-input-group__prepend {