|
|
@@ -1,921 +0,0 @@
|
|
|
-<template>
|
|
|
- <div>
|
|
|
- <el-drawer
|
|
|
- :title="title"
|
|
|
- :visible.sync="drawer"
|
|
|
- size="600px"
|
|
|
- direction="rtl"
|
|
|
- append-to-body
|
|
|
- :show-close="false"
|
|
|
- @close="onClose">
|
|
|
- <div class="drawer__panel" style="margin-bottom: 0px">
|
|
|
- <el-row style="margin-top: 10px" :gutter="10">
|
|
|
- <el-form :model="form" :rules="rules" ref="form" size="mini" label-position="right">
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="报价类型:" label-width="100px" >
|
|
|
- <el-input v-model="form.type" autocomplete="off" placeholder="报价类型" disabled></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-<!-- <el-col :span="24">
|
|
|
- <el-form-item label="是否特价:" label-width="100px" >
|
|
|
- <el-input v-model="form.specialOffer" autocomplete="off" placeholder="是否特价" disabled></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>-->
|
|
|
- <el-col :span="24" v-if="isQuotedPrice">
|
|
|
- <el-form-item label="项目名称:" label-width="100px" prop="projectname">
|
|
|
- <el-popover
|
|
|
- placement="bottom"
|
|
|
- width="700"
|
|
|
- trigger="click"
|
|
|
- v-model="projectShow"
|
|
|
- @show="projectList">
|
|
|
- <el-input
|
|
|
- style="width:300px;margin-bottom: 10px"
|
|
|
- placeholder="请输入内容"
|
|
|
- v-model="projectParam.content.where.condition"
|
|
|
- clearable
|
|
|
- @clear="projectList(projectParam.content.pageNumber = 1)"
|
|
|
- size="mini"
|
|
|
- @keyup.enter.native="projectList(projectParam.content.pageNumber = 1)">
|
|
|
- <i slot="prefix" class="el-icon-search" @click="projectList(projectParam.content.pageNumber = 1)"></i>
|
|
|
- </el-input>
|
|
|
- <el-table :data="project.projectData" @row-click="projectData" height="396px" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini">
|
|
|
- <el-table-column
|
|
|
- label="项目编号"
|
|
|
- width="180">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.projectnum?scope.row.projectnum:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="项目名称"
|
|
|
- width="180">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.projectname?scope.row.projectname:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="地址"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.address?scope.row.address:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <div class="container normal-panel" style="text-align:right">
|
|
|
- <el-pagination
|
|
|
- background
|
|
|
- small
|
|
|
- @size-change="handleSizeChangeProject"
|
|
|
- @current-change="handleCurrentChangeProject"
|
|
|
- :page-sizes="[10,20,50,100,]"
|
|
|
- layout="total,sizes, prev, pager, next, jumper"
|
|
|
- :current-page="project.currentPage"
|
|
|
- :total="project.total">
|
|
|
- </el-pagination>
|
|
|
- </div>
|
|
|
- <el-input slot="reference" :readonly="true" v-model="form.projectname" autocomplete="off" placeholder="请选择项目" @input="selectProject"></el-input>
|
|
|
- </el-popover>
|
|
|
-
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24" v-if="isQuotedPrice">
|
|
|
- <el-form-item label="项目编号:" label-width="100px" >
|
|
|
- <el-input v-model="form.projectnum" autocomplete="off" placeholder="项目编号" disabled></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24" v-if="isQuotedPrice">
|
|
|
- <el-form-item label="客户名称:" label-width="100px" prop="enterprisename">
|
|
|
- <el-popover
|
|
|
- placement="bottom"
|
|
|
- width="700"
|
|
|
- trigger="click"
|
|
|
- v-model="customerShow"
|
|
|
- @show="customerList">
|
|
|
- <el-input
|
|
|
- style="width:300px;margin-bottom: 10px"
|
|
|
- placeholder="请输入内容"
|
|
|
- v-model="customerParam.content.where.condition"
|
|
|
- clearable
|
|
|
- @clear="customerList(customerParam.content.pageNumber = 1)"
|
|
|
- size="mini"
|
|
|
- @keyup.enter.native="customerList(customerParam.content.pageNumber = 1)">
|
|
|
- <i slot="prefix" class="el-icon-search" @click="customerList(customerParam.content.pageNumber = 1)"></i>
|
|
|
- </el-input>
|
|
|
- <el-table :data="customer.customerData" @row-click="customerData" height="396px" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini">
|
|
|
- <el-table-column
|
|
|
- label="客户编号"
|
|
|
- width="180">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.sa_customersid?scope.row.sa_customersid:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="客户名称"
|
|
|
- width="200">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.enterprisename?scope.row.enterprisename:'--'}}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="地址"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.address?scope.row.address:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <div class="container normal-panel" style="text-align:right">
|
|
|
- <el-pagination
|
|
|
- background
|
|
|
- small
|
|
|
- @size-change="handleSizeChangeCustomer"
|
|
|
- @current-change="handleCurrentChangeCustomer"
|
|
|
- :page-sizes="[10,20,50,100,]"
|
|
|
- layout="total,sizes, prev, pager, next, jumper"
|
|
|
- :current-page="customer.currentPage"
|
|
|
- :total="customer.total">
|
|
|
- </el-pagination>
|
|
|
- </div>
|
|
|
- <el-input slot="reference" :readonly="true" v-model="form.enterprisename" autocomplete="off" placeholder="请选择客户" :disabled="form.sa_projectid === ''" @input="selectCustomer"></el-input>
|
|
|
- </el-popover>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="客户名称:" label-width="100px" prop="enterprisename" v-if="!isQuotedPrice">
|
|
|
- <el-popover
|
|
|
- placement="bottom"
|
|
|
- width="700"
|
|
|
- trigger="click"
|
|
|
- v-model="customerShow"
|
|
|
- @show="customerList">
|
|
|
- <el-tabs type="border-card" v-model="activeName" @tab-click="handleClick">
|
|
|
- <el-tab-pane label="客户" name="客户">
|
|
|
- <el-input
|
|
|
- style="width:300px;margin-bottom: 10px"
|
|
|
- placeholder="请输入内容"
|
|
|
- v-model="customerParam.content.where.condition"
|
|
|
- clearable
|
|
|
- @clear="customerList(customerParam.content.pageNumber = 1)"
|
|
|
- size="mini"
|
|
|
- @keyup.enter.native="customerList(customerParam.content.pageNumber = 1)">
|
|
|
- <i slot="prefix" class="el-icon-search" @click="customerList(customerParam.content.pageNumber = 1)"></i>
|
|
|
- </el-input>
|
|
|
- <el-table :data="customer.customerData" @row-click="customerData" height="396px" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini">
|
|
|
- <el-table-column
|
|
|
- label="客户编号"
|
|
|
- width="180">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.sa_customersid?scope.row.sa_customersid:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="客户名称"
|
|
|
- width="200">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.enterprisename?scope.row.enterprisename:'--'}}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="地址"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.address?scope.row.address:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <div class="container normal-panel" style="text-align:right">
|
|
|
- <el-pagination
|
|
|
- background
|
|
|
- small
|
|
|
- @size-change="handleSizeChangeCustomer"
|
|
|
- @current-change="handleCurrentChangeCustomer"
|
|
|
- :page-sizes="[10,20,50,100]"
|
|
|
- layout="total,sizes, prev, pager, next, jumper"
|
|
|
- :current-page="customer.currentPage"
|
|
|
- :total="customer.total">
|
|
|
- </el-pagination>
|
|
|
- </div>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="合作伙伴" name="合作伙伴">
|
|
|
- <el-input
|
|
|
- style="width:300px;margin-bottom: 10px"
|
|
|
- placeholder="请输入内容"
|
|
|
- v-model="customerParam.content.where.condition"
|
|
|
- clearable
|
|
|
- @clear="distributorList(customerParam.content.pageNumber = 1)"
|
|
|
- size="mini"
|
|
|
- @keyup.enter.native="distributorList(customerParam.content.pageNumber = 1)">
|
|
|
- <i slot="prefix" class="el-icon-search" @click="distributorList(customerParam.content.pageNumber = 1)"></i>
|
|
|
- </el-input>
|
|
|
- <el-table :data="distributor.distributorData" @row-click="distributorData" height="396px" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini">
|
|
|
- <el-table-column
|
|
|
- label="客户编号"
|
|
|
- width="180">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.sa_customersid?scope.row.sa_customersid:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="客户名称"
|
|
|
- width="200">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.enterprisename?scope.row.enterprisename:'--'}}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="地址"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.address?scope.row.address:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <div class="container normal-panel" style="text-align:right">
|
|
|
- <el-pagination
|
|
|
- background
|
|
|
- small
|
|
|
- @size-change="handleSizeChangeDistributor"
|
|
|
- @current-change="handleCurrentChangeDistributor"
|
|
|
- :page-sizes="[10,20,50,100]"
|
|
|
- layout="total,sizes, prev, pager, next, jumper"
|
|
|
- :current-page="distributor.currentPage"
|
|
|
- :total="distributor.total">
|
|
|
- </el-pagination>
|
|
|
- </div>
|
|
|
- </el-tab-pane>
|
|
|
- </el-tabs>
|
|
|
- <el-input slot="reference" :readonly="true" v-model="form.enterprisename" autocomplete="off" placeholder="请选择客户" @input="selectCustomer"></el-input>
|
|
|
- </el-popover>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="联系人:" label-width="100px" prop="name">
|
|
|
- <el-popover
|
|
|
- placement="bottom"
|
|
|
- width="700"
|
|
|
- trigger="click"
|
|
|
- v-model="contactsShow"
|
|
|
- @show="contactsList">
|
|
|
- <el-input
|
|
|
- style="width:300px;margin-bottom: 10px"
|
|
|
- placeholder="请输入内容"
|
|
|
- v-model="contactsParam.content.where.condition"
|
|
|
- clearable
|
|
|
- @clear="contactsList(contactsParam.content.pageNumber = 1)"
|
|
|
- size="mini"
|
|
|
- @keyup.enter.native="contactsList(contactsParam.content.pageNumber = 1)">
|
|
|
- <i slot="prefix" class="el-icon-search" @click="contactsList(contactsParam.content.pageNumber = 1)"></i>
|
|
|
- </el-input>
|
|
|
- <el-table :data="contacts.contactsData" @row-click="contactsData" height="396px" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini">
|
|
|
- <el-table-column
|
|
|
- label="姓名"
|
|
|
- width="180">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.name?scope.row.name:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="手机号"
|
|
|
- width="180">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.phonenumber?scope.row.phonenumber:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="邮箱"
|
|
|
- width="180">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.email?scope.row.email:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="地址"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span style="margin-left: 10px">{{ scope.row.address?scope.row.address:'--' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <div class="container normal-panel" style="text-align:right">
|
|
|
- <el-pagination
|
|
|
- background
|
|
|
- small
|
|
|
- @size-change="handleSizeChangeContacts"
|
|
|
- @current-change="handleCurrentChangeContacts"
|
|
|
- :page-sizes="[10,20,50,100,]"
|
|
|
- layout="total,sizes, prev, pager, next, jumper"
|
|
|
- :current-page="contacts.currentPage"
|
|
|
- :total="contacts.total">
|
|
|
- </el-pagination>
|
|
|
- </div>
|
|
|
- <el-input slot="reference" :readonly="true" v-model="form.name" autocomplete="off" placeholder="请选择联系人" :disabled="form.sys_enterpriseid === ''" @input="selectContacts"></el-input>
|
|
|
- </el-popover>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="联系人手机号:" label-width="100px" >
|
|
|
- <el-input v-model="form.phonenumber" autocomplete="off" placeholder="手机号" disabled></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="电话:" label-width="100px" >
|
|
|
- <el-input v-model="form.telephone" autocomplete="off" placeholder="电话" disabled></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="报价日期:" label-width="100px">
|
|
|
- <el-date-picker
|
|
|
- v-model="form.billdate"
|
|
|
- style="width: 100%"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择日期"
|
|
|
- :picker-options="pickerOptions">
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="有效期:" label-width="100px" prop="date">
|
|
|
- <el-date-picker
|
|
|
- v-model="form.date"
|
|
|
- style="width: 100%"
|
|
|
- type="daterange"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期"
|
|
|
- :picker-options="pickerOptions">
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24" >
|
|
|
- <el-form-item label="产品系列:" label-width="100px" prop="itemtype">
|
|
|
- <el-select
|
|
|
- ref="sle"
|
|
|
- style="width:100%;"
|
|
|
- v-model="form.itemtype"
|
|
|
- multiple
|
|
|
- placeholder="请选择产品系列"
|
|
|
- size="mini"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in itemtype"
|
|
|
- :key="item.index"
|
|
|
- :label="item.value"
|
|
|
- :value="item.value"
|
|
|
- >
|
|
|
- <span style="float: left">{{ item.value }}</span>
|
|
|
- <span style="float: right; color: #8492a6; font-size: 12px">{{ item.remarks?item.remarks:'暂无描述' }}</span>
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-<!-- <el-col :span="24">
|
|
|
- <el-form-item label="折扣(%):" label-width="100px" prop="discountrate">
|
|
|
- <el-input type="number" v-model="form.discountrate" autocomplete="off" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>-->
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="业务员:" label-width="100px" prop="salername">
|
|
|
- <el-popover
|
|
|
- placement="bottom"
|
|
|
- trigger="manual"
|
|
|
- v-model="salesmanVisible"
|
|
|
- width="500">
|
|
|
- <selectSalesman ref="selectSalesman" :radio="true" @onSelect="salesmanChange" @onCancel="salesmanVisible = false"></selectSalesman>
|
|
|
- <el-input readonly type="text" slot="reference" size="small" @focus="showChange" v-model="form.salername" placeholder="请选择业务员"></el-input>
|
|
|
- </el-popover>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="备注:" label-width="100px" prop="remarks">
|
|
|
- <el-input v-model="form.remarks" autocomplete="off" placeholder="请输入备注信息" type="textarea" autosize></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-form>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
-<!-- <div >
|
|
|
- <el-divider></el-divider>
|
|
|
- </div>
|
|
|
- <div style="margin:20px 20px 20px 20px">
|
|
|
- <quoted_price_product :sa_projectid="form.sa_projectid" :type="form.type" ref="quoterPrice" @checkFormImport="onCheckFormImport" @checkForm="onSubmit" @checkFormProject="onSubmit" @productData="productDataChange"></quoted_price_product>
|
|
|
- </div>-->
|
|
|
- <div class="fixed__btn__panel">
|
|
|
- <el-button size="small" @click="onClose" class="normal-btn-width">取 消</el-button>
|
|
|
- <el-button size="small" type="primary" @click="getSubmit" :loading="loading" class="normal-btn-width">确 定</el-button>
|
|
|
- </div>
|
|
|
- </el-drawer>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script>
|
|
|
-import quoted_price_product from '../components/quotedPriceProduct'
|
|
|
-import selectSalesman from '../components/selectSalesman'
|
|
|
-import {mapGetters} from "vuex";
|
|
|
-export default {
|
|
|
- name: "ProjectQuotationAdd",
|
|
|
- props:["drawerShow","typeData"],
|
|
|
- components:{quoted_price_product,selectSalesman},
|
|
|
- data(){
|
|
|
- var discountrate = (rule,value,callback) =>{
|
|
|
- if (this.form.discountrate < 0 || this.form.discountrate > 100){
|
|
|
- callback(new Error('请输入0-100%'))
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- }
|
|
|
- return {
|
|
|
- search:'',
|
|
|
- title:'',
|
|
|
- projectShow:false,
|
|
|
- customerShow:false,
|
|
|
- contactsShow:false,
|
|
|
- salesmanVisible:false,
|
|
|
- activeName:'客户',
|
|
|
- projectParam:{
|
|
|
- "id": 20221020143503,
|
|
|
- "content": {
|
|
|
- "pageNumber": 1,
|
|
|
- "pageSize": 10,
|
|
|
- "type":1, // 1:我负责的;2:我参与的;3:我下属负责的;4:我下属参与的
|
|
|
- "where": {
|
|
|
- "condition": "",
|
|
|
- "startdate": "",
|
|
|
- "enddate": "",
|
|
|
- "status":"",//跟进中、已成交、已失败
|
|
|
- "projecttype":"",
|
|
|
- "stagename":"",
|
|
|
- "tag":""
|
|
|
- }
|
|
|
- },
|
|
|
- },
|
|
|
- project:{
|
|
|
- projectData:[],
|
|
|
- total:0,
|
|
|
- currentPage:0,
|
|
|
- },
|
|
|
- customerParam:{
|
|
|
- "id": 20220920083901,
|
|
|
- "content": {
|
|
|
- "pageNumber": 1,
|
|
|
- "pageSize": 10,
|
|
|
- "where": {
|
|
|
- "condition": "",
|
|
|
- "type":4,
|
|
|
- "sa_projectid":""
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- customer:{
|
|
|
- customerData:[],
|
|
|
- total:0,
|
|
|
- currentPage:0,
|
|
|
- },
|
|
|
- distributor:{
|
|
|
- distributorData:[],
|
|
|
- total:0,
|
|
|
- currentPage:0
|
|
|
- },
|
|
|
- contactsParam:{
|
|
|
- "id": "20221022165503",
|
|
|
- "version": 1,
|
|
|
- "content": {
|
|
|
- "sys_enterpriseid":"",
|
|
|
- "pageNumber": 1,
|
|
|
- "pageSize": 10,
|
|
|
- "where": {
|
|
|
- "condition": "",
|
|
|
- "workaddress": 0//0表示人,1表示地址
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- salerParam:{
|
|
|
- "id":20230306144402,
|
|
|
- "content":{
|
|
|
- "type":'',////type:1客户2:项目
|
|
|
- "sys_enterpriseid":'',//type=1
|
|
|
- "sa_projectid":'' //type=2时传
|
|
|
- }
|
|
|
- },
|
|
|
- contacts:{
|
|
|
- contactsData:[],
|
|
|
- total:0,
|
|
|
- currentPage:0,
|
|
|
- },
|
|
|
- pickerOptions: {
|
|
|
- disabledDate(time) {
|
|
|
- return time.getTime() + 3600 * 1000 * 24 < Date.now() ;
|
|
|
- },
|
|
|
- },
|
|
|
- drawer:false,
|
|
|
- isQuotedPrice:false,
|
|
|
- date:[],
|
|
|
- productObj:{},
|
|
|
- form:{
|
|
|
- date:[],
|
|
|
- totalPrice:'',
|
|
|
- type:'',
|
|
|
- projectnum:'',
|
|
|
- enterprisename:'',
|
|
|
- name:'',
|
|
|
- phonenumber:'',
|
|
|
- fax:'',
|
|
|
- telephone:'',
|
|
|
- specialOffer:'否',
|
|
|
- sa_quotedpriceid:0, //sat_notice_classid<=0时 为新增
|
|
|
- sys_enterpriseid: "",
|
|
|
- contactsid:0,
|
|
|
- sa_projectid: "",
|
|
|
- discountrate: '',
|
|
|
- remarks: "",
|
|
|
- invaliddate: "",
|
|
|
- projectname: "",
|
|
|
- address: "",
|
|
|
- billdate:"",
|
|
|
- enddate:'',
|
|
|
- begdate:'',
|
|
|
- saler_hrid:'',
|
|
|
- salername:'',
|
|
|
- itemtype:[],
|
|
|
- quotedpricenotes: [
|
|
|
- "1、报价为含税13%税率, 含运费 ",
|
|
|
- "2、报价有限期 2023-02-02 13:16:47至2023-02-22 13:16:47",
|
|
|
- ]
|
|
|
- },
|
|
|
- rules:{
|
|
|
- projectname:[
|
|
|
- { required: true, message: '请选择项目', trigger: 'change'},
|
|
|
- ],
|
|
|
- enterprisename:[
|
|
|
- { required: true, message: '请选择客户', trigger: 'change'},
|
|
|
- ],
|
|
|
- date:[
|
|
|
- { required: true, message: '请选择有效期', trigger: 'change'},
|
|
|
- ],
|
|
|
- itemtype:[
|
|
|
- { required: true, message: '请选择产品系列', trigger: 'change'},
|
|
|
- ],
|
|
|
- discountrate:[
|
|
|
- { required: false, validator: discountrate, trigger: 'change'},
|
|
|
- ],
|
|
|
- /*name:[
|
|
|
- { required: true, message: '请选择联系人', trigger: 'change'},
|
|
|
- ]*/
|
|
|
- },
|
|
|
- itemtype:[]
|
|
|
- }
|
|
|
- },
|
|
|
- computed:{
|
|
|
- ...mapGetters({
|
|
|
- loading:'loading'
|
|
|
- })
|
|
|
- },
|
|
|
- methods:{
|
|
|
- onClose(){
|
|
|
- this.drawer = false
|
|
|
- this.$emit('addSuccess')
|
|
|
- },
|
|
|
- /*创建报价单,获取商品信息*/
|
|
|
- onSubmit(type){
|
|
|
- console.log(this.form.date,'date')
|
|
|
- if (this.form.date.length === 0){
|
|
|
- this.form.begdate = ''
|
|
|
- this.form.enddate = ''
|
|
|
- this.form.sa_quotedpriceid = 0
|
|
|
- }else {
|
|
|
- this.form.begdate = this.form.date[0]
|
|
|
- this.form.enddate = this.form.date[1]
|
|
|
- this.form.sa_quotedpriceid = 0
|
|
|
- this.form.quotedpricenotes[1] = "2、报价有限期" + this.form.begdate + "至" + this.form.enddate
|
|
|
- }
|
|
|
- console.log(this.form,'form')
|
|
|
-
|
|
|
- this.$refs.form.validate(async (valid) => {
|
|
|
- if (!valid) return false
|
|
|
- this.form.discountrate = (this.form.discountrate /100).toFixed(3)
|
|
|
- const res = await this.$api.requested({
|
|
|
- "id": 20221020164803,
|
|
|
- "content": this.form
|
|
|
- })
|
|
|
- setTimeout(()=>{
|
|
|
- this.$refs.quoterPrice.quoterPrice(res.data.sa_quotedpriceid,this.form.type,type)
|
|
|
- this.form.sa_quotedpriceid = res.data.sa_quotedpriceid
|
|
|
-
|
|
|
- },500)
|
|
|
- })
|
|
|
- },
|
|
|
- /*导入创建报价单校验*/
|
|
|
- onCheckFormImport(){
|
|
|
- if (this.form.date.length === 0){
|
|
|
- this.form.begdate = ''
|
|
|
- this.form.enddate = ''
|
|
|
- }else {
|
|
|
- this.form.begdate = this.form.date[0]
|
|
|
- this.form.enddate = this.form.date[1]
|
|
|
- this.form.quotedpricenotes[1] = "2、报价有限期" + this.form.begdate + "至" + this.form.enddate
|
|
|
- }
|
|
|
- this.$refs.form.validate(async (valid) => {
|
|
|
- if (!valid) return false
|
|
|
- const res = await this.$api.requested({
|
|
|
- "id": 20221020164803,
|
|
|
- "content": this.form
|
|
|
- })
|
|
|
- this.$refs.quoterPrice.quoterImport(res.data.sa_quotedpriceid,this.form.type)
|
|
|
- this.form.sa_quotedpriceid = res.data.sa_quotedpriceid
|
|
|
- })
|
|
|
- },
|
|
|
- /*提交*/
|
|
|
- getSubmit(){
|
|
|
- if (this.form.date.length === 0){
|
|
|
- this.form.begdate = ''
|
|
|
- this.form.enddate = ''
|
|
|
- }else {
|
|
|
- this.form.begdate = this.form.date[0]
|
|
|
- this.form.enddate = this.form.date[1]
|
|
|
- this.form.quotedpricenotes[1] = "2、报价有限期" + this.form.begdate + "至" + this.form.enddate
|
|
|
- }
|
|
|
-
|
|
|
- this.$refs.form.validate(async (valid) => {
|
|
|
- if (!valid) return false
|
|
|
- this.$store.commit('setLoading',true)
|
|
|
- this.form.discountrate = this.form.discountrate?(this.form.discountrate / 100).toFixed(4):''
|
|
|
- const res = await this.$api.requested({
|
|
|
- "id": 20221020164803,
|
|
|
- "content": this.form
|
|
|
- })
|
|
|
- this.tool.showMessage(res,() => {
|
|
|
- this.$store.commit('setLoading',false)
|
|
|
- this.drawer = false
|
|
|
- this.$emit('addSuccess')
|
|
|
- this.$store.dispatch('changeDetailDrawer',true)
|
|
|
- this.$router.push({path:'/quotedPriceDetail',query:{id:res.data.sa_quotedpriceid,rowindex:res.data.rowindex}})
|
|
|
- })
|
|
|
- })
|
|
|
- },
|
|
|
- /*修改后的产品数据*/
|
|
|
- productDataChange(val){
|
|
|
- let obj = val.map(e=>{
|
|
|
- return {
|
|
|
- sa_quotedprice_itemsid:e.sa_quotedprice_itemsid,
|
|
|
- itemid:e.itemid,
|
|
|
- oldprice:e.marketprice,
|
|
|
- price:e.price,
|
|
|
- discountrate:(e.discountrate/100).toFixed(4),
|
|
|
- qty:e.qty
|
|
|
- }
|
|
|
- })
|
|
|
- this.productObj = obj
|
|
|
- },
|
|
|
- async changeData(obj){
|
|
|
- const res = await this.$api.requested({
|
|
|
- "id": 20221021095403,
|
|
|
- "content": {
|
|
|
- "sa_quotedpriceid":this.form.sa_quotedpriceid, //sat_notice_classid<=0时 为新增
|
|
|
- "items":obj
|
|
|
- }
|
|
|
- })
|
|
|
- this.$emit('addSuccess')
|
|
|
- },
|
|
|
- async projectList(){
|
|
|
- const res = await this.$api.requested(this.projectParam)
|
|
|
- this.project.projectData = res.data
|
|
|
- this.project.total = res.total
|
|
|
- this.project.currentPage = res.pageNumber
|
|
|
- },
|
|
|
- async selectProject(){
|
|
|
- this.projectParam.content.where.condition = this.form.projectname
|
|
|
- this.projectList()
|
|
|
- },
|
|
|
- async customerList(){
|
|
|
- if (this.form.sa_projectid === '0' && this.form.type === '客户报价'){
|
|
|
- this.customerParam.content.where.type = 7
|
|
|
- }else {
|
|
|
- this.customerParam.content.where.type = 4
|
|
|
- this.customerParam.content.where.sa_projectid = this.form.sa_projectid
|
|
|
- }
|
|
|
- const res = await this.$api.requested(this.customerParam)
|
|
|
- this.customer.customerData = res.data
|
|
|
- this.customer.total = res.total
|
|
|
- this.customer.currentPage = res.pageNumber
|
|
|
- },
|
|
|
- selectCustomer(){
|
|
|
- this.customerParam.content.where.condition = this.form.enterprisename
|
|
|
- this.customerList()
|
|
|
- },
|
|
|
- /*选择合作伙伴*/
|
|
|
- async distributorList(){
|
|
|
- this.customerParam.content.where.sa_projectid = 0
|
|
|
- this.customerParam.content.where.type = 16
|
|
|
- const res = await this.$api.requested(this.customerParam)
|
|
|
- this.distributor.distributorData = res.data
|
|
|
- this.distributor.total = res.total
|
|
|
- this.distributor.currentPage = res.pageNumber
|
|
|
- },
|
|
|
- selectDistributor(){
|
|
|
- this.customerParam.content.where.condition = this.form.enterprisename
|
|
|
- this.distributorList()
|
|
|
- },
|
|
|
- async contactsList(){
|
|
|
- this.contactsParam.content.sys_enterpriseid = this.form.sys_enterpriseid
|
|
|
- const res = await this.$api.requested(this.contactsParam)
|
|
|
- this.contacts.contactsData = res.data
|
|
|
- this.contacts.total = res.total
|
|
|
- this.contacts.currentPage = res.pageNumber
|
|
|
- },
|
|
|
- selectContacts(){
|
|
|
- this.contactsParam.content.where.condition = this.form.name
|
|
|
- this.contactsList()
|
|
|
- },
|
|
|
- /*项目选择信息*/
|
|
|
- projectData(val){
|
|
|
- this.form.sa_projectid = val.sa_projectid
|
|
|
- this.form.projectname = val.projectname
|
|
|
- this.form.projectnum = val.projectnum
|
|
|
- this.form.sys_enterpriseid = ''
|
|
|
- this.form.enterprisename = ''
|
|
|
- this.form.contactsid = 0
|
|
|
- this.form.name = ''
|
|
|
- this.form.phonenumber = ''
|
|
|
- this.form.fax = ''
|
|
|
- this.form.telephone = ''
|
|
|
- this.projectShow = false
|
|
|
- this.salerParam.content.type = 2
|
|
|
- this.salerParam.content.sa_projectid = this.form.sa_projectid
|
|
|
- this.querySalesman()
|
|
|
- },
|
|
|
- /*客户选择信息*/
|
|
|
- customerData(val){
|
|
|
- this.form.sys_enterpriseid = val.sys_enterpriseid
|
|
|
- this.form.enterprisename = val.enterprisename
|
|
|
- this.form.contactsid = 0
|
|
|
- this.form.name = ''
|
|
|
- this.form.phonenumber = ''
|
|
|
- this.form.fax = ''
|
|
|
- this.form.telephone = ''
|
|
|
- this.customerShow = false
|
|
|
- if (!this.isQuotedPrice){
|
|
|
- this.salerParam.content.type = 1
|
|
|
- this.salerParam.content.sys_enterpriseid = this.form.sys_enterpriseid
|
|
|
- this.querySalesman()
|
|
|
- }
|
|
|
- },
|
|
|
- /*合作伙伴选择信息*/
|
|
|
- distributorData(val){
|
|
|
- this.form.sys_enterpriseid = val.sys_enterpriseid
|
|
|
- this.form.enterprisename = val.enterprisename
|
|
|
- this.form.contactsid = 0
|
|
|
- this.form.contactsname = ''
|
|
|
- this.form.contactsphonenumber = ''
|
|
|
- this.form.fax = ''
|
|
|
- this.form.telephone = ''
|
|
|
- this.customerShow = false
|
|
|
- if (!this.isQuotedPrice){
|
|
|
- this.salerParam.content.type = 1
|
|
|
- this.salerParam.content.sys_enterpriseid = this.form.sys_enterpriseid
|
|
|
- this.querySalesman()
|
|
|
- }
|
|
|
- },
|
|
|
- /*联系人选择信息*/
|
|
|
- contactsData(val){
|
|
|
- this.form.contactsid = val.contactsid
|
|
|
- this.form.name = val.name
|
|
|
- this.form.phonenumber = val.phonenumber
|
|
|
- this.form.fax = val.fax
|
|
|
- this.form.telephone = val.telephone
|
|
|
- this.contactsShow = false
|
|
|
- },
|
|
|
- /*项目分页*/
|
|
|
- handleSizeChangeProject(val) {
|
|
|
- // console.log(`每页 ${val} 条`);
|
|
|
- this.projectParam.content.pageSize = val
|
|
|
- this.projectList()
|
|
|
- },
|
|
|
- handleCurrentChangeProject(val) {
|
|
|
- // console.log(`当前页: ${val}`);
|
|
|
- this.projectParam.content.pageNumber = val
|
|
|
- this.projectList()
|
|
|
- },
|
|
|
- /*客户分页*/
|
|
|
- handleSizeChangeCustomer(val) {
|
|
|
- // console.log(`每页 ${val} 条`);
|
|
|
- console.log(val)
|
|
|
- this.customerParam.content.pageSize = val
|
|
|
- this.customerList()
|
|
|
- },
|
|
|
- handleCurrentChangeCustomer(val) {
|
|
|
- // console.log(`当前页: ${val}`);
|
|
|
- console.log(val)
|
|
|
- this.customerParam.content.pageNumber = val
|
|
|
- this.customerList()
|
|
|
- },
|
|
|
- /*合作伙伴翻页*/
|
|
|
- handleSizeChangeDistributor(val) {
|
|
|
- // console.log(`每页 ${val} 条`);
|
|
|
- this.customerParam.content.pageSize = val
|
|
|
- this.distributorList()
|
|
|
- },
|
|
|
- handleCurrentChangeDistributor(val) {
|
|
|
- // console.log(`当前页: ${val}`);
|
|
|
- this.customerParam.content.pageNumber = val
|
|
|
- this.distributorList()
|
|
|
- },
|
|
|
- /*联系人分页*/
|
|
|
- handleSizeChangeContacts(val) {
|
|
|
- // console.log(`每页 ${val} 条`);
|
|
|
- this.contactsParam.content.pageSize = val
|
|
|
- this.contactsList()
|
|
|
- },
|
|
|
- handleCurrentChangeContacts(val) {
|
|
|
- // console.log(`当前页: ${val}`);
|
|
|
- this.contactsParam.content.pageNumber = val
|
|
|
- this.contactsList()
|
|
|
- },
|
|
|
- /*查询产品系列*/
|
|
|
- queryItemType(){
|
|
|
- this.$store.dispatch('optiontypeselect','itemtype').then(res => {
|
|
|
- this.itemtype = res.data
|
|
|
- })
|
|
|
- },
|
|
|
- /*业务员*/
|
|
|
- showChange(){
|
|
|
- this.salesmanVisible = true
|
|
|
- if (this.isQuotedPrice){
|
|
|
- this.$refs.selectSalesman.param.content.type = 2
|
|
|
- this.$refs.selectSalesman.param.content.sa_projectid = this.form.sa_projectid
|
|
|
- this.$refs.selectSalesman.listData()
|
|
|
- }else {
|
|
|
- this.$refs.selectSalesman.param.content.type = 1
|
|
|
- this.$refs.selectSalesman.param.content.sys_enterpriseid = this.form.sys_enterpriseid
|
|
|
- this.$refs.selectSalesman.listData()
|
|
|
- }
|
|
|
-
|
|
|
- },
|
|
|
- salesmanChange(data){
|
|
|
- console.log(data,"业务员")
|
|
|
- this.form.saler_hrid = data[0].hrid
|
|
|
- this.form.salername = data[0].name
|
|
|
- this.salesmanVisible = false
|
|
|
-
|
|
|
- /* this.form.salername = data[0].name
|
|
|
- this.form.saler_hrid = data[0].hrid
|
|
|
- this.salesmanVisible = false*/
|
|
|
- },
|
|
|
- async querySalesman(){
|
|
|
- const res = await this.$api.requested(this.salerParam)
|
|
|
- this.form.salername = res.data[0].name
|
|
|
- this.form.saler_hrid = res.data[0].hrid
|
|
|
- },
|
|
|
- /*修改折扣数据*/
|
|
|
- discountrateChange(){
|
|
|
- this.form.discountrate = Math.round(this.form.discountrate * 100)/100
|
|
|
- },
|
|
|
- handleClick(tab){
|
|
|
- console.log(tab.name,'tab')
|
|
|
- if (tab.name === '合作伙伴'){
|
|
|
- this.distributorList()
|
|
|
- }else {
|
|
|
- this.customerList()
|
|
|
- }
|
|
|
- }
|
|
|
- /*isSpecial(val){
|
|
|
- console.log("获取")
|
|
|
- console.log(val,'是否特价')
|
|
|
- }*/
|
|
|
-
|
|
|
-
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- if (this.drawerShow){this.drawer = true}
|
|
|
- this.form.type = this.typeData
|
|
|
- if (this.typeData === '项目报价'){
|
|
|
- this.isQuotedPrice = true
|
|
|
- this.title = '新建项目报价单'
|
|
|
- }else {
|
|
|
- this.isQuotedPrice = false
|
|
|
- this.title = '新建客户报价单'
|
|
|
- }
|
|
|
- const date = new Date()
|
|
|
- this.form.billdate = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate()
|
|
|
- this.form.sa_quotedpriceid = 0
|
|
|
- this.queryItemType()
|
|
|
- },
|
|
|
- created() {
|
|
|
-
|
|
|
- }
|
|
|
-}
|
|
|
-</script>
|
|
|
-
|
|
|
-<style scoped>
|
|
|
->>> .el-divider--horizontal {
|
|
|
- height: 1px;
|
|
|
- width: 100%;
|
|
|
- margin: 0px;
|
|
|
-}
|
|
|
-/deep/.el-input__prefix {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
-}
|
|
|
-</style>
|