1
This commit is contained in:
parent
2fe99b7e9e
commit
950702721b
@ -86,7 +86,7 @@ public class CusFollowController extends BaseController
|
||||
/**
|
||||
* 新增客户跟进记录
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:follow:add')")
|
||||
@PreAuthorize("@ss.hasPermi('cus:main:follow')")
|
||||
@Log(title = "客户跟进记录", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody CusFollow cusFollow) {
|
||||
@ -104,7 +104,7 @@ public class CusFollowController extends BaseController
|
||||
/**
|
||||
* 修改客户跟进记录
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:follow:edit')")
|
||||
@PreAuthorize("@ss.hasPermi('cus:main:follow')")
|
||||
@Log(title = "客户跟进记录", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody CusFollow cusFollow) {
|
||||
@ -125,7 +125,7 @@ public class CusFollowController extends BaseController
|
||||
/**
|
||||
* 删除客户跟进记录
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:follow:remove')")
|
||||
@PreAuthorize("@ss.hasPermi('cus:main:follow:del')")
|
||||
@Log(title = "客户跟进记录", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids) {
|
||||
|
||||
@ -137,6 +137,7 @@ public class CusMainController extends BaseController {
|
||||
* @author PQZ
|
||||
* @date 14:29 2025/11/19
|
||||
**/
|
||||
@PreAuthorize("@ss.hasPermi('cus:main:import')")
|
||||
@Log(title = "客户信息导入", businessType = BusinessType.IMPORT)
|
||||
@PostMapping("/importCus")
|
||||
public AjaxResult importCusAndContacts(@RequestParam("file") MultipartFile file) throws IOException {
|
||||
@ -146,27 +147,9 @@ public class CusMainController extends BaseController {
|
||||
return cusImportService.importCusAndContacts(file);
|
||||
}
|
||||
|
||||
/**
|
||||
* 公海客户信息导入
|
||||
*
|
||||
* @param file {@link MultipartFile}
|
||||
* @return com.ruoyi.common.core.domain.AjaxResult
|
||||
* @author PQZ
|
||||
* @date 14:40 2025/11/24
|
||||
**/
|
||||
@Log(title = "公海客户信息导入", businessType = BusinessType.IMPORT)
|
||||
@PostMapping("/importCusSeas")
|
||||
public AjaxResult importCusSeasAndContacts(@RequestParam("file") MultipartFile file) throws IOException {
|
||||
if (file.isEmpty()) {
|
||||
return AjaxResult.error("上传文件不能为空");
|
||||
}
|
||||
return cusImportService.importCusSeasAndContacts(file);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取客户信息详细信息--编辑
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:main:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") String id) {
|
||||
return success(cusMainService.getDataById(id));
|
||||
@ -175,7 +158,6 @@ public class CusMainController extends BaseController {
|
||||
/**
|
||||
* 获取客户信息详细信息---只读面板-默认接口
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:main:query')")
|
||||
@GetMapping(value = "/viewData")
|
||||
public AjaxResult viewData(String id,Boolean seas) {
|
||||
return success(cusMainService.viewData(id,seas));
|
||||
@ -198,6 +180,7 @@ public class CusMainController extends BaseController {
|
||||
/**
|
||||
* 更新客户标签
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:main:add')")
|
||||
@PostMapping("/setLabels")
|
||||
public AjaxResult setLabels(@RequestBody MainVO cusMainVO) {
|
||||
CusMain cusMain = new CusMain();
|
||||
@ -225,6 +208,7 @@ public class CusMainController extends BaseController {
|
||||
/**
|
||||
* 更新是否星标客户
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:main:add')")
|
||||
@PostMapping("/setIfStar")
|
||||
public AjaxResult setIfStar(@RequestBody CusMain cusMain) {
|
||||
cusMainService.updateById(cusMain);
|
||||
@ -280,6 +264,7 @@ public class CusMainController extends BaseController {
|
||||
/**
|
||||
* 转入公海
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:main:move')")
|
||||
@PostMapping("/moveToSeas")
|
||||
public AjaxResult moveToSeas(@RequestBody CusMain cusMain){
|
||||
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
|
||||
@ -301,8 +286,9 @@ public class CusMainController extends BaseController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新客户管理人员信息
|
||||
* 移交客户
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:main:change')")
|
||||
@Log(title = "客户管理信息", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/updateUser")
|
||||
public AjaxResult updateUser(@RequestBody CusMain cusMain) {
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.ruoyi.cus.controller;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@ -31,6 +32,7 @@ import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.cus.domain.CusMainSeas;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 公海客户信息Controller
|
||||
@ -57,6 +59,8 @@ public class CusMainSeasController extends BaseController {
|
||||
private ICusContactsService cusContactsService;
|
||||
@Autowired
|
||||
private ICusBankService cusBankService;
|
||||
@Autowired
|
||||
private ICusImportService cusImportService;
|
||||
|
||||
/**
|
||||
* 查询公海客户信息列表
|
||||
@ -88,7 +92,6 @@ public class CusMainSeasController extends BaseController {
|
||||
/**
|
||||
* 获取公海客户信息详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:seas:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") String id)
|
||||
{
|
||||
@ -98,7 +101,6 @@ public class CusMainSeasController extends BaseController {
|
||||
/**
|
||||
* 新增公海客户信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:seas:add')")
|
||||
@Log(title = "公海客户信息", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody CusMainSeas cusMainSeas)
|
||||
@ -109,7 +111,6 @@ public class CusMainSeasController extends BaseController {
|
||||
/**
|
||||
* 修改公海客户信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:seas:edit')")
|
||||
@Log(title = "公海客户信息", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody CusMainSeas cusMainSeas)
|
||||
@ -150,6 +151,7 @@ public class CusMainSeasController extends BaseController {
|
||||
/**
|
||||
* 转入公海
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cus:seas:move')")
|
||||
@PostMapping("/moveToMain")
|
||||
public AjaxResult moveToMain(@RequestBody CusMainSeas cusMainSeas){
|
||||
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
|
||||
@ -169,4 +171,22 @@ public class CusMainSeasController extends BaseController {
|
||||
cusMainSeasService.deleteCus(cusMainSeas.getId());
|
||||
return success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 公海客户信息导入
|
||||
*
|
||||
* @param file {@link MultipartFile}
|
||||
* @return com.ruoyi.common.core.domain.AjaxResult
|
||||
* @author PQZ
|
||||
* @date 14:40 2025/11/24
|
||||
**/
|
||||
@PreAuthorize("@ss.hasPermi('cus:seas:import')")
|
||||
@Log(title = "公海客户信息导入", businessType = BusinessType.IMPORT)
|
||||
@PostMapping("/importCusSeas")
|
||||
public AjaxResult importCusSeasAndContacts(@RequestParam("file") MultipartFile file) throws IOException {
|
||||
if (file.isEmpty()) {
|
||||
return AjaxResult.error("上传文件不能为空");
|
||||
}
|
||||
return cusImportService.importCusSeasAndContacts(file);
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ public class CodeGenerator {
|
||||
/**
|
||||
* 自增序号位数(不足补0)
|
||||
*/
|
||||
private static final int SEQ_LENGTH = 3;
|
||||
private static final int SEQ_LENGTH = 4;
|
||||
|
||||
/**
|
||||
* 每日最大序号(3位最大为999)
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
</el-row>
|
||||
<el-row :gutter="10" class="mb8" v-if="!readOnly">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain size="mini" @click="newFollow" >
|
||||
<el-button v-hasPermi="['cus:main:follow']" type="primary" plain size="mini" @click="newFollow" >
|
||||
新建跟进
|
||||
</el-button>
|
||||
</el-col>
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['cus:bank:add']"
|
||||
v-hasPermi="['cus:main:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
@ -34,14 +34,14 @@
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['cus:bank:edit']"
|
||||
v-hasPermi="['cus:main:add']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['cus:bank:remove']"
|
||||
v-hasPermi="['cus:main:add']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@ -141,8 +141,7 @@ export default {
|
||||
{ required: true, message: '请输入联系人姓名', trigger: 'blur' }
|
||||
],
|
||||
email: [
|
||||
{ required: true, message: '请输入邮箱', trigger: 'blur' },
|
||||
{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change']}
|
||||
{ required: true, message: '请输入邮箱', trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@ -103,6 +103,7 @@
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-circle-check"
|
||||
v-hasPermi="['cus:main:follow']"
|
||||
@click.stop="handleComplete(scope.row,true)"
|
||||
>完成</el-button>
|
||||
<el-button
|
||||
@ -110,6 +111,7 @@
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-circle-close"
|
||||
v-hasPermi="['cus:main:follow']"
|
||||
@click.stop="handleComplete(scope.row,false)"
|
||||
>取消完成</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
@ -117,6 +119,7 @@
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
v-hasPermi="['cus:main:follow:del']"
|
||||
@click.stop="handleDelete(scope.row)"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
|
||||
@ -71,6 +71,7 @@
|
||||
icon="el-icon-upload2"
|
||||
size="mini"
|
||||
@click="handleImport"
|
||||
v-hasPermi="['cus:main:import']"
|
||||
>导入
|
||||
</el-button>
|
||||
|
||||
@ -136,7 +137,7 @@
|
||||
</el-tag>
|
||||
|
||||
<!-- 图标容器(固定尺寸,避免布局偏移) -->
|
||||
<i class="el-icon-collection-tag edit-tag-icon" @click="setCusLabel(scope.row)"></i>
|
||||
<i v-hasPermi="['cus:main:add']" class="el-icon-collection-tag edit-tag-icon" @click="setCusLabel(scope.row)"></i>
|
||||
</div>
|
||||
<div slot="content" class="tooltip-tag-list">
|
||||
<el-tag
|
||||
@ -222,13 +223,14 @@
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['cus:main:edit']"
|
||||
v-hasPermi="['cus:main:add']"
|
||||
>修改
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="handleSendEmail(scope.row)"
|
||||
v-hasPermi="['cus:main:email']"
|
||||
>发邮件
|
||||
</el-button>
|
||||
<el-dropdown @command="handleOpt">
|
||||
@ -236,11 +238,9 @@
|
||||
更多<i class="el-icon-arrow-down el-icon--right"></i>
|
||||
</span>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item :command="beforeCommand(scope.row,'newFollow')">新建跟进</el-dropdown-item>
|
||||
<el-dropdown-item :command="beforeCommand(scope.row,'changeUser')">移交客户</el-dropdown-item>
|
||||
<el-dropdown-item :command="beforeCommand(scope.row,'goSea')">转入公海</el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cus:main:remove']" :command="beforeCommand(scope.row,'del')">删除
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cus:main:follow']" :command="beforeCommand(scope.row,'newFollow')">新建跟进</el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cus:main:change']" :command="beforeCommand(scope.row,'changeUser')">移交客户</el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cus:main:move']" :command="beforeCommand(scope.row,'goSea')">转入公海</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
|
||||
@ -48,7 +48,7 @@
|
||||
>
|
||||
{{ tag.name }}
|
||||
</el-tag>
|
||||
<i class="el-icon-collection-tag dl-canclick" title="设置标签" @click="setCusLabel"></i>
|
||||
<i v-hasPermi="['cus:main:add']" class="el-icon-collection-tag dl-canclick" title="设置标签" @click="setCusLabel"></i>
|
||||
</div>
|
||||
<!-- 第三行客户信息-->
|
||||
<div class="customer-details-container">
|
||||
@ -83,24 +83,23 @@
|
||||
<!-- 右侧操作按钮 -->
|
||||
<el-col :span="6">
|
||||
<div class="operation-buttons">
|
||||
<el-button size="mini" class="btn-edit" @click="goEditCus" v-if="!readOnly">
|
||||
<el-button v-hasPermi="['cus:main:add']" size="mini" class="btn-edit" @click="goEditCus" v-if="!readOnly">
|
||||
<i class="el-icon-edit"></i> 编辑
|
||||
</el-button>
|
||||
<el-button size="mini" class="btn-email" v-if="!readOnly">
|
||||
<i class="el-icon-message"></i> 写邮件
|
||||
<el-button v-hasPermi="['cus:main:email']" size="mini" class="btn-email" v-if="!readOnly">
|
||||
<i class="el-icon-message"></i> 写邮件
|
||||
</el-button>
|
||||
<el-button size="mini" class="btn-follow" @click="newFollow" v-if="!readOnly">
|
||||
<el-button v-hasPermi="['cus:main:follow']" size="mini" class="btn-follow" @click="newFollow" v-if="!readOnly">
|
||||
<i class="el-icon-plus"></i> 新建跟进
|
||||
</el-button>
|
||||
<el-dropdown class="more-dropdown" @command="handleCommand">
|
||||
<el-dropdown class="more-dropdown" @command="handleCommand" v-hasPermi="['cus:main:move','cus:seas:move','cus:main:change']">
|
||||
<el-button type="text" size="mini" class="btn-more">
|
||||
更多操作 <i class="el-icon-arrow-down el-icon--mini"></i>
|
||||
</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item command="goSea" v-if="!readOnly">转入公海</el-dropdown-item>
|
||||
<el-dropdown-item command="goMain" v-if="readOnly">移出公海</el-dropdown-item>
|
||||
<el-dropdown-item command="move" v-if="!readOnly">移交客户</el-dropdown-item>
|
||||
<el-dropdown-item command="del">删除</el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cus:main:move']" command="goSea" v-if="!readOnly">转入公海</el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cus:seas:move']" command="goMain" v-if="readOnly">移出公海</el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cus:main:change']" command="move" v-if="!readOnly">移交客户</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
@ -150,7 +149,7 @@
|
||||
class="contact-search"
|
||||
/>
|
||||
</div>
|
||||
<div class="contact-add" @click="newContanct" v-if="!readOnly">
|
||||
<div v-hasPermi="['cus:main:add']" class="contact-add" @click="newContanct" v-if="!readOnly">
|
||||
<i class="el-icon-plus"/>
|
||||
</div>
|
||||
</div>
|
||||
@ -170,7 +169,7 @@
|
||||
<i class="el-icon-copy-document icon-color" @click="$copyText(item.name)"/>
|
||||
</div>
|
||||
<!-- 操作按钮-->
|
||||
<div class="contact-opt" v-if="!readOnly">
|
||||
<div class="contact-opt" v-hasPermi="['cus:main:add']" v-if="!readOnly">
|
||||
<i class="el-icon-edit-outline cursor-pointer" @click="editContact(item)"/>
|
||||
<!-- 删除-->
|
||||
<i class="el-icon-delete delete-icon" @click="removeContacts(item.idStr)"/>
|
||||
|
||||
@ -49,6 +49,7 @@
|
||||
icon="el-icon-upload2"
|
||||
size="mini"
|
||||
@click="handleImport"
|
||||
v-hasPermi="['cus:seas:import']"
|
||||
>导入
|
||||
</el-button>
|
||||
</el-col>
|
||||
@ -199,21 +200,15 @@
|
||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="200">
|
||||
<el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="160">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="moveToMain(scope.row)"
|
||||
v-hasPermi="['cus:seas:move']"
|
||||
>移出公海
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['cus:main:remove']"
|
||||
>删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -302,7 +297,7 @@ export default {
|
||||
// 设置上传的请求头部
|
||||
headers: { Authorization: 'Bearer ' + getToken() },
|
||||
// 上传的地址
|
||||
url: process.env.VUE_APP_BASE_API + '/cus/main/importCusSeas'
|
||||
url: process.env.VUE_APP_BASE_API + '/cus/seas/importCusSeas'
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
Loading…
Reference in New Issue
Block a user