客户跟踪界面新增功能
This commit is contained in:
parent
1a33a7f7e2
commit
768a7959b6
14642
logs/JIAL-ss.log
14642
logs/JIAL-ss.log
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -74,12 +74,16 @@ public class BizController {
|
|||
String latestOrderDate = StringUtils.getDefaultIfNull(bizService.queryLatestOrderDate(kunnr, yearAgoFormat), "0");
|
||||
String latestQuotationDate = StringUtils.getDefaultIfNull(bizService.queryLatestQuotationDate(name), "0");
|
||||
String salespersonCount = StringUtils.getDefaultIfNull(bizService.querySalespersonCount(kunnr, yearAgoFormat), "0");
|
||||
String latestContractDate = StringUtils.getDefaultIfNull(bizService.queryLatestContractDate(kunnr, yearAgoFormat), "0");
|
||||
String latestBidDate = StringUtils.getDefaultIfNull(bizService.queryLatestBidDate(kunnr), "0");
|
||||
|
||||
Map<String, String> resultMap = new HashMap<>();
|
||||
resultMap.put("latestShippingDate", "0".equals(latestShippingDate) ? latestShippingDate : StringUtils.formatDateString(latestShippingDate, "yyyy-MM-dd"));
|
||||
resultMap.put("latestOrderDate", "0".equals(latestOrderDate) ? latestOrderDate : StringUtils.formatDateString(latestOrderDate, "yyyy-MM-dd"));
|
||||
resultMap.put("latestQuotationDate", "0".equals(latestQuotationDate) ? latestQuotationDate : StringUtils.formatDateString(latestQuotationDate, "yyyy-MM-dd"));
|
||||
resultMap.put("salespersonCount", salespersonCount );
|
||||
resultMap.put("latestContractDate", "0".equals(latestContractDate) ? latestContractDate : StringUtils.formatDateString(latestContractDate, "yyyy-MM-dd"));
|
||||
resultMap.put("latestBidDate", "0".equals(latestBidDate) ? latestBidDate : StringUtils.formatDateString(latestBidDate, "yyyy-MM-dd"));
|
||||
|
||||
log.info("开始记录日志信息: {}", "工号为:" + employeeId + "的用户查询的客户名称为:" + name);
|
||||
return R.success(resultMap);
|
||||
|
|
|
@ -23,7 +23,7 @@ public interface BizMapper {
|
|||
@Select("select * from openquery(hana2,'select max(erdat) from SAPHANADB.likp where kunnr = ''${kunnr}'' and erdat >= ''${time}''')")
|
||||
String queryLatestShippingDate(String kunnr, String time);
|
||||
|
||||
@Select("select * from openquery(hana2,'select max(erdat) from SAPHANADB.vbak where kunnr = ''${kunnr}'' and erdat >= ''${time}''')")
|
||||
@Select("select * from openquery(hana2,'select max(erdat) from SAPHANADB.vbak where kunnr = ''${kunnr}'' and erdat >= ''${time}'' and VBTYP = ''C''')")
|
||||
String queryLatestOrderDate(String kunnr, String time);
|
||||
|
||||
@Select("select * from \n" +
|
||||
|
@ -34,4 +34,14 @@ public interface BizMapper {
|
|||
@Select("select max(create_time_0) from [JNERP].[jn_erp].[dbo].[CRM_MESSAGE] where client_name_0 = '${name}'")
|
||||
String queryLatestQuotationDate(String name);
|
||||
|
||||
@Select("select * from openquery(hana2,'select max(erdat) from SAPHANADB.vbak where kunnr = ''${kunnr}'' and erdat >= ''${time}'' and VBTYP = ''G''')")
|
||||
String queryLatestContractDate(String kunnr, String time);
|
||||
|
||||
@Select("SELECT TOP 1 A.createdon\n" +
|
||||
"FROM [CRM].[JNCRM_MSCRM].[dbo].[new_bid_informationBase] A\n" +
|
||||
"LEFT JOIN [CRM].[JNCRM_MSCRM].[dbo].AccountBase B on B.AccountId = A.new_accountid\n" +
|
||||
"where A.statecode = 0 and B.Name is not null and A.new_examinetenderoffice <> 10\n" +
|
||||
"and B.new_sapcustomer_code = '${kunnr}' \n" +
|
||||
"ORDER BY A.createdon DESC")
|
||||
String queryLatestBidDate(String kunnr);
|
||||
}
|
||||
|
|
|
@ -22,4 +22,8 @@ public interface BizService {
|
|||
String querySalespersonCount(String kunnr, String time);
|
||||
|
||||
String queryLatestQuotationDate(String name);
|
||||
|
||||
String queryLatestContractDate(String kunnr, String time);
|
||||
|
||||
String queryLatestBidDate(String kunnr);
|
||||
}
|
||||
|
|
|
@ -88,4 +88,31 @@ public class BizServiceImpl implements BizService {
|
|||
return bizMapper.queryLatestQuotationDate(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @title queryLatestContractDate
|
||||
* @description 根据客户编号和时间获取最近合同日期
|
||||
* @author JIAL
|
||||
* @param: kunnr
|
||||
* @param: time
|
||||
* @updateTime 2024/1/25 10:40
|
||||
* @return: java.lang.String
|
||||
*/
|
||||
@Override
|
||||
public String queryLatestContractDate(String kunnr, String time) {
|
||||
return bizMapper.queryLatestContractDate(kunnr, time);
|
||||
}
|
||||
|
||||
/**
|
||||
* @title queryLatestBidDate
|
||||
* @description 根据客户编号查询最近投标日期
|
||||
* @author JIAL
|
||||
* @param: kunnr
|
||||
* @updateTime 2024/1/25 12:51
|
||||
* @return: java.lang.String
|
||||
*/
|
||||
@Override
|
||||
public String queryLatestBidDate(String kunnr) {
|
||||
return bizMapper.queryLatestBidDate(kunnr);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
server:
|
||||
port: 8080
|
||||
port: 3333
|
||||
spring:
|
||||
application:
|
||||
#应用的名称,可选
|
||||
name: JIALDev
|
||||
name: JNDemo
|
||||
datasource:
|
||||
druid:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
server:
|
||||
port: 8080
|
||||
port: 3333
|
||||
spring:
|
||||
application:
|
||||
#应用的名称,可选
|
||||
name: JIALDev
|
||||
name: JNDemo
|
||||
datasource:
|
||||
dynamic:
|
||||
primary: master #设置默认的数据源或者数据源组,默认值即为master
|
||||
|
|
|
@ -15,13 +15,18 @@
|
|||
|
||||
|
||||
.table-box {
|
||||
margin: 30px 20px 60px 20px;
|
||||
margin: 10px 0px 15px 0px;
|
||||
padding: 15px 0px 5px 0px;
|
||||
|
||||
background-color: #f0f0f0; /* 浅灰色背景 */
|
||||
border-radius: 10px; /* 可以根据需要调整边框圆角 */
|
||||
backdrop-filter: blur(10px); /* 调整模糊度 */
|
||||
-webkit-backdrop-filter: blur(10px); /* 兼容性处理,适用于一些WebKit浏览器 */
|
||||
}
|
||||
|
||||
.table-box .el-input {
|
||||
margin-right: 30px;
|
||||
width: 220px;
|
||||
margin-right: 80px;
|
||||
width: 320px;
|
||||
}
|
||||
|
||||
.el-table {
|
||||
|
|
|
@ -13,11 +13,13 @@
|
|||
<link rel="stylesheet" href="/static/bizquery/css/index.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container" id="index-app">
|
||||
<div class="center-container">
|
||||
<div class="container" id="index-app">
|
||||
<div class="center-container">
|
||||
<div class="table-box">
|
||||
<span th:text="${employeeId}" style="display: none" ref="employeeIdSpan"></span>
|
||||
<div>正在访问客户跟踪查询界面,登入的用户为: <span th:text="${employeeName}"></span></div>
|
||||
<el-form class="table-box">
|
||||
<h3>该页面可以根据客户名称查询该客户与公司发生业务的相关信息,方便各位判断是否可以作为新客户进行开发。</h3>
|
||||
<el-form >
|
||||
<el-form-item>
|
||||
<el-input v-model="var1" placeholder="请输入客户名称" maxlength="20" type="text" auto-complete="off" clearable>
|
||||
</el-input>
|
||||
|
@ -32,157 +34,165 @@
|
|||
<el-button type="primary" @click="queryList">点击查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
border
|
||||
row-height="30px">
|
||||
<el-table-column
|
||||
prop="kunnr"
|
||||
label="客户编号">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name1"
|
||||
label="客户名称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="handleClick(scope.row)" type="text">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<el-dialog title="详细情况" :visible.sync="dialogTableVisible">
|
||||
<template>
|
||||
<el-descriptions :column="1" :label-style="LS" border>
|
||||
<el-descriptions-item label="最近下单日期">{{detail.latestOrderDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="最近发货日期">{{detail.latestShippingDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="最近报价日期">{{detail.latestQuotationDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="目前在跟踪的业务员数量" >{{detail.salespersonCount}}</el-descriptions-item>
|
||||
<el-descriptions-item label="参保人数" >{{detail.insuredCount}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
border
|
||||
:row-style="{height: '0px'}"
|
||||
:cell-style="{padding: '2px 0px 1px 0px', 'text-align': 'left'}"
|
||||
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'left' }">
|
||||
<el-table-column
|
||||
prop="kunnr"
|
||||
label="客户编号">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name1"
|
||||
label="客户名称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="handleClick(scope.row)" type="text">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<el-dialog title="详细情况" :visible.sync="dialogTableVisible">
|
||||
<template>
|
||||
<el-descriptions :column="1" :label-style="LS" border>
|
||||
<el-descriptions-item label="最近下单日期">{{detail.latestOrderDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="最近发货日期">{{detail.latestShippingDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="最近报价日期">{{detail.latestQuotationDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="最近合同日期" >{{detail.latestContractDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="最近投标日期" >{{detail.latestBidDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="目前在跟踪的业务员数量" >{{detail.salespersonCount}}</el-descriptions-item>
|
||||
<el-descriptions-item label="参保人数" >{{detail.insuredCount}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="/plugins/vue/vue.js"></script>
|
||||
<script src="/plugins/element-ui/index.js"></script>
|
||||
<script src="/plugins/calendar/calendar.js"></script>
|
||||
<script src="/plugins/axios/axios.min.js"></script>
|
||||
<script src="/plugins/axios/request.js"></script>
|
||||
<!-- import Script -->
|
||||
<script src="/static/bizquery/js/index.js"></script>
|
||||
<script src="/plugins/vue/vue.js"></script>
|
||||
<script src="/plugins/element-ui/index.js"></script>
|
||||
<script src="/plugins/calendar/calendar.js"></script>
|
||||
<script src="/plugins/axios/axios.min.js"></script>
|
||||
<script src="/plugins/axios/request.js"></script>
|
||||
<script src="/static/bizquery/js/index.js"></script>
|
||||
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#index-app',
|
||||
data() {
|
||||
return {
|
||||
var1 : "",
|
||||
options: [
|
||||
{value: '1', label: '一年以内'},
|
||||
{value: '2', label: '两年以内'},
|
||||
{value: '3', label: '三年以内'},
|
||||
],
|
||||
timeValue: '1',
|
||||
tableData: null,
|
||||
gridData: "",
|
||||
dialogTableVisible: false,
|
||||
LS: {
|
||||
'color': '#000',
|
||||
'text-align': 'left',
|
||||
'font-weight': '600',
|
||||
'height': '40px',
|
||||
'background-color': '#d6dbe1',
|
||||
'min-width' : '50px',
|
||||
'width': '150px',
|
||||
'word-break': 'keep-all',
|
||||
'whiteSpace': 'pre-wrap'
|
||||
},
|
||||
detail: {
|
||||
latestOrderDate: '',
|
||||
latestShippingDate: '',
|
||||
salespersonCount: '',
|
||||
latestQuotationDate: '',
|
||||
insuredCount: ''
|
||||
},
|
||||
employeeId: /*[[${employeeId}]]*/ ''
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
async init () {
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#index-app',
|
||||
data() {
|
||||
return {
|
||||
var1 : "",
|
||||
options: [
|
||||
{value: '1', label: '一年以内'},
|
||||
{value: '2', label: '两年以内'},
|
||||
{value: '3', label: '三年以内'},
|
||||
],
|
||||
timeValue: '1',
|
||||
tableData: null,
|
||||
gridData: "",
|
||||
dialogTableVisible: false,
|
||||
LS: {
|
||||
'color': '#000',
|
||||
'text-align': 'left',
|
||||
'font-weight': '600',
|
||||
'height': '40px',
|
||||
'background-color': '#d6dbe1',
|
||||
'min-width' : '50px',
|
||||
'width': '150px',
|
||||
'word-break': 'keep-all',
|
||||
'whiteSpace': 'pre-wrap'
|
||||
},
|
||||
detail: {
|
||||
latestOrderDate: '',
|
||||
latestShippingDate: '',
|
||||
salespersonCount: '',
|
||||
latestQuotationDate: '',
|
||||
insuredCount: '',
|
||||
latestContractDate: '',
|
||||
latestBidDate: ''
|
||||
|
||||
},
|
||||
handleClick(row) {
|
||||
console.log(row.kunnr)
|
||||
console.log(row.name1)
|
||||
const employeeId = this.$refs.employeeIdSpan.innerText;
|
||||
const params = {
|
||||
employeeId: employeeId,
|
||||
name : row.name1,
|
||||
kunnr : row.kunnr,
|
||||
time : this.timeValue
|
||||
employeeId: /*[[${employeeId}]]*/ ''
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
async init () {
|
||||
|
||||
},
|
||||
handleClick(row) {
|
||||
console.log(row.kunnr)
|
||||
console.log(row.name1)
|
||||
const employeeId = this.$refs.employeeIdSpan.innerText;
|
||||
const params = {
|
||||
employeeId: employeeId,
|
||||
name : row.name1,
|
||||
kunnr : row.kunnr,
|
||||
time : this.timeValue
|
||||
}
|
||||
console.log(params)
|
||||
queryDetailByParams(params).then(res => {
|
||||
if (String(res.code) === '1') {
|
||||
console.log(res.data)
|
||||
this.detail.latestOrderDate = res.data.latestOrderDate !== '0' ? res.data.latestOrderDate : '无数据';
|
||||
this.detail.salespersonCount = res.data.salespersonCount !== '0' ? res.data.salespersonCount : '无数据';
|
||||
this.detail.latestQuotationDate = res.data.latestQuotationDate !== '0' ? res.data.latestQuotationDate : '无数据';
|
||||
this.detail.latestShippingDate = res.data.latestShippingDate !== '0' ? res.data.latestShippingDate : '无数据';
|
||||
this.detail.latestContractDate = res.data.latestContractDate !== '0' ? res.data.latestContractDate : '无数据';
|
||||
this.detail.latestBidDate = res.data.latestBidDate !== '0' ? res.data.latestBidDate : '无数据';
|
||||
}
|
||||
console.log(params)
|
||||
queryDetailByParams(params).then(res => {
|
||||
}).catch(err => {
|
||||
this.$message.error('请求出错了:' + err)
|
||||
})
|
||||
queryInsuredCountByName(params).then(res => {
|
||||
if (String(res.code) === '1') {
|
||||
this.detail.insuredCount = res.data.insuredCount !== '' ? res.data.insuredCount : '无数据';
|
||||
}
|
||||
}).catch(err => {
|
||||
this.$message.error('请求出错了:' + err)
|
||||
})
|
||||
this.dialogTableVisible = true
|
||||
},
|
||||
|
||||
queryList() {
|
||||
console.log("开始调用查询")
|
||||
const name = this.var1
|
||||
console.log("名称+" + name)
|
||||
const params = {
|
||||
name : name
|
||||
}
|
||||
console.log(params)
|
||||
|
||||
if(this.var1 !== "") {
|
||||
queryListByName(params).then(res => {
|
||||
if (String(res.code) === '1') {
|
||||
console.log(res.data)
|
||||
this.detail.latestOrderDate = res.data.latestOrderDate !== '0' ? res.data.latestOrderDate : '无数据';
|
||||
this.detail.salespersonCount = res.data.salespersonCount !== '0' ? res.data.salespersonCount : '无数据';
|
||||
this.detail.latestQuotationDate = res.data.latestQuotationDate !== '0' ? res.data.latestQuotationDate : '无数据';
|
||||
this.detail.latestShippingDate = res.data.latestShippingDate !== '0' ? res.data.latestShippingDate : '无数据';
|
||||
|
||||
this.tableData = res.data || []
|
||||
}
|
||||
}).catch(err => {
|
||||
this.$message.error('请求出错了:' + err)
|
||||
})
|
||||
queryInsuredCountByName(params).then(res => {
|
||||
if (String(res.code) === '1') {
|
||||
this.detail.insuredCount = res.data.insuredCount !== '' ? res.data.insuredCount : '无数据';
|
||||
}
|
||||
}).catch(err => {
|
||||
this.$message.error('请求出错了:' + err)
|
||||
})
|
||||
this.dialogTableVisible = true
|
||||
},
|
||||
|
||||
queryList() {
|
||||
console.log("开始调用查询")
|
||||
const name = this.var1
|
||||
console.log("名称+" + name)
|
||||
const params = {
|
||||
name : name
|
||||
}
|
||||
console.log(params)
|
||||
|
||||
if(this.var1 !== "") {
|
||||
queryListByName(params).then(res => {
|
||||
if (String(res.code) === '1') {
|
||||
console.log(res.data)
|
||||
this.tableData = res.data || []
|
||||
}
|
||||
}).catch(err => {
|
||||
this.$message.error('请求出错了:' + err)
|
||||
})
|
||||
}else {
|
||||
this.$message('请输入客户名称进行查询');
|
||||
this.tableData = ""
|
||||
}
|
||||
}else {
|
||||
this.$message('请输入客户名称进行查询');
|
||||
this.tableData = ""
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
}
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -225,7 +225,6 @@
|
|||
{ kunnr1: '101', kunnr2: '102', kunnr3: '103', kunnr4: '104', kunnr5: '105', kunnr6: '106', kunnr7: '107', kunnr8: '108' },
|
||||
// Add more rows as needed
|
||||
],
|
||||
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
server:
|
||||
port: 8080
|
||||
port: 3333
|
||||
spring:
|
||||
application:
|
||||
#应用的名称,可选
|
||||
name: JIALDev
|
||||
name: JNDemo
|
||||
datasource:
|
||||
druid:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
server:
|
||||
port: 8080
|
||||
port: 3333
|
||||
spring:
|
||||
application:
|
||||
#应用的名称,可选
|
||||
name: JIALDev
|
||||
name: JNDemo
|
||||
datasource:
|
||||
dynamic:
|
||||
primary: master #设置默认的数据源或者数据源组,默认值即为master
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -15,13 +15,18 @@
|
|||
|
||||
|
||||
.table-box {
|
||||
margin: 30px 20px 60px 20px;
|
||||
margin: 10px 0px 15px 0px;
|
||||
padding: 15px 0px 5px 0px;
|
||||
|
||||
background-color: #f0f0f0; /* 浅灰色背景 */
|
||||
border-radius: 10px; /* 可以根据需要调整边框圆角 */
|
||||
backdrop-filter: blur(10px); /* 调整模糊度 */
|
||||
-webkit-backdrop-filter: blur(10px); /* 兼容性处理,适用于一些WebKit浏览器 */
|
||||
}
|
||||
|
||||
.table-box .el-input {
|
||||
margin-right: 30px;
|
||||
width: 220px;
|
||||
margin-right: 80px;
|
||||
width: 320px;
|
||||
}
|
||||
|
||||
.el-table {
|
||||
|
|
|
@ -1,23 +1,26 @@
|
|||
.container {
|
||||
display: flex;
|
||||
position: absolute;
|
||||
|
||||
width: 100vw; /* 设置页面宽度为视口宽度的100% */
|
||||
}
|
||||
|
||||
.center-container {
|
||||
text-align: center;
|
||||
margin: auto;
|
||||
width: 95%;
|
||||
padding: 35px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.el-input {
|
||||
height: 20px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.el-input__inner {
|
||||
height: 30px;
|
||||
font-family: Roboto, serif;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
/*font-family: Roboto, serif;*/
|
||||
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
}
|
||||
|
@ -33,5 +36,60 @@
|
|||
line-height: inherit;
|
||||
}
|
||||
.el-input__suffix-inner {
|
||||
display: inline-block;
|
||||
margin-top: 10px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
.el-form-item__label {
|
||||
text-align: justify;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.el-input-group{
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.el-form-item__label::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
|
||||
.el-form-item {
|
||||
margin: 0px 15px 0px 15px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
.el-row {
|
||||
|
||||
}
|
||||
|
||||
.el-col {
|
||||
height: 42px;
|
||||
}
|
||||
|
||||
.button-box .el-button {
|
||||
margin: 10px 80px 10px 0px;
|
||||
}
|
||||
|
||||
.form-box {
|
||||
background-color: #f0f0f0; /* 浅灰色背景 */
|
||||
border-radius: 10px; /* 可以根据需要调整边框圆角 */
|
||||
backdrop-filter: blur(10px); /* 调整模糊度 */
|
||||
-webkit-backdrop-filter: blur(10px); /* 兼容性处理,适用于一些WebKit浏览器 */
|
||||
}
|
||||
|
||||
.button-box {
|
||||
margin: 10px 0px 10px 0px;
|
||||
background-color: #f0f0f0; /* 浅灰色背景 */
|
||||
border-radius: 10px; /* 可以根据需要调整边框圆角 */
|
||||
backdrop-filter: blur(10px); /* 调整模糊度 */
|
||||
-webkit-backdrop-filter: blur(10px); /* 兼容性处理,适用于一些WebKit浏览器 */
|
||||
}
|
||||
|
||||
.table-box {
|
||||
|
||||
}
|
|
@ -13,11 +13,13 @@
|
|||
<link rel="stylesheet" href="/static/bizquery/css/index.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container" id="index-app">
|
||||
<div class="center-container">
|
||||
<div class="container" id="index-app">
|
||||
<div class="center-container">
|
||||
<div class="table-box">
|
||||
<span th:text="${employeeId}" style="display: none" ref="employeeIdSpan"></span>
|
||||
<div>正在访问客户跟踪查询界面,登入的用户为: <span th:text="${employeeName}"></span></div>
|
||||
<el-form class="table-box">
|
||||
<h3>该页面可以根据客户名称查询该客户与公司发生业务的相关信息,方便各位判断是否可以作为新客户进行开发。</h3>
|
||||
<el-form >
|
||||
<el-form-item>
|
||||
<el-input v-model="var1" placeholder="请输入客户名称" maxlength="20" type="text" auto-complete="off" clearable>
|
||||
</el-input>
|
||||
|
@ -32,157 +34,165 @@
|
|||
<el-button type="primary" @click="queryList">点击查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
border
|
||||
row-height="30px">
|
||||
<el-table-column
|
||||
prop="kunnr"
|
||||
label="客户编号">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name1"
|
||||
label="客户名称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="handleClick(scope.row)" type="text">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<el-dialog title="详细情况" :visible.sync="dialogTableVisible">
|
||||
<template>
|
||||
<el-descriptions :column="1" :label-style="LS" border>
|
||||
<el-descriptions-item label="最近下单日期">{{detail.latestOrderDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="最近发货日期">{{detail.latestShippingDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="最近报价日期">{{detail.latestQuotationDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="目前在跟踪的业务员数量" >{{detail.salespersonCount}}</el-descriptions-item>
|
||||
<el-descriptions-item label="参保人数" >{{detail.insuredCount}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
border
|
||||
:row-style="{height: '0px'}"
|
||||
:cell-style="{padding: '2px 0px 1px 0px', 'text-align': 'left'}"
|
||||
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'left' }">
|
||||
<el-table-column
|
||||
prop="kunnr"
|
||||
label="客户编号">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name1"
|
||||
label="客户名称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="handleClick(scope.row)" type="text">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<el-dialog title="详细情况" :visible.sync="dialogTableVisible">
|
||||
<template>
|
||||
<el-descriptions :column="1" :label-style="LS" border>
|
||||
<el-descriptions-item label="最近下单日期">{{detail.latestOrderDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="最近发货日期">{{detail.latestShippingDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="最近报价日期">{{detail.latestQuotationDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="最近合同日期" >{{detail.latestContractDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="最近投标日期" >{{detail.latestBidDate}}</el-descriptions-item>
|
||||
<el-descriptions-item label="目前在跟踪的业务员数量" >{{detail.salespersonCount}}</el-descriptions-item>
|
||||
<el-descriptions-item label="参保人数" >{{detail.insuredCount}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="/plugins/vue/vue.js"></script>
|
||||
<script src="/plugins/element-ui/index.js"></script>
|
||||
<script src="/plugins/calendar/calendar.js"></script>
|
||||
<script src="/plugins/axios/axios.min.js"></script>
|
||||
<script src="/plugins/axios/request.js"></script>
|
||||
<!-- import Script -->
|
||||
<script src="/static/bizquery/js/index.js"></script>
|
||||
<script src="/plugins/vue/vue.js"></script>
|
||||
<script src="/plugins/element-ui/index.js"></script>
|
||||
<script src="/plugins/calendar/calendar.js"></script>
|
||||
<script src="/plugins/axios/axios.min.js"></script>
|
||||
<script src="/plugins/axios/request.js"></script>
|
||||
<script src="/static/bizquery/js/index.js"></script>
|
||||
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#index-app',
|
||||
data() {
|
||||
return {
|
||||
var1 : "",
|
||||
options: [
|
||||
{value: '1', label: '一年以内'},
|
||||
{value: '2', label: '两年以内'},
|
||||
{value: '3', label: '三年以内'},
|
||||
],
|
||||
timeValue: '1',
|
||||
tableData: null,
|
||||
gridData: "",
|
||||
dialogTableVisible: false,
|
||||
LS: {
|
||||
'color': '#000',
|
||||
'text-align': 'left',
|
||||
'font-weight': '600',
|
||||
'height': '40px',
|
||||
'background-color': '#d6dbe1',
|
||||
'min-width' : '50px',
|
||||
'width': '150px',
|
||||
'word-break': 'keep-all',
|
||||
'whiteSpace': 'pre-wrap'
|
||||
},
|
||||
detail: {
|
||||
latestOrderDate: '',
|
||||
latestShippingDate: '',
|
||||
salespersonCount: '',
|
||||
latestQuotationDate: '',
|
||||
insuredCount: ''
|
||||
},
|
||||
employeeId: /*[[${employeeId}]]*/ ''
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
async init () {
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#index-app',
|
||||
data() {
|
||||
return {
|
||||
var1 : "",
|
||||
options: [
|
||||
{value: '1', label: '一年以内'},
|
||||
{value: '2', label: '两年以内'},
|
||||
{value: '3', label: '三年以内'},
|
||||
],
|
||||
timeValue: '1',
|
||||
tableData: null,
|
||||
gridData: "",
|
||||
dialogTableVisible: false,
|
||||
LS: {
|
||||
'color': '#000',
|
||||
'text-align': 'left',
|
||||
'font-weight': '600',
|
||||
'height': '40px',
|
||||
'background-color': '#d6dbe1',
|
||||
'min-width' : '50px',
|
||||
'width': '150px',
|
||||
'word-break': 'keep-all',
|
||||
'whiteSpace': 'pre-wrap'
|
||||
},
|
||||
detail: {
|
||||
latestOrderDate: '',
|
||||
latestShippingDate: '',
|
||||
salespersonCount: '',
|
||||
latestQuotationDate: '',
|
||||
insuredCount: '',
|
||||
latestContractDate: '',
|
||||
latestBidDate: ''
|
||||
|
||||
},
|
||||
handleClick(row) {
|
||||
console.log(row.kunnr)
|
||||
console.log(row.name1)
|
||||
const employeeId = this.$refs.employeeIdSpan.innerText;
|
||||
const params = {
|
||||
employeeId: employeeId,
|
||||
name : row.name1,
|
||||
kunnr : row.kunnr,
|
||||
time : this.timeValue
|
||||
employeeId: /*[[${employeeId}]]*/ ''
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
async init () {
|
||||
|
||||
},
|
||||
handleClick(row) {
|
||||
console.log(row.kunnr)
|
||||
console.log(row.name1)
|
||||
const employeeId = this.$refs.employeeIdSpan.innerText;
|
||||
const params = {
|
||||
employeeId: employeeId,
|
||||
name : row.name1,
|
||||
kunnr : row.kunnr,
|
||||
time : this.timeValue
|
||||
}
|
||||
console.log(params)
|
||||
queryDetailByParams(params).then(res => {
|
||||
if (String(res.code) === '1') {
|
||||
console.log(res.data)
|
||||
this.detail.latestOrderDate = res.data.latestOrderDate !== '0' ? res.data.latestOrderDate : '无数据';
|
||||
this.detail.salespersonCount = res.data.salespersonCount !== '0' ? res.data.salespersonCount : '无数据';
|
||||
this.detail.latestQuotationDate = res.data.latestQuotationDate !== '0' ? res.data.latestQuotationDate : '无数据';
|
||||
this.detail.latestShippingDate = res.data.latestShippingDate !== '0' ? res.data.latestShippingDate : '无数据';
|
||||
this.detail.latestContractDate = res.data.latestContractDate !== '0' ? res.data.latestContractDate : '无数据';
|
||||
this.detail.latestBidDate = res.data.latestBidDate !== '0' ? res.data.latestBidDate : '无数据';
|
||||
}
|
||||
console.log(params)
|
||||
queryDetailByParams(params).then(res => {
|
||||
}).catch(err => {
|
||||
this.$message.error('请求出错了:' + err)
|
||||
})
|
||||
queryInsuredCountByName(params).then(res => {
|
||||
if (String(res.code) === '1') {
|
||||
this.detail.insuredCount = res.data.insuredCount !== '' ? res.data.insuredCount : '无数据';
|
||||
}
|
||||
}).catch(err => {
|
||||
this.$message.error('请求出错了:' + err)
|
||||
})
|
||||
this.dialogTableVisible = true
|
||||
},
|
||||
|
||||
queryList() {
|
||||
console.log("开始调用查询")
|
||||
const name = this.var1
|
||||
console.log("名称+" + name)
|
||||
const params = {
|
||||
name : name
|
||||
}
|
||||
console.log(params)
|
||||
|
||||
if(this.var1 !== "") {
|
||||
queryListByName(params).then(res => {
|
||||
if (String(res.code) === '1') {
|
||||
console.log(res.data)
|
||||
this.detail.latestOrderDate = res.data.latestOrderDate !== '0' ? res.data.latestOrderDate : '无数据';
|
||||
this.detail.salespersonCount = res.data.salespersonCount !== '0' ? res.data.salespersonCount : '无数据';
|
||||
this.detail.latestQuotationDate = res.data.latestQuotationDate !== '0' ? res.data.latestQuotationDate : '无数据';
|
||||
this.detail.latestShippingDate = res.data.latestShippingDate !== '0' ? res.data.latestShippingDate : '无数据';
|
||||
|
||||
this.tableData = res.data || []
|
||||
}
|
||||
}).catch(err => {
|
||||
this.$message.error('请求出错了:' + err)
|
||||
})
|
||||
queryInsuredCountByName(params).then(res => {
|
||||
if (String(res.code) === '1') {
|
||||
this.detail.insuredCount = res.data.insuredCount !== '' ? res.data.insuredCount : '无数据';
|
||||
}
|
||||
}).catch(err => {
|
||||
this.$message.error('请求出错了:' + err)
|
||||
})
|
||||
this.dialogTableVisible = true
|
||||
},
|
||||
|
||||
queryList() {
|
||||
console.log("开始调用查询")
|
||||
const name = this.var1
|
||||
console.log("名称+" + name)
|
||||
const params = {
|
||||
name : name
|
||||
}
|
||||
console.log(params)
|
||||
|
||||
if(this.var1 !== "") {
|
||||
queryListByName(params).then(res => {
|
||||
if (String(res.code) === '1') {
|
||||
console.log(res.data)
|
||||
this.tableData = res.data || []
|
||||
}
|
||||
}).catch(err => {
|
||||
this.$message.error('请求出错了:' + err)
|
||||
})
|
||||
}else {
|
||||
this.$message('请输入客户名称进行查询');
|
||||
this.tableData = ""
|
||||
}
|
||||
}else {
|
||||
this.$message('请输入客户名称进行查询');
|
||||
this.tableData = ""
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
}
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -16,56 +16,133 @@
|
|||
<div class="container" id="index-app">
|
||||
<div class="center-container">
|
||||
<div class="form-box">
|
||||
<el-form :label-position="labelPosition" label-width="35%" :model="formLabelAlign">
|
||||
<el-form label-width="45%" :model="formLabelAlign">
|
||||
<el-row>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="名称">
|
||||
<el-input v-model="formLabelAlign.name"></el-input>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="加工费" title="蒸汽费/钢丝铠装材料及加工费">
|
||||
<el-input v-model="formLabelAlign.name" placeholder="蒸汽费/钢丝铠装材料及加工费">
|
||||
<template slot="append">%</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col >
|
||||
<el-col :span="5">
|
||||
<el-form-item label="活动区域">
|
||||
<el-input v-model="formLabelAlign.region"></el-input>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="生产财务成本" title="生产财务成本">
|
||||
<el-input v-model="formLabelAlign.region" placeholder="生产财务成本">
|
||||
<template slot="append">%</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="活动形式">
|
||||
<el-input v-model="formLabelAlign.type"></el-input>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="账期" title="账期">
|
||||
<el-input v-model="formLabelAlign.type" placeholder="账期"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="活动形式">
|
||||
<el-input v-model="formLabelAlign.type"></el-input>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="承兑" title="承兑">
|
||||
<el-input v-model="formLabelAlign.type" placeholder="承兑"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="3">
|
||||
<el-form-item >
|
||||
<el-input v-model="formLabelAlign.type"></el-input>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="公司管理成本" title="公司管理成本">
|
||||
<el-input v-model="formLabelAlign.name" placeholder="公司管理成本"></el-input>
|
||||
</el-form-item>
|
||||
</el-col >
|
||||
<el-col :span="6">
|
||||
<el-form-item label="中标服务费" title="中标服务费">
|
||||
<el-input v-model="formLabelAlign.region" placeholder="中标服务费">
|
||||
<template slot="append">%</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-form-item >
|
||||
<el-input v-model="formLabelAlign.type"></el-input>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="公司净利润" title="公司净利润">
|
||||
<el-input v-model="formLabelAlign.type" placeholder="公司净利润"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-form-item >
|
||||
<el-input v-model="formLabelAlign.type"></el-input>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="业务费">
|
||||
<el-input v-model="formLabelAlign.type" placeholder="业务费"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="省">
|
||||
<el-input :disabled="true" v-model="formLabelAlign.type" placeholder="省"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="市">
|
||||
<el-input :disabled="true" v-model="formLabelAlign.type" placeholder="市"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="区">
|
||||
<el-input :disabled="true" v-model="formLabelAlign.type" placeholder="区"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6" >
|
||||
<el-form-item label="运费">
|
||||
<el-input v-model="formLabelAlign.type" placeholder="运费"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="成本累计">
|
||||
<el-input v-model="formLabelAlign.name" placeholder="成本累计"></el-input>
|
||||
|
||||
</el-form-item>
|
||||
</el-col >
|
||||
<el-col :span="6">
|
||||
<el-form-item label="底价">
|
||||
<el-input v-model="formLabelAlign.region" placeholder="底价"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="可下浮">
|
||||
<el-input v-model="formLabelAlign.type" placeholder="可下浮"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="实际材料成本厂价比例">
|
||||
<el-input v-model="formLabelAlign.type" placeholder="实际材料成本占厂价比例"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="厂家金额">
|
||||
<el-input v-model="formLabelAlign.name" placeholder="厂家金额"></el-input>
|
||||
</el-form-item>
|
||||
</el-col >
|
||||
<el-col :span="6">
|
||||
<el-form-item label="人工费">
|
||||
<el-input v-model="formLabelAlign.region" placeholder="人工费"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="盘具">
|
||||
<el-input v-model="formLabelAlign.type" placeholder="盘具"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<el-button type="text">选择地区</el-button>
|
||||
<el-button type="text">添加物料</el-button>
|
||||
<el-button type="text">刷新界面</el-button>
|
||||
</div>
|
||||
<div class="table-box">
|
||||
<el-table
|
||||
:data="tableData"
|
||||
border
|
||||
row-height="20px"
|
||||
:header-cell-style="{background:'#eef1f6',color:'#606266'}">
|
||||
:row-style="{height: '0px'}"
|
||||
:cell-style="{padding: '2px'}"
|
||||
:header-cell-style="{ background: '#eef1f6', color: '#606266' }">
|
||||
<el-table-column
|
||||
fixed
|
||||
width="180"
|
||||
|
@ -148,7 +225,6 @@
|
|||
{ kunnr1: '101', kunnr2: '102', kunnr3: '103', kunnr4: '104', kunnr5: '105', kunnr6: '106', kunnr7: '107', kunnr8: '108' },
|
||||
// Add more rows as needed
|
||||
],
|
||||
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
@ -158,7 +234,7 @@
|
|||
|
||||
},
|
||||
mounted() {
|
||||
this.getChinaData();
|
||||
|
||||
},
|
||||
methods: {
|
||||
async init () {
|
||||
|
|
Loading…
Reference in New Issue