|
|
@@ -1,23 +1,45 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
|
|
+ <el-form-item label="商机编号" prop="opportunityCode">
|
|
|
+ <el-input v-model="queryParams.opportunityCode" placeholder="请输入商机编号" clearable style="width: 250px"
|
|
|
+ @keyup.enter.native="handleQuery" />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="商机名称" prop="opportunityName">
|
|
|
<el-input v-model="queryParams.opportunityName" placeholder="请输入商机名称" clearable style="width: 250px"
|
|
|
@keyup.enter.native="handleQuery" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="项目类型" prop="projectType">
|
|
|
- <el-input v-model="queryParams.projectType" placeholder="请输入项目类型" clearable style="width: 250px"
|
|
|
- @keyup.enter.native="handleQuery" />
|
|
|
+ <el-form-item label="客户名称" prop="customerId">
|
|
|
+ <el-select v-model="queryParams.customerId" placeholder="请选择客户名称" style="width: 250px">
|
|
|
+ <el-option v-for="item in customerListAll" :key="item.id" :label="item.customerName"
|
|
|
+ :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="添加人" prop="creatorName">
|
|
|
- <el-input v-model="queryParams.creatorName" placeholder="添加人" clearable style="width: 250px"
|
|
|
- @keyup.enter.native="handleQuery" />
|
|
|
+ <el-form-item label="赢单机率" prop="winRate">
|
|
|
+ <el-select v-model="queryParams.winRate" placeholder="请选择赢单机率" style="width: 250px">
|
|
|
+ <el-option label="高" value="0"></el-option>
|
|
|
+ <el-option label="中" value="1"></el-option>
|
|
|
+ <el-option label="低" value="2"></el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="成立时间" prop="estimatedDealTime">
|
|
|
+
|
|
|
+ <el-form-item label="进单日期" prop="estimatedDealTime">
|
|
|
<el-date-picker v-model="queryParams.estimatedDealTime" style="width: 250px" value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
|
|
|
:default-time="['00:00:00', '23:59:59']" />
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="商机等级" prop="opportunityLevel">
|
|
|
+ <el-select v-model="queryParams.opportunityLevel" placeholder="请选择商机等级" style="width: 250px">
|
|
|
+ <el-option label="潜在" value="0"></el-option>
|
|
|
+ <el-option label="可能" value="1"></el-option>
|
|
|
+ <el-option label="重点跟进" value="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="创建人" prop="creatorEmployeeName">
|
|
|
+ <el-input v-model="queryParams.creatorEmployeeName" placeholder="添加人" clearable style="width: 250px"
|
|
|
+ @keyup.enter.native="handleQuery" />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
|
|
|
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
|
|
|
@@ -37,11 +59,14 @@
|
|
|
</el-row>
|
|
|
|
|
|
<el-table v-loading="loading" :data="dataList">
|
|
|
+ <el-table-column label="商机编号" align="center" prop="opportunityCode" min-width="350" />
|
|
|
<el-table-column label="商机名称" align="center" prop="opportunityName" min-width="100" />
|
|
|
- <el-table-column label="项目类型" align="center" prop="projectType" min-width="100" />
|
|
|
<el-table-column label="客户名称" align="center" prop="customerName" min-width="120" />
|
|
|
- <el-table-column label="申请人" align="center" prop="creatorEmployeeName" min-width="150" />
|
|
|
- <el-table-column label="部门" align="center" prop="deptName" min-width="100" />
|
|
|
+ <el-table-column label="预计赢单机率" align="center" prop="winRate" min-width="100">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <span>{{ scope.row.winRate == 0 ? '高' : scope.row.winRate == 1 ? '中' : '低' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="预计合同金额" align="center" prop="estimatedContractAmount" min-width="100" />
|
|
|
<el-table-column label="预计项目毛利" align="center" prop="estimatedProjectMargin" min-width="150" />
|
|
|
<el-table-column label="预计项目成功率" align="center" prop="estimatedSuccessRate" min-width="150" />
|
|
|
@@ -50,8 +75,18 @@
|
|
|
<span>{{ parseTime(scope.row.createTime) }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="商机等级" align="center" prop="opportunityLevel" min-width="80" />
|
|
|
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="150">
|
|
|
+ <el-table-column label="商机等级" align="center" prop="opportunityLevel" min-width="80">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <span>{{ scope.row.opportunityLevel == 0 ? '潜在' : scope.row.opportunityLevel == 1 ? '可能' : '重点跟进' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="创建人" align="center" prop="creatorEmployeeName" min-width="100" />
|
|
|
+ <el-table-column label="创建时间" align="center" prop="createTime" min-width="150">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <span>{{ parseTime(scope.row.createTime) }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width" min-width="150">
|
|
|
<template v-slot="scope">
|
|
|
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
|
|
v-hasPermi="['customer:info:update']">修改</el-button>
|
|
|
@@ -70,43 +105,58 @@
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="商机名称" prop="opportunityName">
|
|
|
- <el-input maxlength="20" v-model="form.opportunityName" placeholder='请输入商机名称'></el-input>
|
|
|
+ <el-form-item label="商机编号" prop="opportunityCode">
|
|
|
+ <el-input v-model="form.opportunityCode" placeholder='请输入商机编号' disabled></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="项目类型" prop="projectType">
|
|
|
- <el-input v-model="form.projectType" placeholder='请输入项目类型'></el-input>
|
|
|
+ <el-form-item label="商机名称" prop="opportunityName">
|
|
|
+ <el-input maxlength="30" v-model="form.opportunityName" placeholder='请输入商机名称'></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="客户名称" prop="customerId">
|
|
|
- <el-input v-model="form.customerId" placeholder='请输入客户名称'></el-input>
|
|
|
+ <el-form-item label="客户" prop="customerId">
|
|
|
+ <el-select v-model="form.customerId" placeholder="请选择客户" style="width: 100%">
|
|
|
+ <el-option v-for="item in customerList" :key="item.id" :label="item.customerName"
|
|
|
+ :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="申请人" prop="creatorEmployeeName">
|
|
|
- <el-input v-model="form.creatorEmployeeName" placeholder='请输入申请人'></el-input>
|
|
|
+ <el-form-item label="赢单机率" prop="winRate">
|
|
|
+ <el-select v-model="form.winRate" placeholder="请选择赢单机率" style="width: 100%">
|
|
|
+ <el-option label="高" value="0"></el-option>
|
|
|
+ <el-option label="中" value="1"></el-option>
|
|
|
+ <el-option label="低" value="2"></el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="部门" prop="deptName">
|
|
|
- <el-input v-model="form.deptName" placeholder='请输入部门'></el-input>
|
|
|
+ <el-form-item label="合同金额" prop="estimatedContractAmount">
|
|
|
+ <el-input v-model="form.estimatedContractAmount" placeholder='预计合同金额(元)'
|
|
|
+ oninput="value=value.match(/\d+\.?\d{0,2}/,'')"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="合同金额" prop="estimatedContractAmount">
|
|
|
- <el-input v-model="form.estimatedContractAmount" placeholder='预计合同金额(万元)' oninput="value=value.match(/\d+\.?\d{0,2}/,'')"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="项目毛利" prop="estimatedProjectMargin">
|
|
|
- <el-input v-model="form.estimatedProjectMargin" placeholder='请输入客户地址'></el-input>
|
|
|
+ <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" v-model="form.estimatedProjectMargin" placeholder='单位:%,大于0小等于100的正整数'></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="成功率" prop="estimatedSuccessRate">
|
|
|
- <el-input v-model="form.estimatedSuccessRate" placeholder='请输入客户联系人'></el-input>
|
|
|
+ <el-select v-model="form.estimatedSuccessRate" placeholder="请选择预计项目成功率" style="width: 100%">
|
|
|
+ <el-option label="10%" value="10%"></el-option>
|
|
|
+ <el-option label="20%" value="20%"></el-option>
|
|
|
+ <el-option label="30%" value="30%"></el-option>
|
|
|
+ <el-option label="40%" value="40%"></el-option>
|
|
|
+ <el-option label="50%" value="50%"></el-option>
|
|
|
+ <el-option label="60%" value="60%"></el-option>
|
|
|
+ <el-option label="70%" value="70%"></el-option>
|
|
|
+ <el-option label="80%" value="80%"></el-option>
|
|
|
+ <el-option label="90%" value="90%"></el-option>
|
|
|
+ <el-option label="100%" value="100%"></el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
@@ -118,7 +168,19 @@
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="商机等级" prop="opportunityLevel">
|
|
|
- <el-input v-model="form.opportunityLevel" placeholder='请输入客户联系手机号'></el-input>
|
|
|
+ <el-select v-model="form.opportunityLevel" placeholder="请选择商机等级" style="width: 100%">
|
|
|
+ <el-option label="潜在" value="0"></el-option>
|
|
|
+ <el-option label="可能" value="1"></el-option>
|
|
|
+ <el-option label="重点跟进" value="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="附件">
|
|
|
+ <el-upload :action="fileUrl" :headers="headers" :file-list="files" :on-success="handleFileSuccessCite"
|
|
|
+ :before-upload="beforeUploadFile" :on-remove="handleRemove">
|
|
|
+ <el-button size="small" type="primary">点击上传</el-button>
|
|
|
+ </el-upload>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
@@ -137,117 +199,122 @@
|
|
|
<!-- 详情对话框 -->
|
|
|
<el-dialog :title="title" :visible.sync="openDetail" width="800px" append-to-body>
|
|
|
<div class="widget-wrapper">
|
|
|
- <div class="widget-list">
|
|
|
- <div class="fx-field x-grid-col-12">
|
|
|
- <div class="field-label">
|
|
|
- <span class="field-required">*</span>
|
|
|
- <div class="field-name">商机名称</div>
|
|
|
- </div>
|
|
|
- <div class="field-component">
|
|
|
- <span :title="form.opportunityName">{{ form.opportunityName }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fx-field x-grid-col-12">
|
|
|
- <div class="field-label">
|
|
|
- <span class="field-required">*</span>
|
|
|
- <div class="field-name">项目类型</div>
|
|
|
- </div>
|
|
|
- <div class="field-component">
|
|
|
- <span :title="form.projectType">{{ form.projectType }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fx-field x-grid-col-12">
|
|
|
- <div class="field-label">
|
|
|
- <span class="field-required">*</span>
|
|
|
- <div class="field-name">客户名称</div>
|
|
|
- </div>
|
|
|
- <div class="field-component">
|
|
|
- <span :title="form.customerId">{{ form.customerId }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fx-field x-grid-col-12">
|
|
|
- <div class="field-label">
|
|
|
- <span class="field-required">*</span>
|
|
|
- <div class="field-name">申请人</div>
|
|
|
- </div>
|
|
|
- <div class="field-component">
|
|
|
- <span :title="form.creatorEmployeeName">{{ form.creatorEmployeeName }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fx-field x-grid-col-12">
|
|
|
- <div class="field-label">
|
|
|
- <span class="field-required">*</span>
|
|
|
- <div class="field-name">部门</div>
|
|
|
- </div>
|
|
|
- <div class="field-component">
|
|
|
- <span :title="form.deptName">{{ form.deptName }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fx-field x-grid-col-12">
|
|
|
- <div class="field-label">
|
|
|
- <span class="field-required">*</span>
|
|
|
- <div class="field-name">合同金额</div>
|
|
|
- </div>
|
|
|
- <div class="field-component">
|
|
|
- <span :title="form.estimatedContractAmount">{{ form.estimatedContractAmount }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fx-field x-grid-col-12">
|
|
|
- <div class="field-label">
|
|
|
- <span class="field-required">*</span>
|
|
|
- <div class="field-name">项目毛利</div>
|
|
|
- </div>
|
|
|
- <div class="field-component">
|
|
|
- <span :title="form.estimatedProjectMargin">{{ form.estimatedProjectMargin }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fx-field x-grid-col-12">
|
|
|
- <div class="field-label">
|
|
|
- <span class="field-required">*</span>
|
|
|
- <div class="field-name">成功率</div>
|
|
|
- </div>
|
|
|
- <div class="field-component">
|
|
|
- <span :title="form.estimatedSuccessRate">{{ form.estimatedSuccessRate }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fx-field x-grid-col-12">
|
|
|
- <div class="field-label">
|
|
|
- <span class="field-required">*</span>
|
|
|
- <div class="field-name">进单时间</div>
|
|
|
- </div>
|
|
|
- <div class="field-component">
|
|
|
- <span :title="form.estimatedDealTime">{{ form.estimatedDealTime }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fx-field x-grid-col-12">
|
|
|
- <div class="field-label">
|
|
|
- <span class="field-required">*</span>
|
|
|
- <div class="field-name">商机等级</div>
|
|
|
- </div>
|
|
|
- <div class="field-component">
|
|
|
- <span :title="form.opportunityLevel">{{ form.opportunityLevel }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="fx-field x-grid-col-12">
|
|
|
- <div class="field-label">
|
|
|
- <div class="field-name">备注</div>
|
|
|
- </div>
|
|
|
- <div class="field-component">
|
|
|
- <span :title="form.remarks">{{ form.remarks }}</span>
|
|
|
+ <div class="widget-list">
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <span class="field-required">*</span>
|
|
|
+ <div class="field-name">商机编号</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span :title="form.opportunityCode">{{ form.opportunityCode }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <span class="field-required">*</span>
|
|
|
+ <div class="field-name">商机名称</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span :title="form.opportunityName">{{ form.opportunityName }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <span class="field-required">*</span>
|
|
|
+ <div class="field-name">客户名称</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span :title="form.customerName">{{ form.customerName }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <span class="field-required">*</span>
|
|
|
+ <div class="field-name">赢单机率</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.winRate == 0 ? '高' : form.winRate == 1 ? '中' : '低' }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <span class="field-required">*</span>
|
|
|
+ <div class="field-name">合同金额</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span :title="form.estimatedContractAmount">{{ form.estimatedContractAmount }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <span class="field-required">*</span>
|
|
|
+ <div class="field-name">项目毛利(%)</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span :title="form.estimatedProjectMargin">{{ form.estimatedProjectMargin }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <span class="field-required">*</span>
|
|
|
+ <div class="field-name">成功率</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span :title="form.estimatedSuccessRate">{{ form.estimatedSuccessRate }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <span class="field-required">*</span>
|
|
|
+ <div class="field-name">进单时间</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span :title="form.estimatedDealTime">{{ form.estimatedDealTime }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <span class="field-required">*</span>
|
|
|
+ <div class="field-name">商机等级</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span>{{ form.opportunityLevel == 0 ? '潜在' : form.opportunityLevel == 1 ? '可能' : '重点跟进' }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">附件</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <div v-for="(item, index) in form.fileList" :key="index">
|
|
|
+ <a :href="item.url" target="_blank" :title="item.name" style="color: #5094d5;">{{ item.name }}</a>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="fx-field x-grid-col-12">
|
|
|
+ <div class="field-label">
|
|
|
+ <div class="field-name">备注</div>
|
|
|
+ </div>
|
|
|
+ <div class="field-component">
|
|
|
+ <span :title="form.remarks">{{ form.remarks }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { listBusiness, getBusiness, delBusiness, addBusiness, updateBusiness, exportBusiness } from "@/api/crm/business";
|
|
|
+import { listSimpleCustomer } from "@/api/crm/customer";
|
|
|
+import { getOpportunityCode, listBusiness, getBusiness, delBusiness, addBusiness, updateBusiness, exportBusiness } from "@/api/crm/business";
|
|
|
import { getBaseHeader } from "@/utils/request";
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
+ customerListAll: [],
|
|
|
+ customerList: [],
|
|
|
files: [],
|
|
|
// 设置上传的请求头部
|
|
|
headers: getBaseHeader(),
|
|
|
@@ -272,42 +339,75 @@ export default {
|
|
|
queryParams: {
|
|
|
pageNo: 1,
|
|
|
pageSize: 10,
|
|
|
+ opportunityCode: undefined,
|
|
|
opportunityName: undefined,
|
|
|
- projectType: undefined,
|
|
|
- creatorName: undefined,
|
|
|
+ customerId: undefined,
|
|
|
+ winRate: undefined,
|
|
|
+ opportunityLevel: undefined,
|
|
|
+ creatorEmployeeName: undefined,
|
|
|
estimatedDealTime: [],
|
|
|
+ status: undefined,
|
|
|
},
|
|
|
// 表单参数
|
|
|
form: {},
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
+
|
|
|
+ opportunityCode: [
|
|
|
+ { required: true, message: '请输入商机编号', trigger: 'blur' },
|
|
|
+ ],
|
|
|
opportunityName: [
|
|
|
{ required: true, message: '请输入商机名称', trigger: 'blur' },
|
|
|
],
|
|
|
- estimatedDealTime: [
|
|
|
- { required: true, message: '请选择成立时间', trigger: 'blur' }
|
|
|
+ customerId: [
|
|
|
+ { required: true, message: '请选择客户', trigger: 'change' },
|
|
|
+ ],
|
|
|
+ winRate: [
|
|
|
+ { required: true, message: '请选择赢单机率', trigger: 'change' },
|
|
|
],
|
|
|
estimatedContractAmount: [
|
|
|
{ required: true, message: '请输入金额', trigger: 'blur' },
|
|
|
{
|
|
|
- pattern: /^(([1-9]{1}\d{0,9})|(0{1}))(\.\d{1,2})?$/,
|
|
|
- message: "请输入合法的金额数字,最多两位小数",
|
|
|
- trigger: "blur"
|
|
|
+ pattern: /^(([1-9]{1}\d{0,9})|(0{1}))(\.\d{1,2})?$/,
|
|
|
+ message: "请输入合法的金额数字,最多两位小数",
|
|
|
+ trigger: "blur"
|
|
|
}
|
|
|
],
|
|
|
- projectType: [
|
|
|
- { required: true, message: '请输入项目类型', trigger: 'blur' },
|
|
|
+ estimatedProjectMargin: [
|
|
|
+ { required: true, message: '请输入项目毛利', trigger: 'blur' },
|
|
|
],
|
|
|
- customerId: [
|
|
|
- { required: true, message: '请输入客户名称', trigger: 'blur' },
|
|
|
+ estimatedSuccessRate: [
|
|
|
+ { required: true, message: '请选择预计项目成功率', trigger: 'change' },
|
|
|
+ ],
|
|
|
+ estimatedDealTime: [
|
|
|
+ { required: true, message: '请选择进单时间', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ opportunityLevel: [
|
|
|
+ { required: true, message: '请选择商机等级', trigger: 'change' },
|
|
|
],
|
|
|
},
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
this.getList();
|
|
|
+ this.getListSimpleCustomerAll();
|
|
|
},
|
|
|
methods: {
|
|
|
+ getListSimpleCustomerAll() {
|
|
|
+ listSimpleCustomer().then(response => {
|
|
|
+ this.customerListAll = response.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getListSimpleCustomer() {
|
|
|
+ listSimpleCustomer({ isOpen: 0 }).then(response => {
|
|
|
+ this.customerList = response.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getOpportunityCode() {
|
|
|
+ getOpportunityCode().then(response => {
|
|
|
+ this.form.opportunityCode = response.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
handleRemove(file, fileList) {
|
|
|
console.log(file, fileList);
|
|
|
let fileIds = [];
|
|
|
@@ -363,18 +463,16 @@ export default {
|
|
|
// 表单重置
|
|
|
reset() {
|
|
|
this.form = {
|
|
|
+ opportunityCode: undefined,
|
|
|
opportunityName: undefined,
|
|
|
- projectType: undefined,
|
|
|
customerId: undefined,
|
|
|
- creatorEmployeeName: undefined,
|
|
|
- deptName: undefined,
|
|
|
+ winRate: undefined,
|
|
|
estimatedContractAmount: undefined,
|
|
|
estimatedProjectMargin: undefined,
|
|
|
estimatedSuccessRate: undefined,
|
|
|
-
|
|
|
-
|
|
|
estimatedDealTime: undefined,
|
|
|
opportunityLevel: undefined,
|
|
|
+ fileIdList: undefined,
|
|
|
remarks: undefined,
|
|
|
};
|
|
|
this.resetForm("form");
|
|
|
@@ -392,6 +490,8 @@ export default {
|
|
|
/** 新增按钮操作 */
|
|
|
handleAdd() {
|
|
|
this.reset();
|
|
|
+ this.getOpportunityCode();
|
|
|
+ this.getListSimpleCustomer();
|
|
|
this.open = true;
|
|
|
this.title = "添加";
|
|
|
},
|
|
|
@@ -409,6 +509,7 @@ export default {
|
|
|
/** 修改按钮操作 */
|
|
|
handleUpdate(row) {
|
|
|
this.reset();
|
|
|
+ this.getListSimpleCustomer();
|
|
|
const id = row.id;
|
|
|
getBusiness(id).then(response => {
|
|
|
let files = response.data.fileList;
|
|
|
@@ -472,7 +573,7 @@ export default {
|
|
|
this.exportLoading = true;
|
|
|
return exportBusiness(params);
|
|
|
}).then(response => {
|
|
|
- this.$download.excel(response, '客户信息.xls');
|
|
|
+ this.$download.excel(response, '商机信息.xls');
|
|
|
this.exportLoading = false;
|
|
|
}).catch(() => { });
|
|
|
}
|