| | |
| | | //#endregion |
| | | //#endregion |
| | | |
| | | //#region 财务结算基础资料 |
| | | //#region 货币列表 |
| | | { |
| | | //src\views\basic\gyItemMoney\gyItemMoney.vue |
| | | path: "/basic/gy/gyCurrency", |
| | | component: Layout, |
| | | hidden: true, |
| | | redirect: "noredirect", |
| | | meta: { |
| | | breadcrumb: false, // 如果设置为false,则不会在breadcrumb面包屑中显示 |
| | | activeMenu: "/basic/gy", // 当路由设置了该属性,则会高亮相对应的侧边栏。 |
| | | }, |
| | | children: [ |
| | | { |
| | | path: "/basic/gy/gyCurrency", |
| | | component: () => import("@/views/basic/gyCurrency/gyCurrency.vue"), |
| | | name: "GyCurrency", |
| | | meta: { title: "货币列表", activeMenu: "basic/gy" }, |
| | | }, |
| | | ], |
| | | }, |
| | | //#endregion |
| | | //#endregion |
| | | |
| | | //#region 单位基础资料 |
| | | //#region 计量单位列表 |
| | | { |
| | | //src\views\basic\gyUnit\gyUnit.vue |
| | | path: "/basic/gy/gyUnit", |
| | | component: Layout, |
| | | hidden: true, |
| | | redirect: "noredirect", |
| | | meta: { |
| | | breadcrumb: false, // 如果设置为false,则不会在breadcrumb面包屑中显示 |
| | | activeMenu: "/basic/gy", // 当路由设置了该属性,则会高亮相对应的侧边栏。 |
| | | }, |
| | | children: [ |
| | | { |
| | | path: "/basic/gy/gyUnit", |
| | | component: () => import("@/views/basic/gyUnit/gyUnit.vue"), |
| | | name: "GyCurrency", |
| | | meta: { title: "计量单位列表", activeMenu: "basic/gy" }, |
| | | }, |
| | | ], |
| | | }, |
| | | //#endregion |
| | | //#endregion |
| | | |
| | | //#region 辅助属性基础资料 |
| | | { |
| | | //src\views\basic\gyItemMoney\gyItemMoney.vue |
| | |
| | | meta: { title: "仓库列表", noCache: true, noLoading: true }, |
| | | }, |
| | | { |
| | | path: "GyCurrency", |
| | | component: () => import("@/views/basic/gyCurrency/gyCurrency"), // 货币列表 |
| | | name: "IframeGyCurrency", |
| | | meta: { title: "货币列表", noCache: true, noLoading: true }, |
| | | }, |
| | | { |
| | | path: "GyCurrencyEdit", |
| | | component: () => import("@/views/basic/gyCurrency/gyCurrencyEdit"), // 货币编辑 |
| | | name: "IframeGyCurrencyEdit", |
| | | meta: { title: "货币列表", noCache: true, noLoading: true }, |
| | | }, |
| | | { |
| | | path: "GyUnit", |
| | | component: () => import("@/views/basic/gyUnit/gyUnit"), |
| | | |
| | | name: "IframeGyUnit", |
| | | meta: { title: "计量单位列表", noCache: true, noLoading: true }, |
| | | }, |
| | | { |
| | | path: "GyUnitEdit", |
| | | component: () => import("@/views/basic/gyUnit/gyUnitEdit"), // 计量单位编辑 |
| | | name: "IframeGyUnitEdit", |
| | | meta: { title: "计量单位编辑", noCache: true, noLoading: true }, |
| | | |
| | | }, |
| | | { |
| | | path: "GyUnitGroup", |
| | | component: () => import("@/views/basic/gyUnit/gyUnitGroup"), // 计量单位组列表 |
| | | name: "IframeGyUnitGroup", |
| | | meta: { title: "计量单位组列表", noCache: true, noLoading: true }, |
| | | |
| | | }, |
| | | { |
| | | path: "GySupplier", |
| | | component: () => import("@/views/basic/gy/gySupplier"), // 供应商 |
| | | name: "IframeGySupplier", |
| | |
| | | name: "IframeGyCarEdit", |
| | | meta: { title: "车辆编辑", noCache: true, noLoading: true }, |
| | | }, |
| | | |
| | | { |
| | | path: "GyProperty", |
| | | component: () => import("@/views/basic/gyProperty/gyPropertyList"), // 辅助属性 |
| | |
| | | icon: "build", |
| | | link: null, |
| | | noCache: false, |
| | | title: "货币列表", |
| | | }, |
| | | component: () => import("@/views/basic/gyCurrency/gyCurrency.vue"), |
| | | hidden: false, |
| | | name: "GyCurrency", |
| | | path: "gyCurrency", |
| | | }, |
| | | |
| | | { |
| | | meta: { |
| | | icon: "build", |
| | | link: null, |
| | | noCache: false, |
| | | title: "计量单位列表", |
| | | }, |
| | | component: () => import("@/views/basic/gyUnit/gyUnit.vue"), |
| | | hidden: false, |
| | | name: "GyUnit", |
| | | path: "gyUnit", |
| | | }, |
| | | |
| | | { |
| | | meta: { |
| | | icon: "build", |
| | | link: null, |
| | | noCache: false, |
| | | title: "供应商列表", |
| | | }, |
| | | component: () => import("@/views/basic/gy/gySupplier.vue"), |
| New file |
| | |
| | | <template> |
| | | <div style="padding: 10px"> |
| | | <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="HNumber"> |
| | | <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="请选择" |
| | | 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-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="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_CloseBill(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_CloseBill(2, (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_CloseRow(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_CloseRow(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_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_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: "gyCarList", |
| | | 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: [], //车辆子表 |
| | | editBtData: [], //子表表头 |
| | | 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_Currency/list1", { |
| | | params: { |
| | | sWhere: this.sWhere, |
| | | user: sessionStorage["HUserName"], |
| | | |
| | | }, |
| | | }); |
| | | 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/gyCurrencyEdit?HInterID=0&OperationType=1`; |
| | | this.$nextTick(() => { |
| | | this.openEdit = true; |
| | | this.editShow = true; |
| | | }); |
| | | }, |
| | | //打开修改组件弹窗 |
| | | handleEdit(row, OperationType) { |
| | | this.iframeUrl = `/iframe/gyCurrencyEdit?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.审核人) { |
| | | axios |
| | | .get(this.baseURL + "DeltetGy_Currency", { |
| | | params: { |
| | | HInterID: this.rowForm.hmainid.toString(), |
| | | 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_Currency/AuditGy_Currency", { |
| | | params: { |
| | | HInterID: InterID, |
| | | IsAudit: 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("接口请求失败!"); |
| | | }); |
| | | }, |
| | | // 禁用/反禁用数据 |
| | | async set_Stop(num, form) { |
| | | let HInterID = form.HItemID || form.HInterID || form.hmainid; |
| | | try { |
| | | let res = await axios |
| | | .get( |
| | | this.baseURL + "/Gy_Currency/StopGy_Currency", |
| | | { |
| | | params: { |
| | | HInterID: HInterID, |
| | | IsStop: num, |
| | | CurUserName: sessionStorage["HUserName"], |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | let { data, Message, count } = res.data; |
| | | |
| | | if (count == 1) { |
| | | this.handleQuery(); |
| | | } else { |
| | | this.$modal.msgError(`${Message}`); |
| | | } |
| | | } catch (err) { |
| | | this.$modal.msgError(`接口请求失败: ${err}`); |
| | | } |
| | | }, |
| | | // // 关闭/反关闭数据 |
| | | // async set_CloseBill(num, form) { |
| | | // let HInterID = form.HItemID || form.HInterID || form.hmainid; |
| | | // try { |
| | | // let res = await axios.get( |
| | | // `${this.baseURL}/Cg_POInStockBill/CloseCg_POInStockBill`, |
| | | // { |
| | | // params: { |
| | | // HInterID: HInterID, |
| | | // Type: num, |
| | | // user: sessionStorage["HUserName"], |
| | | // }, |
| | | // } |
| | | // ); |
| | | |
| | | // let { data, Message, count } = res.data; |
| | | |
| | | // if (count == 1) { |
| | | // this.handleQuery(); |
| | | // } else { |
| | | // this.$modal.msgError(`${Message}`); |
| | | // } |
| | | // } catch (err) { |
| | | // this.$modal.msgError(`接口请求失败: ${err}`); |
| | | // } |
| | | // }, |
| | | // // 行关闭/行反关闭数据 |
| | | // async set_CloseRow(num, form) { |
| | | // let HInterID = form.HItemID || form.HInterID || form.hmainid; |
| | | // let HEntryID = form.HEntryID || form.hsubid; |
| | | // try { |
| | | // let res = await axios.get( |
| | | // `${this.baseURL}/Cg_POInStockBill/CloseRowCg_POInStockBill`, |
| | | // { |
| | | // params: { |
| | | // HInterID: HInterID, |
| | | // HEntryID: HEntryID, |
| | | // ISAudit: num, |
| | | // CurUserName: sessionStorage["HUserName"], |
| | | // }, |
| | | // } |
| | | // ); |
| | | |
| | | // let { data, Message, count } = res.data; |
| | | |
| | | // if (count == 1) { |
| | | // this.handleQuery(); |
| | | // } else { |
| | | // this.$modal.msgError(`${Message}`); |
| | | // } |
| | | // } catch (err) { |
| | | // this.$modal.msgError(`接口请求失败: ${err}`); |
| | | // } |
| | | // }, |
| | | // // 作废/反作废数据 |
| | | // async set_DropBill(num, form) { |
| | | // let HInterID = form.HItemID || form.HInterID || form.hmainid; |
| | | // try { |
| | | // let res = await axios.get( |
| | | // `${this.baseURL}/Cg_POInStockBill/DropCg_POInStockBill`, |
| | | // { |
| | | // params: { |
| | | // HInterID: HInterID, |
| | | // Type: num, |
| | | // user: sessionStorage["HUserName"], |
| | | // }, |
| | | // } |
| | | // ); |
| | | |
| | | // let { data, Message, count } = res.data; |
| | | |
| | | // if (count == 1) { |
| | | // this.handleQuery(); |
| | | // } else { |
| | | // this.$modal.msgError(`${Message}`); |
| | | // } |
| | | // } catch (err) { |
| | | // this.$modal.msgError(`接口请求失败: ${err}`); |
| | | // } |
| | | // }, |
| | | // 反禁用/禁用数据 |
| | | set_De_Stop(num, form) { |
| | | var InterID = form.HItemID || form.HInterID; |
| | | //逻辑审核方法 |
| | | axios |
| | | .get(this.baseURL + "/Gy_Employee/StopGy_Employee", { |
| | | 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 } |
| | | ); |
| | | } |
| | | }, |
| | | // 提交上传文件 |
| | | 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> |
| New file |
| | |
| | | <template> |
| | | <div v-loading="formLoading" v-if="formShow"> |
| | | <div style="margin-bottom: 10px; border-bottom: 1px solid #f6f6f6"> |
| | | <el-button type="primary" @click="submitForm" :disabled="subDisabled" |
| | | >保 存</el-button |
| | | > |
| | | <el-button type="primary" @click="close">退 出</el-button> |
| | | </div> |
| | | |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="110px"> |
| | | <el-tabs v-model="activeName" type="card"> |
| | | <el-tab-pane label="基本信息" name="first"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="代码:" prop="HNumber"> |
| | | <el-input |
| | | v-model="form.HNumber" |
| | | placeholder="请输入货币代码" |
| | | :disabled="isEditMode" |
| | | /> |
| | | <el-input v-model="form.HItemID" type="hidden" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="名称:" prop="HName"> |
| | | <el-input |
| | | v-model="form.HName" |
| | | placeholder="请输入货币名称" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="助记码:"> |
| | | <el-input |
| | | v-model="form.HHelpCode" |
| | | placeholder="请输入助记码" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="小数位:"> |
| | | <el-input |
| | | v-model="form.HScale" |
| | | type="number" |
| | | placeholder="请输入小数位" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="汇率:"> |
| | | <el-input |
| | | v-model="form.HExchangeRate" |
| | | type="number" |
| | | placeholder="请输入汇率" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="禁用标志:"> |
| | | <el-checkbox v-model="form.HStopflag" disabled>禁用</el-checkbox> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="备注:"> |
| | | <el-input |
| | | v-model="form.HRemark" |
| | | type="textarea" |
| | | placeholder="请输入备注" |
| | | :rows="3" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import axios from "axios"; |
| | | import dayjs from "dayjs"; |
| | | |
| | | export default { |
| | | name: "GyCurrencyEdit", |
| | | components: {}, |
| | | props: { |
| | | OperationType: { type: Number }, // 1:新增, 3:编辑, 2:复制 |
| | | linterid: { type: Number }, // 编辑时的ID |
| | | HOrgID: { type: Number }, // 组织ID |
| | | }, |
| | | data() { |
| | | return { |
| | | formShow: false, |
| | | formLoading: true, |
| | | subDisabled: false, |
| | | isEditMode: false, |
| | | activeName: "first", |
| | | isIframe: false, |
| | | |
| | | // 表单参数 |
| | | form: { |
| | | HItemID: 0, |
| | | HNumber: "", |
| | | HName: "", |
| | | HHelpCode: "", |
| | | HScale: "2", |
| | | HExchangeRate: "1", |
| | | HStopflag: false, |
| | | HRemark: "", |
| | | HUserName: "", |
| | | }, |
| | | |
| | | // 表单校验 |
| | | rules: { |
| | | HNumber: [{ required: true, message: "货币代码不能为空", trigger: "blur" }], |
| | | HName: [{ required: true, message: "货币名称不能为空", trigger: "blur" }], |
| | | }, |
| | | |
| | | baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/", |
| | | user: "admin", |
| | | }; |
| | | }, |
| | | created() { |
| | | this.reset(); |
| | | this.fetchData(); |
| | | this.checkIframe(); |
| | | }, |
| | | mounted() { |
| | | this.user = sessionStorage["HUserName"] || "admin"; |
| | | }, |
| | | methods: { |
| | | // 检查是否在iframe中 |
| | | checkIframe() { |
| | | this.isIframe = window.self !== window.top; |
| | | }, |
| | | |
| | | fetchData() { |
| | | // 从URL获取参数 |
| | | const urlParams = this.getUrlParams(); |
| | | const hID = urlParams.HInterID ? parseInt(urlParams.HInterID) : 0; |
| | | const opType = urlParams.OperationType ? parseInt(urlParams.OperationType) : 1; |
| | | |
| | | // 如果props没有传递,使用URL参数 |
| | | const operationType = this.OperationType || opType; |
| | | const linterid = this.linterid || hID; |
| | | |
| | | if (operationType !== 1 && linterid) { |
| | | // 编辑或复制模式 |
| | | this.getDetailData(linterid, operationType); |
| | | } else { |
| | | // 新增模式 |
| | | this.formShow = true; |
| | | this.formLoading = false; |
| | | this.form.HItemID = 0; |
| | | this.isEditMode = false; |
| | | } |
| | | }, |
| | | |
| | | // 从URL获取参数 |
| | | getUrlParams() { |
| | | const params = {}; |
| | | const queryString = window.location.search.substring(1); |
| | | const pairs = queryString.split('&'); |
| | | |
| | | for (let i = 0; i < pairs.length; i++) { |
| | | const pair = pairs[i].split('='); |
| | | if (pair.length === 2) { |
| | | params[pair[0]] = decodeURIComponent(pair[1]); |
| | | } |
| | | } |
| | | |
| | | return params; |
| | | }, |
| | | |
| | | getDetailData(hID, operationType) { |
| | | this.formLoading = true; |
| | | axios |
| | | .get(this.baseURL + "/GetGy_CurrencyDetail", { |
| | | params: { |
| | | HID: hID, |
| | | }, |
| | | }) |
| | | .then((response) => { |
| | | let result = response.data; |
| | | if (result.code == 1) { |
| | | var data = result.data.h_v_Edit_Gy_CurrencyList[0]; |
| | | console.log("返回的数据:", data); |
| | | |
| | | this.form = { |
| | | HItemID: operationType == 2 ? 0 : data.HItemID, // 复制时ID设为0 |
| | | HNumber: data.货币代码, |
| | | HName: data.货币名称, |
| | | HHelpCode: data.助记代码, |
| | | HScale: data.小数位 || "2", |
| | | HExchangeRate: data.汇率 || "1", |
| | | HStopflag: data.禁用标记 === "true", |
| | | HRemark: data.备注 || "", |
| | | HUserName: this.user, |
| | | }; |
| | | |
| | | this.isEditMode = operationType === 3; |
| | | } else { |
| | | this.$modal.msgError(result.msg || "获取数据失败"); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | this.$modal.msgError("接口请求失败!"); |
| | | }) |
| | | .finally(() => { |
| | | this.formShow = true; |
| | | this.formLoading = false; |
| | | }); |
| | | }, |
| | | |
| | | // 重置表单 |
| | | reset() { |
| | | this.form = { |
| | | HItemID: 0, |
| | | HNumber: "", |
| | | HName: "", |
| | | HHelpCode: "", |
| | | HScale: "2", |
| | | HExchangeRate: "1", |
| | | HStopflag: false, |
| | | HRemark: "", |
| | | HUserName: this.user, |
| | | }; |
| | | this.subDisabled = false; |
| | | }, |
| | | |
| | | // 退出 |
| | | close() { |
| | | if (this.isIframe) { |
| | | // 在iframe中,通知父窗口关闭或返回 |
| | | if (window.parent.editGyClose) { |
| | | window.parent.editGyClose(); |
| | | } else { |
| | | // 尝试关闭iframe |
| | | try { |
| | | const index = parent.layer && parent.layer.getFrameIndex ? parent.layer.getFrameIndex(window.name) : null; |
| | | if (index !== null && index !== undefined) { |
| | | parent.layer.close(index); |
| | | } else { |
| | | // 如果没有layer,使用其他方式 |
| | | window.parent.postMessage({ action: 'closeIframe' }, '*'); |
| | | } |
| | | } catch (e) { |
| | | console.log("关闭iframe失败:", e); |
| | | this.$router.back(); |
| | | } |
| | | } |
| | | } else { |
| | | // 不在iframe中,使用路由返回或跳转 |
| | | if (this.$route) { |
| | | this.$router.back(); |
| | | } else if (this.OperationType === 1) { |
| | | // 新增模式,返回首页 |
| | | window.location.href = "/index.html"; |
| | | } else { |
| | | window.history.back(); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 提交保存 |
| | | // 提交保存 |
| | | submitForm() { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | this.subDisabled = true; |
| | | |
| | | // 准备数据 |
| | | const formData = { |
| | | ...this.form, |
| | | HStopflag: this.form.HStopflag ? "true" : "false", |
| | | HUserName: this.user, |
| | | }; |
| | | |
| | | const sMainStr = JSON.stringify(formData); |
| | | |
| | | // 直接发送JSON数据,不要使用FormData |
| | | const requestData = { |
| | | msg: sMainStr + ';' + this.user, |
| | | }; |
| | | |
| | | axios({ |
| | | method: "POST", |
| | | url: this.baseURL + "/SaveGy_CurrencyList", |
| | | data: requestData, // 直接发送JSON对象 |
| | | headers: { |
| | | 'Content-Type': 'application/json', // 使用JSON格式 |
| | | }, |
| | | }) |
| | | .then((response) => { |
| | | if (response.data.count == 1) { |
| | | this.$modal.msgSuccess(response.data.Message || "保存成功"); |
| | | this.subDisabled = true; |
| | | |
| | | // 保存成功后,如果是新增模式,可以继续添加,或者提示用户 |
| | | |
| | | } else { |
| | | this.$modal.msgError(response.data.Message || "保存失败"); |
| | | this.subDisabled = false; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | this.$modal.msgError("保存失败: " + (error.message || "未知错误")); |
| | | this.subDisabled = false; |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .el-form-item { |
| | | margin-bottom: 22px; |
| | | } |
| | | |
| | | .el-row { |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .hidden-input { |
| | | display: none; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <div style="padding: 10px"> |
| | | <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> |
| New file |
| | |
| | | <template> |
| | | <div v-loading="formLoading" v-if="formShow"> |
| | | <div style="margin-bottom: 10px; border-bottom: 1px solid #f6f6f6"> |
| | | <el-button type="primary" @click="submitForm" :disabled="subDisabled" |
| | | >保 存</el-button |
| | | > |
| | | <el-button |
| | | type="primary" |
| | | @click="setCheckBill" |
| | | :disabled="!isAuditable || subDisabled" |
| | | >审 核</el-button> |
| | | <el-button type="primary" @click="close">退 出</el-button> |
| | | </div> |
| | | |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="110px"> |
| | | <el-tabs v-model="activeName" type="card"> |
| | | <el-tab-pane label="基本信息" name="first"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="代码:" prop="HNumber"> |
| | | <el-input |
| | | v-model="form.HNumber" |
| | | placeholder="请输入计量单位代码" |
| | | :disabled="isEditMode && form.HItemID > 0" |
| | | /> |
| | | <el-input v-model="form.HItemID" type="hidden" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="名称:" prop="HName"> |
| | | <el-input |
| | | v-model="form.HName" |
| | | placeholder="请输入计量单位名称" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="助记码:"> |
| | | <el-input |
| | | v-model="form.HHelpCode" |
| | | placeholder="请输入助记码" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="换算比例:" prop="HRate"> |
| | | <el-input |
| | | v-model="form.HRate" |
| | | type="number" |
| | | placeholder="请输入换算比例" |
| | | min="0" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="默认单位:"> |
| | | <el-checkbox v-model="form.HStandard">设为默认单位</el-checkbox> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="禁用标志:"> |
| | | <el-checkbox v-model="form.HStopflag" disabled>禁用</el-checkbox> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="计量单位组:"> |
| | | <div style="white-space: nowrap;"> |
| | | <el-input |
| | | v-model="form.HUnitGroupName" |
| | | placeholder="请选择计量单位组" |
| | | readonly |
| | | style="width: 200px; display: inline-block;" |
| | | /> |
| | | <el-input v-model="form.HUnitGroupID" type="hidden" /> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | @click="selectUnitGroup" |
| | | style="width: 40px; margin-left: -30px; display: inline-block;" |
| | | ></el-button> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="备注:"> |
| | | <el-input |
| | | v-model="form.HRemark" |
| | | type="textarea" |
| | | placeholder="请输入备注" |
| | | :rows="3" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-tab-pane> |
| | | |
| | | <el-tab-pane label="制单信息" name="second"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="制单人:"> |
| | | <el-input |
| | | v-model="form.HMakeEmp" |
| | | readonly |
| | | :class="{ 'readonly-input': true }" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="制单日期:"> |
| | | <el-input |
| | | v-model="form.HMakeDate" |
| | | readonly |
| | | :class="{ 'readonly-input': true }" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="审核人:"> |
| | | <el-input |
| | | v-model="form.HCheckEmp" |
| | | readonly |
| | | :class="{ 'readonly-input': true }" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="审核日期:"> |
| | | <el-input |
| | | v-model="form.HCheckDate" |
| | | readonly |
| | | :class="{ 'readonly-input': true }" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="禁用人:"> |
| | | <el-input |
| | | v-model="form.HStopEmp" |
| | | readonly |
| | | :class="{ 'readonly-input': true }" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="禁用日期:"> |
| | | <el-input |
| | | v-model="form.HStopDate" |
| | | readonly |
| | | :class="{ 'readonly-input': true }" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </el-form> |
| | | |
| | | <!-- 计量单位组选择弹窗 --> |
| | | <el-dialog |
| | | title="计量单位组列表" |
| | | :visible.sync="unitGroupDialogVisible" |
| | | width="90%" |
| | | top="5vh" |
| | | :close-on-click-modal="false" |
| | | append-to-body |
| | | > |
| | | <div style="height: 70vh;"> |
| | | <iframe |
| | | :src="unitGroupIframeUrl" |
| | | frameborder="0" |
| | | width="100%" |
| | | height="100%" |
| | | ></iframe> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="unitGroupDialogVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="confirmUnitGroup">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import axios from "axios"; |
| | | import dayjs from "dayjs"; |
| | | |
| | | export default { |
| | | name: "GyUnitEdit", |
| | | components: {}, |
| | | props: { |
| | | OperationType: { type: Number }, // 1:新增, 3:编辑, 2:复制 |
| | | linterid: { type: Number }, // 编辑时的ID |
| | | HOrgID: { type: Number }, // 组织ID |
| | | }, |
| | | data() { |
| | | return { |
| | | formShow: false, |
| | | formLoading: true, |
| | | subDisabled: false, |
| | | isEditMode: false, |
| | | isAuditable: false, |
| | | activeName: "first", |
| | | isIframe: false, |
| | | |
| | | // 表单参数 |
| | | form: { |
| | | HItemID: 0, |
| | | HNumber: "", |
| | | HName: "", |
| | | HHelpCode: "", |
| | | HRate: "1", |
| | | HStandard: false, |
| | | HStopflag: false, |
| | | HRemark: "", |
| | | HUnitGroupID: "0", |
| | | HUnitGroupName: "", |
| | | HMakeEmp: "", |
| | | HMakeDate: "", |
| | | HCheckEmp: "", |
| | | HCheckDate: "", |
| | | HStopEmp: "", |
| | | HStopDate: "", |
| | | HUserName: "", |
| | | OrganizationID: "" |
| | | }, |
| | | |
| | | // 计量单位组选择 |
| | | unitGroupDialogVisible: false, |
| | | unitGroupIframeUrl: "", |
| | | selectedUnitGroup: null, |
| | | |
| | | // 表单校验 |
| | | rules: { |
| | | HNumber: [ |
| | | { required: true, message: "计量单位代码不能为空", trigger: "blur" }, |
| | | { max: 50, message: "长度不能超过50个字符", trigger: "blur" } |
| | | ], |
| | | HName: [ |
| | | { required: true, message: "计量单位名称不能为空", trigger: "blur" }, |
| | | { max: 100, message: "长度不能超过100个字符", trigger: "blur" } |
| | | ], |
| | | HRate: [ |
| | | { required: true, message: "换算比例不能为空", trigger: "blur" }, |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | if (value === '' || value === null) { |
| | | callback(new Error('换算比例不能为空')); |
| | | } else if (isNaN(value) || parseFloat(value) <= 0) { |
| | | callback(new Error('请输入大于0的数字')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, |
| | | trigger: 'blur' |
| | | } |
| | | ] |
| | | }, |
| | | |
| | | baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/", |
| | | user: "admin", |
| | | organizationID: "" |
| | | }; |
| | | }, |
| | | created() { |
| | | this.reset(); |
| | | this.fetchData(); |
| | | this.checkIframe(); |
| | | }, |
| | | mounted() { |
| | | this.user = sessionStorage["HUserName"] || "admin"; |
| | | this.organizationID = sessionStorage["OrganizationID"] || ""; |
| | | }, |
| | | methods: { |
| | | // 检查是否在iframe中 |
| | | checkIframe() { |
| | | this.isIframe = window.self !== window.top; |
| | | }, |
| | | |
| | | fetchData() { |
| | | // 从URL获取参数 |
| | | const urlParams = this.getUrlParams(); |
| | | const hID = urlParams.HInterID ? parseInt(urlParams.HInterID) : 0; |
| | | const opType = urlParams.OperationType ? parseInt(urlParams.OperationType) : 1; |
| | | |
| | | // 如果props没有传递,使用URL参数 |
| | | const operationType = this.OperationType || opType; |
| | | const linterid = this.linterid || hID; |
| | | |
| | | if (operationType !== 1 && linterid) { |
| | | // 编辑或复制模式 |
| | | this.getDetailData(linterid, operationType); |
| | | } else { |
| | | // 新增模式 |
| | | this.formShow = true; |
| | | this.formLoading = false; |
| | | this.form.HItemID = 0; |
| | | this.isEditMode = false; |
| | | this.isAuditable = false; |
| | | this.setDefaultValues(); |
| | | } |
| | | }, |
| | | |
| | | // 从URL获取参数 |
| | | getUrlParams() { |
| | | const params = {}; |
| | | const queryString = window.location.search.substring(1); |
| | | const pairs = queryString.split('&'); |
| | | |
| | | for (let i = 0; i < pairs.length; i++) { |
| | | const pair = pairs[i].split('='); |
| | | if (pair.length === 2) { |
| | | params[pair[0]] = decodeURIComponent(pair[1]); |
| | | } |
| | | } |
| | | |
| | | return params; |
| | | }, |
| | | |
| | | getDetailData(hID, operationType) { |
| | | this.formLoading = true; |
| | | axios |
| | | .get(this.baseURL + "GetGy_UnitDetail", { |
| | | params: { |
| | | HID: hID, |
| | | }, |
| | | }) |
| | | .then((response) => { |
| | | let result = response.data; |
| | | if (result.code == 1) { |
| | | var data = result.data.h_v_Edit_Gy_UnitList[0]; |
| | | console.log("返回的数据:", data); |
| | | |
| | | // 处理布尔值 |
| | | const isStopped = data.禁用标记 === "true"; |
| | | const isStandard = data.默认标记 === "true"; |
| | | |
| | | this.form = { |
| | | HItemID: operationType == 2 ? 0 : data.HItemID, // 复制时ID设为0 |
| | | HNumber: data.计量单位代码, |
| | | HName: data.计量单位名称, |
| | | HHelpCode: data.助记代码, |
| | | HRate: data.换算比例 || "1", |
| | | HStandard: isStandard, |
| | | HStopflag: isStopped, |
| | | HRemark: data.备注 || "", |
| | | HUnitGroupID: data.HUnitGroupID || "0", |
| | | HUnitGroupName: data.计量单位组名称 || "", |
| | | HMakeEmp: data["创建人"] || "", |
| | | HMakeDate: data["创建日期"] ? dayjs(data["创建日期"]).format("YYYY-MM-DD") : "", |
| | | HCheckEmp: data["审核人"] || "", |
| | | HCheckDate: data["审核日期"] ? dayjs(data["审核日期"]).format("YYYY-MM-DD") : "", |
| | | HStopEmp: data["禁用人"] || "", |
| | | HStopDate: data["禁用日期"] ? dayjs(data["禁用日期"]).format("YYYY-MM-DD") : "", |
| | | HUserName: this.user, |
| | | OrganizationID: this.organizationID |
| | | }; |
| | | |
| | | this.isEditMode = operationType === 3; |
| | | this.isAuditable = !data["审核人"] && operationType === 3; |
| | | |
| | | // 如果是已审核单据,禁用保存按钮 |
| | | if (data["审核人"]) { |
| | | this.subDisabled = true; |
| | | } |
| | | } else { |
| | | this.$modal.msgError(result.msg || "获取数据失败"); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | this.$modal.msgError("接口请求失败!"); |
| | | }) |
| | | .finally(() => { |
| | | this.formShow = true; |
| | | this.formLoading = false; |
| | | }); |
| | | }, |
| | | |
| | | // 设置默认值 |
| | | setDefaultValues() { |
| | | this.form.HMakeEmp = this.user; |
| | | this.form.HMakeDate = dayjs().format("YYYY-MM-DD"); |
| | | this.form.OrganizationID = this.organizationID; |
| | | }, |
| | | |
| | | // 重置表单 |
| | | reset() { |
| | | this.form = { |
| | | HItemID: 0, |
| | | HNumber: "", |
| | | HName: "", |
| | | HHelpCode: "", |
| | | HRate: "1", |
| | | HStandard: false, |
| | | HStopflag: false, |
| | | HRemark: "", |
| | | HUnitGroupID: "0", |
| | | HUnitGroupName: "", |
| | | HMakeEmp: "", |
| | | HMakeDate: "", |
| | | HCheckEmp: "", |
| | | HCheckDate: "", |
| | | HStopEmp: "", |
| | | HStopDate: "", |
| | | HUserName: this.user, |
| | | OrganizationID: this.organizationID |
| | | }; |
| | | this.subDisabled = false; |
| | | }, |
| | | |
| | | // 选择计量单位组 |
| | | selectUnitGroup() { |
| | | this.unitGroupIframeUrl = `/iframe/GyUnitGroup?type=select`; |
| | | this.unitGroupDialogVisible = true; |
| | | |
| | | // 监听来自iframe的消息 |
| | | window.addEventListener('message', this.handleUnitGroupMessage); |
| | | }, |
| | | |
| | | // 处理计量单位组选择消息 |
| | | handleUnitGroupMessage(event) { |
| | | if (event.data && event.data.action === 'selectUnitGroup') { |
| | | this.selectedUnitGroup = event.data.data; |
| | | } |
| | | }, |
| | | |
| | | // 确认选择计量单位组 |
| | | confirmUnitGroup() { |
| | | if (this.selectedUnitGroup) { |
| | | this.form.HUnitGroupID = this.selectedUnitGroup.HItemID; |
| | | this.form.HUnitGroupName = this.selectedUnitGroup.计量单位组; |
| | | } |
| | | this.unitGroupDialogVisible = false; |
| | | window.removeEventListener('message', this.handleUnitGroupMessage); |
| | | }, |
| | | |
| | | // 退出 |
| | | close() { |
| | | if (this.isIframe) { |
| | | // 在iframe中,通知父窗口关闭或返回 |
| | | if (window.parent.editGyClose) { |
| | | window.parent.editGyClose(); |
| | | } else { |
| | | // 尝试关闭iframe |
| | | try { |
| | | const index = parent.layer && parent.layer.getFrameIndex ? parent.layer.getFrameIndex(window.name) : null; |
| | | if (index !== null && index !== undefined) { |
| | | parent.layer.close(index); |
| | | } else { |
| | | // 如果没有layer,使用其他方式 |
| | | window.parent.postMessage({ action: 'closeIframe' }, '*'); |
| | | } |
| | | } catch (e) { |
| | | console.log("关闭iframe失败:", e); |
| | | this.$router.back(); |
| | | } |
| | | } |
| | | } else { |
| | | // 不在iframe中,使用路由返回或跳转 |
| | | if (this.$route) { |
| | | this.$router.back(); |
| | | } else if (this.OperationType === 1) { |
| | | // 新增模式,返回首页 |
| | | window.location.href = "/index.html"; |
| | | } else { |
| | | window.history.back(); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 提交保存 |
| | | submitForm() { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | this.subDisabled = true; |
| | | |
| | | // 准备数据 |
| | | const formData = { |
| | | ...this.form, |
| | | HStandard: this.form.HStandard ? "true" : "false", |
| | | HStopflag: this.form.HStopflag ? "true" : "false", |
| | | HRate: this.form.HRate.toString(), // 确保是字符串 |
| | | HUserName: this.user, |
| | | OrganizationID: this.organizationID |
| | | }; |
| | | |
| | | // 构建与原页面相同的格式 |
| | | const sMainStr = JSON.stringify(formData); |
| | | const additionalParams = `${this.user};${this.organizationID};${this.form.HRate}`; |
| | | const fullData = sMainStr + ';' + additionalParams; |
| | | |
| | | const requestData = { |
| | | msg: fullData, |
| | | }; |
| | | |
| | | axios({ |
| | | method: "POST", |
| | | url: this.baseURL + "SaveGy_UnitList", |
| | | data: requestData, |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | }) |
| | | .then((response) => { |
| | | if (response.data.count == 1) { |
| | | this.$modal.msgSuccess(response.data.Message || "保存成功"); |
| | | this.subDisabled = true; |
| | | this.form.HItemID = response.data.data; // 获取返回的ID |
| | | |
| | | // 如果是自动审核,执行审核 |
| | | if (response.data.Verify === "Y") { |
| | | this.setCheckBillNoLayer(); |
| | | } |
| | | |
| | | // 通知父组件刷新 |
| | | if (window.parent && window.parent.handleQuery) { |
| | | window.parent.handleQuery(); |
| | | } |
| | | |
| | | } else { |
| | | this.$modal.msgError(response.data.Message || "保存失败"); |
| | | this.subDisabled = false; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | this.$modal.msgError("保存失败: " + (error.message || "未知错误")); |
| | | this.subDisabled = false; |
| | | }); |
| | | } else { |
| | | this.$modal.msgError("请检查表单数据"); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 审核(带确认框) |
| | | setCheckBill() { |
| | | this.$confirm('确认要审核吗?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.setCheckBillNoLayer(); |
| | | }).catch(() => { |
| | | // 用户取消 |
| | | }); |
| | | }, |
| | | |
| | | // 审核(不带确认框) |
| | | setCheckBillNoLayer() { |
| | | if (!this.form.HItemID || this.form.HItemID == 0) { |
| | | this.$modal.msgError("请先保存单据"); |
| | | return; |
| | | } |
| | | |
| | | axios({ |
| | | method: "GET", |
| | | url: this.baseURL + "Gy_Unit/AuditGy_Unit", |
| | | params: { |
| | | HInterID: this.form.HItemID, |
| | | Type: 1, |
| | | user: this.user |
| | | } |
| | | }) |
| | | .then((response) => { |
| | | if (response.data.count == 1) { |
| | | this.$modal.msgSuccess("审核成功"); |
| | | this.isAuditable = false; |
| | | this.subDisabled = true; |
| | | |
| | | // 更新审核信息 |
| | | this.form.HCheckEmp = this.user; |
| | | this.form.HCheckDate = dayjs().format("YYYY-MM-DD"); |
| | | |
| | | // 通知父组件刷新 |
| | | if (window.parent && window.parent.handleQuery) { |
| | | window.parent.handleQuery(); |
| | | } |
| | | } else { |
| | | this.$modal.msgError(response.data.Message || "审核失败"); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | this.$modal.msgError("审核失败: " + (error.message || "未知错误")); |
| | | }); |
| | | } |
| | | }, |
| | | beforeDestroy() { |
| | | // 移除事件监听器 |
| | | window.removeEventListener('message', this.handleUnitGroupMessage); |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .el-form-item { |
| | | margin-bottom: 22px; |
| | | } |
| | | |
| | | .el-row { |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .hidden-input { |
| | | display: none; |
| | | } |
| | | |
| | | .readonly-input >>> .el-input__inner { |
| | | background-color: #f5f7fa; |
| | | color: #909399; |
| | | cursor: not-allowed; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <div style="padding: 15px; height: 100vh;"> |
| | | <el-card style="margin-bottom: 15px;"> |
| | | <el-form :inline="true" :model="queryForm" class="demo-form-inline"> |
| | | <el-form-item label="过滤列"> |
| | | <el-input |
| | | v-model="queryForm.Value" |
| | | placeholder="请输入过滤列" |
| | | @keyup.enter.native="handleQuery" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="handleQuery">快速查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | |
| | | <div style="height: calc(100% - 100px);"> |
| | | <el-table |
| | | ref="mainTable" |
| | | :data="tableData" |
| | | stripe |
| | | border |
| | | highlight-current-row |
| | | height="100%" |
| | | @row-dblclick="handleRowDblclick" |
| | | @row-click="handleRowClick" |
| | | :row-class-name="tableRowClassName" |
| | | > |
| | | <el-table-column type="radio" width="55"> |
| | | <template slot-scope="scope"> |
| | | <el-radio |
| | | v-model="selectedRowId" |
| | | :label="scope.row.HItemID" |
| | | @change="handleRadioChange(scope.row)" |
| | | ></el-radio> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="HItemID" label="单位组ID" width="150" v-if="false"></el-table-column> |
| | | <el-table-column prop="计量单位组代码" label="计量单位组代码" width="150"></el-table-column> |
| | | <el-table-column prop="计量单位组" label="计量单位组" width="150" sortable></el-table-column> |
| | | </el-table> |
| | | |
| | | <el-pagination |
| | | background |
| | | layout="total, sizes, prev, pager, next" |
| | | :total="total" |
| | | :page-sizes="[50, 500, 5000, 50000]" |
| | | :page-size="pageSize" |
| | | :current-page="currentPage" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | style="margin-top: 10px; text-align: right;" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import axios from "axios"; |
| | | |
| | | export default { |
| | | name: "GyUnitGroupSelect", |
| | | data() { |
| | | return { |
| | | queryForm: { |
| | | Value: "", |
| | | }, |
| | | tableData: [], |
| | | selectedRow: null, |
| | | selectedRowId: null, // 用于radio绑定 |
| | | total: 0, |
| | | currentPage: 1, |
| | | pageSize: 50, |
| | | type: "select", // 从URL参数中获取 |
| | | baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/", |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getUrlParams(); |
| | | this.getUnitGroupList(); |
| | | }, |
| | | methods: { |
| | | // 从URL获取参数 |
| | | getUrlParams() { |
| | | const queryString = window.location.search.substring(1); |
| | | const pairs = queryString.split('&'); |
| | | |
| | | for (let i = 0; i < pairs.length; i++) { |
| | | const pair = pairs[i].split('='); |
| | | if (pair.length === 2) { |
| | | const key = decodeURIComponent(pair[0]); |
| | | const value = decodeURIComponent(pair[1]); |
| | | if (key === 'type') { |
| | | this.type = value; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 查询数据 |
| | | handleQuery() { |
| | | this.currentPage = 1; |
| | | this.getUnitGroupList(); |
| | | }, |
| | | |
| | | // 获取计量单位组列表 |
| | | getUnitGroupList() { |
| | | axios |
| | | .get(this.baseURL + "Web/GetUnitGroupList_Json", { |
| | | params: { |
| | | Unit: this.queryForm.Value || "", |
| | | }, |
| | | }) |
| | | .then((response) => { |
| | | if (response.data && response.data.data) { |
| | | this.tableData = response.data.data; |
| | | this.total = response.data.data.length; |
| | | |
| | | // 重置选中状态 |
| | | this.selectedRow = null; |
| | | this.selectedRowId = null; |
| | | } else { |
| | | this.tableData = []; |
| | | this.total = 0; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error("获取计量单位组列表失败:", error); |
| | | this.$message.error("获取数据失败"); |
| | | }); |
| | | }, |
| | | |
| | | // 返回选择结果 - 修改这里确保能返回信息 |
| | | handleReturn() { |
| | | if (!this.selectedRow) { |
| | | this.$message.warning("请选择一条数据"); |
| | | return; |
| | | } |
| | | |
| | | // 首先尝试通过postMessage传递数据 |
| | | if (window.parent) { |
| | | window.parent.postMessage({ |
| | | action: 'selectUnitGroup', |
| | | data: this.selectedRow |
| | | }, '*'); |
| | | } |
| | | |
| | | // 同时尝试调用父窗口的方法 |
| | | if (window.parent.GetHUnitGroupNameValue) { |
| | | window.parent.GetHUnitGroupNameValue([this.selectedRow]); |
| | | } |
| | | |
| | | // 关闭当前窗口 |
| | | this.closeWindow(); |
| | | }, |
| | | |
| | | // 双击行事件 - 修改这里确保能关闭窗口 |
| | | handleRowDblclick(row) { |
| | | this.selectedRow = row; |
| | | this.selectedRowId = row.HItemID; |
| | | this.$refs.mainTable.setCurrentRow(row); |
| | | |
| | | // 传递数据给父窗口 |
| | | if (window.parent) { |
| | | window.parent.postMessage({ |
| | | action: 'selectUnitGroup', |
| | | data: this.selectedRow |
| | | }, '*'); |
| | | } |
| | | |
| | | if (window.parent.GetHUnitGroupNameValue) { |
| | | window.parent.GetHUnitGroupNameValue([this.selectedRow]); |
| | | } |
| | | |
| | | // 关闭窗口 |
| | | this.closeWindow(); |
| | | }, |
| | | |
| | | // 单击行事件 |
| | | handleRowClick(row) { |
| | | this.selectedRow = row; |
| | | this.selectedRowId = row.HItemID; |
| | | this.$refs.mainTable.setCurrentRow(row); |
| | | // 传递数据给父窗口 |
| | | if (window.parent) { |
| | | window.parent.postMessage({ |
| | | action: 'selectUnitGroup', |
| | | data: this.selectedRow |
| | | }, '*'); |
| | | } |
| | | |
| | | if (window.parent.GetHUnitGroupNameValue) { |
| | | window.parent.GetHUnitGroupNameValue([this.selectedRow]); |
| | | } |
| | | }, |
| | | |
| | | // Radio选择变化 |
| | | handleRadioChange(row) { |
| | | this.selectedRow = row; |
| | | this.$refs.mainTable.setCurrentRow(row); |
| | | }, |
| | | |
| | | // 关闭窗口的通用方法 |
| | | closeWindow() { |
| | | try { |
| | | // 尝试使用layer关闭 |
| | | if (parent.layer) { |
| | | const index = parent.layer.getFrameIndex(window.name); |
| | | if (index !== null && index !== undefined) { |
| | | parent.layer.close(index); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | // 尝试使用window.close |
| | | if (window.opener || window.parent !== window) { |
| | | window.close(); |
| | | return; |
| | | } |
| | | |
| | | // 尝试发送关闭消息 |
| | | if (window.parent) { |
| | | window.parent.postMessage({ action: 'closeSelectDialog' }, '*'); |
| | | } |
| | | |
| | | console.log("无法自动关闭窗口,请手动关闭"); |
| | | } catch (e) { |
| | | console.log("关闭窗口失败:", e); |
| | | } |
| | | }, |
| | | |
| | | // 设置表格行样式 |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if (this.selectedRow && row.HItemID === this.selectedRow.HItemID) { |
| | | return 'selected-row'; |
| | | } |
| | | return ''; |
| | | }, |
| | | |
| | | // 分页大小改变 |
| | | handleSizeChange(val) { |
| | | this.pageSize = val; |
| | | this.currentPage = 1; |
| | | // 这里可以根据需要重新加载数据 |
| | | }, |
| | | |
| | | // 当前页改变 |
| | | handleCurrentChange(val) { |
| | | this.currentPage = val; |
| | | // 这里可以根据需要重新加载数据 |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | /* 确保表格撑满容器 */ |
| | | .demo-form-inline { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | /* 表格容器样式 */ |
| | | .table-container { |
| | | height: calc(100% - 60px); |
| | | overflow: auto; |
| | | } |
| | | |
| | | /* 选中行样式 */ |
| | | .el-table .selected-row { |
| | | background-color: #f0f9ff !important; |
| | | } |
| | | |
| | | .el-table .selected-row:hover > td { |
| | | background-color: #e6f7ff !important; |
| | | } |
| | | </style> |
| | | |
| | | <style> |
| | | /* 全局样式,确保在表格内部生效 */ |
| | | .el-table .cell .el-radio { |
| | | margin-right: 0; |
| | | } |
| | | |
| | | .el-table .cell .el-radio__label { |
| | | display: none; |
| | | } |
| | | </style> |