1517 lines
48 KiB
Vue
1517 lines
48 KiB
Vue
<template>
|
||
<div class="sys-box approve-box">
|
||
<div class="sys-tabs">
|
||
<el-tabs v-model="activeName">
|
||
<el-tab-pane label="我发起的" name="first">
|
||
<mineTabPage :disableBtn="false" :formTableData="formTableData" :searchParamElement="searchParamElement"
|
||
:tableData="tableData" :listQuery="search_data" :total="total" :pictLoading="pictLoading" :buttons="buttons"
|
||
:summary="summary" :showMoreSearch="true" @sortChange="sortChange" @btnClick="btnClick" @getList="getList"
|
||
@search="search" @moreSearch="moreSearch" @goLink="gotoDetailAll" @handleCurrentChange="handleCurrentChange"
|
||
@handleSizeChange="handleSizeChange" @getSummaries="getSummaries"
|
||
@handleSelectionChange="handleSelectionChange"></mineTabPage>
|
||
</el-tab-pane>
|
||
<el-tab-pane label="我的审批" name="second">
|
||
<span slot="label">
|
||
<el-badge class="item" :value="approveTotal">我审批的</el-badge>
|
||
</span>
|
||
<auditTabPage :formTableData="showAuditColumnsDefault" :searchParamElement="searchApproveParamElement"
|
||
:tableData="auditTableData" :listTitle="'销售订单审批'" :listQuery="approveListQuery" :total="approveTotal"
|
||
:pictLoading="pictLoading" :buttons="buttons" @btnClick="btnClick" @getList="searchApproveList"
|
||
@search="searchApproveList" @moreSearch="moreSearch" @gotoDetail="gotoApproveDetail"
|
||
@handleCurrentChange="handleApproveCurrentChange" @handleSizeChange="handleApproveSizeChange"
|
||
@handleSelectionChange="handleSelectionChange"></auditTabPage>
|
||
</el-tab-pane>
|
||
<el-tab-pane label="已审批的" name="fourth">
|
||
<approvedPage :disableBtn="false" :formTableData="formTableData" :searchParamElement="searchParamElement"
|
||
:tableData="tableData" :listQuery="search_data4" :total="total" :pictLoading="pictLoading"
|
||
:buttons="approvedButton" :summary="summary" :showMoreSearch="true" @btnClick="btnClick" @getList="getList"
|
||
@search="search" @moreSearch="moreSearch" @goLink="gotoDetailAll" @handleCurrentChange="handleCurrentChange"
|
||
@handleSizeChange="handleSizeChange" @handleSelectionChange="handleSelectionChange">
|
||
</approvedPage>
|
||
</el-tab-pane>
|
||
<el-tab-pane label="我的团队" name="third">
|
||
<listTabPage :disableBtn="false" :formTableData="formTableData" :searchParamElement="searchParamElement"
|
||
:tableData="tableData" :listQuery="search_data2" :total="total" :pictLoading="pictLoading"
|
||
:buttons="otherButton" :summary="summary" :showMoreSearch="true" @btnClick="btnClick" @getList="getList"
|
||
@search="search" @moreSearch="moreSearch" @goLink="gotoDetailAll" @handleCurrentChange="handleCurrentChange"
|
||
@handleSizeChange="handleSizeChange" @handleSelectionChange="handleSelectionChange">
|
||
</listTabPage>
|
||
</el-tab-pane>
|
||
<el-tab-pane label="所有列表" name="end" v-if="isExist('sales:salesContract:allList')">
|
||
<listTabPage :disableBtn="false" :formTableData="formTableData" :searchParamElement="searchParamElement"
|
||
:tableData="tableData" :listQuery="search_data3" :total="total" :pictLoading="pictLoading"
|
||
:buttons="allListButton" :summary="summary" :showMoreSearch="true" @btnClick="btnClick" @getList="getList"
|
||
@search="search" @moreSearch="moreSearch" @goLink="gotoDetailAll" @handleCurrentChange="handleCurrentChange"
|
||
@handleSizeChange="handleSizeChange" @handleSelectionChange="handleSelectionChange">
|
||
</listTabPage>
|
||
</el-tab-pane>
|
||
</el-tabs>
|
||
</div>
|
||
<!-- 状态控制 -->
|
||
<el-dialog :title="columnSetDialogTitle" center :visible.sync="columnSetDialogVisible" width="531px"
|
||
:before-close="handleClose">
|
||
<el-table border class="move-table" :data="showTableColumns" row-key="prop_" :key="Math.random()" max-height="350"
|
||
style="width: 100%">
|
||
<el-table-column prop="title" label="列表名称"> </el-table-column>
|
||
<el-table-column prop="select" label="是否显示">
|
||
<template slot-scope="scope">
|
||
<el-switch v-model="scope.row.select"> </el-switch>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="操作">
|
||
<template slot-scope="scope">
|
||
<el-button type="text" size="small" @click="toUp(scope)">前移</el-button>
|
||
<el-button type="text" size="small" @click="toDown(scope)">后移</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<el-row type="flex" class="row-bg" justify="center" style="margin-top: 10px;">
|
||
<el-col :span="6">
|
||
<el-button type="primary" size="middle" @click="saveAndCloseColumnSetDialog">完成</el-button>
|
||
</el-col>
|
||
<el-col :span="6">
|
||
<el-button type="primary" size="middle" @click="toDefault">恢复默认</el-button>
|
||
</el-col>
|
||
</el-row>
|
||
</el-dialog>
|
||
<!-- 高级查询对话框 -->
|
||
<el-dialog :title="dialogTitle" center :visible.sync="advanceQueryDialogVisible" width="670px">
|
||
<el-form :inline="true" v-loading="dialogLoading" label-width="80px" class="dialog-form" ref="form"
|
||
style="width: 620px">
|
||
<div class="dialog-line">
|
||
<el-form-item label="合同时间" class="dialog-form-inline-single">
|
||
<el-date-picker v-model="formDataTime" type="daterange" format="yyyy-MM-dd"
|
||
value-format="yyyy-MM-dd HH:mm:ss" range-separator="—" start-placeholder="开始时间"
|
||
end-placeholder="结束时间"></el-date-picker>
|
||
</el-form-item>
|
||
</div>
|
||
<div class="dialog-line">
|
||
<el-form-item label="合同类型" class="dialog-form-inline">
|
||
<el-select v-model="formData.contractType" style="width:100%" clearable placeholder="请选择"
|
||
@change="changeFacility">
|
||
<el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="客户" class="dialog-form-inline">
|
||
<el-input placeholder="请输入客户名" v-model="formData.clientName" clearable></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
<div class="dialog-line">
|
||
<el-form-item label="物料" class="dialog-form-inline">
|
||
<btn-input :valueText.sync="formData.materielName" :valueId.sync="formData.materiel"
|
||
:chooseVisible.sync="chooseMaterielVisible"></btn-input>
|
||
</el-form-item>
|
||
<el-form-item label="规格型号" class="dialog-form-inline">
|
||
<el-input placeholder="请输入规格型号" v-model="formData.specification" clearable></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
<div class="dialog-line">
|
||
<el-form-item label="销售部门" class="dialog-form-inline">
|
||
<el-cascader v-model="salesPersonDept" clearable :options="depOptions" :props="{
|
||
expandTrigger: 'hover',
|
||
label: 'text',
|
||
value: 'id',
|
||
checkStrictly: true
|
||
}" @change="handleChange"></el-cascader>
|
||
</el-form-item>
|
||
<el-form-item label="审核状态" class="dialog-form-inline">
|
||
<el-select v-model="formData.auditSign" style="width:100%" clearable placeholder="请选择"
|
||
@change="changeFacility">
|
||
<el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</div>
|
||
<div class="dialog-line">
|
||
<el-form-item label="销售员" prop="salesPersonName" class="dialog-form-inline">
|
||
<btn-input :valueText.sync="formData.salesPersonName" :valueId.sync="formData.salesPerson"
|
||
:chooseVisible.sync="chooseUserVisible"></btn-input>
|
||
</el-form-item>
|
||
<el-form-item label="制单人" prop="createByName" class="dialog-form-inline">
|
||
<btn-input :valueText.sync="formData.createByName" :valueId.sync="formData.createBy"
|
||
:chooseVisible.sync="chooseUserVisible1"></btn-input>
|
||
</el-form-item>
|
||
</div>
|
||
</el-form>
|
||
<span slot="footer" class="dialog-footer">
|
||
<el-button type="primary" @click="save">确定</el-button>
|
||
<el-button type="primary" @click="advanceQueryDialogVisible = false">关闭</el-button>
|
||
<el-button type="primary" @click="clear">清空</el-button>
|
||
</span>
|
||
</el-dialog>
|
||
<!--选择用户-->
|
||
<DialogChooseSingleUser :visible.sync="chooseUserVisible" @change="getUser"></DialogChooseSingleUser>
|
||
<!--选择制单人-->
|
||
<DialogChooseSingleUser1 :visible.sync="chooseUserVisible1" @change="getUser1"></DialogChooseSingleUser1>
|
||
<!--选择物料-->
|
||
<dialogChooseSingleParts :visible.sync="chooseMaterielVisible" @change="getMateriel"></dialogChooseSingleParts>
|
||
<dialog-import-file
|
||
v-if="showUserImportDialog"
|
||
:visible.sync="showUserImportDialog"
|
||
title="销售订单批量导入"
|
||
source="sales"
|
||
:upload-data="{ type: 'user' }"
|
||
@success="handleUserImportSuccess"
|
||
@close="showUserImportDialog = false"
|
||
/>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import DialogImportFile from '@/components/Dialog/dialogImportFile.vue';
|
||
import { mapState, mapActions, mapGetters } from "vuex";
|
||
import btnInput from "@/components/btnInput.vue";
|
||
import FileSaver from "file-saver";
|
||
import config from "@/utils/config.js";
|
||
import Cookies from "js-cookie";
|
||
import DialogChooseSingleUser from "@/components/System/dialogChooseSingleUser";
|
||
import dialogChooseSingleParts from "@/components/System/dialogChooseSingleParts";
|
||
import DialogChooseSingleUser1 from "@/components/System/dialogChooseSingleUser";
|
||
import { formatDateTime, getCurrentDate } from "@/utils/tools.js";
|
||
import mineTabPage from "@/components/TabPages/mineTabPage";
|
||
import listTabPage from "@/components/TabPages/listTabPage";
|
||
import auditTabPage from "@/components/TabPages/auditTabPage";
|
||
import approvedPage from "@/components/TabPages/approvedPage";
|
||
import Sortable from "sortablejs";
|
||
export default {
|
||
components: {
|
||
btnInput,
|
||
DialogChooseSingleUser,
|
||
DialogChooseSingleUser1,
|
||
dialogChooseSingleParts,
|
||
mineTabPage,
|
||
listTabPage,
|
||
auditTabPage,
|
||
approvedPage,
|
||
DialogImportFile
|
||
},
|
||
data() {
|
||
return {
|
||
userUploadUrl:'/apis/standard/importExcel/sales',
|
||
showUserImportDialog:false,
|
||
total: 0, //总条数
|
||
approveTotal: 0, //总条数
|
||
pageSizes: [10, 20, 50], //每页展示多少条
|
||
activeName: "first",
|
||
search_data: {
|
||
tabType: 0,
|
||
pageno: 1,
|
||
pagesize: 10
|
||
},
|
||
search_data1: {
|
||
tabType: 0,
|
||
pageno: 1,
|
||
pagesize: 10
|
||
},
|
||
search_data2: {
|
||
tabType: 1,
|
||
pageno: 1,
|
||
pagesize: 10
|
||
},
|
||
search_data3: {
|
||
tabType: 2,
|
||
pageno: 1,
|
||
pagesize: 10
|
||
},
|
||
search_data4: {
|
||
tabType: 3,
|
||
pageno: 1,
|
||
pagesize: 10
|
||
},
|
||
approveListQuery: {
|
||
type: 3,
|
||
pageno: 1,
|
||
pagesize: 5
|
||
},
|
||
formData: {
|
||
startTime: "",
|
||
endTime: "",
|
||
contractType: "",
|
||
contractTypeName: "",
|
||
unitUomName: "",
|
||
clientName: "",
|
||
materielName: "",
|
||
specification: "",
|
||
auditSign: "",
|
||
salesPersonName: "",
|
||
salesPerson: "",
|
||
// createTime: '',
|
||
deptId: "",
|
||
salesPersonDept: "",
|
||
createBy: "", //制单人id
|
||
createByName: ""
|
||
},
|
||
exportList: [],
|
||
elOptionList: [],
|
||
searchParamElement: [
|
||
{
|
||
key: 0,
|
||
label: "合同编号",
|
||
searchType: "inputElement",
|
||
placeholder: "合同编号",
|
||
model: "contractCode",
|
||
clearable: true
|
||
},
|
||
{
|
||
key: 1,
|
||
label: "客户名称",
|
||
searchType: "inputElement",
|
||
placeholder: "客户",
|
||
model: "clientName",
|
||
clearable: true
|
||
},
|
||
{
|
||
key: 2,
|
||
label: "物料名称",
|
||
searchType: "inputElement",
|
||
placeholder: "物料名称",
|
||
model: "materielName",
|
||
clearable: true
|
||
},
|
||
{
|
||
key: 3,
|
||
label: "客户合同编号",
|
||
searchType: "inputElement",
|
||
placeholder: "客户合同编号",
|
||
model: "clientContractCode",
|
||
clearable: true
|
||
},
|
||
{
|
||
key: 4,
|
||
label: "合同日期",
|
||
searchType: "dateElement",
|
||
placeholder: "请选择时间段",
|
||
model: "timeArea",
|
||
clearable: true
|
||
}
|
||
],
|
||
searchApproveParamElement: [
|
||
{
|
||
label: "合同编号",
|
||
searchType: "inputElement",
|
||
placeholder: "合同编号",
|
||
model: "dataCode",
|
||
clearable: true
|
||
},
|
||
{
|
||
label: "客户",
|
||
searchType: "inputElement",
|
||
placeholder: "模糊搜索",
|
||
model: "clientName",
|
||
clearable: true
|
||
},
|
||
// {label:"物料",searchType:"inputElement",placeholder:"模糊搜索",model: "materielName",clearable:true},
|
||
{
|
||
label: "合同日期",
|
||
searchType: "dateElement",
|
||
placeholder: "请选择时间段",
|
||
model: "timeArea",
|
||
clearable: true
|
||
}
|
||
],
|
||
buttons: [
|
||
{
|
||
key: 0,
|
||
btnName: "新增",
|
||
vhas: "sales:salesContract:add",
|
||
click: "goAdd",
|
||
type: "primary",
|
||
disabled: false
|
||
},
|
||
{
|
||
key: 1,
|
||
btnName: "删除",
|
||
vhas: "sales:salesContract:remove",
|
||
click: "remove",
|
||
type: "primary",
|
||
disabled: true
|
||
},
|
||
{
|
||
key: 2,
|
||
btnName: "导出",
|
||
vhas: "sales:salesContract:exportExcel",
|
||
click: "exportExcel",
|
||
type: "primary",
|
||
disabled: false
|
||
},
|
||
{
|
||
key: 3,
|
||
btnName: "关闭",
|
||
vhas: "sales:salesContract:close",
|
||
click: "close",
|
||
type: "primary",
|
||
disabled: true
|
||
},
|
||
{
|
||
key: 4,
|
||
btnName: "开启",
|
||
vhas: "sales:salesContract:reverseClose",
|
||
click: "reverseClose",
|
||
type: "primary",
|
||
disabled: true
|
||
},
|
||
{
|
||
key: 5,
|
||
btnName: "变更",
|
||
vhas: "sales:salesContract:change",
|
||
click: "change",
|
||
type: "primary",
|
||
disabled: true
|
||
},
|
||
{
|
||
key: 6,
|
||
btnName: "变更记录",
|
||
vhas: "sales:salesContract:gotoAlterationList",
|
||
click: "gotoAlterationList",
|
||
type: "primary",
|
||
disabled: true
|
||
},
|
||
{
|
||
key: 7,
|
||
btnName: "列表配置",
|
||
click: "showColumnSetDialog",
|
||
vhas: "",
|
||
type: "primary",
|
||
disabled: false
|
||
},
|
||
{
|
||
key: 8,
|
||
btnName: "关联单据",
|
||
click: "associatedDocument",
|
||
type: "primary",
|
||
disabled: true
|
||
},
|
||
{
|
||
key: 9,
|
||
btnName: "同步ERP",
|
||
click: "tberp",
|
||
type: "primary",
|
||
disabled: false
|
||
},
|
||
{key:10,btnName:"导入",vhas:"sales:salesContract:import",click:"importFile",type:"primary",disabled:false},
|
||
|
||
],
|
||
//
|
||
otherButton: [
|
||
{
|
||
key: 0,
|
||
btnName: "导出",
|
||
vhas: "sales:salesContract:exportExcel",
|
||
click: "exportExcel",
|
||
type: "primary",
|
||
disabled: false
|
||
},
|
||
{
|
||
key: 1,
|
||
btnName: "变更记录",
|
||
vhas: "sales:salesContract:gotoAlterationList",
|
||
click: "gotoAlterationList",
|
||
type: "primary",
|
||
disabled: true
|
||
}
|
||
],
|
||
allListButton: [
|
||
{
|
||
key: 0,
|
||
btnName: "导出",
|
||
vhas: "sales:salesContract:exportExcel",
|
||
click: "exportExcel",
|
||
type: "primary",
|
||
disabled: false
|
||
},
|
||
// {key:1,btnName:"删除",vhas:"sales:salesContract:remove",click:"remove",type:"primary",disabled:true},
|
||
// {key:1,btnName:"反审核",vhas:"sales:salesContract:disAudit",click:"disAudit",type:"primary",disabled:true},
|
||
{
|
||
key: 2,
|
||
btnName: "变更记录",
|
||
vhas: "sales:salesContract:gotoAlterationList",
|
||
click: "gotoAlterationList",
|
||
type: "primary",
|
||
disabled: true
|
||
}
|
||
],
|
||
approvedButton: [
|
||
{
|
||
key: 0,
|
||
btnName: "导出",
|
||
vhas: "sales:salesContract:exportExcel",
|
||
click: "exportExcel",
|
||
type: "primary",
|
||
disabled: false
|
||
},
|
||
// {key:1,btnName:"删除",vhas:"sales:salesContract:remove",click:"remove",type:"primary",disabled:true},
|
||
// {key:1,btnName:"反审核",vhas:"sales:salesContract:disAudit",click:"disAudit",type:"primary",disabled:true},
|
||
{
|
||
key: 2,
|
||
btnName: "变更记录",
|
||
vhas: "sales:salesContract:gotoAlterationList",
|
||
click: "gotoAlterationList",
|
||
type: "primary",
|
||
disabled: true
|
||
}
|
||
],
|
||
//默认审批页面列表
|
||
showAuditColumnsDefault: [
|
||
// {title: "审批标题", prop_: "title",content:"销售订单审批", select: true},
|
||
{ title: "申请人", prop_: "approveApplicantName", select: true },
|
||
{ title: "申请时间", prop_: "submitTime", select: true },
|
||
{
|
||
title: "审批状态",
|
||
prop_: "approveStatusName",
|
||
select: true,
|
||
sortable: true
|
||
}
|
||
],
|
||
auditTableData: [],
|
||
//默认列表数据
|
||
showTableColumnsDefault: [
|
||
{ title: "合同日期", prop_: "contractDate", select: true },
|
||
{ title: "合同编号", prop_: "contractCode", select: true },
|
||
{ title: "合同类型", prop_: "contractTypeName", select: true },
|
||
{ title: "客户合同编号", prop_: "clientContractCode", select: false },
|
||
{ title: "关闭标志", prop_: "closeStatusName", select: false },
|
||
{ title: "客户名称", prop_: "clientName", select: true },
|
||
{ title: "销售员", prop_: "salesPersonName", select: true },
|
||
{ title: "销售部门", prop_: "salesPersonDeptName", select: false},
|
||
{ title: "发货是否检验", prop_: "isCheck", select: false },
|
||
{ title: "物料代码", prop_: "materielSerialNo", select: true },
|
||
{ title: "物料名称", prop_: "materielName", select: false },
|
||
{ title: "规格型号", prop_: "specification", select: true },
|
||
{ title: "主计量单位", prop_: "unitUomName", select: false },
|
||
{ title: "主单位数量", prop_: "count", select: false },
|
||
{ title: "辅助单位", prop_: "supportUomName", select: false },
|
||
{ title: "销售数量", prop_: "saleCount", select: true },
|
||
{ title: "含税单价(元)", prop_: "taxUnitPrice", select: true },
|
||
{ title: "销售金额(元)", prop_: "taxAmount", select: true },
|
||
{
|
||
title: "交货日期",
|
||
prop_: "deliveryDate",
|
||
select: true,
|
||
sortable: false
|
||
},
|
||
// {title: "审核状态", prop_: "auditSignName", select: true},
|
||
{ title: "审批状态", prop_: "approveStatusName", select: true },
|
||
{ title: "行关闭状态", prop_: "itemCloseStatusName", select: false },
|
||
{ title: "行关闭时间", prop_: "itemCloseTime", select: false },
|
||
{ title: "行关闭原因", prop_: "itemCloseReason", select: false }
|
||
],
|
||
///弹出页面列表数据
|
||
showTableColumns: [
|
||
{ title: "合同日期", prop_: "contractDate", select: true },
|
||
{ title: "合同编号", prop_: "contractCode", select: true },
|
||
{ title: "合同类型", prop_: "contractTypeName", select: true },
|
||
{ title: "关闭标志", prop_: "closeStatusName", select: true },
|
||
{ title: "客户名称", prop_: "clientName", select: true },
|
||
{ title: "销售员", prop_: "salesPersonName", select: true },
|
||
{ title: "销售部门", prop_: "salesPersonDeptName", select: true },
|
||
{ title: "发货是否检验", prop_: "isCheck", select: true },
|
||
{ title: "物料代码", prop_: "materielSerialNo", select: true },
|
||
{ title: "物料名称", prop_: "materielName", select: true },
|
||
{ title: "规格型号", prop_: "specification", select: true },
|
||
{ title: "主计量单位", prop_: "unitUomName", select: true },
|
||
{ title: "主单位数量", prop_: "count", select: true },
|
||
{ title: "辅助单位", prop_: "supportUomName", select: true },
|
||
{ title: "销售数量", prop_: "saleCount", select: true },
|
||
{ title: "含税单价(元)", prop_: "taxUnitPrice", select: true },
|
||
{ title: "销售金额(元)", prop_: "taxAmount", select: true },
|
||
{
|
||
title: "交货日期",
|
||
prop_: "deliveryDate",
|
||
select: true,
|
||
sortable: true
|
||
},
|
||
// {title: "审核状态", prop_: "auditSignName", select: true},
|
||
{ title: "审批状态", prop_: "approveStatusName", select: true },
|
||
{ title: "行关闭状态", prop_: "itemCloseStatusName", select: true },
|
||
{ title: "行关闭时间", prop_: "itemCloseTime", select: true },
|
||
{ title: "行关闭原因", prop_: "itemCloseReason", select: true }
|
||
],
|
||
showTableColumnsTemp: [], //弹框弹出的时候,保存当前的列表数据
|
||
//显示的列表字段
|
||
formTableData: [],
|
||
alterationDetailId: "",
|
||
contractList: [],
|
||
contractData: [],
|
||
tableData1: [],
|
||
summary: {},
|
||
formDataTime: "",
|
||
time: "",
|
||
salesTime: "",
|
||
tableData: [],
|
||
depOptions: [],
|
||
salesPersonDept: "",
|
||
options: [],
|
||
typeList: [],
|
||
config: config,
|
||
btnDelDisabled: true,
|
||
btnOtherDisabled: true,
|
||
advanceQueryDialogVisible: false,
|
||
chooseUserVisible: false,
|
||
chooseUserVisible1: false,
|
||
chooseMaterielVisible: false, //物料
|
||
dialogLoading: false,
|
||
dialogTitle: "",
|
||
pictLoading: false,
|
||
columnSetDialogTitle: "设置显示字段列表",
|
||
columnSetDialogVisible: false,
|
||
salesContractIds: [],
|
||
tableId: "sales_contract_table",
|
||
tbody: ""
|
||
};
|
||
},
|
||
watch: {
|
||
time(val) {
|
||
if (val) {
|
||
this.search_data.startTime = val[0];
|
||
this.search_data.endTime = val[1];
|
||
} else {
|
||
this.search_data.startTime = "";
|
||
this.search_data.endTime = "";
|
||
}
|
||
},
|
||
|
||
btnDelDisabled(val) {
|
||
this.buttons[1].disabled = val;
|
||
// this.allListButton[1].disabled = val
|
||
// this.approvedButton[1].disabled = val
|
||
},
|
||
btnOtherDisabled(val) {
|
||
// this.buttons[2].disabled = val
|
||
this.buttons[3].disabled = val;
|
||
this.buttons[4].disabled = val;
|
||
this.buttons[5].disabled = val;
|
||
this.buttons[6].disabled = val;
|
||
this.buttons[8].disabled = val;
|
||
this.otherButton[1].disabled = val;
|
||
this.allListButton[1].disabled = val;
|
||
// this.allListButton[3].disabled = val
|
||
this.approvedButton[1].disabled = val;
|
||
// this.approvedButton[3].disabled = val
|
||
},
|
||
activeName(val) {
|
||
if (val === "first") {
|
||
this.search_data = this.search_data1;
|
||
this.getList(0);
|
||
} else if (val === "second") {
|
||
// this.search_data.tabType=null
|
||
} else if (val === "third") {
|
||
this.search_data = this.search_data2;
|
||
this.getList();
|
||
} else if (val === "fourth") {
|
||
this.search_data = this.search_data4;
|
||
this.getList();
|
||
} else if (val === "end") {
|
||
this.search_data = this.search_data3;
|
||
this.getList();
|
||
}
|
||
},
|
||
formDataTime(val) {
|
||
if (val) {
|
||
this.formData.startTime = val[0];
|
||
this.formData.endTime = val[1];
|
||
} else {
|
||
this.formData.startTime = "";
|
||
this.formData.endTime = "";
|
||
}
|
||
}
|
||
},
|
||
created() {
|
||
this.showTableColumns = JSON.parse(JSON.stringify(this.showTableColumns));
|
||
this.showTableColumnsTemp = JSON.parse(
|
||
JSON.stringify(this.showTableColumns)
|
||
);
|
||
this.myApproveList();
|
||
this.getList(0);
|
||
this.getShowColumns();
|
||
this.initData();
|
||
},
|
||
mounted() {
|
||
// this.rowDrop()
|
||
if (this.$route.query.active) {
|
||
this.activeName = "second";
|
||
}
|
||
},
|
||
methods: {
|
||
handleUserImportSuccess(response, file, fileList) {
|
||
this.getList()
|
||
},
|
||
associatedDocument() {
|
||
let data = this.salesContractIds[0];
|
||
this.$router.push({
|
||
path: "/sales/salesContract_associatedDocument",
|
||
query: {
|
||
id: data.salesContractId,
|
||
clientName: data.clientName,
|
||
contractCode: data.contractCode,
|
||
t: Date.now()
|
||
}
|
||
});
|
||
},
|
||
// 所有列表展示
|
||
isExist(val) {
|
||
let isExist = false;
|
||
// 从浏览器缓存中获取权限数组
|
||
var buttonpermsStr = localStorage.getItem("btnContext");
|
||
if (buttonpermsStr === undefined || buttonpermsStr == null) {
|
||
return false;
|
||
} else {
|
||
JSON.parse(buttonpermsStr).forEach(element => {
|
||
//匹配缓存中的数据中有没有匹配的值
|
||
if (element == val) {
|
||
// 若在按钮中定义的权限字段能在后端返回的权限数组中能找到,则该按钮可显示
|
||
isExist = true;
|
||
}
|
||
});
|
||
}
|
||
return isExist;
|
||
},
|
||
btnClick(val) {
|
||
console.log("根据方法名称调用");
|
||
if (val === "goAdd") {
|
||
this.goAdd();
|
||
} else if (val == "showColumnSetDialog") {
|
||
this.showColumnSetDialog();
|
||
} else if (val == "remove") {
|
||
this.remove();
|
||
} else if (val == "disAudit") {
|
||
this.disAudit();
|
||
} else if (val === "exportExcel") {
|
||
this.exportExcel();
|
||
} else if (val === "close") {
|
||
this.close();
|
||
} else if (val === "reverseClose") {
|
||
this.reverseClose();
|
||
} else if (val === "change") {
|
||
this.change();
|
||
} else if (val === "gotoAlterationList") {
|
||
this.gotoAlterationList();
|
||
} else if (val === "associatedDocument") {
|
||
this.associatedDocument();
|
||
} else if (val === "tberp") {
|
||
this.tberp();
|
||
} else if( val === 'importFile'){
|
||
this.importFile()
|
||
}
|
||
},
|
||
importFile(){
|
||
console.log("123")
|
||
this.showUserImportDialog = true
|
||
},
|
||
tberp() {
|
||
this.$api.yxkAPI.yxkGet("/api/saleContract/u8Sync", {}).then(res => {
|
||
if (res.code == 0) {
|
||
this.$confirm("数据同步成功,请确认", "提醒", {
|
||
type: "warning"
|
||
}).then(() => {
|
||
this.search_data = {
|
||
tabType: 0,
|
||
pageno: 1,
|
||
pagesize: 10
|
||
};
|
||
this.getList();
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 查询审批列表
|
||
searchApproveList() {
|
||
this.approveListQuery.pagesize = 5;
|
||
this.approveListQuery.pageno = 1;
|
||
this.myApproveList();
|
||
},
|
||
//进入审核页面
|
||
gotoApproveDetail(row) {
|
||
this.$router.push({
|
||
path: "/sales/salesContract_approve_detail",
|
||
query: {
|
||
id: row.salesContractId,
|
||
instanceId: row.instanceId,
|
||
taskId: row.taskId,
|
||
tabType: this.search_data.tabType,
|
||
t: Date.now()
|
||
}
|
||
});
|
||
},
|
||
gotoDetailAll(row) {
|
||
if (
|
||
row.approveState == 0 ||
|
||
row.approveState == 2 ||
|
||
row.approveState == 3
|
||
) {
|
||
this.$router.push({
|
||
path: "/sales/salesContract_add",
|
||
query: { id: row.salesContractId, t: Date.now() }
|
||
});
|
||
} else {
|
||
this.$router.push({
|
||
path: "/sales/salesContract_detail",
|
||
query: { id: row.salesContractId, t: Date.now() }
|
||
});
|
||
}
|
||
},
|
||
sortChange(val) {
|
||
console.log(val);
|
||
this.search_data.sort = "item.delivery_date";
|
||
this.search_data.order = val.order == "ascending" ? "asc" : "desc";
|
||
this.getList();
|
||
},
|
||
myApproveList() {
|
||
this.pictLoading = true;
|
||
console.log(this.approveListQuery);
|
||
this.$api.scmApproveAPI
|
||
.myApproveList(this.approveListQuery)
|
||
.then(res => {
|
||
this.pictLoading = false;
|
||
if (res.code == 0) {
|
||
if (res.data && res.data.list) {
|
||
this.auditTableData = res.data.list;
|
||
this.approveTotal = res.data.total;
|
||
} else {
|
||
this.auditTableData = [];
|
||
this.approveTotal = 0;
|
||
}
|
||
if (this.auditTableData.length) {
|
||
this.auditTableData.forEach(item => {
|
||
if (item.approveState == 0) {
|
||
item.approveStatusName = "暂存";
|
||
} else if (item.approveState == 1) {
|
||
item.approveStatusName = "待审批";
|
||
} else if (item.approveState == 2) {
|
||
item.approveStatusName = "已驳回";
|
||
} else if (item.approveState == 3) {
|
||
item.approveStatusName = "审批通过";
|
||
}
|
||
item.summary = [
|
||
{ label: "合同编号", value: item.contractCode },
|
||
{ label: "客户", value: item.clientName },
|
||
{ label: "合同类型", value: item.contractTypeName },
|
||
{ label: "合同日期", value: item.contractDate },
|
||
{ label: "合同总金额", value: item.allTaxAmount }
|
||
];
|
||
});
|
||
}
|
||
}
|
||
})
|
||
.catch(r => {});
|
||
},
|
||
// 变更合同列表页
|
||
gotoAlterationList() {
|
||
let id = this.salesContractIds[0].salesContractId;
|
||
this.$router.push({
|
||
path: "/sales/salesContract_alterationList",
|
||
query: { id: id, t: Date.now() }
|
||
});
|
||
},
|
||
|
||
// 返回首页
|
||
gotoIndex() {
|
||
this.chooseProVisible = false;
|
||
},
|
||
// 变更
|
||
change() {
|
||
if (
|
||
this.salesContractIds[0].approveStatusName === "审批通过" &&
|
||
this.salesContractIds[0].closeStatusName === "未关闭"
|
||
) {
|
||
let id = this.salesContractIds[0].salesContractId;
|
||
this.$router.push({
|
||
path: "/sales/salesContract_edit",
|
||
query: { id: id, t: Date.now() }
|
||
});
|
||
} else {
|
||
this.$message({
|
||
message: "选中项已关闭或未审核",
|
||
type: "error"
|
||
});
|
||
}
|
||
},
|
||
|
||
/**
|
||
* 关闭
|
||
*/
|
||
close() {
|
||
let id = this.salesContractIds[0].salesContractId;
|
||
this.$confirm("确认终止选中的项吗?", "提示", {
|
||
type: "warning"
|
||
}).then(() => {
|
||
this.$api.salesAPI.closeContract({ id: id }).then(res => {
|
||
if (res.code === 0) {
|
||
this.$message({
|
||
message: res.msg,
|
||
type: "success"
|
||
});
|
||
this.getList();
|
||
} else {
|
||
this.$message({
|
||
message: res.msg,
|
||
type: "error"
|
||
});
|
||
}
|
||
});
|
||
});
|
||
},
|
||
// 反关闭
|
||
reverseClose() {
|
||
let id = this.salesContractIds[0].salesContractId;
|
||
this.$confirm("确认开启选中的项吗?", "提示", {
|
||
type: "warning"
|
||
}).then(() => {
|
||
this.$api.salesAPI.reverseClose({ id: id }).then(res => {
|
||
if (res.code === 0) {
|
||
this.$message({
|
||
message: res.msg,
|
||
type: "success"
|
||
});
|
||
this.getList();
|
||
} else {
|
||
this.$message({
|
||
message: res.msg,
|
||
type: "error"
|
||
});
|
||
}
|
||
});
|
||
});
|
||
},
|
||
// 导出
|
||
exportExcel() {
|
||
delete this.search_data.pagesize;
|
||
delete this.search_data.pageno;
|
||
this.$api.salesAPI.exportExcel(this.search_data).then(res => {});
|
||
},
|
||
/**
|
||
* 反审核
|
||
*/
|
||
disAudit() {
|
||
let id = this.salesContractIds[0].salesContractId;
|
||
this.$confirm("确认反审核选中的项吗?", "提示", {
|
||
type: "warning"
|
||
}).then(() => {
|
||
this.$api.salesAPI.reverseAuditContract({ id: id }).then(res => {
|
||
if (res.code === 0) {
|
||
this.$message({
|
||
message: res.msg,
|
||
type: "success"
|
||
});
|
||
this.getList();
|
||
} else {
|
||
this.$message({
|
||
message: res.msg,
|
||
type: "error"
|
||
});
|
||
}
|
||
});
|
||
});
|
||
},
|
||
|
||
/**
|
||
* 审核
|
||
*/
|
||
audit() {
|
||
let id = this.salesContractIds[0].salesContractId;
|
||
this.$confirm("确认审核选中的项吗?", "提示", {
|
||
type: "warning"
|
||
}).then(() => {
|
||
this.$api.salesAPI.auditContract({ id: id }).then(res => {
|
||
if (res.code === 0) {
|
||
this.$message({
|
||
message: res.msg,
|
||
type: "success"
|
||
});
|
||
this.getList();
|
||
} else {
|
||
this.$message({
|
||
message: res.msg,
|
||
type: "error"
|
||
});
|
||
}
|
||
});
|
||
});
|
||
},
|
||
|
||
clickRow(row) {
|
||
this.$refs.tb.toggleRowSelection(row);
|
||
},
|
||
|
||
// 跳转到查看页面
|
||
gotoDetail(row) {
|
||
console.log("跳转详情页面");
|
||
this.$router.push({
|
||
path: "/sales/salesContract_add",
|
||
query: { id: row.salesContractId, t: Date.now() }
|
||
});
|
||
},
|
||
|
||
// 前往新增页面
|
||
goAdd() {
|
||
this.$router.push({
|
||
path: "/sales/salesContract_add",
|
||
query: { t: Date.now() }
|
||
});
|
||
},
|
||
liftForExport() {
|
||
if (n == 0) {
|
||
this.search_data1 = this.search_data;
|
||
}
|
||
// this.pictLoading = true;
|
||
this.$api.salesAPI
|
||
.listForExport(this.search_data)
|
||
.then(res => {
|
||
// this.pictLoading = false;
|
||
if (res.data) {
|
||
// this.summary = res.total
|
||
// this.total = res.data.totalRows;
|
||
this.exportList = res.data.list ? res.data.list : [];
|
||
this.exportList.forEach(item => {
|
||
// item.contractDate = item.contractDate?/\d{4}-\d{1,2}-\d{1,2}/g.exec(item.contractDate):""
|
||
// item.deliveryDate = item.deliveryDate?/\d{4}-\d{1,2}-\d{1,2}/g.exec(item.deliveryDate):""
|
||
if (item.approveState == 0) {
|
||
item.approveStatusName = "暂存";
|
||
} else if (item.approveState == 1) {
|
||
item.approveStatusName = "待审批";
|
||
} else if (item.approveState == 2) {
|
||
item.approveStatusName = "已驳回";
|
||
} else if (item.approveState == 3) {
|
||
item.approveStatusName = "审批通过";
|
||
}
|
||
});
|
||
} else {
|
||
// this.total = 0;
|
||
this.exportList = [];
|
||
}
|
||
})
|
||
.catch(r => {
|
||
console.log(r);
|
||
});
|
||
},
|
||
// 获取销售订单列表
|
||
getList(n) {
|
||
// if(val){
|
||
// this.search_data.contractCode=val[0]
|
||
// this.search_data.clientName=val[1]
|
||
// this.search_data.materielName=val[2]
|
||
// }
|
||
if (n == 0) {
|
||
this.search_data1 = this.search_data;
|
||
}
|
||
this.pictLoading = true;
|
||
this.$api.salesAPI
|
||
.listSalesContract(this.search_data)
|
||
.then(res => {
|
||
this.pictLoading = false;
|
||
if (res.data) {
|
||
this.summary = res.total;
|
||
this.total = res.data.totalRows;
|
||
this.tableData = res.data.datas ? res.data.datas : [];
|
||
this.tableData.forEach(item => {
|
||
// item.contractDate = item.contractDate?/\d{4}-\d{1,2}-\d{1,2}/g.exec(item.contractDate):""
|
||
// item.deliveryDate = item.deliveryDate?/\d{4}-\d{1,2}-\d{1,2}/g.exec(item.deliveryDate):""
|
||
if (item.approveState == 0) {
|
||
item.approveStatusName = "暂存";
|
||
} else if (item.approveState == 1) {
|
||
item.approveStatusName = "待审批";
|
||
} else if (item.approveState == 2) {
|
||
item.approveStatusName = "已驳回";
|
||
} else if (item.approveState == 3) {
|
||
item.approveStatusName = "审批通过";
|
||
}
|
||
});
|
||
} else {
|
||
this.total = 0;
|
||
this.tableData = [];
|
||
}
|
||
})
|
||
.catch(r => {
|
||
console.log(r);
|
||
});
|
||
},
|
||
|
||
//设置显示字段
|
||
showColumnSetDialog() {
|
||
this.columnSetDialogVisible = true;
|
||
this.showTableColumnsTemp = JSON.parse(
|
||
JSON.stringify(this.showTableColumns)
|
||
);
|
||
// 行拖拽
|
||
// this.rowDrop()
|
||
},
|
||
//前移
|
||
toUp(scope) {
|
||
if (scope.$index == 0) {
|
||
return false;
|
||
}
|
||
let n;
|
||
for (let i = 0; i < this.showTableColumns.length; i++) {
|
||
if (this.showTableColumns[i].prop_ == scope.row.prop_) {
|
||
n = i;
|
||
}
|
||
}
|
||
let temp = this.showTableColumns[n];
|
||
this.showTableColumns[n] = this.showTableColumns[n - 1];
|
||
this.showTableColumns[n - 1] = temp;
|
||
this.$forceUpdate();
|
||
},
|
||
//后移
|
||
toDown(scope) {
|
||
if (scope.$index == this.showTableColumns.length - 1) {
|
||
return false;
|
||
}
|
||
let n;
|
||
for (let i = 0; i < this.showTableColumns.length; i++) {
|
||
if (this.showTableColumns[i].prop_ == scope.row.prop_) {
|
||
n = i;
|
||
}
|
||
}
|
||
let temp = this.showTableColumns[n];
|
||
this.showTableColumns[n] = this.showTableColumns[n + 1];
|
||
this.showTableColumns[n + 1] = temp;
|
||
this.$forceUpdate();
|
||
},
|
||
//恢复默认
|
||
toDefault() {
|
||
this.showTableColumns = JSON.parse(
|
||
JSON.stringify(this.showTableColumnsDefault)
|
||
);
|
||
this.$forceUpdate();
|
||
},
|
||
//完成列表字段设置
|
||
saveAndCloseColumnSetDialog() {
|
||
let tableNo = this.tableId;
|
||
let tableColumns = JSON.stringify(this.showTableColumns);
|
||
this.columnSetDialogVisible = false;
|
||
this.$api.tableColumnAPI
|
||
.saveShowColumns({ tableNo: tableNo, tableColumns: tableColumns })
|
||
.then(res => {
|
||
let arr = JSON.parse(JSON.stringify(this.showTableColumns));
|
||
this.formTableData = [];
|
||
for (let i = 0; i < arr.length; i++) {
|
||
if (arr[i].select) {
|
||
this.formTableData.push(arr[i]);
|
||
}
|
||
}
|
||
this.getShowColumns();
|
||
})
|
||
.catch(r => {
|
||
console.log(r);
|
||
});
|
||
},
|
||
//关闭字段设置弹出
|
||
handleClose() {
|
||
this.showTableColumns = JSON.parse(
|
||
JSON.stringify(this.showTableColumnsTemp)
|
||
);
|
||
this.columnSetDialogVisible = false;
|
||
},
|
||
/**
|
||
* 获取显示字段
|
||
*/
|
||
getShowColumns() {
|
||
let tableNo = this.tableId;
|
||
this.formTableData = [];
|
||
|
||
this.$api.tableColumnAPI
|
||
.getShowColumns({ tableNo: tableNo })
|
||
.then(res => {
|
||
if (res.code == 0) {
|
||
if (res.results) {
|
||
this.showTableColumns = JSON.parse(res.results);
|
||
let arr = JSON.parse(JSON.stringify(this.showTableColumns));
|
||
for (let i = 0; i < arr.length; i++) {
|
||
if (arr[i].select) {
|
||
this.formTableData.push(arr[i]);
|
||
}
|
||
}
|
||
this.$forceUpdate();
|
||
} else {
|
||
let arr = JSON.parse(
|
||
JSON.stringify(this.showTableColumnsDefault)
|
||
);
|
||
for (let i = 0; i < arr.length; i++) {
|
||
if (arr[i].select) {
|
||
this.formTableData.push(arr[i]);
|
||
}
|
||
}
|
||
this.$forceUpdate();
|
||
}
|
||
} else {
|
||
this.$message({
|
||
message: res.msg ? res.msg : "获取列表信息失败",
|
||
type: "error"
|
||
});
|
||
}
|
||
})
|
||
.catch(r => {
|
||
this.$message({
|
||
message: r,
|
||
type: "error"
|
||
});
|
||
console.log(r);
|
||
});
|
||
},
|
||
|
||
// 查询
|
||
search() {
|
||
this.search_data.pageno = 1;
|
||
this.search_data.pagesize = 10;
|
||
this.getList();
|
||
},
|
||
|
||
/**
|
||
* 高级查询
|
||
*/
|
||
moreSearch() {
|
||
this.advanceQueryDialogVisible = true;
|
||
this.dialogTitle = "高级查询";
|
||
},
|
||
save() {
|
||
for (var n in this.formData) {
|
||
this.search_data[n] = this.formData[n];
|
||
}
|
||
this.search_data.inDatas = "";
|
||
this.time = this.formDataTime;
|
||
this.search_data.pageno = 1;
|
||
this.$nextTick(function() {
|
||
this.advanceQueryDialogVisible = false;
|
||
this.getList();
|
||
});
|
||
},
|
||
//清空
|
||
clear() {
|
||
for (var n in this.formData) {
|
||
this.formData[n] = "";
|
||
}
|
||
this.formDataTime = "";
|
||
this.salesPersonDept = "";
|
||
// this.createTime = "";
|
||
},
|
||
changeFacility() {
|
||
this.$forceUpdate();
|
||
},
|
||
|
||
// 每页显示多少条
|
||
handleSizeChange(val) {
|
||
this.search_data.pagesize = val;
|
||
this.getList();
|
||
},
|
||
// 上下分页
|
||
handleCurrentChange(val) {
|
||
this.search_data.pageno = val;
|
||
this.getList();
|
||
},
|
||
// 每页显示多少条
|
||
handleApproveSizeChange(val) {
|
||
this.approveListQuery.pagesize = val;
|
||
this.myApproveList();
|
||
},
|
||
// 上下分页
|
||
handleApproveCurrentChange(val) {
|
||
this.approveListQuery.pageno = val;
|
||
this.myApproveList();
|
||
},
|
||
/**
|
||
* 初始化
|
||
*/
|
||
initData() {
|
||
// 获取审核状态
|
||
this.$api.salesAPI
|
||
.listAauditSign({
|
||
type: "audit_status"
|
||
})
|
||
.then(res => {
|
||
this.options = res.datas;
|
||
});
|
||
// 获取合同类型
|
||
this.$api.salesAPI
|
||
.listContractType({
|
||
type: "sales_contract_type"
|
||
})
|
||
.then(res => {
|
||
this.typeList = res.datas;
|
||
});
|
||
// 获取生产部门
|
||
Promise.all([
|
||
this.$api.commonAPI.getDeptsTree(),
|
||
this.$api.roleAPI.list()
|
||
])
|
||
.then(([r1, r2]) => {
|
||
if (r1.code === 0) {
|
||
this.depOptions = r1.data.children;
|
||
// this.setDefaultDept();
|
||
this.setDeptList(this.depOptions);
|
||
}
|
||
if (r2.code === 0) {
|
||
this.roleList = r2.datas;
|
||
}
|
||
})
|
||
.catch(error => {
|
||
console.log(error);
|
||
});
|
||
},
|
||
getMateriel(val) {
|
||
if (val) {
|
||
this.$set(this.formData, "materiel", val.id);
|
||
this.$set(this.formData, "materielName", val.name);
|
||
} else {
|
||
this.$set(this.formData, "materiel", "");
|
||
this.$set(this.formData, "materielName", "");
|
||
}
|
||
},
|
||
|
||
/**
|
||
* 获取用户
|
||
*/
|
||
getUser(data) {
|
||
if (data) {
|
||
this.$set(this.formData, "salesPersonName", data.name);
|
||
this.$set(this.formData, "salesPerson", data.id);
|
||
// this.formData.salesPersonName = data.name;
|
||
// this.formData.salesPerson = data.id;
|
||
// this.getUserList.forEach(item => {
|
||
// if (data.id === item.id) {
|
||
// self.formData.salesPersonDept = item.deptId;
|
||
// self.formData.deptId= item.deptId;
|
||
// return;
|
||
// }
|
||
// });
|
||
// if (self.formData.deptId == 0) {
|
||
// self.formData.salesPersonDept = "";
|
||
// }
|
||
this.setDefaultDept();
|
||
}
|
||
},
|
||
/**
|
||
* 获取制单人
|
||
*/
|
||
getUser1(data) {
|
||
console.log(data);
|
||
var self = this;
|
||
if (data) {
|
||
this.formData.createByName = data.name;
|
||
this.formData.createBy = data.id;
|
||
}
|
||
},
|
||
//根据当前id,获取一条树枝上的所有id数据
|
||
treeFindPath(tree, func, path = []) {
|
||
if (!tree) return [];
|
||
for (const data of tree) {
|
||
path.push(data.id);
|
||
if (func(data)) return path;
|
||
if (data.children) {
|
||
const findChildren = this.treeFindPath(data.children, func, path);
|
||
if (findChildren.length) return findChildren;
|
||
}
|
||
path.pop();
|
||
}
|
||
return [];
|
||
},
|
||
//当选择器选项没有下一级时,将children设置为undefined,就能选则该项了
|
||
setDeptList(tree) {
|
||
for (const data of tree) {
|
||
if (!data.hasChildren) {
|
||
data.children = undefined;
|
||
} else {
|
||
this.setDeptList(data.children);
|
||
}
|
||
}
|
||
},
|
||
//显示默认部门
|
||
// setDefaultDept(){
|
||
// if(this.depOptions.length>0&&this.formData.deptId){
|
||
// let id=JSON.stringify( this.formData.deptId)
|
||
// let select_id=this.treeFindPath(this.depOptions,data=> data.id===id)
|
||
// this.salesPersonDept=JSON.parse(JSON.stringify(select_id))
|
||
// }
|
||
// },
|
||
// 选择部门
|
||
handleChange: function(value) {
|
||
this.formData.salesPersonDept =
|
||
value.length >= 1 ? value[value.length - 1] : "";
|
||
this.salesPersonDept = value;
|
||
},
|
||
|
||
/**
|
||
* 处理选中
|
||
*/
|
||
handleSelectionChange(val) {
|
||
this.salesContractIds = val;
|
||
this.setBtn(val);
|
||
},
|
||
|
||
/**
|
||
* 删除
|
||
*/
|
||
remove() {
|
||
let ids = [];
|
||
this.salesContractIds.forEach(item => {
|
||
ids.push(item.salesContractId);
|
||
console.log(ids);
|
||
});
|
||
this.$confirm("确认删除选中的项吗?", "提示", {
|
||
type: "warning"
|
||
}).then(() => {
|
||
this.$api.salesAPI
|
||
.removeContract({ salesContractIds: ids })
|
||
.then(res => {
|
||
if (res.code === 0) {
|
||
this.$message({
|
||
message: res.msg,
|
||
type: "success"
|
||
});
|
||
this.search();
|
||
} else {
|
||
this.$message({
|
||
message: res.msg ? res.msg : "删除失败,请重试",
|
||
type: "error"
|
||
});
|
||
}
|
||
})
|
||
.catch(error => {
|
||
this.$message({
|
||
message: "删除失败,请重试",
|
||
type: "error"
|
||
});
|
||
});
|
||
});
|
||
},
|
||
/**
|
||
* 控件操作按钮状态
|
||
*/
|
||
setBtn(val) {
|
||
let isFlag = true;
|
||
let isDelFlag = true;
|
||
if (val.length > 0) {
|
||
isDelFlag = false;
|
||
if (val.length == 1) {
|
||
isFlag = false;
|
||
}
|
||
} else {
|
||
isFlag = true;
|
||
isDelFlag = true;
|
||
}
|
||
this.btnDelDisabled = isDelFlag;
|
||
this.btnOtherDisabled = isFlag;
|
||
},
|
||
// 合计
|
||
getSummaries(param) {
|
||
const { columns, data } = param;
|
||
console.log("zhuyemian汇总");
|
||
console.log(param);
|
||
let sums = [];
|
||
columns.forEach((column, index) => {
|
||
//计算不含税金额总计
|
||
|
||
if (index === 0) {
|
||
sums[index] = "合计";
|
||
return;
|
||
}
|
||
if (
|
||
column.property !== "count" &&
|
||
column.property !== "taxAmount" &&
|
||
column.property !== "saleCount"
|
||
) {
|
||
sums[index] = "";
|
||
return;
|
||
}
|
||
|
||
const values = data.map(item => Number(item[column.property]));
|
||
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] = "";
|
||
}
|
||
if (column.property === "count") {
|
||
if (sums[index]) {
|
||
sums[index] = this.summary.totalCount;
|
||
}
|
||
return;
|
||
}
|
||
if (column.property === "saleCount") {
|
||
if (sums[index]) {
|
||
sums[index] = this.summary.totalSaleCount;
|
||
}
|
||
return;
|
||
}
|
||
if (column.property === "taxAmount") {
|
||
if (sums[index]) {
|
||
sums[index] = this.summary.totalTaxAmount;
|
||
}
|
||
return;
|
||
}
|
||
});
|
||
console.log(this.summary);
|
||
return sums;
|
||
},
|
||
//行拖拽
|
||
rowDrop() {
|
||
const _this = this;
|
||
this.$nextTick(() => {
|
||
const tbody = document.querySelector(
|
||
".move-table .el-table__body-wrapper tbody"
|
||
);
|
||
Sortable.create(tbody, {
|
||
onEnd({ newIndex, oldIndex }) {
|
||
const currRow = _this.showTableColumns.splice(oldIndex, 1)[0];
|
||
_this.showTableColumns.splice(newIndex, 0, currRow);
|
||
}
|
||
});
|
||
});
|
||
}
|
||
}
|
||
};
|
||
</script>
|
||
<style scoped>
|
||
.approve-box .sys-tabs .el-tabs__nav-wrap {
|
||
padding: 5px 20px 0px;
|
||
}
|
||
|
||
.approve-box .sys-tabs .el-tabs__item {
|
||
padding-top: 10px;
|
||
height: 50px;
|
||
}
|
||
|
||
.approve-box .el-timeline-item__content {
|
||
line-height: 1.5;
|
||
}
|
||
|
||
.approve-box .el-dialog__body {
|
||
padding-top: 0px;
|
||
}
|
||
</style>
|
||
<style>
|
||
.approve-box .sys-tabs .el-tabs__nav-wrap {
|
||
padding: 5px 20px 0px;
|
||
}
|
||
|
||
.approve-box .sys-tabs .el-tabs__item {
|
||
padding-top: 10px;
|
||
height: 50px;
|
||
}
|
||
|
||
.approve-box .el-timeline-item__content {
|
||
line-height: 1.5;
|
||
}
|
||
|
||
.approve-box .el-dialog__body {
|
||
padding-top: 0px;
|
||
}
|
||
|
||
.approve-form .el-form-item {
|
||
margin-bottom: 0px;
|
||
}
|
||
|
||
.approve-timeline .el-timeline-item__wrapper {
|
||
padding-top: 10px;
|
||
padding-left: 80px;
|
||
}
|
||
|
||
.approve-timeline .el-timeline-item__tail {
|
||
left: 30px;
|
||
border-left-width: 4px;
|
||
}
|
||
</style>
|