| | |
| | | <el-card class="search-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>查询条件</span> |
| | | <el-button |
| | | style="float: right; padding: 3px 0" |
| | | <el-button |
| | | style="float: right; padding: 3px 0" |
| | | type="text" |
| | | @click="toggleCollapse" |
| | | > |
| | | {{ collapse ? '展开' : '收起' }} |
| | | </el-button> |
| | | </div> |
| | | |
| | | |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="客户分类代码"> |
| | | <el-input |
| | | v-model="queryParams.HNumber" |
| | | <el-input |
| | | v-model="queryParams.HNumber" |
| | | placeholder="请输入客户分类代码" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="客户分类名称"> |
| | | <el-input |
| | | v-model="queryParams.HName" |
| | | <el-input |
| | | v-model="queryParams.HName" |
| | | placeholder="请输入客户分类名称" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="内容"> |
| | | <el-input |
| | | v-model="queryParams.ColContent" |
| | | <el-input |
| | | v-model="queryParams.ColContent" |
| | | placeholder="请输入内容" |
| | | clearable |
| | | /> |
| | |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="内容"> |
| | | <el-input |
| | | v-model="queryParams.ColContent1" |
| | | <el-input |
| | | v-model="queryParams.ColContent1" |
| | | placeholder="请输入内容" |
| | | clearable |
| | | /> |
| | |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="内容"> |
| | | <el-input |
| | | v-model="queryParams.ColContent2" |
| | | <el-input |
| | | v-model="queryParams.ColContent2" |
| | | placeholder="请输入内容" |
| | | clearable |
| | | /> |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column |
| | | <el-table-column |
| | | v-for="column in tableColumns" |
| | | :key="column.field" |
| | | :prop="column.field" |
| | |
| | | collapse: false, |
| | | loading: false, |
| | | treeLoading: false, |
| | | |
| | | |
| | | // 查询参数 |
| | | queryParams: { |
| | | HNumber: '', |
| | |
| | | Comparator2: '0', |
| | | ColContent2: '' |
| | | }, |
| | | |
| | | |
| | | // 树形数据 |
| | | treeData: [], |
| | | treeProps: { |
| | | children: 'children', |
| | | label: 'title' |
| | | }, |
| | | |
| | | |
| | | // 表格数据 |
| | | tableData: [], |
| | | tableColumns: [], |
| | | selectedRow: null, |
| | | multipleSelection: [], |
| | | |
| | | |
| | | // 分页 |
| | | pagination: { |
| | | page: 1, |
| | | size: 50, |
| | | total: 0 |
| | | }, |
| | | |
| | | |
| | | // 过滤方案 |
| | | currentFilterScheme: '', |
| | | HInterID_Choose: 0, |
| | | |
| | | |
| | | // 隐藏字段 |
| | | hiddenFields: ["HItemID"], |
| | | |
| | | baseURL: process.env.VUE_APP_BASE_URL || 'http://47.96.97.237/API/', |
| | | |
| | | baseURL: process.env.VUE_APP_BASE_API || 'http://47.96.97.237/API/', |
| | | user: 'admin', |
| | | HModName: 'Gy_CusType', |
| | | HModuleName: '客户分类列表维护' |
| | |
| | | this.loadTableData() |
| | | this.getDefaultFilterScheme() |
| | | }, |
| | | |
| | | |
| | | // 加载树形数据 |
| | | async loadTreeData() { |
| | | this.treeLoading = true |
| | | try { |
| | | const response = await axios.get(`${this.baseURL}/Gy_BadReason/Gy_CusTypeTreeListByLevel`) |
| | | |
| | | |
| | | if (response.data.count === 1) { |
| | | this.treeData = JSON.parse(response.data.data) |
| | | } else { |
| | |
| | | this.treeLoading = false |
| | | } |
| | | }, |
| | | |
| | | |
| | | // 加载表格数据 |
| | | async loadTableData() { |
| | | this.loading = true |
| | | try { |
| | | const sWhere = this.buildQueryCondition() |
| | | |
| | | |
| | | const response = await axios.get(`${this.baseURL}/Gy_BadReason/Gy_CusTypeList`, { |
| | | params: { |
| | | sWhere: sWhere, |
| | |
| | | size: this.pagination.size |
| | | } |
| | | }) |
| | | |
| | | |
| | | if (response.data.count === 1) { |
| | | this.tableData = response.data.data |
| | | this.pagination.total = response.data.total || response.data.data.length |
| | |
| | | this.loading = false |
| | | } |
| | | }, |
| | | |
| | | |
| | | // 构建查询条件 |
| | | buildQueryCondition() { |
| | | let sWhere = "" |
| | | |
| | | |
| | | // 基本查询条件 |
| | | if (this.queryParams.HNumber) { |
| | | sWhere += ` and 客户分类代码 like '%${this.queryParams.HNumber}%'` |
| | |
| | | if (this.queryParams.HName) { |
| | | sWhere += ` and 客户分类名称 like '%${this.queryParams.HName}%'` |
| | | } |
| | | |
| | | |
| | | // 处理三组过滤条件 |
| | | const filterGroups = [ |
| | | { colName: this.queryParams.ColName, comparator: this.queryParams.Comparator, content: this.queryParams.ColContent }, |
| | | { colName: this.queryParams.ColName1, comparator: this.queryParams.Comparator1, content: this.queryParams.ColContent1 }, |
| | | { colName: this.queryParams.ColName2, comparator: this.queryParams.Comparator2, content: this.queryParams.ColContent2 } |
| | | ] |
| | | |
| | | |
| | | filterGroups.forEach(filter => { |
| | | if (filter.colName && filter.colName !== "0" && |
| | | if (filter.colName && filter.colName !== "0" && |
| | | filter.comparator && filter.comparator !== "0") { |
| | | let com = "" |
| | | switch (filter.comparator) { |
| | |
| | | sWhere += ` and ${filter.colName} ${com}` |
| | | } |
| | | }) |
| | | |
| | | |
| | | // 添加打开类型的过滤条件 |
| | | sWhere += this.addSWhereByOpenType() |
| | | |
| | | |
| | | return sWhere |
| | | }, |
| | | |
| | | |
| | | // 根据打开类型添加条件 |
| | | addSWhereByOpenType() { |
| | | // 这里可以根据需要添加特定的过滤条件 |
| | | return " and 禁用标志 = '否' and 审核人 != ''" |
| | | }, |
| | | |
| | | |
| | | // 生成表格列 |
| | | generateTableColumns(columnList) { |
| | | this.tableColumns = [] |
| | | |
| | | |
| | | // 添加选择列 |
| | | this.tableColumns.push({ type: 'selection', fixed: 'left' }) |
| | | |
| | | |
| | | // 动态生成列 |
| | | if (columnList && columnList.length > 0) { |
| | | columnList.forEach(item => { |
| | |
| | | sortable: true, |
| | | width: 200 |
| | | } |
| | | |
| | | |
| | | // 根据字段类型设置不同的模板 |
| | | if (item.ColmType === 'DateTime') { |
| | | column.formatter = this.formatDate |
| | | } |
| | | |
| | | |
| | | this.tableColumns.push(column) |
| | | } |
| | | }) |
| | |
| | | this.tableColumns = [...this.tableColumns, ...defaultColumns] |
| | | } |
| | | }, |
| | | |
| | | |
| | | handleTreeNodeClick(data) { |
| | | let sWhere = "" |
| | | if (data.id !== '0') { |
| | |
| | | } |
| | | this.loadTableDataWithCondition(sWhere) |
| | | }, |
| | | |
| | | |
| | | async loadTableDataWithCondition(sWhere) { |
| | | this.loading = true |
| | | try { |
| | |
| | | user: this.user |
| | | } |
| | | }) |
| | | |
| | | |
| | | if (response.data.count === 1) { |
| | | this.tableData = response.data.data |
| | | this.pagination.total = response.data.total || response.data.data.length |
| | |
| | | this.loading = false |
| | | } |
| | | }, |
| | | |
| | | |
| | | handleQuery() { |
| | | this.pagination.page = 1 |
| | | this.loadTableData() |
| | | }, |
| | | |
| | | |
| | | handleReset() { |
| | | this.queryParams = { |
| | | HNumber: '', |
| | |
| | | this.pagination.page = 1 |
| | | this.loadTableData() |
| | | }, |
| | | |
| | | |
| | | // 刷新 |
| | | handleRefresh() { |
| | | this.loadTreeData() |
| | | this.loadTableData() |
| | | }, |
| | | |
| | | |
| | | |
| | | toggleCollapse() { |
| | | this.collapse = !this.collapse |
| | | }, |
| | | |
| | | |
| | | // 行双击事件 |
| | | handleRowDblClick(row) { |
| | | this.selectedRow = row |
| | | this.confirmSelection() |
| | | }, |
| | | |
| | | |
| | | // 行点击事件 |
| | | handleRowClick(row) { |
| | | this.$refs.table.toggleRowSelection(row) |
| | | this.selectedRow = row |
| | | }, |
| | | |
| | | |
| | | handleCustomerTypeCodeClick(row) { |
| | | console.log('点击客户分类代码:', row) |
| | | this.selectedRow = row |
| | | this.confirmSelection() |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | handleSelectionChange(selection) { |
| | | this.multipleSelection = selection |
| | | if (selection.length === 1) { |
| | | this.selectedRow = selection[0] |
| | | } |
| | | }, |
| | | |
| | | |
| | | |
| | | confirmSelection() { |
| | | if (this.selectedRow) { |
| | |
| | | this.$message.warning('请选择一条数据') |
| | | } |
| | | }, |
| | | |
| | | |
| | | // 退出 |
| | | handleExit() { |
| | | this.dialogVisible = false |
| | | }, |
| | | |
| | | |
| | | // 关闭对话框 |
| | | handleClose(done) { |
| | | this.$confirm('确认关闭?') |
| | |
| | | }) |
| | | .catch(_ => {}) |
| | | }, |
| | | |
| | | |
| | | // 分页大小改变 |
| | | handleSizeChange(size) { |
| | | this.pagination.size = size |
| | | this.pagination.page = 1 |
| | | this.loadTableData() |
| | | }, |
| | | |
| | | |
| | | // 当前页改变 |
| | | handleCurrentChange(page) { |
| | | this.pagination.page = page |
| | | this.loadTableData() |
| | | }, |
| | | |
| | | |
| | | // 格式化日期 |
| | | formatDate(dateString) { |
| | | if (!dateString) return '' |
| | |
| | | return dateString |
| | | } |
| | | }, |
| | | |
| | | |
| | | // 获取默认过滤方案 |
| | | async getDefaultFilterScheme() { |
| | | try { |
| | |
| | | Type: "Default" |
| | | } |
| | | }) |
| | | |
| | | |
| | | if (response.data.count === 1) { |
| | | const data = response.data.data[0] |
| | | this.HInterID_Choose = data.hmainid |
| | | this.currentFilterScheme = `当前过滤方案:${data.方案名称} (${data.备注})` |
| | | |
| | | |
| | | // 应用过滤条件 |
| | | this.applyFilterConditions(response.data.data) |
| | | } |
| | |
| | | console.error('获取过滤方案失败:', error) |
| | | } |
| | | }, |
| | | |
| | | |
| | | // 应用过滤条件 |
| | | applyFilterConditions(filterData) { |
| | | filterData.forEach(item => { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | |
| | | // 保存过滤方案 |
| | | handleSaveScheme() { |
| | | this.$message.info('保存方案功能') |
| | | }, |
| | | |
| | | |
| | | // 读取过滤方案 |
| | | handleReadScheme() { |
| | | this.$message.info('读取方案功能') |
| | | }, |
| | | |
| | | |
| | | // 列设置 |
| | | handleColumnSetting() { |
| | | this.$message.info('列设置功能') |
| | |
| | | .el-tree >>> .el-tree-node.is-current > .el-tree-node__content { |
| | | background-color: #aef0f7; |
| | | } |
| | | </style> |
| | | </style> |