<template>
|
<div style="padding: 10px; position: relative;">
|
<el-form
|
:model="queryParams"
|
ref="queryForm"
|
size="small"
|
:inline="true"
|
label-width="78px"
|
class="searchBox"
|
>
|
<el-row>
|
<el-form-item label="开始日期" style="margin-left: 100px">
|
<el-date-picker
|
v-model="sTime"
|
type="date"
|
placeholder="开始日期"
|
style="width: 150px"
|
:disabled="queryParams.HInitTimeCycle != -1"
|
value-format="yyyy-MM-dd"
|
>
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="结束日期">
|
<el-date-picker
|
v-model="eTime"
|
type="date"
|
placeholder="结束日期"
|
style="width: 150px"
|
:disabled="queryParams.HInitTimeCycle != -1"
|
value-format="yyyy-MM-dd"
|
>
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="日期间隔">
|
<el-select
|
v-model="queryParams.HInitTimeCycle"
|
placeholder="请选择"
|
@change="riqiChange"
|
>
|
<el-option
|
v-for="(item, index) in rqsgList"
|
:key="index"
|
:label="item.label"
|
:value="item.value"
|
>
|
</el-option>
|
</el-select>
|
</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="计量单位名称" prop="HNumber">
|
<el-input
|
v-model="queryParams.HNumber"
|
placeholder="请输入计量单位名称"
|
@keyup.enter.native="handleQuery"
|
/>
|
</el-form-item>
|
<el-form-item label="组织">
|
<el-select
|
v-model="queryParams.HOrgID"
|
placeholder="请选择"
|
class="ForFilteringSchemes"
|
>
|
<el-option
|
v-for="(item, index) in organizationList"
|
:key="index"
|
:label="item.Name"
|
:value="item.ID.toString()"
|
>
|
</el-option>
|
</el-select>
|
</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-row>
|
<el-form-item label-width="0">
|
<el-col :span="7">
|
<el-select
|
v-model="queryParams.ColName1"
|
placeholder="请选择"
|
@change="riqiChange"
|
class="ForFilteringSchemes"
|
>
|
<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.Comparator1"
|
placeholder="请选择"
|
@change="riqiChange"
|
class="ForFilteringSchemes"
|
>
|
<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.ColContent1"
|
placeholder="请输入"
|
clearable
|
@keyup.enter.native="handleQuery"
|
class="ForFilteringSchemes"
|
/>
|
</el-col>
|
</el-form-item>
|
</el-row>
|
<el-row>
|
<el-form-item label-width="0">
|
<el-col :span="7">
|
<el-select
|
v-model="queryParams.ColName2"
|
placeholder="请选择"
|
@change="riqiChange"
|
class="ForFilteringSchemes"
|
>
|
<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="请选择"
|
@change="riqiChange"
|
class="ForFilteringSchemes"
|
>
|
<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"
|
class="ForFilteringSchemes"
|
/>
|
</el-col>
|
</el-form-item>
|
</el-row>
|
<el-row>
|
<el-form-item label-width="0">
|
<el-col :span="7">
|
<el-select
|
v-model="queryParams.ColName"
|
placeholder="请选择"
|
@change="riqiChange"
|
class="ForFilteringSchemes"
|
>
|
<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="请选择"
|
@change="riqiChange"
|
class="ForFilteringSchemes"
|
>
|
<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"
|
class="ForFilteringSchemes"
|
/>
|
</el-col>
|
</el-form-item>
|
</el-row>
|
</div>
|
</el-card>
|
</el-collapse-item>
|
</el-collapse>
|
|
<el-form-item label-width="78px">
|
<el-button type="primary" size="small" icon="el-icon-search" @click="handleQuery">
|
搜 索</el-button
|
>
|
<el-button icon="el-icon-circle-close" size="small" @click="searchOpen = false"
|
>取 消</el-button
|
>
|
</el-form-item>
|
</el-form>
|
|
<el-row :gutter="10" class="mb8">
|
<!-- <el-col :span="1.5">
|
<el-button
|
type="warning"
|
plain
|
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-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(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_CheckBill(2, (form = rowForm))"
|
>反审核</el-button
|
>
|
</el-col>
|
<!-- <el-col :span="1.5">
|
<el-button
|
type="success"
|
plain
|
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="success"
|
plain
|
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-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-col :span="1.5">
|
<el-button type="primary" icon="el-icon-help" size="mini" @click="handleSearch"
|
>搜 索</el-button
|
>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery"
|
>重 置</el-button
|
>
|
</el-col>
|
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
|
</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.stop="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="handleQuery"
|
/>
|
<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"
|
:before-close="close"
|
>
|
<!-- <edit
|
:OperationType="OperationType"
|
:linterid="this.rowForm.hmainid"
|
:HSouceBillType="this.rowForm.HSourceBillType"
|
:HOrgID="this.queryParams.HOrgID"
|
:copyType="copyType"
|
@editCloseGy="editGyClose"
|
v-if="editShow"
|
/> -->
|
<div style="height: 80vh" v-if="openEdit">
|
<iframe :src="iframeUrl" frameborder="0" width="100%" height="100%"></iframe>
|
</div>
|
</el-dialog>
|
<el-dialog
|
:title="upload.title"
|
:visible.sync="upload.open"
|
width="1500px"
|
append-to-body
|
v-if="false"
|
>
|
<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
|
: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="负责人" 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>
|
<pagination
|
v-show="uploadTotal > 0"
|
:total="uploadTotal"
|
:page.sync="uploadPage"
|
:limit.sync="uploadPageSize"
|
:pageSizes="uploadPageSizes"
|
@pagination="currentPage"
|
/>
|
</el-dialog>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import axios from "axios";
|
import RowSettings from "@/views/component/rowSettings";
|
import dayjs from "dayjs";
|
|
export default {
|
name: "gyCarList",
|
components: { RowSettings },
|
props: {
|
openPage: { type: String },
|
},
|
data() {
|
return {
|
iframeUrl: "",
|
activeSeach: "",
|
HModName: "gyUnit",
|
editShow: false,
|
openEdit: false,
|
totalNameList: [],
|
dateRange: [],
|
tableShow: true,
|
openPrintList: false,
|
printListShow: false,
|
HClassTag: "ForFilteringSchemes", //过滤条件的class类
|
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: "",
|
sTime: "",
|
eTime: "",
|
rqsgList: [
|
{ label: "今天", value: 0 },
|
{ label: "近两天", value: 1 },
|
{ label: "近三天", value: 2 },
|
{ label: "近四天", value: 3 },
|
{ label: "近五天", value: 4 },
|
{ label: "近六天", value: 5 },
|
{ label: "近七天", value: 6 },
|
{ label: "近30天", value: 29 },
|
{ label: "近半年", value: 180 },
|
{ label: "近一年", value: 365 },
|
{ label: "任意日期", value: -1 },
|
],
|
hPriceTypeList: ["成本价", "结算价"],
|
addBtnShow: false,
|
zbIndex: null,
|
zbSelForm: {}, //子表选中数据
|
dialogTypeNum: null, //部门弹窗1,仓库弹窗2
|
deptShow: false, //部门数据组件
|
warehouseShow: false, //仓库数据组件
|
materialShow: false, //物料数据组件
|
deptform: {}, //弹窗选中数据
|
openData: false, //数据弹窗
|
dialogTitle: "",
|
zuzhiId: "",
|
organizationList: JSON.parse(sessionStorage["organizationList"]), //组织列表
|
subDisabled: false, //编辑页面保存按钮是否禁用(true禁用,false可用)
|
OperationType: null, //保存类型(新增1修改3)
|
HInterID: null,
|
baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/",
|
currentRow: [],
|
lastSelectedRowIndex: null, // 用于记录上次点击的行索引
|
lastSelectedRow: null, // 上一次选中的行
|
selectedRow: null, // 当前选中的行
|
rowForm: {},
|
checkedSysZb: [],
|
editData: [],
|
activeName: "first",
|
searchOpen: false,
|
// 弹出层标题
|
title: "",
|
// 是否显示弹出层
|
open: false,
|
// 日期范围
|
dateRange: [],
|
// 查询参数
|
queryParams: {
|
HOrgID: sessionStorage["OrganizationID"],
|
HName: null,
|
HNumber: null,
|
Comparator1: "",
|
Comparator2: "",
|
Comparator: "",
|
ColContent1: "",
|
ColContent2: "",
|
ColContent: "",
|
HInitTimeCycle: 29,
|
HBeginDate: dayjs(new Date()).subtract(29, "d").format("YYYY-MM-DDTHH:mm:ss"),
|
HEndDate: dayjs(new Date()).format("YYYY-MM-DDTHH:mm:ss"),
|
},
|
// 显示搜索条件
|
showSearch: true,
|
// 选中数组
|
ids: [],
|
// 非单个禁用
|
single: true,
|
// 非多个禁用
|
multiple: true,
|
// 遮罩层
|
loading: true,
|
// 禁用日期选择
|
disableDataPicker: true,
|
tyResList: [], //收料通知单列表(接口数据)
|
btList: [], //收料通知单列表显示
|
btResList: [],
|
tableData: [], //收料通知单列表(分页显示)
|
dataList: [],
|
titleData: [
|
"HItemID",
|
"hmainid",
|
"Hprocid",
|
"HUSEORGID",
|
"HCREATEORGID",
|
"HParentID",
|
], //不需要显示的字段 可扩展
|
pageSizes: [50, 100, 500, 5000, 50000],
|
page: 1,
|
pageSize: 50,
|
total: 0,
|
scollHeight: document.body.clientHeight * (38.056 / 100),
|
// 表单参数
|
form: {},
|
// 表单校验
|
rules: {},
|
upload: {
|
// 是否显示弹出层
|
open: false,
|
// 弹出层标题
|
title: "",
|
// 是否禁用上传
|
isUploading: false,
|
// 是否更新已经存在的数据
|
updateSupport: 0,
|
// 设置上传的请求头部
|
// headers: { Authorization: "Bearer " + getToken() },
|
// 上传的地址
|
url: "http://47.96.97.237/API/Gy_Source/Gy_Source_Excel",
|
},
|
uploadData: [],
|
alluploadList: [],
|
uploadTableLoading: false,
|
uploadPageSizes: [50, 100, 500, 5000, 50000],
|
uploadPage: 1,
|
uploadPageSize: 50,
|
uploadTotal: 0,
|
};
|
},
|
mounted() {
|
window.editGyClose = () => {
|
this.editGyClose(); // 组件内的方法绑定到windows
|
};
|
this.queryParams.HOrgID = sessionStorage["OrganizationID"];
|
},
|
|
beforeDestroy() {
|
// 组件销毁时清理全局方法,避免内存泄漏
|
delete window.editGyClose;
|
},
|
created() {
|
this.riqiChange();
|
this.handleQuery();
|
},
|
methods: {
|
onDateScanOptionChangerHandler(e) {
|
this.queryParams.timeSpan = e;
|
if (e == -1) {
|
this.disableDataPicker = true;
|
return;
|
}
|
|
this.disableDataPicker = false;
|
},
|
getSummaries(param) {
|
const { columns, data } = param;
|
const sums = [];
|
columns.forEach((column, index) => {
|
if (index === 0) {
|
sums[index] = "合计";
|
return;
|
}
|
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;
|
},
|
|
//#region 获取公司名,根据公司进行定制化开发
|
defaintOperationByCompanyName() {
|
var result = false;
|
axios
|
.get(this.baseURL + "/Xt_getInfo/getCompanyName")
|
.then((res) => {
|
var data1 = res.data;
|
if (data1.count == 1) {
|
if (data1.data == "水务") {
|
result = true;
|
}
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
return result;
|
},
|
handleSellOpen() {
|
this.$router.push("/sellBill");
|
},
|
handleSellOutOpen() {
|
this.$router.push("/sellOutBill");
|
},
|
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.handleQuery();
|
},
|
riqiChange() {
|
if (this.queryParams.HInitTimeCycle == -1) {
|
// 随意日期不计算
|
return;
|
}
|
const end = new Date();
|
const start = new Date();
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * this.queryParams.HInitTimeCycle);
|
const yyyyS = start.getFullYear();
|
const mmS = String(start.getMonth() + 1).padStart(2, "0"); // 月份是从0开始的
|
const ddS = String(start.getDate()).padStart(2, "0");
|
const yyyyE = end.getFullYear();
|
const mmE = String(end.getMonth() + 1).padStart(2, "0"); // 月份是从0开始的
|
const ddE = String(end.getDate()).padStart(2, "0");
|
this.sTime = yyyyS + "-" + mmS + "-" + ddS;
|
this.eTime = yyyyE + "-" + mmE + "-" + ddE;
|
this.dateRange = [this.sTime, this.eTime];
|
},
|
organizationChange(val) {
|
// let options=undefined
|
// this.form=this.organizationList.find(option => option.ID === val)?.Name || '';
|
},
|
//部门弹窗赋值
|
dbEmitData(deptRow, num) {
|
// num=1部门 num=2出库仓库
|
if (num == 1) {
|
this.form.HDeptName = deptRow.部门名称;
|
this.form.HDeptID = deptRow.HItemID;
|
this.form.HEmpID = deptRow.HEmpID;
|
this.form.HManagerName = deptRow.负责人;
|
this.openData = false;
|
} else if (num == 2) {
|
this.editData[this.zbIndex].HWHID = deptRow.HItemID;
|
this.editData[this.zbIndex].发货仓库 = deptRow.仓库名称;
|
this.openData = false;
|
} else if (num == 3) {
|
this.editData[this.zbIndex].HMaterID = deptRow.HItemID;
|
this.editData[this.zbIndex].物料代码 = deptRow.物料代码;
|
this.editData[this.zbIndex].物料名称 = deptRow.物料名称;
|
this.editData[this.zbIndex].HUnitID = deptRow.HUnitID;
|
this.editData[this.zbIndex].规格型号 = deptRow.规格型号;
|
this.editData[this.zbIndex].计量单位 = deptRow.计量单位名称;
|
this.editData[this.zbIndex].HTaxPrice = deptRow.含税成本价;
|
this.editData[this.zbIndex].HTaxRate = deptRow.默认税率;
|
this.openData = false;
|
}
|
},
|
emitData(deptRow, num) {
|
this.dialogTypeNum = num;
|
this.deptform = deptRow;
|
},
|
deptClickSub() {
|
this.dbEmitData(this.deptform, this.dialogTypeNum);
|
this.deptform = {};
|
},
|
async getList() {
|
this.tableShow = false;
|
this.loading = true;
|
if (this.pageSize == 0) {
|
this.pageSize = 50;
|
}
|
// 计量单位列表
|
|
try {
|
let res = await axios.get(this.baseURL + "/Gy_Unit/list1", {
|
params: {
|
sWhere: this.sWhere,
|
user: sessionStorage["HUserName"],
|
Organization:this.getOrgNameById(this.queryParams.HOrgID)
|
},
|
});
|
this.tyResList = [...JSON.parse(JSON.stringify(res.data.data))]; //总数据
|
let data1 = res.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]["hmainid"]) {
|
temp = result[i]["hmainid"];
|
} 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 (err) {
|
this.$modal.msgError(`获取计量单位列表错误: ${err}`);
|
}
|
},
|
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; // 记录当前选中的行
|
if (this.checkIsIframe()) {
|
// 将当前选中的数据暴露到window中
|
window.selectedRow = row;
|
}
|
this.lastSelectedRowIndex = this.tableData.indexOf(row);
|
this.$refs.tableData.toggleRowSelection(row);
|
},
|
//选中行高亮样式
|
rowStyle({ row, rowIndex }) {
|
if (this.ids.includes(row.hmainid)) {
|
return { background: "#ecf5ff" };
|
}
|
},
|
checkIsIframe() {
|
if (window.self == window.top) {
|
return false;
|
}
|
return true;
|
},
|
//双击行
|
handleDblclick(row, column, cell, event) {
|
if (this.checkIsIframe()) {
|
window.parent.iframeCarCallBack(row);
|
return;
|
}
|
this.OperationType = 3;
|
this.handleEdit(row, this.OperationType);
|
},
|
// 多选框选中数据
|
handleSelectionChange(selection) {
|
// this.rowForm = {}
|
this.ids = selection.map((item) => item.hmainid);
|
this.single = selection.length != 1;
|
this.multiple = !selection.length;
|
if (!this.single) {
|
this.rowForm = selection[0];
|
}
|
},
|
//打开侧边搜索弹窗
|
handleSearch() {
|
this.searchOpen = true;
|
},
|
/** 搜索按钮操作 */
|
handleQuery() {
|
this.sWhere = "";
|
if (this.queryParams.ColName && this.queryParams.Comparator) {
|
var com = "";
|
switch (this.queryParams.Comparator) {
|
case "7":
|
com = "like'%" + this.queryParams.ColContent + "%'";
|
break;
|
case "8":
|
com = "like'%" + this.queryParams.ColContent + "'";
|
break;
|
case "9":
|
com = "like'" + this.queryParams.ColContent + "%'";
|
break;
|
case "10":
|
com = "not like'%" + this.queryParams.ColContent + "%'";
|
break;
|
default:
|
com =
|
"" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
|
break;
|
}
|
this.sWhere += " and " + this.queryParams.ColName + " " + com;
|
}
|
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.HBeginDate && this.queryParams.HEndDate) {
|
// this.sWhere += ` and CONVERT(varchar(100),日期, 23) >= '${this.queryParams.HBeginDate}' and CONVERT(varchar(100),日期, 23) <= '${this.queryParams.HEndDate}'`;
|
// }
|
|
this.sWhere += this.addSWhereByOpenType();
|
// this.sWhere += this.getOrgIDByUser();
|
this.searchOpen = false;
|
this.getList();
|
},
|
// 判断是直接打开页面还是其它页面通过选择按钮打开,并显示相应数据
|
addSWhereByOpenType() {
|
//获取参数
|
var sWhere = "";
|
//this.openPage判断是否有值,有代表其它页面通过选择按钮打开
|
if (this.openPage || window.parent != window.self) {
|
sWhere += " and 禁用标志 != '1' and ISNULL(审核人,'') != ''";
|
return sWhere;
|
}
|
return sWhere;
|
},
|
//根据用户获取用户关联组织的过滤条件
|
getOrgIDByUser() {
|
var res = "";
|
axios
|
.get(this.baseURL + "/Xt_User/getOrgIDListByUser", {
|
params: {
|
HModName: this.HModName,
|
user: sessionStorage["HUserName"],
|
HOrgID: this.zuzhiId,
|
},
|
})
|
.then((res) => {
|
let result = res.data;
|
if (result.count == 1) {
|
if (result.data[0].sWhere == "1") {
|
res = " and HUSEORGID = '" + this.zuzhiId + "'";
|
} else {
|
res = result.data[0].sWhere;
|
}
|
}
|
})
|
.catch((error) => {
|
res = " and 1 = 0";
|
this.$modal.msgError("接口请求失败!");
|
});
|
return res;
|
},
|
/** 重置按钮操作 */
|
resetQuery() {
|
this.dateRange = [];
|
this.sWhere = "";
|
Object.assign(this.Parameters, {
|
HBillNo: "",
|
HInitTimeCycle: 29,
|
HProjectNumber: "",
|
HCusID: null,
|
HMaterNumber: "",
|
HMaterName: "",
|
ColName1: "",
|
ColName2: "",
|
ColName: "",
|
Comparator1: "",
|
Comparator2: "",
|
Comparator: "",
|
ColContent1: "",
|
ColContent2: "",
|
ColContent: "",
|
});
|
this.riqiChange();
|
this.resetForm("queryForm");
|
this.getList();
|
},
|
|
//退出
|
close() {
|
this.tableShow = true;
|
this.openEdit = false;
|
this.handleQuery();
|
},
|
//打开新增组件弹窗
|
handleAddEdit() {
|
// this.rowForm.HItemID = 0;
|
this.iframeUrl = `/iframe/GyUnitEdit?HInterID=0&OperationType=1`;
|
this.$nextTick(() => {
|
this.openEdit = true;
|
this.editShow = true;
|
});
|
},
|
//打开修改组件弹窗
|
handleEdit(row, OperationType) {
|
this.iframeUrl = `/iframe/GyUnitEdit?HInterID=${row.HItemID}&OperationType=${OperationType}`;
|
this.$nextTick(() => {
|
this.openEdit = true;
|
this.editShow = true;
|
});
|
},
|
//关闭编辑页面
|
editGyClose(val) {
|
this.editShow = false;
|
this.openEdit = false;
|
(this.multiple = true), this.handleQuery();
|
},
|
/** 删除按钮操作 */
|
handleDelete() {
|
this.$modal
|
.confirm("确认要删除吗,删除后不能恢复")
|
.then(() => {
|
if (!this.rowForm.审核人) {
|
const InterID = this.rowForm.hmainid || this.rowForm.HItemID || this.rowForm.HInterID;
|
axios
|
.get(this.baseURL + "DeltetGy_Unit", {
|
params: {
|
HItemID: InterID,
|
user: sessionStorage["HUserName"],
|
},
|
})
|
.then((res) => {
|
if (res.data.count == 1) {
|
this.handleQuery();
|
this.$modal.msgSuccess("删除成功");
|
} else {
|
this.$modal.msgError("错误:" + result.code + result.Message);
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
} else {
|
this.$modal.msgError("此条数据不是创建状态,无法删除!");
|
}
|
})
|
.catch(() => {});
|
},
|
// 反审核/审核数据
|
set_CheckBill(num, form) {
|
var InterID = form.HItemID || form.HInterID || form.hmainid;
|
//逻辑审核方法
|
axios
|
.get(this.baseURL + "/Gy_Unit/AuditGy_Unit", {
|
params: {
|
HInterID: InterID,
|
Type: num,
|
user: sessionStorage["HUserName"],
|
},
|
})
|
.then((res) => {
|
let result = res.data;
|
if (result.code == 1) {
|
|
this.handleQuery();
|
this.$modal.msgError("错误:" + result.code + result.Message);
|
} else {
|
this.$modal.msgSuccess("操作成功");
|
this.handleQuery();
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
|
|
|
// 反禁用/禁用数据
|
set_De_Stop(num, form) {
|
var InterID = form.HItemID || form.HInterID;
|
//逻辑审核方法
|
axios
|
.get(this.baseURL + "/Gy_Unit/StopGy_Unit", {
|
params: {
|
HInterID: InterID,
|
IsStop: num,
|
CurUserName: sessionStorage["HUserName"],
|
},
|
})
|
.then((res) => {
|
let result = res.data;
|
if (result.code == 1) {
|
this.$modal.msgSuccess("操作成功");
|
this.handleQuery();
|
} else {
|
this.$modal.msgError("错误:" + result.code + result.Message);
|
}
|
})
|
.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(res, file, fileList) {
|
// this.upload.open = false;
|
this.upload.isUploading = true;
|
this.$refs.upload.clearFiles();
|
if (res.code == 1) {
|
this.alluploadList = res.data;
|
this.uploadData = this.getPage(this.uploadPage, this.alluploadList);
|
this.uploadTotal = this.alluploadList.length;
|
this.uploadTableLoading = false;
|
// this.set_AddNew(res.data)
|
} else {
|
this.$alert(
|
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
|
res.Message +
|
"</div>",
|
"导入结果",
|
{ dangerouslyUseHTMLString: true }
|
);
|
}
|
},
|
// 假设您有一个组织ID
|
|
|
// 方法1.1:使用 find 方法
|
getOrgNameById(id) {
|
const org = this.organizationList.find(item =>
|
item.ID.toString() === id.toString()
|
);
|
return org ? org.Name : ''; // 只返回组织名称
|
},
|
|
|
// 提交上传文件
|
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.handleQuery();
|
})
|
.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>
|
.xsckdBox .el-date-editor.el-input {
|
width: 100%;
|
}
|
|
.form-item-inline > .el-form-item__content {
|
display: flex;
|
flex-direction: row;
|
width: 60%;
|
}
|
</style>
|