|
@@ -2,9 +2,9 @@
|
|
|
<div>
|
|
|
<el-button size="mini" :disabled="data.status !== '新建'" :type="btnType?btnType:'text'" @click="onShow" >编 辑</el-button>
|
|
|
<el-drawer
|
|
|
- title="创建报价单"
|
|
|
+ title="编辑报价单"
|
|
|
:visible.sync="drawer"
|
|
|
- size="50%"
|
|
|
+ size="70%"
|
|
|
direction="rtl"
|
|
|
append-to-body
|
|
|
@close="onClose">
|
|
@@ -23,7 +23,54 @@
|
|
|
</el-col>
|
|
|
<el-col :span="11" v-if="isQuotedPrice">
|
|
|
<el-form-item label="项目名称:" label-width="90px" prop="projectname">
|
|
|
- <el-input v-model="form.projectname" autocomplete="off" placeholder="请选择项目" @focus="project" @projectList="projectList"></el-input>
|
|
|
+ <el-popover
|
|
|
+ placement="bottom"
|
|
|
+ width="580"
|
|
|
+ trigger="hover"
|
|
|
+ @show="projectList">
|
|
|
+ <el-table :data="project.projectData">
|
|
|
+ <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="地址"
|
|
|
+ width="300">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span style="margin-left: 10px">{{ scope.row.address?scope.row.address:'--' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ fixed="right"
|
|
|
+ label="操作"
|
|
|
+ width="60">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button type="text" @click="projectData(scope.row)">选择</el-button>
|
|
|
+ </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"
|
|
|
+ :current-page="project.currentPage"
|
|
|
+ :total="project.total">
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+ <el-input slot="reference" v-model="form.projectname" autocomplete="off" placeholder="请选择项目" @input="selectProject"></el-input>
|
|
|
+ </el-popover>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :offset="2" :span="11" v-if="isQuotedPrice">
|
|
@@ -33,7 +80,61 @@
|
|
|
</el-col>
|
|
|
<el-col :span="11">
|
|
|
<el-form-item label="客户:" label-width="90px" prop="enterprisename">
|
|
|
- <el-input v-model="form.enterprisename" autocomplete="off" placeholder="请选择客户" @focus="customer" @customerList="customerList"></el-input>
|
|
|
+ <el-popover
|
|
|
+ placement="bottom"
|
|
|
+ width="580"
|
|
|
+ trigger="hover"
|
|
|
+ @show="customerList">
|
|
|
+ <el-table :data="customer.customerData">
|
|
|
+ <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="180">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span style="margin-left: 10px">{{ scope.row.enterprisename?scope.row.enterprisename:'--'}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="省市县"
|
|
|
+ width="230">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span style="margin-left: 10px">{{ scope.row.province?scope.row.province + '-' + scope.row.city + '-' + scope.row.county:'--' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="地址"
|
|
|
+ width="300">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span style="margin-left: 10px">{{ scope.row.address?scope.row.address:'--' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ fixed="right"
|
|
|
+ label="操作"
|
|
|
+ width="60">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button type="text" @click="customerData(scope.row)">选择</el-button>
|
|
|
+ </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"
|
|
|
+ :current-page="customer.currentPage"
|
|
|
+ :total="customer.total">
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+ <el-input slot="reference" v-model="form.enterprisename" autocomplete="off" placeholder="请选择客户" @input="selectCustomer"></el-input>
|
|
|
+ </el-popover>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :offset="2" :span="11">
|
|
@@ -64,7 +165,61 @@
|
|
|
</el-col>
|
|
|
<el-col :offset="2" :span="11">
|
|
|
<el-form-item label="联系人:" label-width="90px" prop="contactsname">
|
|
|
- <el-input v-model="form.contactsname" autocomplete="off" placeholder="联系人" @focus="contacts" @contactsList="contactsList"></el-input>
|
|
|
+ <el-popover
|
|
|
+ placement="bottom"
|
|
|
+ width="580"
|
|
|
+ trigger="hover"
|
|
|
+ @show="contactsList">
|
|
|
+ <el-table :data="contacts.contactsData">
|
|
|
+ <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="地址"
|
|
|
+ width="300">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span style="margin-left: 10px">{{ scope.row.address?scope.row.address:'--' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ fixed="right"
|
|
|
+ label="操作"
|
|
|
+ width="60">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button type="text" @click="contactsData(scope.row)">选择</el-button>
|
|
|
+ </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"
|
|
|
+ :current-page="contacts.currentPage"
|
|
|
+ :total="contacts.total">
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+ <el-input slot="reference" v-model="form.contactsname" autocomplete="off" placeholder="请选择联系人" @input="selectContacts"></el-input>
|
|
|
+ </el-popover>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="11">
|
|
@@ -86,16 +241,10 @@
|
|
|
<el-button size="small" type="warning" @click="getSubmit" class="normal-btn-width">保 存</el-button>
|
|
|
</div>
|
|
|
</el-drawer>
|
|
|
- <project_table v-if="projectDrawer" :projectDrawer="projectDrawer" @projectData="projectData" @projectList="projectList"></project_table>
|
|
|
- <customer_table v-if="customerDrawer" :customerDrawer="customerDrawer" :id="form.sa_projectid" :isQuotedPrice="isQuotedPrice" @customerData="customerData" @customerList="customerList"></customer_table>
|
|
|
- <contacts_table v-if="contactsDrawer" :contactsDrawer="contactsDrawer" :id="form.sys_enterpriseid" @contactsData="contactsData" @contactsList="contactsList"></contacts_table>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import project_table from "@/SDrpManagement/QuotedPrice/components/projectTable";
|
|
|
-import customer_table from "@/SDrpManagement/QuotedPrice/components/customerTable";
|
|
|
-import contacts_table from "@/SDrpManagement/QuotedPrice/components/contactsTable";
|
|
|
import quoted_price_product from "@/SDrpManagement/QuotedPrice/components/quotedPriceProduct";
|
|
|
|
|
|
export default {
|
|
@@ -103,15 +252,67 @@ export default {
|
|
|
props:['data','btnType'],
|
|
|
data(){
|
|
|
return {
|
|
|
+ projectParam:{
|
|
|
+ "id": 20221020143502,
|
|
|
+ "content": {
|
|
|
+ "pageNumber": 1,
|
|
|
+ "pageSize": 5,
|
|
|
+ "type":0, // 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": 5,
|
|
|
+ "where": {
|
|
|
+ "condition": "",
|
|
|
+ "type":4,
|
|
|
+ "sa_projectid":""
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ customer:{
|
|
|
+ customerData:[],
|
|
|
+ total:0,
|
|
|
+ currentPage:0,
|
|
|
+ },
|
|
|
+ contactsParam:{
|
|
|
+ "id": "20221022165503",
|
|
|
+ "version": 1,
|
|
|
+ "content": {
|
|
|
+ "sys_enterpriseid":"",
|
|
|
+ "where": {
|
|
|
+ "condition": "",
|
|
|
+ "workaddress": 0//0表示人,1表示地址
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ contacts:{
|
|
|
+ contactsData:[],
|
|
|
+ total:0,
|
|
|
+ currentPage:0,
|
|
|
+ },
|
|
|
pickerOptions: {
|
|
|
disabledDate(time) {
|
|
|
return time.getTime() + 3600 * 1000 * 24 < Date.now() ;
|
|
|
},
|
|
|
},
|
|
|
drawer:false,
|
|
|
- projectDrawer:false,
|
|
|
- customerDrawer:false,
|
|
|
- contactsDrawer:false,
|
|
|
isQuotedPrice:false,
|
|
|
date:[],
|
|
|
form:{
|
|
@@ -147,7 +348,7 @@ export default {
|
|
|
},
|
|
|
}
|
|
|
},
|
|
|
- components:{project_table,customer_table,contacts_table,quoted_price_product},
|
|
|
+ components:{quoted_price_product},
|
|
|
methods:{
|
|
|
onShow(){
|
|
|
this.drawer = true
|
|
@@ -155,7 +356,7 @@ export default {
|
|
|
this.form = this.data
|
|
|
this.date[0] = this.form.begdate
|
|
|
this.date[1] = this.form.enddate
|
|
|
- if (this.form.typeData === '项目报价'){
|
|
|
+ if (this.form.quotedpricetype === '项目报价'){
|
|
|
this.isQuotedPrice = true
|
|
|
}else {
|
|
|
this.isQuotedPrice = false
|
|
@@ -213,36 +414,59 @@ export default {
|
|
|
})
|
|
|
})
|
|
|
},
|
|
|
- project(){
|
|
|
- this.projectDrawer = true
|
|
|
+ async projectList(){
|
|
|
+ const res = await this.$api.requested(this.projectParam)
|
|
|
+ console.log(res)
|
|
|
+ this.project.projectData = res.data
|
|
|
+ this.project.total = res.total
|
|
|
+ this.project.currentPage = res.pageNumber
|
|
|
},
|
|
|
- customer(){
|
|
|
- console.log("客户弹出")
|
|
|
- console.log(this.customerDrawer)
|
|
|
- this.customerDrawer = true
|
|
|
+ async selectProject(){
|
|
|
+ console.log(this.form.projectname)
|
|
|
+ this.projectParam.content.where.condition = this.form.projectname
|
|
|
+ this.projectList()
|
|
|
},
|
|
|
- contacts(){
|
|
|
- this.contactsDrawer = true
|
|
|
+ async customerList(){
|
|
|
+ if (this.form.quotedpricetype === '普通报价'){
|
|
|
+ this.customerParam.content.where.sa_projectid = 0
|
|
|
+ this.customerParam.content.where.type = 2
|
|
|
+ }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
|
|
|
},
|
|
|
- customerList(){
|
|
|
- this.customerDrawer = false
|
|
|
+ selectCustomer(){
|
|
|
+ this.customerParam.content.where.condition = this.form.enterprisename
|
|
|
+ this.customerList()
|
|
|
},
|
|
|
- projectList(){
|
|
|
- this.projectDrawer = false
|
|
|
+ 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
|
|
|
},
|
|
|
- contactsList(){
|
|
|
- this.contactsDrawer = false
|
|
|
+ selectContacts(){
|
|
|
+ this.contactsParam.content.where.condition = this.form.name
|
|
|
+ this.contactsList()
|
|
|
},
|
|
|
/*项目选择信息*/
|
|
|
projectData(val){
|
|
|
- this.projectDrawer = false
|
|
|
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 = ''
|
|
|
+ this.form.contactsname = ''
|
|
|
+ this.form.contactsphonenumber = ''
|
|
|
},
|
|
|
/*客户选择信息*/
|
|
|
customerData(val){
|
|
|
- this.customerDrawer = false
|
|
|
this.form.sys_enterpriseid = val.sys_enterpriseid
|
|
|
this.form.enterprisename = val.enterprisename
|
|
|
this.form.contactsid = ''
|
|
@@ -251,11 +475,40 @@ export default {
|
|
|
},
|
|
|
/*联系人选择信息*/
|
|
|
contactsData(val){
|
|
|
- this.contactsDrawer = false
|
|
|
this.form.contactsid = val.contactsid
|
|
|
this.form.contactsname = val.name
|
|
|
this.form.contactsphonenumber = val.phonenumber
|
|
|
},
|
|
|
+ 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} 条`);
|
|
|
+ this.projectParam.content.pageSize = val
|
|
|
+ this.customerList()
|
|
|
+ },
|
|
|
+ handleCurrentChangeCustomer(val) {
|
|
|
+ // console.log(`当前页: ${val}`);
|
|
|
+ this.projectParam.content.pageNumber = val
|
|
|
+ this.customerList()
|
|
|
+ },
|
|
|
+ handleSizeChangeContacts(val) {
|
|
|
+ // console.log(`每页 ${val} 条`);
|
|
|
+ this.projectParam.content.pageSize = val
|
|
|
+ this.contactsList()
|
|
|
+ },
|
|
|
+ handleCurrentChangeContacts(val) {
|
|
|
+ // console.log(`当前页: ${val}`);
|
|
|
+ this.projectParam.content.pageNumber = val
|
|
|
+ this.contactsList()
|
|
|
+ },
|
|
|
},
|
|
|
mounted() {
|
|
|
console.log(this.data,"报价单")
|