| | |
| | | <template> |
| | | <el-dialog |
| | | title="选择结算方式" |
| | | :visible.sync="dialogVisible" |
| | | width="80%" |
| | | :before-close="handleClose" |
| | | append-to-body |
| | | > |
| | | <div class="settle-style-dialog"> |
| | | <!-- 搜索区域 --> |
| | | <el-card class="search-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>查询条件</span> |
| | | <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="6"> |
| | | <el-form-item label="代码"> |
| | | <el-input |
| | | v-model="queryParams.HNumber" |
| | | placeholder="请输入代码" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="名称"> |
| | | <el-input |
| | | v-model="queryParams.HName" |
| | | placeholder="请输入名称" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="结算方式代码"> |
| | | <el-input |
| | | v-model="queryParams.HNumber2" |
| | | placeholder="请输入结算方式代码" |
| | | clearable |
| | | style="width: 190px" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" @click="handleQuery">查询</el-button> |
| | | <el-button icon="el-icon-refresh" @click="handleReset">重置</el-button> |
| | | <el-button type="primary" @click="handleResCnz" style="margin-left: 10px">重新同步</el-button> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- 高级搜索 --> |
| | | <el-collapse-transition> |
| | | <div v-show="!collapse"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="过滤字段"> |
| | | <el-select v-model="queryParams.ColName" placeholder="请选择字段" style="width: 100%"> |
| | | <el-option value="0" label=""></el-option> |
| | | <el-option |
| | | v-for="column in visibleColumns" |
| | | :key="column.field" |
| | | :label="column.label" |
| | | :value="column.field" |
| | | /> |
| | | <div style="padding: 10px; position: relative;"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="98px" class="searchBox"> |
| | | <el-row> |
| | | <!-- <el-form-item label="部门代码" prop="HNumber" style="margin-left: 100px;"> |
| | | <el-input v-model="queryParams.HNumber" placeholder="请输入部门代码" @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="部门名称" prop="HName"> |
| | | <el-input v-model="queryParams.HName" placeholder="请输入部门名称" @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> --> |
| | | <el-form-item label="组织"> |
| | | <el-select v-model="queryParams.HOrgID" placeholder="请选择"> |
| | | <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label-width="78px"> |
| | | <el-button type="primary" icon="el-icon-search" @click="handleQuery"> |
| | | 搜 索</el-button> |
| | | <el-button type="primary" icon="el-icon-refresh" @click="resetQuery">重 置</el-button> |
| | | </el-form-item> |
| | | </el-row> |
| | | <el-collapse v-model="activeSeach"> |
| | | <el-collapse-item title="更多" name="1"> |
| | | <el-card class="box-card"> |
| | | <div slot="header" class="clearfix"><span>过滤</span></div> |
| | | <div> |
| | | <el-form-item label-width="0"> |
| | | <el-row> |
| | | <el-col :span="7"> |
| | | <el-select v-model="queryParams.ColName1" placeholder="请选择"> |
| | | <span v-for="(item, index) in btList" :key="index"> |
| | | <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option> |
| | | </span> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="比较符"> |
| | | <el-select v-model="queryParams.Comparator" placeholder="请选择比较符" style="width: 100%"> |
| | | <el-option value="0" label=""></el-option> |
| | | <el-option label="=" value="=" /> |
| | | <el-option label=">=" value=">=" /> |
| | | <el-option label=">" value=">" /> |
| | | <el-option label="<=" value="<=" /> |
| | | <el-option label="<" value="<" /> |
| | | <el-option label="<>" value="<>" /> |
| | | <el-option label="包含" value="7" /> |
| | | <el-option label="左包含" value="8" /> |
| | | <el-option label="右包含" value="9" /> |
| | | <el-option label="不包含" value="10" /> |
| | | </el-col> |
| | | <el-col :span="6" style="padding: 0 10px;"> |
| | | <el-select v-model="queryParams.Comparator1" placeholder="请选择"> |
| | | <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label" |
| | | :value="item.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="内容"> |
| | | <el-input |
| | | v-model="queryParams.ColContent" |
| | | placeholder="请输入内容" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> |
| | | <el-col :span="11"> |
| | | <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable |
| | | @keyup.enter.native="handleQuery" /> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-form-item label-width="0"> |
| | | <el-row> |
| | | <el-col :span="7"> |
| | | <el-select v-model="queryParams.ColName2" placeholder="请选择"> |
| | | <span v-for="(item, index) in btList" :key="index"> |
| | | <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option> |
| | | </span> |
| | | </el-select> |
| | | </el-col> |
| | | <el-col :span="6" style="padding: 0 10px;"> |
| | | <el-select v-model="queryParams.Comparator2" placeholder="请选择"> |
| | | <span v-for="(item, index) in btList" :key="index"> |
| | | <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option> |
| | | </span> |
| | | </el-select> |
| | | </el-col> |
| | | <el-col :span="11"> |
| | | <el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable |
| | | @keyup.enter.native="handleQuery" /> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form-item> |
| | | </el-row> |
| | | <el-form-item label-width="0"> |
| | | <el-row> |
| | | <el-col :span="7"> |
| | | <el-select v-model="queryParams.ColName" placeholder="请选择"> |
| | | <el-option v-for="(item, index) in btList" :key="index" :label="item.field" |
| | | :value="item.field"></el-option> |
| | | </el-select> |
| | | </el-col> |
| | | <el-col :span="6" style="padding: 0 10px;"> |
| | | <el-select v-model="queryParams.Comparator" placeholder="请选择"> |
| | | <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label" |
| | | :value="item.value"></el-option> |
| | | </el-select> |
| | | </el-col> |
| | | <el-col :span="11"> |
| | | <el-input v-model="queryParams.ColContent" placeholder="请输入" clearable |
| | | @keyup.enter.native="handleQuery" /> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form-item> |
| | | </div> |
| | | </el-collapse-transition> |
| | | |
| | | <!-- 当前过滤方案显示 --> |
| | | <div v-if="currentFilterScheme" class="filter-scheme"> |
| | | {{ currentFilterScheme }} |
| | | </div> |
| | | </el-form> |
| | | </el-card> |
| | | |
| | | <!-- 表格区域 --> |
| | | <el-card class="table-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>结算方式列表</span> |
| | | <el-button-group style="float: right"> |
| | | <el-button type="primary" icon="el-icon-refresh" @click="handleRefresh">刷新</el-button> |
| | | <el-button type="primary" icon="el-icon-close" @click="handleExit">退出</el-button> |
| | | </el-button-group> |
| | | </el-card> |
| | | </el-collapse-item> |
| | | </el-collapse> |
| | | </el-form> |
| | | <el-row :gutter="10" class="mb8" style="margin-top: 10px;"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-download" size="mini" @click="handleImport">导入</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddEdit(OperationType = 1)" |
| | | id="btn-Add">新增</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" |
| | | @click="handleEdit(row = rowForm, OperationType = 3)">编辑</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" |
| | | @click="handleEdit(row = rowForm, copyType = 1)">复制</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" |
| | | @click="set_CheckBill(0, form = rowForm)">审核</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" |
| | | @click="set_CheckBill(1, form = rowForm)">返审核</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" |
| | | @click="set_De_Stop(0, form = rowForm)">禁用</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" |
| | | @click="set_De_Stop(1, form = rowForm)">反禁用</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-download" size="mini" @click="handleRowHide">隐藏列设置</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="tableBox" v-loading="loading"> |
| | | <el-table :data="tableData" ref="tableData" max-height="750" :summary-method="getSummaries" |
| | | @selection-change="handleSelectionChange" show-summary border @row-click="handleRowClick" :row-style="rowStyle" |
| | | @cell-dblclick="handleDblclick" v-if="tableShow"> |
| | | <template v-for="(item, index) in btList"> |
| | | <el-table-column type="selection" width="55" align="center" :fixed="item.fixed" v-if="item.type == 'checkbox'" |
| | | :key="index" /> |
| | | <el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width" |
| | | :key="item.sorderid" v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort" |
| | | show-overflow-tooltip :fixed="item.fixed"> |
| | | <template slot-scope="{row, column }"> |
| | | <el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox> |
| | | <div :style="item.style"> |
| | | <span v-if="column.property.includes('日期')">{{ parseTime(row[column.property], '{y}-{m}-{d}') }}</span> |
| | | <el-button type="text" @click="handleEdit(row, OperationType = 3)" |
| | | v-else-if="column.property == '单据号'">{{ |
| | | row.单据号 |
| | | }}</el-button> |
| | | <span v-else>{{ row[column.label] }}</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </el-table> |
| | | <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes" |
| | | @pagination="getList" /> |
| | | <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body> |
| | | <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose" v-if="rowHideShow" /> |
| | | </el-dialog> |
| | | <!-- 编辑 --> |
| | | <el-dialog title="编辑部门资料" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox" @close="close"> |
| | | <edit :OperationType=OperationType :linterid=this.rowForm.HItemID :HSouceBillType=this.rowForm.HSourceBillType |
| | | :copyType="copyType" @editCloseGy="editGyClose" v-if="editShow" /> |
| | | </el-dialog> |
| | | <el-dialog :title="upload.title" :visible.sync="upload.open" width="1500px" append-to-body> |
| | | <div style="margin-top:-20px ;"> |
| | | <el-button type="primary" @click="set_AddNew">导入数据</el-button> |
| | | <el-button type="primary" @click="upload.open = false">退 出</el-button> |
| | | <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" style="display: inline-block; margin-left: 10px;" |
| | | :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" |
| | | :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess"> |
| | | <el-button type="primary">文件上传</el-button> |
| | | </el-upload> |
| | | </div> |
| | | |
| | | <el-table |
| | | ref="table" |
| | | :data="tableData" |
| | | v-loading="loading" |
| | | height="400" |
| | | border |
| | | highlight-current-row |
| | | @row-dblclick="handleRowDblClick" |
| | | @row-click="handleRowClick" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column |
| | | v-for="column in tableColumns" |
| | | :key="column.field" |
| | | :prop="column.field" |
| | | :label="column.label" |
| | | :width="column.width" |
| | | :align="column.align" |
| | | :sortable="column.sortable" |
| | | show-overflow-tooltip |
| | | > |
| | | <template slot-scope="{ row, column }"> |
| | | <span v-if="column.property.includes('时间') || column.property.includes('日期')"> |
| | | {{ formatDate(row[column.property]) }} |
| | | </span> |
| | | <span v-else>{{ row[column.property] }}</span> |
| | | <el-table :data="uploadData" v-loading="uploadTableLoading" :row-class-name="uploadDataIndex" border |
| | | height="550"> |
| | | <el-table-column type="index" label="序号" width="55" align="center" /> |
| | | <el-table-column label="组织代码" prop="组织代码" align="center" width="120" /> |
| | | <el-table-column label="组织名称" prop="组织名称" align="center" width="120" /> |
| | | <el-table-column label="负责人代码" prop="负责人代码" align="center" width="120" /> |
| | | <el-table-column label="负责人" prop="负责人" align="center" width="120" /> |
| | | <el-table-column label="工作中心代码" prop="工作中心代码" align="center" width="120" /> |
| | | <el-table-column label="工作中心名称" prop="工作中心名称" align="center" width="120" /> |
| | | <el-table-column label="单班工时" prop="单班工时" align="center" width="120" /> |
| | | <el-table-column label="操作" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-delete" |
| | | @click="uploadDataDelete(scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <!-- 分页 --> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="pagination.page" |
| | | :page-sizes="[50, 100, 500, 5000]" |
| | | :page-size="pagination.size" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="pagination.total" |
| | | style="margin-top: 15px; text-align: right;" |
| | | /> |
| | | </el-card> |
| | | <pagination v-show="uploadTotal > 0" :total="uploadTotal" :page.sync="uploadPage" :limit.sync="uploadPageSize" |
| | | :pageSizes="uploadPageSizes" @pagination="currentPage" /> |
| | | </el-dialog> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import axios from 'axios' |
| | | import RowSettings from '@/views/component/rowSettings' |
| | | import Edit from '@/views/basic/gy/gyDepartmentEdit.vue' |
| | | |
| | | export default { |
| | | name: 'SettleStyleDialog', |
| | | name: 'GyDepartment', |
| | | components: { RowSettings, Edit }, |
| | | props: { |
| | | visible: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | openPage: { type: String, }, |
| | | }, |
| | | data() { |
| | | return { |
| | | dialogVisible: false, |
| | | collapse: false, |
| | | loading: false, |
| | | |
| | | activeSeach: '', |
| | | HModName: 'Gy_DepartmentList', |
| | | editShow: false, |
| | | openEdit: false, |
| | | totalNameList: [], |
| | | tableShow: true, |
| | | openPrintList: false, |
| | | printListShow: false, |
| | | // HBillType: '1205', |
| | | openBtnHide: false, |
| | | btnHideShow: false, |
| | | rowHideShow: false, |
| | | openRowHide: false, |
| | | copyType: 0, |
| | | comparatorList: [ |
| | | { label: '=', value: '=' }, |
| | | { label: '>=', value: '>=' }, |
| | | { label: '>', value: '>' }, |
| | | { label: '<=', value: '<=' }, |
| | | { label: '<', value: '<' }, |
| | | { label: '<>', value: '<>' }, |
| | | { label: '包含', value: '7' }, |
| | | { label: '左包含', value: '8' }, |
| | | { label: '右包含', value: '9' }, |
| | | { label: '不包含', value: '10' }, |
| | | ], |
| | | sWhere: '', |
| | | dialogTitle: '', |
| | | organizationList: JSON.parse(sessionStorage.getItem('organizationList')),//组织列表 |
| | | OperationType: null,//保存类型(新增1修改3) |
| | | HInterID: null, |
| | | baseURL: process.env.VUE_APP_BASE_API, |
| | | lastSelectedRowIndex: null, // 用于记录上次点击的行索引 |
| | | lastSelectedRow: null, // 上一次选中的行 |
| | | selectedRow: null, // 当前选中的行 |
| | | rowForm: {}, |
| | | activeName: 'first', |
| | | |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 查询参数 |
| | | queryParams: { |
| | | HNumber: '', |
| | | HName: '', |
| | | HNumber2: '', |
| | | ColName: '0', |
| | | Comparator: '0', |
| | | ColContent: '' |
| | | HOrgID: sessionStorage["OrganizationID"] - 0, |
| | | HName: null, |
| | | HNumber: null, |
| | | Comparator1: '', |
| | | Comparator2: '', |
| | | Comparator: '', |
| | | ColContent1: '', |
| | | ColContent2: '', |
| | | ColContent: '', |
| | | }, |
| | | |
| | | // 表格数据 |
| | | tableData: [], |
| | | tableColumns: [], |
| | | selectedRow: null, |
| | | multipleSelection: [], |
| | | |
| | | // 分页 |
| | | pagination: { |
| | | page: 1, |
| | | size: 50, |
| | | total: 0 |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 遮罩层 |
| | | loading: true, |
| | | tyResList: [],//列表(接口数据) |
| | | btList: [],//表头列表显示 |
| | | btResList: [], |
| | | tableData: [],//列表(分页显示) |
| | | dataList: [], |
| | | titleData: ["HItemID", "HUSEORGID", "HEmpID", "负责人"],//不需要显示的字段 可扩展 |
| | | pageSizes: [50, 100, 500, 5000, 50000], |
| | | page: 1, |
| | | pageSize: 0, |
| | | total: 0, |
| | | // 表单参数 |
| | | form: {}, |
| | | // 表单校验 |
| | | rules: {}, |
| | | upload: { |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否禁用上传 |
| | | isUploading: false, |
| | | // 是否更新已经存在的数据 |
| | | updateSupport: 0, |
| | | // 设置上传的请求头部 |
| | | // headers: { Authorization: "Bearer " + getToken() }, |
| | | // 上传的地址 |
| | | url: process.env.VUE_APP_BASE_API + "/Gy_Source/Gy_Source_Excel" |
| | | }, |
| | | |
| | | // 过滤方案 |
| | | currentFilterScheme: '', |
| | | HInterID_Choose: 0, |
| | | |
| | | // 隐藏字段 |
| | | hiddenFields: ["HItemID", "HUSEORGID", "HCREATEORGID", "父级ID"], |
| | | |
| | | baseURL: process.env.VUE_APP_BASE_URL || 'http://47.96.97.237/API/', |
| | | user: 'admin', |
| | | HModName: 'Gy_SettleStyle', |
| | | HModuleName: '结算方式维护', |
| | | Organization: '100038' |
| | | } |
| | | uploadData: [], |
| | | alluploadList: [], |
| | | uploadTableLoading: false, |
| | | uploadPageSizes: [50, 100, 500, 5000, 50000], |
| | | uploadPage: 1, |
| | | uploadPageSize: 50, |
| | | uploadTotal: 0, |
| | | }; |
| | | }, |
| | | computed: { |
| | | visibleColumns() { |
| | | return this.tableColumns |
| | | .filter(col => !this.hiddenFields.includes(col.field)) |
| | | .map(col => ({ |
| | | field: col.field, |
| | | label: col.label |
| | | })) |
| | | } |
| | | }, |
| | | watch: { |
| | | visible: { |
| | | immediate: true, |
| | | handler(val) { |
| | | this.dialogVisible = val |
| | | if (val) { |
| | | this.initData() |
| | | } |
| | | } |
| | | }, |
| | | dialogVisible(val) { |
| | | this.$emit('update:visible', val) |
| | | } |
| | | created() { |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | // 初始化数据 |
| | | initData() { |
| | | this.loadTableData() |
| | | this.getDefaultFilterScheme() |
| | | }, |
| | | |
| | | // 加载表格数据 |
| | | async loadTableData() { |
| | | this.loading = true |
| | | try { |
| | | const sWhere = this.buildQueryCondition() |
| | | |
| | | const response = await axios.get(`${this.baseURL}/Gy_SettleStyle/SettleStyleList`, { |
| | | params: { |
| | | sWhere: sWhere, |
| | | user: this.user, |
| | | Organization: this.Organization |
| | | } |
| | | }) |
| | | |
| | | if (response.data.count === 1) { |
| | | this.tableData = response.data.data |
| | | console.log('结算方式数据:', this.tableData) |
| | | this.pagination.total = response.data.total || response.data.data.length |
| | | this.generateTableColumns(response.data.list) |
| | | } else { |
| | | this.$message.error(response.data.Message || '加载数据失败') |
| | | getSummaries(param) { |
| | | const { columns, data } = param; |
| | | const sums = []; |
| | | columns.forEach((column, index) => { |
| | | if (index === 0) { |
| | | sums[index] = '合计'; |
| | | return; |
| | | } |
| | | } catch (error) { |
| | | console.error('加载结算方式数据失败:', error) |
| | | this.$message.error('加载结算方式数据失败') |
| | | } finally { |
| | | this.loading = false |
| | | const values = data.map(item => Number(item[column.property])); |
| | | if (this.totalNameList[index].totalRow) { |
| | | if (!values.every(value => isNaN(value))) { |
| | | sums[index] = values.reduce((prev, curr) => { |
| | | const value = Number(curr); |
| | | if (!isNaN(value)) { |
| | | return prev + curr; |
| | | } else { |
| | | return prev; |
| | | } |
| | | }, 0) |
| | | |
| | | } else { |
| | | sums[index] = ''; |
| | | } |
| | | } |
| | | }, 1000); |
| | | return sums; |
| | | }, |
| | | |
| | | handleBtnHide() { |
| | | this.btnHideShow = true |
| | | this.openBtnHide = true |
| | | }, |
| | | handleRowHide() { |
| | | this.rowHideShow = true |
| | | this.openRowHide = true |
| | | }, |
| | | rowSetClose(val) { |
| | | this.rowHideShow = false |
| | | this.tableShow = true |
| | | this.openRowHide = val |
| | | this.getList() |
| | | }, |
| | | //列表数据 |
| | | getList() { |
| | | this.pageSize = 50 |
| | | this.tableShow = false |
| | | this.loading = true |
| | | if (this.pageSize == 0) { |
| | | this.pageSize = 50 |
| | | } |
| | | //this.sWhere += " and HUSEORGID = '" + this.queryParams.HOrgID + "'" |
| | | //生产资料列表 |
| | | axios.get(this.baseURL + '/Gy_SettleStyle/SettleStyleList', { |
| | | params: { |
| | | "sWhere": this.sWhere, |
| | | "user": sessionStorage["HUserName"], |
| | | "Organization":sessionStorage["Organization"] |
| | | }, |
| | | }).then(response => { |
| | | this.tyResList = response.data.data//总数据 |
| | | let data1 = response.data |
| | | let option = [] |
| | | if (data1.code == 1) { |
| | | this.btResList = data1.list//生产资料接口表头数据 |
| | | this.total = data1.count; |
| | | var data = [];//列字段数据 |
| | | var col = []; |
| | | var totalArray = ["件数"]; |
| | | //给空的数组赋值 |
| | | for (var key in data1.list) {//循序遍历数组 |
| | | data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });//从每个对象中提取数据 |
| | | } |
| | | //在列表左边添加勾选框 |
| | | col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' }); |
| | | for (var i = 0; i < data.length; i++) {//遍历data数组重的数据 |
| | | if (this.titleData.indexOf(data[i].name) > -1) {//检查data【i】.name是否在数组中 //计算列 |
| | | col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列 |
| | | } else if (totalArray.indexOf(data[i].name) > -1 || (data[i].Type == "Decimal" || data[i].Type == "Int32")) { //计算列 |
| | | col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 }); |
| | | } |
| | | else { |
| | | col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 }); |
| | | } |
| | | |
| | | } |
| | | option.cols = [col] |
| | | this.dataList = option |
| | | option.data = data1.data; |
| | | var result = data1.data; |
| | | var temp = ""; |
| | | for (var i = 0; i < result.length; i++) { |
| | | if (temp != result[i]["HItemID"]) { |
| | | temp = result[i]["HItemID"]; |
| | | } else { |
| | | result[i].日期 = null; |
| | | result[i].单据号 = ""; |
| | | /*result[i].状态 = "";*/ |
| | | result[i].红蓝单标记 = ""; |
| | | result[i].hsupid = ""; |
| | | result[i].客户 = ""; |
| | | result[i].HEmpID = ""; |
| | | result[i].业务员 = ""; |
| | | result[i].hmanagerid = ""; |
| | | result[i].主管 = ""; |
| | | result[i].hsecmanagerid = ""; |
| | | result[i].发货人 = ""; |
| | | result[i].hkeeperid = ""; |
| | | result[i].保管员 = ""; |
| | | result[i].HDeptID = ""; |
| | | result[i].部门 = ""; |
| | | result[i].销售方式 = ""; |
| | | } |
| | | } |
| | | option.data = result; |
| | | this.DisPlay_HideColumn(this.HModName, sessionStorage["HUserName"], option, this.dataList); |
| | | } |
| | | }).catch(error => { |
| | | this.$modal.msgError("接口请求失败!"); |
| | | }); |
| | | }, |
| | | DisPlay_HideColumn(HModName, user, option, dataOption) { |
| | | this.totalNameList = [] |
| | | axios.get(this.baseURL + '/Xt_grdAlignment_WMES/grdAlignmentWMESList', { |
| | | params: { |
| | | "HModName": HModName, |
| | | "user": user, |
| | | }, |
| | | }).then(res => { |
| | | let data1 = res.data |
| | | if (data1.data.length != 0) { |
| | | var dataCol = [];//数据库查询出的列数据 |
| | | var newCols = [[]];//对应数据库列顺序col |
| | | newCols[0].push(option.cols[0][0]);//放入第一个checkbox |
| | | dataCol = data1.data[0].HGridString.split(','); |
| | | //列设置列数与页面列数是否一致 |
| | | if (dataCol.length == option.cols[0].length - 1) { |
| | | //遍历寻找列设置对应列按顺序插入 |
| | | for (var j = 0; j < option.cols[0].length - 1; j++) { |
| | | for (var i = 0; i < option.cols[0].length - 1; i++) { |
| | | var dataCols = dataCol[j].split('|'); |
| | | //选择与datacols相应列进行修改 |
| | | if (option.cols[0][i + 1]["field"] == dataCols[5]) { |
| | | //隐藏列 |
| | | if (dataCols[1] == 1) { |
| | | option.cols[0][i + 1]["hide"] = true; |
| | | } |
| | | //设置列宽 |
| | | if (dataCols[3] > 0) { |
| | | option.cols[0][i + 1]["width"] = dataCols[3]; |
| | | } |
| | | //设置内容字体大小 |
| | | if (data1.data[0].HFontSize != 0) { |
| | | option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;"; |
| | | } else { |
| | | option.cols[0][i + 1]["style"] = "font-size:100%"; |
| | | } |
| | | //显示列 |
| | | if (dataCols[1] == 0 && this.titleData.indexOf(option.cols[0][i + 1]["title"]) == -1) { |
| | | option.cols[0][i + 1]["hide"] = false; |
| | | } |
| | | //统计列 |
| | | if (dataCols[6] == 1) { |
| | | option.cols[0][i + 1]["totalRow"] = true; |
| | | } else { |
| | | option.cols[0][i + 1]["totalRow"] = false; |
| | | } |
| | | //字体所在位置(左 居中 右) |
| | | switch (dataCols[2]) { |
| | | case "L": |
| | | option.cols[0][i + 1]["align"] = "left"; |
| | | break; |
| | | case "M": |
| | | option.cols[0][i + 1]["align"] = "center"; |
| | | break; |
| | | case "R": |
| | | option.cols[0][i + 1]["align"] = "right"; |
| | | break; |
| | | } |
| | | //设置表格title属性显示别名 |
| | | if (dataCols[4] != null && dataCols[4] != "") { |
| | | option.cols[0][i + 1]["title"] = dataCols[4]; |
| | | } |
| | | newCols[0].push(option.cols[0][i + 1]); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | //遍历循环后判断对应列数是否一致 |
| | | if (dataCol.length == newCols[0].length - 1) { |
| | | option.cols = newCols; |
| | | //取消冻结列 |
| | | for (var i = 1; i < option.cols[0].length - 1; i++) { |
| | | if (option.cols[0][i + 1]["fixed"] != null) { |
| | | option.cols[0][i + 1]["fixed"] = null; |
| | | } |
| | | else { |
| | | break; |
| | | } |
| | | } |
| | | //冻结列 |
| | | if (data1.data[0].HFixCols != 0) { |
| | | for (var i = 0; i < data1.data[0].HFixCols; i++) { |
| | | if (dataOption.cols[0].indexOf(option.cols[0][i + 1]["title"]) != -1) { |
| | | data1.data[0].HFixCols += 1; |
| | | } |
| | | |
| | | option.cols[0][i + 1]["fixed"] = "left"; |
| | | } |
| | | } |
| | | //设置列排序 |
| | | for (var i = 1; i < option.cols[0].length; i++) { |
| | | if (data1.data[0].HSortFlag == "是") { |
| | | option.cols[0][i]["sort"] = true; |
| | | } |
| | | else { |
| | | option.cols[0][i]["sort"] = false; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | this.btList = option.cols[0] |
| | | this.btList.map(item => { |
| | | if (!item.hide) { |
| | | this.totalNameList.push(item) |
| | | } |
| | | }) |
| | | if (data1.data[0].HPageSize == 0) { |
| | | this.pageSize = 50 |
| | | } else { |
| | | this.pageSize = data1.data[0].HPageSize |
| | | } |
| | | this.tableData = option.data |
| | | this.tableShow = true |
| | | this.loading = false |
| | | } else { |
| | | this.btList = dataOption.cols[0] |
| | | this.btList.map(item => { |
| | | if (!item.hide) { |
| | | this.totalNameList.push(item) |
| | | } |
| | | }) |
| | | this.tableData = dataOption.data |
| | | this.tableShow = true |
| | | this.loading = false |
| | | } |
| | | }).catch(error => { |
| | | this.$modal.msgError("接口请求失败!"); |
| | | }); |
| | | }, |
| | | renderHeader(h, { column, $index }) {// 新建一个 span |
| | | let span = document.createElement(span)// 设置表头名称 |
| | | span.innerText = column.label |
| | | //临时插入 document |
| | | document.body.appendChild(span)// 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span |
| | | document.body.removeChild(span) |
| | | return h(span, column.label) |
| | | }, |
| | | //点击行 |
| | | handleRowClick(row, column, event) { |
| | | this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行 |
| | | this.selectedRow = row; // 记录当前选中的行 |
| | | this.lastSelectedRowIndex = this.tableData.indexOf(row); |
| | | this.$refs.tableData.toggleRowSelection(row); |
| | | if (this.openPage) { |
| | | this.$emit('deptEmit', row, 5) |
| | | } |
| | | }, |
| | | |
| | | // 构建查询条件 |
| | | buildQueryCondition() { |
| | | let sWhere = "" |
| | | |
| | | // 基本查询条件 |
| | | if (this.queryParams.HNumber) { |
| | | sWhere += ` and 结算方式代码 like '%${this.queryParams.HNumber}%'` |
| | | //选中行高亮样式 |
| | | rowStyle({ row, rowIndex }) { |
| | | if (this.ids.includes(row.HItemID)) { |
| | | return { "background": "#ecf5ff" } |
| | | } |
| | | if (this.queryParams.HName) { |
| | | sWhere += ` and 结算方式名称 like '%${this.queryParams.HName}%'` |
| | | }, |
| | | //双击行 |
| | | handleDblclick(row, column, cell, event) { |
| | | this.OperationType = 3 |
| | | if (this.openPage) { |
| | | this.$emit('deptEmitDb', row, 5) |
| | | } else { |
| | | this.handleEdit(); |
| | | } |
| | | |
| | | // 高级过滤条件 |
| | | if (this.queryParams.ColName && this.queryParams.ColName !== "0" && |
| | | this.queryParams.Comparator && this.queryParams.Comparator !== "0") { |
| | | let com = "" |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | // this.rowForm = {} |
| | | if (this.openPage) { |
| | | //列表单选 |
| | | if (selection.length > 1) { |
| | | const del_row = selection.shift() |
| | | this.$refs.tableData.toggleRowSelection(del_row, false) //设置这一行取消选中 |
| | | } |
| | | this.rowForm = {} |
| | | this.ids = selection.map(item => item.HItemID) |
| | | this.rowForm = selection[0] |
| | | } else { |
| | | //多选 |
| | | this.ids = selection.map(item => item.HItemID) |
| | | this.single = selection.length != 1 |
| | | this.multiple = !selection.length |
| | | if (!this.single) { |
| | | this.rowForm = selection[0] |
| | | } |
| | | } |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.sWhere = '' |
| | | if (this.queryParams.ColName && this.queryParams.Comparator) { |
| | | var com = ""; |
| | | switch (this.queryParams.Comparator) { |
| | | case "7": |
| | | com = `like '%${this.queryParams.ColContent}%'` |
| | | break |
| | | com = "like'%" + this.queryParams.ColContent + "%'"; |
| | | break; |
| | | case "8": |
| | | com = `like '%${this.queryParams.ColContent}'` |
| | | break |
| | | com = "like'%" + this.queryParams.ColContent + "'"; |
| | | break; |
| | | case "9": |
| | | com = `like '${this.queryParams.ColContent}%'` |
| | | break |
| | | com = "like'" + this.queryParams.ColContent + "%'"; |
| | | break; |
| | | case "10": |
| | | com = `not like '%${this.queryParams.ColContent}%'` |
| | | break |
| | | com = "not like'%" + this.queryParams.ColContent + "%'"; |
| | | break; |
| | | default: |
| | | com = `${this.queryParams.Comparator} '${this.queryParams.ColContent}'` |
| | | break |
| | | com = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'"; |
| | | break; |
| | | } |
| | | sWhere += ` and ${this.queryParams.ColName} ${com}` |
| | | this.sWhere += " and " + this.queryParams.ColName + " " + com; |
| | | } |
| | | |
| | | // 添加打开类型的过滤条件 |
| | | sWhere += this.addSWhereByOpenType() |
| | | |
| | | return sWhere |
| | | if (this.queryParams.ColName1 && this.queryParams.Comparator1) { |
| | | var com1 = ""; |
| | | switch (this.queryParams.Comparator1) { |
| | | case "7": |
| | | com1 = "like'%" + this.queryParams.ColContent1 + "%'"; |
| | | break; |
| | | case "8": |
| | | com1 = "like'%" + this.queryParams.ColContent1 + "'"; |
| | | break; |
| | | case "9": |
| | | com1 = "like'" + this.queryParams.ColContent1 + "%'"; |
| | | break; |
| | | case "10": |
| | | com1 = "not like'%" + this.queryParams.ColContent1 + "%'"; |
| | | break; |
| | | default: |
| | | com1 = "" + this.queryParams.Comparator1 + "'" + this.queryParams.ColContent1 + "'"; |
| | | break; |
| | | } |
| | | this.sWhere += " and " + this.queryParams.ColName1 + " " + com1; |
| | | } |
| | | if (this.queryParams.ColName2 && this.queryParams.Comparator2) { |
| | | var com2 = ""; |
| | | switch (this.queryParams.Comparator2) { |
| | | case "7": |
| | | com2 = "like'%" + this.queryParams.ColContent2 + "%'"; |
| | | break; |
| | | case "8": |
| | | com2 = "like'%" + this.queryParams.ColContent2 + "'"; |
| | | break; |
| | | case "9": |
| | | com2 = "like'" + this.queryParams.ColContent2 + "%'"; |
| | | break; |
| | | case "10": |
| | | com2 = "not like'%" + this.queryParams.ColContent2 + "%'"; |
| | | break; |
| | | default: |
| | | com2 = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'"; |
| | | break; |
| | | } |
| | | this.sWhere += " and " + this.queryParams.ColName2 + " " + com2; |
| | | } |
| | | if (this.queryParams.HNumber) { |
| | | this.sWhere += " and 部门代码 like '%" + this.queryParams.HNumber + "%'"; |
| | | } |
| | | if (this.queryParams.HName) { |
| | | this.sWhere += " and 部门名称 like '%" + this.queryParams.HName + "%'"; |
| | | } |
| | | if (this.queryParams.HOrgID) { |
| | | this.sWhere += " and HUSEORGID = '" + this.queryParams.HOrgID + "'" |
| | | } |
| | | // this.sWhere += this.addSWhereByOpenType() |
| | | // this.sWhere += this.getOrgIDByUser() |
| | | this.clearData() |
| | | this.getList() |
| | | |
| | | }, |
| | | |
| | | // 根据打开类型添加条件 |
| | | // 判断是直接打开页面还是其它页面通过选择按钮打开,并显示相应数据 |
| | | addSWhereByOpenType() { |
| | | // 这里可以根据需要添加特定的过滤条件 |
| | | return " and 禁用标记 = ''" |
| | | }, |
| | | |
| | | // 生成表格列 |
| | | generateTableColumns(columnList) { |
| | | this.tableColumns = [] |
| | | |
| | | // 添加选择列 |
| | | this.tableColumns.push({ type: 'selection', fixed: 'left' }) |
| | | |
| | | // 动态生成列 |
| | | if (columnList && columnList.length > 0) { |
| | | columnList.forEach(item => { |
| | | if (!this.hiddenFields.includes(item.ColmCols)) { |
| | | const column = { |
| | | field: item.ColmCols, |
| | | label: item.ColmCols, |
| | | align: 'center', |
| | | sortable: true, |
| | | width: 200 |
| | | } |
| | | |
| | | // 根据字段类型设置不同的模板 |
| | | if (item.ColmType === 'DateTime') { |
| | | column.formatter = this.formatDate |
| | | } |
| | | |
| | | this.tableColumns.push(column) |
| | | } |
| | | }) |
| | | } else { |
| | | // 默认列(如果接口没有返回列信息) |
| | | const defaultColumns = [ |
| | | { field: '结算方式代码', label: '结算方式代码', align: 'center', width: 120 }, |
| | | { field: '结算方式名称', label: '结算方式名称', align: 'center', width: 120 }, |
| | | { field: '条码编号', label: '条码编号', align: 'center', width: 120 }, |
| | | { field: '禁用标记', label: '禁用标记', align: 'center', width: 100 }, |
| | | { field: '备注', label: '备注', align: 'center', width: 150 }, |
| | | { field: '审核人', label: '审核人', align: 'center', width: 100 }, |
| | | { field: '创建人', label: '创建人', align: 'center', width: 100 }, |
| | | { field: '创建时间', label: '创建时间', align: 'center', width: 150 } |
| | | ] |
| | | this.tableColumns = [...this.tableColumns, ...defaultColumns] |
| | | //获取参数 |
| | | var sWhere = ""; |
| | | //this.openPage判断是否有值,有代表其它页面通过选择按钮打开 |
| | | if (this.openPage) { |
| | | sWhere += " and 禁用标记 != 'Y' and ISNULL(审核人,'') != ''" |
| | | return sWhere; |
| | | } |
| | | return sWhere; |
| | | }, |
| | | |
| | | // 查询 |
| | | handleQuery() { |
| | | this.pagination.page = 1 |
| | | this.loadTableData() |
| | | //根据用户获取用户关联组织的过滤条件 |
| | | getOrgIDByUser() { |
| | | var res = ""; |
| | | axios.get(this.baseURL + '/Xt_User/getOrgIDListByUser', { |
| | | params: { |
| | | HModName: this.HModName, |
| | | user: sessionStorage["HUserName"], |
| | | HOrgID: sessionStorage["OrganizationID"] |
| | | }, |
| | | }).then(response => { |
| | | let result = response.data |
| | | if (result.count == 1) { |
| | | if (result.data[0].sWhere == "1") { |
| | | res = " and HUSEORGID = '" + sessionStorage["OrganizationID"] + "'"; |
| | | } else { |
| | | res = result.data[0].sWhere; |
| | | } |
| | | } |
| | | }).catch(error => { |
| | | res = " and 1 = 0"; |
| | | this.$modal.msgError("接口请求失败!"); |
| | | }); |
| | | return res; |
| | | }, |
| | | |
| | | // 重置查询 |
| | | handleReset() { |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.sWhere = '' |
| | | this.queryParams = { |
| | | HNumber: '', |
| | | HName: '', |
| | | HNumber2: '', |
| | | ColName: '0', |
| | | Comparator: '0', |
| | | ColContent: '' |
| | | HOrgID: null, |
| | | HName: null, |
| | | HNumber: null, |
| | | Comparator1: '', |
| | | Comparator2: '', |
| | | Comparator: '', |
| | | ColContent1: '', |
| | | ColContent2: '', |
| | | ColContent: '', |
| | | } |
| | | this.pagination.page = 1 |
| | | this.loadTableData() |
| | | this.clearData() |
| | | this.resetForm("queryForm") |
| | | this.getList() |
| | | }, |
| | | |
| | | // 重新同步 |
| | | async handleResCnz() { |
| | | if (!this.queryParams.HNumber2) { |
| | | this.$message.warning('请输入结算方式代码') |
| | | return |
| | | } |
| | | |
| | | try { |
| | | const response = await axios.get(`${this.baseURL}/Gy_SettleStyle/Gy_SettleStyleViewApi`, { |
| | | params: { |
| | | Number: this.queryParams.HNumber2, |
| | | Type: 'JSFS' |
| | | } |
| | | }) |
| | | |
| | | if (response.data.count === 1) { |
| | | this.$message.success(response.data.Message) |
| | | this.loadTableData() // 重新加载数据 |
| | | } else { |
| | | this.$message.error(response.data.Message) |
| | | } |
| | | } catch (error) { |
| | | console.error('重新同步失败:', error) |
| | | this.$message.error('重新同步失败') |
| | | } |
| | | clearData() { |
| | | this.single = true |
| | | this.multiple = true |
| | | this.OperationType = 0 |
| | | this.copyType = 0 |
| | | this.ids = [] |
| | | }, |
| | | |
| | | // 刷新 |
| | | handleRefresh() { |
| | | this.loadTableData() |
| | | //退出 |
| | | close() { |
| | | this.tableShow = true |
| | | this.openEdit = false |
| | | this.editShow = false |
| | | this.clearData() |
| | | this.getList() |
| | | }, |
| | | |
| | | // 切换折叠状态 |
| | | toggleCollapse() { |
| | | this.collapse = !this.collapse |
| | | //打开新增组件弹窗 |
| | | handleAddEdit() { |
| | | this.rowForm.HItemID = 0 |
| | | this.$nextTick(() => { |
| | | this.openEdit = true |
| | | this.editShow = true |
| | | }) |
| | | |
| | | }, |
| | | |
| | | // 行双击事件 |
| | | handleRowDblClick(row) { |
| | | this.selectedRow = row |
| | | this.confirmSelection() |
| | | }, |
| | | |
| | | // 行点击事件 |
| | | handleRowClick(row) { |
| | | this.$refs.table.toggleRowSelection(row) |
| | | this.selectedRow = row |
| | | }, |
| | | |
| | | // 选择变化 |
| | | handleSelectionChange(selection) { |
| | | this.multipleSelection = selection |
| | | if (selection.length === 1) { |
| | | this.selectedRow = selection[0] |
| | | } |
| | | }, |
| | | |
| | | // 确认选择 |
| | | confirmSelection() { |
| | | if (this.selectedRow) { |
| | | this.$emit('selected', { |
| | | HItemID: this.selectedRow.HItemID, |
| | | 结算方式名称: this.selectedRow.结算方式名称 |
| | | }) |
| | | this.dialogVisible = false |
| | | } else { |
| | | this.$message.warning('请选择一条数据') |
| | | } |
| | | }, |
| | | |
| | | // 退出 |
| | | handleExit() { |
| | | this.dialogVisible = false |
| | | }, |
| | | |
| | | // 关闭对话框 |
| | | handleClose(done) { |
| | | this.$confirm('确认关闭?') |
| | | .then(_ => { |
| | | done() |
| | | }) |
| | | .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 '' |
| | | try { |
| | | const date = new Date(dateString) |
| | | return date.toLocaleDateString('zh-CN') |
| | | } catch (error) { |
| | | return dateString |
| | | } |
| | | }, |
| | | |
| | | // 获取默认过滤方案 |
| | | async getDefaultFilterScheme() { |
| | | try { |
| | | const response = await axios.get(`${this.baseURL}/Xt_FastICScheme/Chooselist`, { |
| | | params: { |
| | | user: this.user, |
| | | HModuleName: this.HModuleName, |
| | | HInterID: 0, |
| | | 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) |
| | | } |
| | | } catch (error) { |
| | | console.error('获取过滤方案失败:', error) |
| | | } |
| | | }, |
| | | |
| | | // 应用过滤条件 |
| | | applyFilterConditions(filterData) { |
| | | filterData.forEach(item => { |
| | | if (this.queryParams.hasOwnProperty(item.过滤字段ID)) { |
| | | this.queryParams[item.过滤字段ID] = item.过滤值 |
| | | } |
| | | //打开修改组件弹窗 |
| | | handleEdit() { |
| | | this.$nextTick(() => { |
| | | this.openEdit = true |
| | | this.editShow = true |
| | | }) |
| | | }, |
| | | |
| | | // 保存过滤方案 |
| | | handleSaveScheme() { |
| | | this.$message.info('保存方案功能') |
| | | //关闭编辑页面 |
| | | editGyClose(val) { |
| | | this.editShow = false |
| | | this.openEdit = false |
| | | this.clearData() |
| | | this.getList() |
| | | }, |
| | | |
| | | // 读取过滤方案 |
| | | handleReadScheme() { |
| | | this.$message.info('读取方案功能') |
| | | /** 删除按钮操作 */ |
| | | handleDelete() { |
| | | this.$modal.confirm('确认要删除吗,删除后不能恢复').then(() => { |
| | | if (!this.rowForm.审核人) { |
| | | axios.get(this.baseURL + "DeltetGy_Department", { |
| | | params: { 'HItemID': this.rowForm.HItemID, 'user': sessionStorage["HUserName"] } |
| | | }).then(response => { |
| | | if (response.data.count == 1) { |
| | | this.getList() |
| | | this.$modal.msgSuccess("删除成功") |
| | | } else { |
| | | this.$modal.msgError("错误:" + result.code + result.Message); |
| | | } |
| | | }).catch(error => { |
| | | this.$modal.msgError("接口请求失败!"); |
| | | }); |
| | | } else { |
| | | this.$modal.msgError("此条数据不是创建状态,无法删除!"); |
| | | } |
| | | }).catch(() => { }) |
| | | }, |
| | | |
| | | // 列设置 |
| | | handleColumnSetting() { |
| | | this.$message.info('列设置功能') |
| | | } |
| | | // 反审核/审核数据 |
| | | set_CheckBill(num, form) { |
| | | var InterID = form.HItemID || form.HInterID |
| | | //逻辑审核方法 |
| | | axios.get(this.baseURL + "/Gy_Department/AuditGy_Department", { |
| | | params: { "HInterID": InterID, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] } |
| | | }).then(response => { |
| | | let result = response.data |
| | | if (result.code == 1) { |
| | | this.$modal.msgSuccess('操作成功'); |
| | | this.getList(); |
| | | } |
| | | else { |
| | | this.$modal.msgError("错误:" + result.code + result.Message,); |
| | | } |
| | | this.clearData() |
| | | }).catch(error => { |
| | | this.$modal.msgError("接口请求失败!"); |
| | | }); |
| | | }, |
| | | // 反禁用/禁用数据 |
| | | set_De_Stop(num, form) { |
| | | var InterID = form.HItemID.toString() || form.HInterID.toString() |
| | | //逻辑审核方法 |
| | | axios.get(this.baseURL + "/Gy_Department/StopGy_Department", { |
| | | params: { "HInterID": InterID, "IsStop": num, "CurUserName": sessionStorage["HUserName"] } |
| | | }).then(response => { |
| | | let result = response.data |
| | | if (result.code == 1) { |
| | | this.$modal.msgSuccess('操作成功'); |
| | | this.getList(); |
| | | } |
| | | else { |
| | | this.$modal.msgError("错误:" + result.code + result.Message,); |
| | | } |
| | | this.clearData() |
| | | }).catch(error => { |
| | | this.$modal.msgError("接口请求失败!"); |
| | | }); |
| | | }, |
| | | //导出 |
| | | handleExport() { |
| | | const ws = this.$XLSX.utils.json_to_sheet(this.tyResList); // 将数据转换为工作表 |
| | | const wb = this.$XLSX.utils.book_new(); // 创建一个新的工作簿 |
| | | this.$XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 将工作表添加到工作簿中,并命名为"Sheet1" |
| | | this.$XLSX.writeFile(wb, `gySource_${new Date().getTime()}.xlsx`); // 导出文件 |
| | | }, |
| | | handleImport() { |
| | | this.uploadData = [] |
| | | this.upload.isUploading = false |
| | | this.upload.title = "导入"; |
| | | this.upload.open = true; |
| | | }, |
| | | // 文件上传中处理 |
| | | handleFileUploadProgress(event, file, fileList) { |
| | | this.upload.isUploading = true; |
| | | this.uploadTableLoading = true |
| | | }, |
| | | // 文件上传成功处理 |
| | | handleFileSuccess(response, file, fileList) { |
| | | // this.upload.open = false; |
| | | this.upload.isUploading = true; |
| | | this.$refs.upload.clearFiles(); |
| | | if (response.code == 1) { |
| | | this.alluploadList = response.data |
| | | this.uploadData = this.getPage(this.uploadPage, this.alluploadList) |
| | | this.uploadTotal = this.alluploadList.length |
| | | this.uploadTableLoading = false |
| | | // this.set_AddNew(response.data) |
| | | } else { |
| | | this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.Message + "</div>", "导入结果", { dangerouslyUseHTMLString: true }); |
| | | } |
| | | |
| | | }, |
| | | // 提交上传文件 |
| | | submitFileForm() { |
| | | this.$refs.upload.submit(); |
| | | }, |
| | | set_AddNew() { |
| | | var num = []; |
| | | for (var i = 0; i < this.uploadData.length; i++) { |
| | | if (this.uploadData[i] != "") { |
| | | num.push(this.uploadData[i]) |
| | | } |
| | | } |
| | | var sSubStr = JSON.stringify(num); |
| | | var sMainSub = sSubStr + '&和' + sessionStorage["HUserName"]; |
| | | axios({ |
| | | method: 'post', |
| | | url: this.baseURL + "/Gy_Source/Gy_Source_btnSave", |
| | | data: { |
| | | 'sMainSub': sMainSub |
| | | }, |
| | | }).then(res => { |
| | | this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + res.data.Message + "</div>", "导入结果", { dangerouslyUseHTMLString: true }); |
| | | this.upload.open = false |
| | | this.getList() |
| | | }).catch(error => { |
| | | this.$modal.msgError("接口请求失败!"); |
| | | }); |
| | | }, |
| | | uploadDataIndex({ row, rowIndex }) { |
| | | row.index = rowIndex + 1; |
| | | }, |
| | | uploadDataDelete(row) { |
| | | this.$modal.confirm('确认要删除吗,删除后不能恢复').then(() => { |
| | | const deleteList = [row.index] |
| | | const data = this.uploadData |
| | | this.uploadData = data.filter(item => { |
| | | return deleteList.indexOf(item.index) == -1 |
| | | }); |
| | | }).catch(() => { }) |
| | | }, |
| | | getPage(page, list) { |
| | | let sindex = (parseInt(page) - 1) * this.uploadPageSize |
| | | let eindex = parseInt(page) * this.uploadPageSize |
| | | let newList = list.slice(sindex, eindex) |
| | | console.log(newList) |
| | | return newList |
| | | }, |
| | | currentPage(val) { |
| | | this.uploadPage = val.page |
| | | setTimeout(() => { |
| | | this.uploadData = this.getPage(this.uploadPage, this.alluploadList) |
| | | }, 100) |
| | | }, |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .settle-style-dialog { |
| | | height: 70vh; |
| | | display: flex; |
| | | flex-direction: column; |
| | | <style> |
| | | .xsckdBox .el-date-editor.el-input { |
| | | width: 100%; |
| | | } |
| | | |
| | | .search-card { |
| | | margin-bottom: 15px; |
| | | } |
| | | |
| | | .table-card { |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .table-card >>> .el-card__body { |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .clearfix:before, |
| | | .clearfix:after { |
| | | display: table; |
| | | content: ""; |
| | | } |
| | | .clearfix:after { |
| | | clear: both; |
| | | } |
| | | |
| | | .el-form-item { |
| | | margin-bottom: 15px; |
| | | } |
| | | |
| | | .el-table { |
| | | flex: 1; |
| | | } |
| | | |
| | | .filter-scheme { |
| | | text-align: center; |
| | | font-size: 15px; |
| | | font-weight: bold; |
| | | color: #fc9393; |
| | | margin: 10px 0; |
| | | } |
| | | </style> |
| | | </style> |