Compare commits
2 Commits
0369036272
...
2d9f13ea59
Author | SHA1 | Date |
---|---|---|
JIAL | 2d9f13ea59 | |
JIAL | bfefb13158 |
Binary file not shown.
After Width: | Height: | Size: 5.6 KiB |
|
@ -22,6 +22,9 @@ import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels,
|
||||||
import { Splitpanes, Pane } from 'splitpanes'
|
import { Splitpanes, Pane } from 'splitpanes'
|
||||||
import 'splitpanes/dist/splitpanes.css'
|
import 'splitpanes/dist/splitpanes.css'
|
||||||
|
|
||||||
|
import Vant from 'vant';
|
||||||
|
import 'vant/lib/index.css';
|
||||||
|
|
||||||
// 分页组件
|
// 分页组件
|
||||||
import Pagination from "@/components/Pagination";
|
import Pagination from "@/components/Pagination";
|
||||||
// 自定义表格工具组件
|
// 自定义表格工具组件
|
||||||
|
@ -66,6 +69,7 @@ Vue.component('ImagePreview', ImagePreview)
|
||||||
Vue.component('Splitpanes', Splitpanes)
|
Vue.component('Splitpanes', Splitpanes)
|
||||||
Vue.component('Pane', Pane)
|
Vue.component('Pane', Pane)
|
||||||
|
|
||||||
|
Vue.use(Vant);
|
||||||
Vue.use(directive)
|
Vue.use(directive)
|
||||||
Vue.use(plugins)
|
Vue.use(plugins)
|
||||||
Vue.use(VueMeta)
|
Vue.use(VueMeta)
|
||||||
|
|
|
@ -139,6 +139,19 @@ export const constantRoutes = [
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/customerMobile/index',
|
||||||
|
component: Layout,
|
||||||
|
hidden: true,
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: () => import('@/views/mobile/customerMobile/index'),
|
||||||
|
name: 'customerMobile',
|
||||||
|
meta: { title: '客户管理', activeMenu: '/mobile/customerMobile' }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/quoteMobile/add',
|
path: '/quoteMobile/add',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
|
@ -165,6 +178,32 @@ export const constantRoutes = [
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/customerMobile/addCustomer',
|
||||||
|
component: Layout,
|
||||||
|
hidden: true,
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: () => import('@/views/mobile/customerMobile/addCustomer'),
|
||||||
|
name: 'addCustomer',
|
||||||
|
meta: { title: '新建客户', activeMenu: '/mobile/customerMobile/addCustomer' }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/customerMobile/editCustomer',
|
||||||
|
component: Layout,
|
||||||
|
hidden: true,
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: () => import('@/views/mobile/customerMobile/addCustomer'),
|
||||||
|
name: 'editCustomer',
|
||||||
|
meta: { title: '修改客户', activeMenu: '/mobile/customerMobile/addCustomer' }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/mobile/index',
|
path: '/mobile/index',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,222 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<van-cell-group>
|
||||||
|
<van-search style="padding: 20px 12px 5px 12px" shape="round" v-model="queryParams.cusCode" clearable placeholder="客户编码" ></van-search >
|
||||||
|
<van-search style="padding: 5px 12px" shape="round" v-model="queryParams.cusName" clearable placeholder="客户名称" ></van-search >
|
||||||
|
<van-search style="padding: 5px 12px" shape="round" v-model="queryParams.cusSapCode" clearable placeholder="SAP客户编码" ></van-search >
|
||||||
|
<van-field
|
||||||
|
readonly
|
||||||
|
clickable
|
||||||
|
name="picker"
|
||||||
|
:value="cusApprovalStatusText"
|
||||||
|
label="审批状态"
|
||||||
|
placeholder="点击选择审批状态"
|
||||||
|
@click="cusApprovalStatusShowPicker = true"
|
||||||
|
/>
|
||||||
|
<van-popup v-model="cusApprovalStatusShowPicker" position="bottom">
|
||||||
|
<van-picker
|
||||||
|
show-toolbar
|
||||||
|
:columns="cusApprovalStatusColumns"
|
||||||
|
@confirm="cusApprovalStatusOnConfirm"
|
||||||
|
@cancel="cusApprovalStatusShowPicker = false"
|
||||||
|
/>
|
||||||
|
</van-popup>
|
||||||
|
<div style="margin: 16px; display: flex">
|
||||||
|
<div style="width: 50%; padding: 0px 20px"><van-button style="width: 100%" size="small" round plain type="info" native-type="submit" @click="handleQuery">搜索</van-button></div>
|
||||||
|
<div style="width: 50%; padding: 0px 20px"><van-button style="width: 100%" size="small" round plain type="primary" native-type="submit" @click="handleAdd">新增</van-button></div>
|
||||||
|
</div>
|
||||||
|
</van-cell-group>
|
||||||
|
|
||||||
|
<van-list
|
||||||
|
v-model="loading"
|
||||||
|
:finished="finished"
|
||||||
|
finished-text="没有更多了"
|
||||||
|
@load="onLoad"
|
||||||
|
>
|
||||||
|
<div v-for="(customer, index) in customerList" :key="index">
|
||||||
|
<van-swipe-cell style="margin: 10px 0px">
|
||||||
|
<van-card
|
||||||
|
class="goods-card custom-card"
|
||||||
|
@click="handleCheck(customer.cusId)"
|
||||||
|
>
|
||||||
|
<template #title>
|
||||||
|
<div style="font-size: 15px; margin-top: 10px">客户编码: {{ customer.cusCode }}</div>
|
||||||
|
</template>
|
||||||
|
<template #desc>
|
||||||
|
<div>
|
||||||
|
<div style="font-size: 15px; margin-top: 5px">客户名称: {{ customer.cusName }}</div>
|
||||||
|
<div style="font-size: 15px; margin-top: 5px">创建时间: {{ customer.createTime }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #tags>
|
||||||
|
<div style="margin-top: 5px">
|
||||||
|
<span style="font-size: 15px">提交状态: </span>
|
||||||
|
<van-tag style="margin-right: 20px" plain size="large" :type="getTagType(customer.cusApprovalStatus)">{{customer.cusApprovalStatus === '0' ? '待提交' :
|
||||||
|
(customer.cusApprovalStatus === '1' ? '审批中' :
|
||||||
|
(customer.cusApprovalStatus === '2' ? '审批通过' : '已驳回'))}}</van-tag>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</van-card>
|
||||||
|
<template #right>
|
||||||
|
<van-button square text="删除" @click="handleDelete(customer)" v-hasPermi="['customer:customer:remove']" type="danger" class="delete-button" />
|
||||||
|
</template>
|
||||||
|
</van-swipe-cell>
|
||||||
|
</div>
|
||||||
|
</van-list>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listCustomer, getCustomer, delCustomer,changCusStatus, addCustomer, updateCustomer,getReturnUpdateCustomer, commitCustomer,returnCustomer, commitSAPCustomer, checkQccCount, qccListCustomer, getIndustryCodeQcc } from "@/api/customer/customer";
|
||||||
|
import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
|
||||||
|
import { bankCodeList,getCountrys,getIndustryCode,getLanguage,getPaymentTerms,getSalesOrganization,getDistributionChannel,getSalesTerritory,getSaleOffice,getTax,getReconciliationAccount, getAccountAllocationGroup } from "@/api/common/sapRfc";// sap-rfc 函数
|
||||||
|
import {Dialog, Notify, Toast} from 'vant';
|
||||||
|
let testNum = 0
|
||||||
|
export default {
|
||||||
|
name: "index",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 8,
|
||||||
|
cusCode: null,
|
||||||
|
cusName: null,
|
||||||
|
cusSapCode: null,
|
||||||
|
cusState: null,
|
||||||
|
cusApprovalStatus: null
|
||||||
|
},
|
||||||
|
cusApprovalStatusText: '',
|
||||||
|
cusApprovalStatusColumns: [
|
||||||
|
{ text: '待提交', value: '0' },
|
||||||
|
{ text: '审批中', value: '1' },
|
||||||
|
{ text: '审批通过', value: '2' },
|
||||||
|
{ text: '已驳回', value: '3' },
|
||||||
|
],
|
||||||
|
cusApprovalStatusShowPicker: false,
|
||||||
|
total: 0,
|
||||||
|
loading: false,
|
||||||
|
customerList: [],
|
||||||
|
finished: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$store.dispatch('app/toggleSideBarHide', true);
|
||||||
|
document.querySelector('.navbar').style.display = "none";
|
||||||
|
document.querySelector('.tags-view-container').style.display = "none";
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
const roles = this.$store.state.user.roles;
|
||||||
|
if(roles && roles.indexOf('ITZX_SJZ') !== -1 ){//数据组默认查看待审核 单据
|
||||||
|
this.queryParams.cusApprovalStatus = '1';
|
||||||
|
}
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/**-------------计算审批状态的tag类型-----------**/
|
||||||
|
getTagType(status) {
|
||||||
|
switch (status) {
|
||||||
|
case '0':
|
||||||
|
return 'warning';
|
||||||
|
case '1':
|
||||||
|
return 'primary';
|
||||||
|
case '2':
|
||||||
|
return 'success';
|
||||||
|
default:
|
||||||
|
return 'danger'; // Assuming '已驳回' is the default case.
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/**-------------选择器确认按钮---------**/
|
||||||
|
cusApprovalStatusOnConfirm(columns) {
|
||||||
|
this.cusApprovalStatusText = columns.text;
|
||||||
|
this.queryParams.cusApprovalStatus = columns.value
|
||||||
|
this.cusApprovalStatusShowPicker = false;
|
||||||
|
},
|
||||||
|
/**-------------搜索按钮---------**/
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/**--------------新增按钮--------------**/
|
||||||
|
handleAdd() {
|
||||||
|
console.log("触发新增跳转函数")
|
||||||
|
this.$router.push('/customerMobile/addCustomer');
|
||||||
|
},
|
||||||
|
/**-------------查询客户管理列表---------**/
|
||||||
|
getList() {
|
||||||
|
listCustomer(this.queryParams).then(response => {
|
||||||
|
this.customerList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
if (this.customerList.length >= this.total) {
|
||||||
|
this.finished = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(customer) {
|
||||||
|
const cusIds = customer.cusId || this.ids;
|
||||||
|
Dialog.confirm({
|
||||||
|
title: '确认删除',
|
||||||
|
message: '您确认要删除这个客户吗?',
|
||||||
|
})
|
||||||
|
.then(function () {
|
||||||
|
return delCustomer(cusIds);
|
||||||
|
}) .then(() => {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
Notify({ type: 'success', message: '删除成功' })
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
// on cancel
|
||||||
|
});
|
||||||
|
// this.$modal.confirm('是否确认删除所选客户?').then(function() {
|
||||||
|
// return delCustomer(cusIds);
|
||||||
|
// }).then(() => {
|
||||||
|
// this.getList();
|
||||||
|
// this.$modal.msgSuccess("删除成功");
|
||||||
|
// }).catch(() => {});
|
||||||
|
},
|
||||||
|
/**----------懒加载函数----------**/
|
||||||
|
onLoad() {
|
||||||
|
console.log('触发了' + testNum++ + '次')
|
||||||
|
this.queryParams.pageNum++;
|
||||||
|
console.log(this.queryParams.pageNum)
|
||||||
|
listCustomer(this.queryParams).then(response => {
|
||||||
|
this.customerList = [...this.customerList, ...response.rows];
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
if (this.customerList.length >= this.total) {
|
||||||
|
this.finished = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/**------------点击跳转-----------**/
|
||||||
|
handleCheck(cusId) {
|
||||||
|
console.log("触发跳转函数")
|
||||||
|
console.log(cusId)
|
||||||
|
const info = {cusId : cusId}
|
||||||
|
this.$router.push({ path: '/customerMobile/editCustomer', query: info});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.custom-card .van-card__content .van-card__desc {
|
||||||
|
margin-top: 15px; /* 根据需要调整间距 */
|
||||||
|
font-size: 15px; /* 根据需要调整字体大小 */
|
||||||
|
}
|
||||||
|
.custom-card .van-card__content .van-card__title {
|
||||||
|
margin-top: 5px;
|
||||||
|
font-size: 15px; /* 根据需要调整字体大小 */
|
||||||
|
}
|
||||||
|
.goods-card {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.delete-button {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
|
@ -24,18 +24,18 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Section 2 -->
|
<!-- Section 2 -->
|
||||||
<!-- <div class="app-card">-->
|
<div class="app-card">
|
||||||
<!-- <h2 class="app-title">Section 2</h2>-->
|
<p class="app-title">客户</p>
|
||||||
<!-- <el-row :gutter="10">-->
|
<el-row :gutter="10">
|
||||||
<!-- <el-col :span="8" class="app-icon-container">-->
|
<el-col :span="8" class="app-icon-container">
|
||||||
<!-- <el-card shadow="always" class="app-icon-card" @click="handleClick('App10')">-->
|
<el-card shadow="always" class="app-icon-card" >
|
||||||
<!-- <div class="app-icon">-->
|
<div class="app-icon" @click="handleClick('customerMobile')">
|
||||||
<!-- <img src="https://via.placeholder.com/50" alt="App10">-->
|
<img src="@/assets/logo/103.png" alt="报价单">
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- <div class="app-name">App10</div>-->
|
<div class="app-name">客户管理</div>
|
||||||
<!-- </el-card>-->
|
</el-card>
|
||||||
<!-- </el-col>-->
|
</el-col>
|
||||||
<!-- <el-col :span="8" class="app-icon-container">-->
|
<!-- <el-col :span="8" class="app-icon-container">-->
|
||||||
<!-- <el-card shadow="always" class="app-icon-card" @click="handleClick('App11')">-->
|
<!-- <el-card shadow="always" class="app-icon-card" @click="handleClick('App11')">-->
|
||||||
<!-- <div class="app-icon">-->
|
<!-- <div class="app-icon">-->
|
||||||
|
@ -44,9 +44,9 @@
|
||||||
<!-- <div class="app-name">App11</div>-->
|
<!-- <div class="app-name">App11</div>-->
|
||||||
<!-- </el-card>-->
|
<!-- </el-card>-->
|
||||||
<!-- </el-col>-->
|
<!-- </el-col>-->
|
||||||
<!-- <!– Add more icons as needed for Section 2 –>-->
|
<!-- Add more icons as needed for Section 2 -->
|
||||||
<!-- </el-row>-->
|
</el-row>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
|
|
||||||
<!-- <!– Section 3 –>-->
|
<!-- <!– Section 3 –>-->
|
||||||
<!-- <div class="app-card">-->
|
<!-- <div class="app-card">-->
|
||||||
|
@ -114,8 +114,8 @@ export default {
|
||||||
|
|
||||||
.app-title {
|
.app-title {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
font-size: 18px;
|
font-size: 20px;
|
||||||
color: #333;
|
color: gray;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -314,11 +314,6 @@ export default {
|
||||||
this.formData.quotSalesmanCode = this.$store.state.user.name;
|
this.formData.quotSalesmanCode = this.$store.state.user.name;
|
||||||
this.formData.quotSalesmanDeptId = this.$store.state.user.deptId;
|
this.formData.quotSalesmanDeptId = this.$store.state.user.deptId;
|
||||||
this.formData.quotSalesmanDeptName = this.$store.state.user.deptName;
|
this.formData.quotSalesmanDeptName = this.$store.state.user.deptName;
|
||||||
console.log( this.formData.quotSalesmanName);
|
|
||||||
console.log( this.formData.quotSalesmanBm);
|
|
||||||
console.log( this.formData.quotSalesmanCode);
|
|
||||||
console.log( this.formData.quotSalesmanDeptId);
|
|
||||||
console.log( this.formData.quotSalesmanDeptName);
|
|
||||||
const param = this.$route.query;
|
const param = this.$route.query;
|
||||||
|
|
||||||
if (param.quotId !== undefined && param.quotId !== null) {
|
if (param.quotId !== undefined && param.quotId !== null) {
|
||||||
|
|
Loading…
Reference in New Issue