yxk_pc_mdh/src/pages/scm/sales/sales_contract/index.vue

1007 lines
33 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="sys-box knowledge-box">
<div class="sys-operate">
<el-button type="primary" @click="goAdd()" v-has="'sales:salesContract:add'">新增</el-button>
<el-button type="primary" @click="remove()" :disabled="btnOtherDisabled"
v-has="'sales:salesContract:remove'">删除</el-button>
<el-button type="primary" @click="exportExcel()" v-has="'sales:salesContract:exportExcel'">导出</el-button>
<el-button type="primary" @click="audit" :disabled="btnDelDisabled"
v-has="'sales:salesContract:audit'">审核</el-button>
<el-button type="primary" @click="disAudit" :disabled="btnDelDisabled"
v-has="'sales:salesContract:disAudit'">反审核</el-button>
<el-button type="primary" @click="close" :disabled="btnDelDisabled" v-has="'sales:salesContract:close'">{{
config.closeContractText }}</el-button>
<el-button type="primary" @click="reverseClose" :disabled="btnDelDisabled"
v-has="'sales:salesContract:reverseClose'">{{ config.openContractText }}</el-button>
<el-button type="primary" @click="change" :disabled="btnDelDisabled"
v-has="'sales:salesContract:change'">变更</el-button>
<el-button type="primary" @click="gotoAlterationList" :disabled="btnDelDisabled"
v-has="'sales:salesContract:gotoAlterationList'">变更记录</el-button>
<el-button type="primary" @click="showColumnSetDialog">{{ config.configureBtnName }}</el-button>
</div>
<div class="sys-search">
<el-form inline class="form_item_search_out">
<div class='form_item_input_out'>
<el-form-item label="合同编号" style='width:22%' class="form_item-inline">
<el-input v-model="search_data.contractCode" placeholder="请输入合同编号" clearable></el-input>
</el-form-item>
<el-form-item label="客户" style='width:22%' class="form_item-inline">
<el-input v-model="search_data.clientName" placeholder="请输入客户" clearable></el-input>
</el-form-item>
<el-form-item label="物料名称" style='width:22%' class="form_item-inline">
<el-input v-model="search_data.materielName" placeholder="物料" clearable></el-input>
</el-form-item>
<el-form-item label="合同日期" style='width:34%' class="form_item-inline">
<el-date-picker v-model="time" 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='form_item_btn_out'>
<el-form-item>
<el-button type="primary" @click="search()">查询</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="moreSearch()">高级查询</el-button>
</el-form-item>
</div>
</el-form>
</div>
<div class="sys-table">
<el-table border v-if="formTableData.length > 0" id="out-table" @row-click="gotoDetail" ref="tb"
v-loading="pictLoading" show-summary :summary-method="getSummaries" :data="tableData"
@selection-change="handleSelectionChange"
:header-cell-style="{ fontWeight: 'normal', textAlign: 'center', backgroundColor: '#eceff4', color: '#222' }">
<el-table-column type="selection" width="55" align="center"></el-table-column>
<el-table-column v-for="(items, index) in formTableData" :key="index" :prop="items.prop_" :label="items.title"
:sortable="items.sortAble" align="center" show-overflow-tooltip>
</el-table-column>
</el-table>
</div>
<div class="sys-pagination">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="search_data.pageno" :page-sizes="pageSizes" :page-size="search_data.pagesize"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
<!-- 状态控制 -->
<el-dialog :title="columnSetDialogTitle" center :visible.sync="columnSetDialogVisible" width="531px"
:before-close="handleClose">
<el-table border :data="showTableColumns" :key="Math.random()" max-height="350" style="width: 100%">
<el-table-column prop="title" label="列表名称" width="180" fixed>
</el-table-column>
<el-table-column prop="select" label="是否显示" width="180">
<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>
</div>
</template>
<script>
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";
export default {
components: {
btnInput,DialogChooseSingleUser,DialogChooseSingleUser1,dialogChooseSingleParts
},
data() {
return {
total: 0, //总条数
pageSizes: [10, 20, 50], //每页展示多少条
search_data: {
pageno: 1,
pagesize: 10,
},
search_data1: {
pageno: 1,
pagesize: 10,
startTime: "",
endTime: "",
contractCode: '',
createByName: '',
},
formData: {
startTime: "",
endTime: "",
contractType: '',
contractTypeName: '',
unitUomName: '',
clientName: '',
materielName: '',
specification: '',
auditSign: '',
salesPersonName: '',
salesPerson: '',
// createTime: '',
deptId: '',
salesPersonDept: '',
createBy: "",//制单人id
createByName:"",
},
//默认列表数据
showTableColumnsDefault: [
{title: "合同日期", prop_: "contractDate", select: true},
{title: "合同编号", prop_: "contractCode", select: true},
{title: "客户合同编号", prop_: "clientContractCode", 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_: "itemCloseStatusName", select: true},
{title: "行关闭时间", prop_: "itemCloseTime", select: true},
{title: "行关闭原因", prop_: "itemCloseReason", select: true}
],
///弹出页面列表数据
showTableColumns: [
{title: "合同日期", prop_: "contractDate", select: true},
{title: "合同编号", prop_: "contractCode", select: true},
{title: "客户合同编号", prop_: "clientContractCode", 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},
{title: "审核状态", prop_: "auditSignName", select: true},
{title: "行关闭状态", prop_: "itemCloseStatusName", select: true},
{title: "行关闭时间", prop_: "itemCloseTime", select: true},
{title: "行关闭原因", prop_: "itemCloseReason", select: true}
],
showTableColumnsTemp: [],//弹框弹出的时候,保存当前的列表数据
//显示的列表字段
alterationDetailId: '',
formTableData: [],
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'
}
},
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 = "";
}
},
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.getList()
this.getShowColumns();
this.initData()
},
methods: {
// 变更合同列表页
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() {
let id = this.salesContractIds[0].salesContractId
this.$router.push({ path: "/sales/salesContract_edit", query: { id: id, t: Date.now()} })
},
/**
* 关闭
*/
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) {
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() } })
},
// 获取销售订单列表
getList() {
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 = /\d{4}-\d{1,2}-\d{1,2}/g.exec(item.contractDate)
item.deliveryDate = /\d{4}-\d{1,2}-\d{1,2}/g.exec(item.deliveryDate)
})
} else {
this.total = 0;
this.tableData = [];
}
}).catch(r => {
console.log(r);
});
},
//设置显示字段
showColumnSetDialog() {
this.columnSetDialogVisible = true;
this.showTableColumnsTemp = JSON.parse(JSON.stringify(this.showTableColumns));
},
//前移
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]);
}
}
})
.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();
},
//设置显示字段
showColumnSetDialog() {
this.columnSetDialogVisible = true;
this.showTableColumnsTemp = JSON.parse(JSON.stringify(this.showTableColumns));
},
// 每页显示多少条
handleSizeChange(val) {
this.search_data.pagesize = val;
this.getList();
},
// 上下分页
handleCurrentChange(val) {
this.search_data.pageno = val;
this.getList();
},
/**
* 初始化
*/
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.btnOtherDisabled = isDelFlag;
this.btnDelDisabled = isFlag;
},
// 合计
getSummaries(param){
const { columns, data } = 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;
}
});
return sums;
},
}
}
</script>
<style scoped></style>
<style>
/*.el-cascader .el-input {*/
/* width: 100% !important;*/
/*}*/
.process-box .el-select,
.process-box .el-input {
width: 100%;
}
.process-box .el-table thead {
line-height: 1;
}
.process-box .el-input-number .el-input {
width: 100% !important;
}
.process-box .el-input-number--small {
width: 70% !important;
}
.process-box .form-inline {
width: 33.3% !important;
}
.process-box .el-input-number el-input-number--small {
white-space: nowrap;
}
.process-box .el-form-item__content {
margin-left: 100px !important;
}
.process-box .el-form-item__label {
width: 100px !important;
}
.process-box .el-input,
.process-box .el-form--inline .el-input,
.process-box .el-cascader--small {
width: 100% !important;
}
.childlist .el-form-item__content {
margin-left: 0 !important;
}
.process-box .el-input--small {
width: 70% !important;
}
</style>
<style scoped>
>>>.sys-search .el-input__inner {
width: 100%;
}
.dialog-form {
position: relative;
}
.dialog-line {
position: relative;
display: flex;
justify-content: center;
width: 100%;
}
.dialog-line .dialog-form-inline {
position: relative;
width: 50%;
margin-right: 0;
}
.dialog-line .dialog-form-inline-single {
position: relative;
width: 100%;
margin-right: 0;
}
>>>.dialog-line .el-input__inner {
width: 100% !important;
;
}
>>>.dialog-line .el-form-item__content {
width: calc(100% - 80px) !important;
;
}
>>>.dialog-line .el-input,
>>>.dialog-line .el-cascader {
width: 100% !important;
}
</style>