Compare commits
4 Commits
5364df097b
...
8eb2495cea
| Author | SHA1 | Date | |
|---|---|---|---|
| 8eb2495cea | |||
| 8df05405b4 | |||
| 9dbcab4e89 | |||
| aa37f75a07 |
@@ -77,7 +77,7 @@ class Contract extends Common
|
||||
{
|
||||
$param = request()->post();
|
||||
|
||||
$FirstLeveType = db('partner_company')->where('company_type & 0x01', 1)->field('company_id as id, company_name as name')->select();
|
||||
$FirstLeveType = db('partner_company')->where('company_type & 0x01', 1)->field('company_id as id, company_name as name')->order('company_name asc')->select();
|
||||
|
||||
for ($i = 0; $i < count($FirstLeveType); $i++)
|
||||
{
|
||||
|
||||
@@ -129,4 +129,46 @@ class Customer extends Common
|
||||
return $this->sendSuccess($ret);
|
||||
}
|
||||
|
||||
// 客户检索 - 分页查询合作伙伴公司
|
||||
public function SearchPartnerCompany()
|
||||
{
|
||||
$param = request()->post();
|
||||
|
||||
$currPage = isset($param['page']) ? $param['page'] : 1;
|
||||
$pageSize = isset($param['limit']) ? $param['limit'] : 10;
|
||||
$company_name = isset($param['company_name']) ? $param['company_name'] : '';
|
||||
|
||||
// 构建查询条件
|
||||
$query = db('partner_company');
|
||||
|
||||
// 查询客户类型
|
||||
$query->whereIn('company_type', [1, 5]);
|
||||
|
||||
if (!empty($company_name)) {
|
||||
$query->where('company_name', 'like', '%' . $company_name . '%');
|
||||
}
|
||||
|
||||
// 查询列表数据
|
||||
$list = $query->page($currPage, $pageSize)
|
||||
->order('company_id desc')
|
||||
->select();
|
||||
|
||||
// 查询总记录数
|
||||
$totalQuery = db('partner_company');
|
||||
$totalQuery->whereIn('company_type', [1, 5]);
|
||||
|
||||
if (!empty($company_name)) {
|
||||
$totalQuery->where('company_name', 'like', '%' . $company_name . '%');
|
||||
}
|
||||
|
||||
$total = $totalQuery->count();
|
||||
|
||||
$result = [
|
||||
'list' => $list,
|
||||
'total' => $total
|
||||
];
|
||||
|
||||
return $this->sendSuccess($result);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -237,6 +237,7 @@ class Partner extends Common
|
||||
//查找所有的签约客户公司
|
||||
$result = db('partner_company')->where('company_type & 0x01', 1)
|
||||
->field('company_id as id, company_name as name')
|
||||
->order('company_name asc')
|
||||
->select();
|
||||
|
||||
for ($i=0; $i<count($result); $i++)
|
||||
@@ -271,6 +272,7 @@ class Partner extends Common
|
||||
//查找所有的业主公司
|
||||
$OwnerList = db('partner_company')->where('company_type & 0x02', 2)
|
||||
->field('company_id as id, company_name as name')
|
||||
->order('company_name asc')
|
||||
->select();
|
||||
$ret = [];
|
||||
$item = [];
|
||||
|
||||
@@ -227,7 +227,6 @@ class Work extends Common
|
||||
->field('s.*, i.project_name, i.project_number, t.desp as issue_state_name, i.involve_manager,1 as project_types')
|
||||
->select();
|
||||
|
||||
|
||||
for ($i = 0; $i < count($ret); $i++) {
|
||||
$info = $user->GetUserInfoByLoginId($ret[$i]['issue_processor']);
|
||||
if ($info != "")
|
||||
@@ -239,6 +238,8 @@ class Work extends Common
|
||||
$ret[$i]['issue_processor_name'] = '-';
|
||||
}
|
||||
$info = $user->GetUserInfoByLoginId($ret[$i]['issue_creator']);
|
||||
|
||||
// error_log("ret: " . print_r($info, true));
|
||||
$ret[$i]['issue_creator_name'] = $info['name'];
|
||||
}
|
||||
|
||||
@@ -292,10 +293,10 @@ class Work extends Common
|
||||
if (1 == $user_info['user_role'])
|
||||
{
|
||||
$where = [];
|
||||
if($param['task_state'] != ''){
|
||||
if(isset($param['task_state']) && $param['task_state'] != ''){
|
||||
$where['s.task_state'] = $param['task_state'];
|
||||
}
|
||||
if($param['task_processor'] != ''){
|
||||
if(isset($param['task_processor']) && $param['task_processor'] != ''){
|
||||
$where['s.task_processor'] = $param['task_processor'];
|
||||
}
|
||||
$ret = db('work_task_info')->alias('s')
|
||||
@@ -317,7 +318,7 @@ class Work extends Common
|
||||
return $this->sendSuccess($ret);
|
||||
}else{
|
||||
$where = [];
|
||||
if($param['task_state'] != ''){
|
||||
if(isset($param['task_state']) && $param['task_state'] != ''){
|
||||
$where['s.task_state'] = $param['task_state'];
|
||||
}
|
||||
$ret = db('work_task_info')->alias('s')
|
||||
@@ -444,7 +445,7 @@ class Work extends Common
|
||||
if (1 == $user_info['user_role'])
|
||||
{
|
||||
$where = [];
|
||||
if($param['task_state'] != ''){
|
||||
if(isset($param['task_state']) && $param['task_state'] != ''){
|
||||
$where['s.task_state'] = $param['task_state'];
|
||||
}
|
||||
$ret = db('work_task_info')->alias('s')
|
||||
@@ -467,7 +468,7 @@ class Work extends Common
|
||||
return $this->sendSuccess($ret);
|
||||
}else{
|
||||
$where = [];
|
||||
if($param['task_state'] != ''){
|
||||
if(isset($param['task_state']) && $param['task_state'] != ''){
|
||||
$where['s.task_state'] = $param['task_state'];
|
||||
}
|
||||
$ret = db('work_task_info')->alias('s')
|
||||
@@ -571,7 +572,7 @@ class Work extends Common
|
||||
if (1 == $user_info['user_role'])
|
||||
{
|
||||
$where = [];
|
||||
if($param['task_state'] != ''){
|
||||
if(isset($param['task_state']) && $param['task_state'] != ''){
|
||||
$where['s.task_state'] = $param['task_state'];
|
||||
}
|
||||
$ret = db('work_task_info')->alias('s')
|
||||
@@ -585,7 +586,7 @@ class Work extends Common
|
||||
return $ret;
|
||||
}else{
|
||||
$where = [];
|
||||
if($param['task_state'] != ''){
|
||||
if(isset($param['task_state']) && $param['task_state'] != ''){
|
||||
$where['s.task_state'] = $param['task_state'];
|
||||
}
|
||||
$ret = db('work_task_info')->alias('s')
|
||||
@@ -823,4 +824,294 @@ class Work extends Common
|
||||
return $ret;
|
||||
}
|
||||
|
||||
//获取内部客户参与的项目 - 分页版本
|
||||
public function GetWorkInfoByLoginIdPaginated()
|
||||
{
|
||||
$param = request()->post();
|
||||
$user_id = $param['user_id'];
|
||||
$currPage = isset($param['currPage']) ? $param['currPage'] : 1;
|
||||
$pageSize = isset($param['pageSize']) ? $param['pageSize'] : 10;
|
||||
$project_name = isset($param['project_name']) ? $param['project_name'] : '';
|
||||
|
||||
$user = new User();
|
||||
$project_work = $this->GetProjectListPaginated($user_id, $currPage, $pageSize, $project_name);
|
||||
|
||||
for ($i = 0; $i < count($project_work['list']); $i++) {
|
||||
$involve_manager = $project_work['list'][$i]['involve_manager'];
|
||||
$info = $user->GetUserInfoByLoginId($involve_manager);
|
||||
if ($info && isset($info['name'])) {
|
||||
$project_work['list'][$i]['issue_creator_name'] = $info['name'];
|
||||
}
|
||||
}
|
||||
|
||||
$res['list'] = $project_work['list'];
|
||||
$res['total'] = $project_work['total'];
|
||||
return $this->sendSuccess($res);
|
||||
}
|
||||
|
||||
//获取参与的客户项目列表 - 分页版本
|
||||
public function GetProjectListPaginated($user_id, $currPage, $pageSize, $project_name = '')
|
||||
{
|
||||
//判断登录用户的角色,如果是管理员,就获取所有的项目信息
|
||||
$user_info = db('system_user')->where('id', $user_id)->find();
|
||||
|
||||
$query = db('project_info')->alias('p')
|
||||
->join('project_state s', 's.id =p.project_state', 'left')
|
||||
->where('p.project_state', '<', 10) //未关闭的项目
|
||||
->field('p.*, s.desp as project_state_name,1 as project_types');
|
||||
|
||||
// 添加项目名称模糊查询
|
||||
if (!empty($project_name)) {
|
||||
$query->where('p.project_name', 'like', '%' . $project_name . '%');
|
||||
}
|
||||
|
||||
if (1 != $user_info['user_role']) {
|
||||
$query->where(function ($query) use ($user_id) {
|
||||
$query->where('p.involve_manager', $user_id)
|
||||
->whereor('p.involve_members', 'like', $user_id . ',%')
|
||||
->whereor('p.involve_members', 'like', '%,' . $user_id . ',%')
|
||||
->whereor('p.involve_members', 'like', $user_id . '')
|
||||
->whereor('p.involve_members', 'like', '%,' . $user_id);
|
||||
});
|
||||
}
|
||||
|
||||
// 获取分页数据
|
||||
$ret = $query->page($currPage, $pageSize)->select();
|
||||
|
||||
// 获取总数
|
||||
$totalQuery = db('project_info')->alias('p')
|
||||
->join('project_state s', 's.id =p.project_state', 'left')
|
||||
->where('p.project_state', '<', 10);
|
||||
|
||||
// 添加项目名称模糊查询到总数查询
|
||||
if (!empty($project_name)) {
|
||||
$totalQuery->where('p.project_name', 'like', '%' . $project_name . '%');
|
||||
}
|
||||
|
||||
if (1 != $user_info['user_role']) {
|
||||
$totalQuery->where(function ($query) use ($user_id) {
|
||||
$query->where('p.involve_manager', $user_id)
|
||||
->whereor('p.involve_members', 'like', $user_id . ',%')
|
||||
->whereor('p.involve_members', 'like', '%,' . $user_id . ',%')
|
||||
->whereor('p.involve_members', 'like', $user_id . '')
|
||||
->whereor('p.involve_members', 'like', '%,' . $user_id);
|
||||
});
|
||||
}
|
||||
|
||||
$total = $totalQuery->count();
|
||||
|
||||
//统计每个项目与登录用户有关的任务数
|
||||
for ($i = 0; $i < count($ret); $i++) {
|
||||
$ret[$i]['issue_count'] = $this->GetProjectIssueCount($user_id, $ret[$i]['project_id']);
|
||||
$ret[$i]['task_count'] = $this->GetProjectTaskCount($user_id, $ret[$i]['project_id']);
|
||||
}
|
||||
|
||||
return [
|
||||
'list' => $ret,
|
||||
'total' => $total
|
||||
];
|
||||
}
|
||||
|
||||
//获取项目问题列表 - 分页版本
|
||||
public function GetProjectIssueListPaginated()
|
||||
{
|
||||
$param = request()->post();
|
||||
$user = new User();
|
||||
$user_id = $param['user_id'];
|
||||
$project_id = $param['project_id'];
|
||||
$issue_state = $param['issue_state'];
|
||||
$currPage = isset($param['currPage']) ? $param['currPage'] : 1;
|
||||
$pageSize = isset($param['pageSize']) ? $param['pageSize'] : 10;
|
||||
|
||||
$user_info = db('system_user')->where('id', $user_id)->find();
|
||||
|
||||
if (1 == $user_info['user_role']) {
|
||||
$where = [];
|
||||
if ($issue_state == 1) {
|
||||
$where['s.issue_state'] = array('<', 10); //未关闭
|
||||
} else if ($issue_state == 2) {
|
||||
$where['s.issue_state'] = array('>', 10);//已关闭
|
||||
}
|
||||
|
||||
// 获取分页数据
|
||||
$query = db('project_issues')->alias('s')
|
||||
->join('project_info i', 'i.project_id =s.project_id', 'left')
|
||||
->join('project_issue_state t', 't.id =s.issue_state', 'left')
|
||||
->where('s.project_id', $project_id)
|
||||
->where($where)
|
||||
->field('s.*, i.project_name, i.project_number, t.desp as issue_state_name, i.involve_manager,1 as project_types');
|
||||
|
||||
$ret = $query->page($currPage, $pageSize)->select();
|
||||
|
||||
// 获取总数
|
||||
$total = db('project_issues')->alias('s')
|
||||
->join('project_info i', 'i.project_id =s.project_id', 'left')
|
||||
->join('project_issue_state t', 't.id =s.issue_state', 'left')
|
||||
->where('s.project_id', $project_id)
|
||||
->where($where)
|
||||
->count();
|
||||
|
||||
for ($i = 0; $i < count($ret); $i++) {
|
||||
$info = $user->GetUserInfoByLoginId($ret[$i]['issue_processor']);
|
||||
if ($info != "") {
|
||||
$ret[$i]['issue_processor_name'] = $info['name'];
|
||||
} else {
|
||||
$ret[$i]['issue_processor_name'] = '-';
|
||||
}
|
||||
$info = $user->GetUserInfoByLoginId($ret[$i]['issue_creator']);
|
||||
$ret[$i]['issue_creator_name'] = $info['name'];
|
||||
}
|
||||
|
||||
$res['list'] = $ret;
|
||||
$res['total'] = $total;
|
||||
return $this->sendSuccess($res);
|
||||
} else {
|
||||
$where = [];
|
||||
if ($issue_state == 1) {
|
||||
$where['s.issue_state'] = array('<', 10); //未关闭
|
||||
} else if ($issue_state == 2) {
|
||||
$where['s.issue_state'] = array('>', 10);//已关闭
|
||||
}
|
||||
|
||||
// 获取分页数据
|
||||
$query = db('project_issues')->alias('s')
|
||||
->join('project_info i', 'i.project_id =s.project_id', 'left')
|
||||
->join('project_issue_state t', 't.id =s.issue_state', 'left')
|
||||
->where('s.project_id', $project_id)
|
||||
->where(function ($query) use ($user_id) {
|
||||
$query->where('s.issue_processor', $user_id)
|
||||
->whereor('s.issue_creator', $user_id)
|
||||
->whereor('i.involve_manager', $user_id);
|
||||
})
|
||||
->where($where)
|
||||
->field('s.*, i.project_name, i.project_number, t.desp as issue_state_name, i.involve_manager,1 as project_types');
|
||||
|
||||
$ret = $query->page($currPage, $pageSize)->select();
|
||||
|
||||
// 获取总数
|
||||
$total = db('project_issues')->alias('s')
|
||||
->join('project_info i', 'i.project_id =s.project_id', 'left')
|
||||
->join('project_issue_state t', 't.id =s.issue_state', 'left')
|
||||
->where('s.project_id', $project_id)
|
||||
->where(function ($query) use ($user_id) {
|
||||
$query->where('s.issue_processor', $user_id)
|
||||
->whereor('s.issue_creator', $user_id)
|
||||
->whereor('i.involve_manager', $user_id);
|
||||
})
|
||||
->where($where)
|
||||
->count();
|
||||
|
||||
for ($i = 0; $i < count($ret); $i++) {
|
||||
$info = $user->GetUserInfoByLoginId($ret[$i]['issue_processor']);
|
||||
if ($info != "") {
|
||||
$ret[$i]['issue_processor_name'] = $info['name'];
|
||||
} else {
|
||||
$ret[$i]['issue_processor_name'] = '-';
|
||||
}
|
||||
$info = $user->GetUserInfoByLoginId($ret[$i]['issue_creator']);
|
||||
$ret[$i]['issue_creator_name'] = $info['name'];
|
||||
}
|
||||
|
||||
$res['list'] = $ret;
|
||||
$res['total'] = $total;
|
||||
return $this->sendSuccess($res);
|
||||
}
|
||||
}
|
||||
|
||||
//获取运营Story列表 - 分页版本
|
||||
public function GetOperationStoryListPaginated()
|
||||
{
|
||||
$param = request()->post();
|
||||
$user = new User();
|
||||
$user_id = $param['user_id'];
|
||||
$currPage = isset($param['currPage']) ? $param['currPage'] : 1;
|
||||
$pageSize = isset($param['pageSize']) ? $param['pageSize'] : 10;
|
||||
|
||||
$user_info = db('system_user')->where('id', $user_id)->find();
|
||||
|
||||
if (1 == $user_info['user_role']) {
|
||||
$where = [];
|
||||
if(isset($param['story_state']) && $param['story_state'] != ''){
|
||||
$where['y.story_state'] = $param['story_state'];
|
||||
}
|
||||
|
||||
// 获取分页数据
|
||||
$query = db('work_story_info')->alias('y')
|
||||
->join('work_story_state p', 'p.id =y.story_state', 'left')
|
||||
->where('y.story_type', 2)
|
||||
->where('y.story_state', '<', 4) //未完成的Story
|
||||
->where($where)
|
||||
->field('y.*, p.desp as story_state_desp');
|
||||
|
||||
$ret = $query->page($currPage, $pageSize)->select();
|
||||
|
||||
// 获取总数
|
||||
$total = db('work_story_info')->alias('y')
|
||||
->join('work_story_state p', 'p.id =y.story_state', 'left')
|
||||
->where('y.story_type', 2)
|
||||
->where('y.story_state', '<', 4)
|
||||
->where($where)
|
||||
->count();
|
||||
|
||||
for ($i=0; $i<count($ret); $i++) {
|
||||
//根据登录账号获取Story管理员用户姓名
|
||||
$user_info = $user->GetUserInfoByLoginId($ret[$i]['story_manager']);
|
||||
$ret[$i]['story_manager_name'] = $user_info['name'];
|
||||
$ret[$i]['story_tasks'] = $this->GetOperationTaskCount($user_id,$ret[$i]['story_id']);
|
||||
}
|
||||
|
||||
$res['list'] = $ret;
|
||||
$res['total'] = $total;
|
||||
return $this->sendSuccess($res);
|
||||
} else {
|
||||
$where = [];
|
||||
if(isset($param['story_state']) && $param['story_state'] != ''){
|
||||
$where['y.story_state'] = $param['story_state'];
|
||||
}
|
||||
|
||||
// 获取分页数据
|
||||
$query = db('work_story_info')->alias('y')
|
||||
->join('work_story_state p', 'p.id =y.story_state', 'left')
|
||||
->where('y.story_type', 2)
|
||||
->where('y.story_state', '<', 4) //未完成的Story
|
||||
->where($where)
|
||||
->where(function ($query) use ($user_id) {
|
||||
$query->where('y.story_manager', $user_id)
|
||||
->whereor('y.story_member', 'like', $user_id . ',%')
|
||||
->whereor('y.story_member', 'like', '%,' . $user_id . ',%')
|
||||
->whereor('y.story_member', $user_id)
|
||||
->whereor('y.story_member', 'like', '%,' . $user_id);
|
||||
})
|
||||
->field('y.*, p.desp as story_state_desp');
|
||||
|
||||
$ret = $query->page($currPage, $pageSize)->select();
|
||||
|
||||
// 获取总数
|
||||
$total = db('work_story_info')->alias('y')
|
||||
->join('work_story_state p', 'p.id =y.story_state', 'left')
|
||||
->where('y.story_type', 2)
|
||||
->where('y.story_state', '<', 4)
|
||||
->where($where)
|
||||
->where(function ($query) use ($user_id) {
|
||||
$query->where('y.story_manager', $user_id)
|
||||
->whereor('y.story_member', 'like', $user_id . ',%')
|
||||
->whereor('y.story_member', 'like', '%,' . $user_id . ',%')
|
||||
->whereor('y.story_member', $user_id)
|
||||
->whereor('y.story_member', 'like', '%,' . $user_id);
|
||||
})
|
||||
->count();
|
||||
|
||||
for ($i=0; $i<count($ret); $i++) {
|
||||
//根据登录账号获取Story管理员用户姓名
|
||||
$user_info = $user->GetUserInfoByLoginId($ret[$i]['story_manager']);
|
||||
$ret[$i]['story_manager_name'] = $user_info['name'];
|
||||
$ret[$i]['story_tasks'] = $this->GetOperationTaskCount($user_id,$ret[$i]['story_id']);
|
||||
}
|
||||
|
||||
$res['list'] = $ret;
|
||||
$res['total'] = $total;
|
||||
return $this->sendSuccess($res);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
module.exports = {
|
||||
NODE_ENV: '"development"',
|
||||
ENV_CONFIG: '"dev"',
|
||||
BASE_WMS_API: '"http://127.0.0.1:8080/api"',
|
||||
BASE_WMS_FILE: '"http://127.0.0.1:8080/"'
|
||||
BASE_WMS_API: '"http://127.0.0.1:8011/api"',
|
||||
BASE_WMS_FILE: '"http://127.0.0.1:8011/"'
|
||||
// 47.101.147.253
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
module.exports = {
|
||||
NODE_ENV: '"production"',
|
||||
ENV_CONFIG: '"prod"',
|
||||
BASE_WMS_API: '"http://127.0.0.1:8080/api"',
|
||||
BASE_WMS_FILE: '"http://127.0.0.1:8080/"'
|
||||
BASE_WMS_API: '"http://127.0.0.1:8011/api"',
|
||||
BASE_WMS_FILE: '"http://127.0.0.1:8011/"'
|
||||
////BASE_AGV_API: '"http://192.168.3.223:55200/v1"',
|
||||
//BASE_WMS_API: '"http://169.254.71.103/api"',
|
||||
//BASE_AGV_API: '"http://127.0.0.1:55200/v1"',
|
||||
|
||||
@@ -1,76 +1,89 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export default {
|
||||
|
||||
// 获取客户信息列表
|
||||
GetCustomerList(param) {
|
||||
export function GetCustomerList(param) {
|
||||
return request({
|
||||
url: `/Customer/GetCustomerList`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
// 添加客户信息
|
||||
AddCustomerInfo(param) {
|
||||
export function AddCustomerInfo(param) {
|
||||
return request({
|
||||
url: `/Customer/AddCustomerInfo`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
GetProjectInfoList(param) {
|
||||
export function GetProjectInfoList(param) {
|
||||
return request({
|
||||
url: `/Project/GetProjectInfoList`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
AddProjectInfo(param) {
|
||||
export function AddProjectInfo(param) {
|
||||
return request({
|
||||
url: `/Project/AddProjectInfo`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
UpdateProjectInfo(param) {
|
||||
export function UpdateProjectInfo(param) {
|
||||
return request({
|
||||
url: `/Project/updateProjectInfo`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
// 添加客户联系人
|
||||
AddCustomerMemberInfo(param) {
|
||||
export function AddCustomerMemberInfo(param) {
|
||||
return request({
|
||||
url: `/Customer/AddCustomerMemberInfo`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
GetCustomerMemberList(param) {
|
||||
export function GetCustomerMemberList(param) {
|
||||
return request({
|
||||
url: `/Customer/GetCustomerMemberList`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
GetCustomerInfo(param) {
|
||||
export function GetCustomerInfo(param) {
|
||||
return request({
|
||||
url: `/Customer/GetCustomerInfo`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 客户检索 - 搜索合作伙伴公司
|
||||
export function searchPartnerCompany(param) {
|
||||
return request({
|
||||
url: `/Customer/SearchPartnerCompany`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
||||
|
||||
export default {
|
||||
GetCustomerList,
|
||||
AddCustomerInfo,
|
||||
GetProjectInfoList,
|
||||
AddProjectInfo,
|
||||
UpdateProjectInfo,
|
||||
AddCustomerMemberInfo,
|
||||
GetCustomerMemberList,
|
||||
GetCustomerInfo,
|
||||
searchPartnerCompany
|
||||
}
|
||||
|
||||
@@ -10,6 +10,15 @@ export default {
|
||||
});
|
||||
},
|
||||
|
||||
//获取项目类型列表 - 分页版本
|
||||
GetWorkInfoByLoginIdPaginated(param) {
|
||||
return request({
|
||||
url: `/work/GetWorkInfoByLoginIdPaginated`,
|
||||
method: "post",
|
||||
data: param
|
||||
});
|
||||
},
|
||||
|
||||
GetDevelopIssueList(param) {
|
||||
return request({
|
||||
url: `/work/GetDevelopIssueList`,
|
||||
@@ -26,6 +35,15 @@ export default {
|
||||
});
|
||||
},
|
||||
|
||||
//获取项目问题列表 - 分页版本
|
||||
GetProjectIssueListPaginated(param) {
|
||||
return request({
|
||||
url: `/work/GetProjectIssueListPaginated`,
|
||||
method: "post",
|
||||
data: param
|
||||
});
|
||||
},
|
||||
|
||||
GetProjectTaskList(param) {
|
||||
return request({
|
||||
url: `/work/GetProjectTaskList`,
|
||||
@@ -50,6 +68,15 @@ export default {
|
||||
});
|
||||
},
|
||||
|
||||
//获取运营Story列表 - 分页版本
|
||||
GetOperationStoryListPaginated(param) {
|
||||
return request({
|
||||
url: `/work/GetOperationStoryListPaginated`,
|
||||
method: "post",
|
||||
data: param
|
||||
});
|
||||
},
|
||||
|
||||
GetProjectDevelopProcessor(param) {
|
||||
return request({
|
||||
url: `/work/GetProjectDevelopProcessor`,
|
||||
|
||||
@@ -59,36 +59,36 @@ export const constantRouterMap = [
|
||||
{
|
||||
path: "/",
|
||||
component: Layout,
|
||||
meta: {
|
||||
title: "系统首页",
|
||||
icon: "camera"
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: "/dashboard",
|
||||
component: () => import("@/views/dashboard/index"),
|
||||
name: "系统首页",
|
||||
meta: { title: "系统首页", icon: "component", noCache: true }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: "/workbench",
|
||||
component: Layout,
|
||||
meta: {
|
||||
title: "我的工作台",
|
||||
icon: "camera"
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: "/workbench",
|
||||
path: "/dashboard",
|
||||
component: () => import("@/views/workbench/index"),
|
||||
name: "我的工作台",
|
||||
meta: { title: "我的工作台", icon: "component", noCache: true }
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
// {
|
||||
// path: "/workbench",
|
||||
// component: Layout,
|
||||
// meta: {
|
||||
// title: "我的工作台",
|
||||
// icon: "camera"
|
||||
// },
|
||||
// children: [
|
||||
// {
|
||||
// path: "/workbench",
|
||||
// component: () => import("@/views/workbench/index"),
|
||||
// name: "我的工作台",
|
||||
// meta: { title: "我的工作台", icon: "component", noCache: true }
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
]
|
||||
|
||||
//需要权限的路由表
|
||||
export const asyncRouterMap = [
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
<!-- 添加项目对话框 -->
|
||||
<el-dialog title="添加联系人" :visible.sync="dialogVisibleAddContacts" width="30%" :close-on-click-modal="false"
|
||||
append-to-body>
|
||||
append-to-body custom-class="nested-dialog">
|
||||
<el-form :model="newContacts" label-width="100px">
|
||||
<el-form-item label="联系人姓名">
|
||||
<el-input v-model="newContacts.name"></el-input>
|
||||
@@ -96,7 +96,8 @@
|
||||
</el-dialog>
|
||||
|
||||
<!-- 添加项目对话框 -->
|
||||
<el-dialog title="编辑联系人" :visible.sync="dialogVisibleUpdateContacts" width="30%" :close-on-click-modal="false">
|
||||
<el-dialog title="编辑联系人" :visible.sync="dialogVisibleUpdateContacts" width="30%" :close-on-click-modal="false"
|
||||
append-to-body custom-class="nested-dialog">
|
||||
<el-form :model="editContacts" label-width="100px">
|
||||
<el-form-item label="联系人姓名">
|
||||
<el-input v-model="editContacts.contacts_name"></el-input>
|
||||
@@ -118,7 +119,8 @@
|
||||
</el-dialog>
|
||||
|
||||
<!-- 添加合作伙伴对话框 -->
|
||||
<el-dialog title="添加公司信息" :visible.sync="dialogVisibleAddPartner" width="30%" :close-on-click-modal="false">
|
||||
<el-dialog title="添加公司信息" :visible.sync="dialogVisibleAddPartner" width="30%" :close-on-click-modal="false"
|
||||
append-to-body custom-class="nested-dialog">
|
||||
<el-form :model="newPartner" label-width="100px">
|
||||
<el-form-item label="公司名称">
|
||||
<el-input v-model="newPartner.company_name"></el-input>
|
||||
@@ -139,7 +141,8 @@
|
||||
</el-dialog>
|
||||
|
||||
<!-- 编辑合作伙伴对话框 -->
|
||||
<el-dialog title="编辑公司信息" :visible.sync="dialogVisibleUpdatePartner" width="30%" :close-on-click-modal="false">
|
||||
<el-dialog title="编辑公司信息" :visible.sync="dialogVisibleUpdatePartner" width="30%" :close-on-click-modal="false"
|
||||
append-to-body custom-class="nested-dialog">
|
||||
<el-form :model="editPartner" label-width="100px">
|
||||
<el-form-item label="公司名称">
|
||||
<el-input v-model="editPartner.company_name"></el-input>
|
||||
@@ -160,7 +163,8 @@
|
||||
</el-dialog>
|
||||
|
||||
<!-- 添加项目对话框 -->
|
||||
<el-dialog title="添加项目" :visible.sync="dialogVisibleCreateProject" width="30%" :close-on-click-modal="false">
|
||||
<el-dialog title="添加项目" :visible.sync="dialogVisibleCreateProject" width="30%" :close-on-click-modal="false"
|
||||
append-to-body custom-class="nested-dialog">
|
||||
<el-form :model="newProject" label-width="100px">
|
||||
<el-form-item label="项目名称">
|
||||
<el-input v-model="newProject.project_name"></el-input>
|
||||
@@ -188,7 +192,8 @@
|
||||
</el-dialog>
|
||||
|
||||
<!-- 编辑项目对话框 -->
|
||||
<el-dialog title="编辑项目" :visible.sync="dialogVisibleEditProject" width="30%" :close-on-click-modal="false">
|
||||
<el-dialog title="编辑项目" :visible.sync="dialogVisibleEditProject" width="30%" :close-on-click-modal="false"
|
||||
append-to-body custom-class="nested-dialog">
|
||||
<el-form :model="editProject" label-width="100px">
|
||||
<el-form-item label="项目名称">
|
||||
<el-input v-model="editProject.project_name"></el-input>
|
||||
@@ -457,3 +462,19 @@ export default {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 嵌套对话框样式 - 确保在父对话框之上显示 */
|
||||
.nested-dialog {
|
||||
z-index: 3000 !important;
|
||||
}
|
||||
|
||||
/* 全局样式调整嵌套对话框 */
|
||||
:deep(.nested-dialog) {
|
||||
z-index: 3000 !important;
|
||||
}
|
||||
|
||||
:deep(.nested-dialog .el-overlay) {
|
||||
z-index: 2999 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -5,25 +5,173 @@
|
||||
<div slot="header" class="clearfix">
|
||||
<span>客户检索</span>
|
||||
</div>
|
||||
|
||||
<!-- 搜索表单 -->
|
||||
<el-form :inline="true" :model="searchForm" class="search-form">
|
||||
<el-form-item label="公司名称">
|
||||
<el-input
|
||||
v-model="searchForm.company_name"
|
||||
placeholder="请输入公司名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleSearch"/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button :loading="loading" type="primary" @click="handleSearch">搜索</el-button>
|
||||
<el-button @click="handleReset">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<!-- 数据表格 -->
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="tableData"
|
||||
border
|
||||
style="width: 100%">
|
||||
<el-table-column prop="company_id" label="公司ID" width="80"/>
|
||||
<el-table-column prop="company_name" label="公司名称" min-width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" @click="showPartnerDetail(scope.row)">
|
||||
{{ scope.row.company_name }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="company_intro" label="公司介绍" min-width="200"/>
|
||||
<el-table-column prop="company_type" label="公司类型" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.company_type == 1" type="primary">客户</el-tag>
|
||||
<el-tag v-else type="warning">供应商/客户</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="contact_person" label="联系人" width="120"></el-table-column>-->
|
||||
<!-- <el-table-column prop="contact_phone" label="联系电话" width="140"></el-table-column>-->
|
||||
<!-- <el-table-column prop="contact_email" label="联系邮箱" min-width="180"></el-table-column>-->
|
||||
<el-table-column prop="address" label="地址" min-width="200"/>
|
||||
<el-table-column prop="create_time" label="创建时间" width="160"/>
|
||||
</el-table>
|
||||
|
||||
<!-- 分页 -->
|
||||
<div class="pagination-container">
|
||||
<el-pagination
|
||||
:current-page="pagination.page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="pagination.limit"
|
||||
:total="pagination.total"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"/>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-row>
|
||||
|
||||
<!-- 客户详情对话框 -->
|
||||
<el-dialog
|
||||
title="客户详情"
|
||||
:visible.sync="dialogVisible"
|
||||
width="80%"
|
||||
:close-on-click-modal="false"
|
||||
:modal-append-to-body="false"
|
||||
custom-class="customer-detail-dialog"
|
||||
append-to-body>
|
||||
<PartnerInfo
|
||||
:partner_id="selectedPartnerId"
|
||||
:partner_type="1"
|
||||
:service_type="0"
|
||||
:add_support="false"
|
||||
v-if="dialogVisible"/>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">关闭</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
import { searchPartnerCompany } from '@/api/customer'
|
||||
import PartnerInfo from '@/views/components/PartnerInfo'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
PartnerInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
};
|
||||
loading: false,
|
||||
searchForm: {
|
||||
company_name: ''
|
||||
},
|
||||
tableData: [],
|
||||
pagination: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
total: 0
|
||||
},
|
||||
dialogVisible: false,
|
||||
selectedPartnerId: null
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
this.getList()
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
// 获取列表数据
|
||||
getList() {
|
||||
this.loading = true
|
||||
const params = {
|
||||
page: this.pagination.page,
|
||||
limit: this.pagination.limit,
|
||||
company_name: this.searchForm.company_name
|
||||
}
|
||||
|
||||
searchPartnerCompany(params).then(response => {
|
||||
console.log('API响应:', response) // 调试用
|
||||
if (response.data.success || response.data.code === 20000) {
|
||||
this.tableData = response.data.data.list
|
||||
this.pagination.total = response.data.data.total
|
||||
} else {
|
||||
this.$message.error(response.data.message || '获取数据失败')
|
||||
}
|
||||
this.loading = false
|
||||
}).catch(error => {
|
||||
console.error('获取数据失败:', error)
|
||||
this.$message.error('获取数据失败')
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
|
||||
// 搜索
|
||||
handleSearch() {
|
||||
this.pagination.page = 1
|
||||
this.getList()
|
||||
},
|
||||
|
||||
// 重置
|
||||
handleReset() {
|
||||
this.searchForm.company_name = ''
|
||||
this.pagination.page = 1
|
||||
this.getList()
|
||||
},
|
||||
|
||||
// 每页显示条数改变
|
||||
handleSizeChange(val) {
|
||||
this.pagination.limit = val
|
||||
this.pagination.page = 1
|
||||
this.getList()
|
||||
},
|
||||
|
||||
// 当前页改变
|
||||
handleCurrentChange(val) {
|
||||
this.pagination.page = val
|
||||
this.getList()
|
||||
},
|
||||
|
||||
// 显示客户详情
|
||||
showPartnerDetail(row) {
|
||||
this.selectedPartnerId = row.company_id
|
||||
this.dialogVisible = true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -34,4 +182,31 @@ export default {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.search-form {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.pagination-container {
|
||||
margin-top: 20px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* 客户详情对话框样式 */
|
||||
.customer-detail-dialog {
|
||||
z-index: 2000 !important;
|
||||
}
|
||||
|
||||
/* 确保内部对话框有更高的层级 */
|
||||
.customer-detail-dialog .el-dialog__wrapper {
|
||||
z-index: 2001 !important;
|
||||
}
|
||||
|
||||
/* 内部对话框遮罩层调整 */
|
||||
:deep(.el-dialog__wrapper) {
|
||||
z-index: 2010 !important;
|
||||
}
|
||||
|
||||
:deep(.el-overlay) {
|
||||
z-index: 2009 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -87,6 +87,21 @@
|
||||
<div slot="header" class="clearfix">
|
||||
<span>我参与的项目</span>
|
||||
</div>
|
||||
<!-- 添加搜索表单 -->
|
||||
<el-form :inline="true" size="small" style="margin-bottom: 15px;">
|
||||
<el-form-item label="项目名称">
|
||||
<el-input
|
||||
v-model="work_info_project_name"
|
||||
placeholder="请输入项目名称"
|
||||
clearable
|
||||
style="width: 200px;"
|
||||
@keyup.enter.native="handleProjectSearch"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleProjectSearch">搜索</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="work_info_list" border fit highlight-current-row style="width: 100%; margin-left: 2px;">
|
||||
<!--el-table-column prop="project_number" label="项目编号" align="left">
|
||||
</el-table-column-->
|
||||
@@ -132,13 +147,35 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination v-show="work_info_total > 0" :total="work_info_total" :page.sync="work_info_pageNum" :limit.sync="work_info_pageSize"
|
||||
@pagination="get_work_info_list" />
|
||||
</el-card>
|
||||
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>我参与的工作</span>
|
||||
<WorkStoryList :project_id="project_id" />
|
||||
</div>
|
||||
<el-table :data="work_story_list" border fit highlight-current-row style="width: 100%; margin-left: 2px;">
|
||||
<el-table-column prop="story_intro" label="Story描述" align="left" width="300">
|
||||
</el-table-column>
|
||||
<el-table-column prop="story_manager_name" label="Story管理员" align="left" width="200">
|
||||
</el-table-column>
|
||||
<el-table-column prop="story_state_desp" label="Story状态" align="left" width="200">
|
||||
</el-table-column>
|
||||
<el-table-column label="计划处理时间" align="left">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.create_time }}~{{ scope.row.plan_close_time }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Task信息" align="left">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.story_tasks }}
|
||||
<el-button class="el-icon-view" @click="showWorkTask(scope.row.story_id)" type="text"></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination v-show="work_story_total > 0" :total="work_story_total" :page.sync="work_story_pageNum" :limit.sync="work_story_pageSize"
|
||||
@pagination="get_work_story_list" />
|
||||
</el-card>
|
||||
|
||||
<!-- 分配责任人对话框 -->
|
||||
@@ -193,6 +230,13 @@
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="工作任务列表" v-if="update_view == false" :visible.sync="dialogVisibleShowWorkTask"
|
||||
:close-on-click-modal="false" width="95%" style="position: fixed;top:-10%" append-to-body>
|
||||
<div class="custom-dialog">
|
||||
<WorkTaskList :story_id="story_id" />
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
@@ -203,6 +247,7 @@ import notice from '@/api/notice'
|
||||
import ProjectIssueList from './projectissuelist.vue'
|
||||
import ProjectTaskList from './projecttasklist.vue'
|
||||
import WorkStoryList from './workstorylist.vue'
|
||||
import WorkTaskList from './worktasklist.vue'
|
||||
import ProjectDetail from '@/views/components/ProjectDetail.vue'
|
||||
import project from '@/api/project'
|
||||
import develop from '@/api/develop'
|
||||
@@ -214,12 +259,21 @@ export default {
|
||||
ProjectIssueList,
|
||||
ProjectTaskList,
|
||||
WorkStoryList,
|
||||
WorkTaskList,
|
||||
ProjectDetail
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
work_info_list: [],
|
||||
work_info_total: 0,
|
||||
work_info_pageNum: 1,
|
||||
work_info_pageSize: 10,
|
||||
work_info_project_name: '', // 添加项目名称搜索变量
|
||||
work_story_list: [],
|
||||
work_story_total: 0,
|
||||
work_story_pageNum: 1,
|
||||
work_story_pageSize: 10,
|
||||
dialogVisibleShowProjectIssueList: false,
|
||||
dialogVisibleShowProjectTaskList: false,
|
||||
dialogVisibleUpdateProcessorType: false,
|
||||
@@ -227,6 +281,8 @@ export default {
|
||||
dialogVisibleAddMember: false,
|
||||
dialogVisibleShowLog: false,
|
||||
dialogVisibleShowProjectDetail: false,
|
||||
dialogVisibleShowWorkTask: false,
|
||||
story_id: 0,
|
||||
project_id: 0,
|
||||
update_view: false,
|
||||
issue_list: [],
|
||||
@@ -285,6 +341,7 @@ export default {
|
||||
},
|
||||
mounted() {
|
||||
this.get_work_info_list()
|
||||
this.get_work_story_list()
|
||||
this.get_issue_type_list()
|
||||
this.handleSelectChange(this.selectedIssueTypeId)
|
||||
},
|
||||
@@ -556,13 +613,41 @@ export default {
|
||||
},
|
||||
get_work_info_list() {
|
||||
var param = {
|
||||
user_id: localStorage.getItem('user_id')
|
||||
user_id: localStorage.getItem('user_id'),
|
||||
currPage: this.work_info_pageNum,
|
||||
pageSize: this.work_info_pageSize,
|
||||
project_name: this.work_info_project_name
|
||||
}
|
||||
work.GetWorkInfoByLoginId(param).then(res => {
|
||||
this.work_info_list = res.data.data
|
||||
work.GetWorkInfoByLoginIdPaginated(param).then(res => {
|
||||
this.work_info_list = res.data.data.list
|
||||
this.work_info_total = res.data.data.total
|
||||
console.log(res)
|
||||
})
|
||||
},
|
||||
get_work_story_list() {
|
||||
var param = {
|
||||
user_id: localStorage.getItem('user_id'),
|
||||
currPage: this.work_story_pageNum,
|
||||
pageSize: this.work_story_pageSize
|
||||
}
|
||||
work.GetOperationStoryListPaginated(param).then(res => {
|
||||
this.work_story_list = res.data.data.list
|
||||
this.work_story_total = res.data.data.total
|
||||
console.log(res)
|
||||
})
|
||||
},
|
||||
|
||||
handleProjectSearch() {
|
||||
this.work_info_pageNum = 1 // 重置到第一页
|
||||
this.get_work_info_list()
|
||||
},
|
||||
|
||||
showWorkTask(storyId) {
|
||||
this.story_id = storyId
|
||||
this.dialogVisibleShowWorkTask = true
|
||||
this.update_sub_component()
|
||||
},
|
||||
|
||||
showIssueList(project) {
|
||||
this.project_id = project.project_id
|
||||
//客户项目
|
||||
|
||||
Reference in New Issue
Block a user