first commit

This commit is contained in:
annnj-company
2026-04-17 18:29:53 +08:00
parent e49fa5a215
commit 130c1026c4
5615 changed files with 1639145 additions and 0 deletions

3
pgweb/.browserslistrc Normal file
View File

@@ -0,0 +1,3 @@
> 1%
last 2 versions
not ie <= 8

14
pgweb/.editorconfig Normal file
View File

@@ -0,0 +1,14 @@
# editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false

18
pgweb/.env.development Normal file
View File

@@ -0,0 +1,18 @@
NODE_ENV=development
# IP端口或域名
#VUE_APP_IP = 192.168.1.18:8955
VUE_APP_IP = gzpg3.com:8090
# 接口地址
#VUE_APP_API_URL = http://${VUE_APP_IP}/php/
VUE_APP_API_URL = http://${VUE_APP_IP}/index.php/
#websocket地址
VUE_APP_SOCKET_URL = http://${VUE_APP_IP}:2120
# 部署应用包时的基本 URL
VUE_APP_PUBLIC_PATH = /
# FTP 下载基础URL 9910 生产, 9911测试
VUE_APP_FTP_DOWNLOAD_BASE_URL = http://113.98.62.215:9910/download

14
pgweb/.env.migrate Normal file
View File

@@ -0,0 +1,14 @@
# 指定构建模式
NODE_ENV=production
# 接口地址
VUE_APP_API_URL = http://1.13.246.65:8011/public/index.php #http://120.78.206.39:7001/public/index.php/
# 部署应用包时的基本 URL
VUE_APP_PUBLIC_PATH = /
# FTP 下载基础URL 9910 生产, 9911测试
FTP_DOWNLOAD_BASE_URL = http://113.98.62.215:9910/download
# FTP_DOWNLOAD_BASE_URL = http://113.98.62.215:9911/download
#websocket地址
VUE_APP_SOCKET_URL = http://1.13.246.65:2120 #http://120.78.206.39:2120

16
pgweb/.env.production Normal file
View File

@@ -0,0 +1,16 @@
NODE_ENV=production
# IP端口或域名
VUE_APP_IP = dev3.gzpg2006.cn
# 接口地址
VUE_APP_API_URL = http://${VUE_APP_IP}/php/
#websocket地址
VUE_APP_SOCKET_URL = http://${VUE_APP_IP}:2120
# 部署应用包时的基本 URL
VUE_APP_PUBLIC_PATH = /phpadmin
# FTP 下载基础URL 9910 生产, 9911测试 转发FTP地址
VUE_APP_FTP_DOWNLOAD_BASE_URL = http://113.98.62.215:9910/download

16
pgweb/.env.test Normal file
View File

@@ -0,0 +1,16 @@
# 指定构建模式
NODE_ENV=production
# 接口地址
//VUE_APP_API_URL = http://test.cspg-api.ecspg.com/cspg2.4/public/index.php/
# 部署应用包时的基本 URL
VUE_APP_PUBLIC_PATH = /dev_c1.1.0.5/dist/
# FTP 下载基础URL 9910 生产, 9911测试
FTP_DOWNLOAD_BASE_URL = http://113.98.62.215:9910/download
# FTP_DOWNLOAD_BASE_URL = http://113.98.62.215:9911/download
#websocket地址
//VUE_APP_SOCKET_URL = http://47.115.14.163:2120

17
pgweb/.env.uat Normal file
View File

@@ -0,0 +1,17 @@
# 指定构建模式
NODE_ENV=production
# 接口地址
VUE_APP_API_URL = http://uat.cspg-api.ecspg.com/cspg2.4/public/index.php/
# 部署应用包时的基本 URL
VUE_APP_PUBLIC_PATH = /dev_c1.1.0.5/
# FTP 下载基础URL 9910 生产, 9911测试
FTP_DOWNLOAD_BASE_URL = http://113.98.62.215:9910/download
# FTP_DOWNLOAD_BASE_URL = http://113.98.62.215:9911/download
#websocket地址
#VUE_APP_SOCKET_URL = http://120.78.206.39:2120
VUE_APP_SOCKET_URL = http://47.115.14.163:2120

21
pgweb/.eslintrc.js Normal file
View File

@@ -0,0 +1,21 @@
module.exports = {
root: true,
env: {
node: true
},
extends: ['plugin:vue/essential'],
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
camelcase: 'off',
'vue/no-parsing-error': [
2,
{
'x-invalid-end-tag': false
}
]
},
parserOptions: {
parser: 'babel-eslint'
}
}

26
pgweb/.gitignore vendored Normal file
View File

@@ -0,0 +1,26 @@
.DS_Store
/node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*
# history
.history
package.json

0
pgweb/.htaccess Normal file
View File

5
pgweb/.postcssrc.js Normal file
View File

@@ -0,0 +1,5 @@
module.exports = {
plugins: {
autoprefixer: {}
}
}

112
pgweb/README.md Normal file
View File

@@ -0,0 +1,112 @@
# 智能评估平台
## 安装依赖
```
### npm install
网络慢可以使用cnpm代替默认的 npm
npm install -g cnpm --registry=https://registry.npm.taobao.org
```
vue cli 安装
npm install -g @vue/cli
### 运行项目
### 安装加密组件
```
npm install crypto-js --save
```
npm run dev
```
### Run your tests
```
npm run test
```
### Lints and fixes files
```
npm run lint
```
### 代码规范
[JavaScript standard](https://github.com/standard/standard/blob/master/docs/RULES-zhcn.md#javascript-standard-style)
### vue cli3 常用配置
[vue cli3 常用配置](https://cli.vuejs.org/config/).
### 前端使用框架 Element UI
[element UI]([iview](https://www.eiviewui.com/)
### 文件结构
```
├── public // 打包所需静态资源
├── src //
│ ├── api // 接口请求
| └── assets // 项目静态资源
| └── images // 图片资源
│ ├── components // 全局公用组件
| | └── login-form // 登录
| | └── login-scan // 扫码登录
| | └── message // 消息
| | └── pagination // 分页
| | └── searche-form // 搜索条
| | └── upload // 文件上传
| | └── ztree // 权限配置树形控件
│ ├── config // 项目运行配置
│ ├── directive // 自定义指令
│ ├── libs // 封装工具函数
│ ├── router // 路由配置
│ ├── store // 全局 store管理
│ ├── styles // 全局样式
│ ├── views // 所有页面
| | └── components // 订单详情公用组件
| | └── communication.vue // 发起沟通
| | └── consult-info.vue // 查档信息
| | └── file-upload.vue // 文件上传
| | └── financial-info.vue // 银行账号信息
| | └── workflow-info.vue // 工作流信息
│ ├── App.vue // 入口页面
│ ├── main.js // 入口文件
├── .babelrc // babel-loader 配置
├── .eslintrc.js // eslint 配置项
├── package.json // 项目依赖和启动的配置文件
├── babel.config.js // Babel相关配置
└── vue.config.js // 项目运行打包配置
```
### 前端打包配置
修改.env.[]文件配置
### 打包生产环境
```
打包测试环境 npm run build:test
打包uat环境 npm run build:uat
打包生产环境 npm run build:prod
```
### 网络环境切换指南
1、113.98.62.215 路由器映射由x.65.2 改为 x.65.1,端口不变。
2、ngnix 端口 9902 的转发地址由 x.69 改为 x.232,端口不变。
3、业务服务器.env 文件 KEY_ENV 的值由TEST 改为 PROD。
### 构建一个新客户端和服务器
1、拉取svn代码
2、在.env.production 的修改:
2.1 http://81.71.93.226/【需要修改】/public/index.php/
2.2 VUE_APP_PUBLIC_PATH = /【需要修改】/dist/
3、服务器端
3.1 需要修改 database.php 的数据库指向。
3.2 .env 地址按需指向。
4、转发服务器
需要修改银行行方转发我司的指向目录或地址。

10
pgweb/babel.config.js Normal file
View File

@@ -0,0 +1,10 @@
module.exports = {
presets: [
'@vue/app'
],
env: {
development: {
plugins: ['dynamic-import-node']
}
}
}

0
pgweb/nginx.htaccess Normal file
View File

0
pgweb/note.txt Normal file
View File

32235
pgweb/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

11634
pgweb/pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

0
pgweb/public/.htaccess Normal file
View File

BIN
pgweb/public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

17
pgweb/public/index.html Normal file
View File

@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>智能云评估平台</title>
</head>
<body>
<noscript>
<strong>We're sorry but businessys_web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

View File

31
pgweb/src/App.vue Normal file
View File

@@ -0,0 +1,31 @@
@import './static/font/songti.ttf'; /* 导入宋体字体文件 */
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
<style lang="less">
.size {
width: 100%;
height: 100%;
overflow: hidden;
}
html,
body {
.size;
margin: 0;
margin-bottom: 16px;
padding: 0;
}
#app {
.size;
}
</style>

View File

@@ -0,0 +1,78 @@
import { get, post, _delete } from '@/libs/request'
// 测试接口
export async function testBOCAPI (params) {
const res = await post('admin/boc/testBOC', params)
return res
}
// 预评估申请接口
export async function preApply (params) {
const res = await post('admin/boc/preApply', params)
return res
}
// 预评估申请列表
export async function preApplyList (params) {
const res = await post('admin/boc/preApplyList', params)
return res
}
// 预评估结果接口
export async function preResult (params) {
const res = await post('admin/boc/preResult', params)
return res
}
// 预评估结果列表
export async function preResultList (params) {
const res = await post('admin/boc/preResultList', params)
return res
}
//写入预评估结果
export async function insertPreResult (params) {
const res = await post('admin/boc/insertPreResult', params)
return res
}
/*********************************正式评估*******************************/
// 正式评估申请接口
export async function applyOfficial (params) {
const res = await post('admin/boc/applyOfficial', params)
return res
}
// 正式评估申请列表
export async function applyOfficialList (params) {
const res = await post('admin/boc/applyOfficialList', params)
return res
}
//检查是否可以上传报告
export async function checkReportIsReady (params) {
const res = await post('admin/boc/checkReportIsReady', params)
return res
}
// 处理正式评估
export async function doOfficialResult (params) {
const res = await post('admin/boc/officialResult', params)
return res
}
// 正式评估结果接口
export async function officialResult (params) {
const res = await post('admin/boc/officialResult', params)
return res
}
// 正式评估结果列表
export async function officialResultList (params) {
const res = await post('admin/boc/officialResultList', params)
return res
}
//写入正式评估结果
export async function insertOfficialResult (params) {
const res = await post('admin/boc/insertOfficialResult', params)
return res
}

View File

@@ -0,0 +1,15 @@
import { get, post, _delete } from '@/libs/request'
// 列表接口
export async function getInquiryApplyList (params) {
const res = await post('admin/boccf/inquiryApplyList', params)
return res
}
// 是否关联接口
export async function isRelatedInquiry (params) {
const res = await post('admin/boccf/isRelatedInquiry', params)
return res
}

View File

@@ -0,0 +1,20 @@
import { get, post, _delete } from '@/libs/request'
// 列表接口
export async function getPreApplyList (params) {
const res = await post('admin/bocCommon/getPreApplyList', params)
return res
}
export async function getApplyOfficialList (params) {
const res = await post('admin/bocCommon/getApplyOfficialList', params)
return res
}
// 是否关联接口
export async function isRelatedInquiry (params) {
const res = await post('admin/bocCommon/isRelatedInquiry', params)
return res
}

View File

@@ -0,0 +1,149 @@
import { get, post, _delete } from '@/libs/request'
// 图片接口
export async function getBase64Img (params) {
const res = await post('admin/ceb/getBase64Img', params)
return res
}
// 测试接口
export async function testCEBAPI (params) {
const res = await post('admin/ceb/testCEB', params)
return res
}
// 询价申请列表
export async function requestInquiryList (params) {
const res = await post('admin/ceb/getInquiryApplyList', params)
return res
}
// 获取业务编号关联的询价申请
export async function requestInquiry (params) {
const res = await post('admin/ceb/getInquiryApply', params)
return res
}
// 返回询价结果
export async function replyInquiry (params) {
const res = await post('admin/ceb/esz004', params)
return res
}
// 返回询价结果列表
export async function replyInquiryList (params) {
const res = await post('admin/ceb/getReplyInquriyList', params)
return res
}
/************ 报告 *********************************************/
// 请求报告结果返回
export async function replyReport (params) {
const res = await post('admin/ceb/esz006', params)
return res
}
// 评估报告申请退回
export async function rejectReportApply (params) {
const res = await post('admin/ceb/rejectReportApply', params)
return res
}
// 请求业务编号关联的报告申请列表
export async function requestReportApply (params) {
const res = await post('admin/ceb/getReportApply', params)
return res
}
// 请求报告申请列表
export async function requestReportApplylist2C (params) {
const res = await post('admin/ceb/getReportApplylist2C', params)
return res
}
// 请求报告结果列表
export async function replyReportResultList (params) {
const res = await post('admin/ceb/getReportResultList', params)
return res
}
/************ 核价 *********************************************/
// 核价申请列表
export async function checkApplyList (params) {
const res = await post('admin/ceb/getCheckApplyList', params)
return res
}
// 核价回复
export async function replyCheckApply (params) {
const res = await post('admin/ceb/esz009', params)
return res
}
// 核价回复列表
export async function replyCheckApplyList (params) {
const res = await post('admin/ceb/getCheckResultList', params)
return res
}
// 催办列表
export async function getUrgeList (params) {
const res = await post('admin/ceb/getUrgeList', params)
return res
}
// 贷后重估申请列表
export async function getReevaluateApplyList (params) {
const res = await post('admin/ceb/getReevaluateApplyList', params)
return res
}
// 贷后重估结果列表
export async function getReevaluateResultList (params) {
const res = await post('admin/ceb/getReevaluateResultList', params)
return res
}
// 贷后重估回复
export async function replyReevaluate (params) {
const res = await post('admin/ceb/esz011', params)
return res
}
//贷后重估失败
export async function rejectReevation (params) {
const res = await post('admin/ceb/rejectReevation', params)
return res
}
// 判断业务编号是否已关联询价单
export async function isBusinessNoLinkInquiry (params) {
const res = await post('admin/ceb/isBusinessNoLinkInquiry', params)
return res
}
// 请求重传报告申请列表
export async function esz012ApplyList (params) {
const res = await post('admin/ceb/getEsz012ApplyList', params)
return res
}
// 获取指定业务编号的重传申请
export async function esz012Apply (params) {
const res = await post('admin/ceb/getEsz012Apply', params)
return res
}
// 请求报告结果列表
export async function esz012ReplyList (params) {
const res = await post('admin/ceb/getEsz012ResultList', params)
return res
}
// 设置请求报告为已完成
export async function setReportApplyDone (params) {
const res = await post('admin/ceb/setReportApplyDone', params)
return res
}

375
pgweb/src/api/basicData.js Normal file
View File

@@ -0,0 +1,375 @@
import { get, post, _delete } from '@/libs/request'
// 客户数据管理列表接口
export async function getStatistics (params) {
const res = await get('web/customer/statistics', params)
return res
}
// 客户数据明细接口
export async function getCustomerDetail (params) {
const res = await get('web/customer/detail', params)
return res
}
// 估价师管理列表
export async function valuerList (params) {
const res = await post('admin/ValuerSetUp/valuerList', params)
return res
}
// 新增估价师
export async function addValuer (params) {
const res = await post('admin/ValuerSetUp/save', params)
return res
}
// 编辑估价师
export async function editValuer (params) {
const res = await post('admin/valuer/editValuer', params)
return res
}
// 估价师详情
export async function getValuerInfo (params) {
const res = await post('admin/ValuerSetUp/ValuerDetails', params)
return res
}
// 客户经理列表
export async function managerList (params) {
const res = await post('admin/manage/managerList', params)
return res
}
// 银行设置列表
export async function bankList (params) {
const res = await post('admin/banksInfoManage/bankList', params)
return res
}
// 预估单-列表
export async function EstimateList (params) {
const res = await post('admin/EstimateSetUp/EstimateList', params)
return res
}
// 获取所有银行
export async function reqBankList (params) {
const res = await post('admin/Bank/reqBankList', params)
return res
}
// 获取所有分行
export async function getBranch (params) {
const res = await post('admin/Bank/getBranch', params)
return res
}
// 获取城市
export async function getBuildingCity (params) {
const res = await post('admin/Regions/getBuildingCity', params)
return res
}
// 新增银行
export async function addBank (params) {
const res = await post('admin/banksInfoManage/addBank', params)
return res
}
// 新增分行
export async function reqAddBranchBank (params) {
const res = await post('admin/banksInfoManage/reqAddBranchBank', params)
return res
}
// 新增支行
export async function reqAddSubBank (params) {
const res = await post('admin/banksInfoManage/reqAddSubBank', params)
return res
}
// 编辑支行
export async function reqUpdateSubBankInfo (params) {
const res = await post('admin/banksInfoManage/reqUpdateSubBankInfo', params)
return res
}
// 获取银行信息
export async function reqBankInfo (params) {
const res = await post('admin/banksInfoManage/reqBankInfo', params)
return res
}
// 选择支行信息
export async function getAllBranchBank (params) {
const res = await post('admin/manage/getAllBranchBank', params)
return res
}
// 新增客户经理
export async function addManager (params) {
const res = await post('admin/manage/addManager', params)
return res
}
// 新增客户经理
export async function editManager (params) {
const res = await post('admin/manage/editManager', params)
return res
}
// 分行列表
export async function branchList (params) {
const res = await post('admin/banksInfoManage/branchList', params)
return res
}
// 获取分行信息
export async function getBranchInfo (params) {
const res = await post('admin/banksInfoManage/getBranchInfo', params)
return res
}
// 获取支行列表
export async function subBranchList (params) {
const res = await post('admin/banksInfoManage/subBranchList', params)
return res
}
// 获取支行信息
export async function getSubBranchInfo (params) {
const res = await post('admin/banksInfoManage/getSubBranchInfo', params)
return res
}
// 银行账户列表
export async function getAccountManager (params) {
const res = await get('admin/AccountManager/index', params)
return res
}
// 设置银行账户状态
export async function setStatus (params) {
const res = await post('admin/AccountManager/setStatus', params)
return res
}
// 新增银行账户
export async function addBankAccount (params) {
const res = await post('admin/AccountManager/addBankAccount', params)
return res
}
// 获取银行账户信息
export async function getBankAccountInfo (params) {
const res = await post('admin/AccountManager/getBankAccountInfo', params)
return res
}
// 区域配置列表
export async function getRegionsList (params) {
const res = await post('admin/Regions/index', params)
return res
}
// 获取城区/片区/区域
export async function reqDistrict (params) {
const res = await post('admin/Regions/reqDistrict', params)
return res
}
// 新增区域配置
export async function addRegionConfig (params) {
const res = await post('admin/Regions/addRegionConfig', params)
return res
}
// 区域配置信息
export async function getRegionsInfo (params) {
const res = await post('admin/Regions/getInfo', params)
return res
}
// 预估单列表
export async function getPredictList (params) {
const res = await post('admin/banksInfoManage/reqEstimatedList', params)
return res
}
// 上传预估单
export async function uploadPredict (params) {
const res = await get('admin/banksInfoManage/uploadPredict', params)
return res
}
// 设置模板状态
export async function setTemplateStatus (params) {
const res = await post('admin/banksInfoManage/setTemplateStatus', params)
return res
}
// 产品设置列表
export async function productList (params) {
const res = await post('admin/ProductSetUp/ProductList', params)
return res
}
// 产品状态修改
export async function productModify (params) {
const res = await post('admin/ProductSetUp/ProductModify', params)
return res
}
// 报告模板列表
export async function reportTemplate (params) {
const res = await post('admin/ProductSetUp/ReportTemplateList', params)
return res
}
// 提交产品
export async function submitProduct (params) {
const res = await post('admin/ProductSetUp/save', params)
return res
}
// 获取产品详情
export async function getProductDetails (params) {
const res = await post('admin/ProductSetUp/ProductDetails', params)
return res
}
// 报告模板列表
export async function reportTemplateList (params) {
const res = await post('admin/report/reportTemplateList', params)
return res
}
// 新增报告模板
export async function addReportTemplate (params) {
const res = await post('admin/report/addReportTemplate', params)
return res
}
// 获取报告模板信息
export async function getReportTemplateInfo (params) {
const res = await post('admin/report/getReportTemplateInfo', params)
return res
}
// 预估单-提交
export async function EstimateSetUpSave (params) {
const res = await post('admin/EstimateSetUp/save', params)
return res
}
// 预估单-详情
export async function EstimateDetails (params) {
const res = await post('admin/EstimateSetUp/EstimateDetails', params)
return res
}
// 获取报告模板信息(预览)
export async function templatePreview (params) {
const res = await post('admin/Report/templatePreview', params)
return res
}
// 获取区域
export async function getSmallArea (params) {
const res = await post('admin/Regions/getSmallArea', params)
return res
}
// 对公收费配置-详情
export async function expenseDetails (params) {
const res = await post('admin/PublicExpenseSetUp/ExpenseDetails', params)
return res
}
// 对公收费配置-保存
export async function publicExpenseSetUpCheck (params) {
const res = await post('admin/PublicExpenseSetUp/check', params)
return res
}
// 模块列表
export async function moduleList (params) {
const res = await post('admin/Report/moduleList', params)
return res
}
// 模块排序
export async function updateModuleSort (params) {
const res = await post('admin/Report/updateModuleSort', params)
return res
}
// 获取模块信息
export async function getModuleInfo (params) {
const res = await post('admin/Report/getModuleInfo', params)
return res
}
// 新增模块
export async function addModule (params) {
const res = await post('admin/Report/addModule', params)
return res
}
// 设置模板状态
export async function toSetTemplateStatus (params) {
const res = await post('admin/Report/setTemplateStatus', params)
return res
}
// 获取模块列表
export async function getModuleList (params) {
const res = await post('admin/Report/getModuleList', params)
return res
}
// 新增报告模板
export async function subModule (params) {
const res = await post('admin/report/subModule', params)
return res
}
// 获取支行
export async function getBranchBybank (params) {
const res = await post('admin/Bank/getBranchBybank', params)
return res
}
// 获取简易报告模板信息
export async function getSimpleReportTemplateInfo (params) {
const res = await post('admin/report/getSimpleReportTemplateInfo', params)
return res
}
// 新增报告模板
export async function updateSimpleReportTemplate (params) {
const res = await post('admin/report/updateSimpleReportTemplate', params)
return res
}
// 简易报告预览
export async function templatePreviewSimple (params) {
const res = await post('admin/report/templatePreviewSimple', params)
return res
}
// 分公司管理 - 获取列表
export async function getBranchCompanyList (params) {
const res = await get('admin/branchComConfig/list', params)
return res
}
// 分公司管理 - 新增
export async function addBranchCompany (params) {
const res = await post('admin/branchComConfig/add', params)
return res
}
// 分公司管理 - 更新
export async function updateBranchCompany (params) {
const res = await post('admin/branchComConfig/update', params)
return res
}
// 分公司管理 - 删除
export async function deleteBranchCompany (params) {
const res = await post('admin/branchComConfig/delete', params)
return res
}

View File

@@ -0,0 +1,13 @@
import { get, post, _delete } from '@/libs/request'
// 系统参数-列表
export async function systemConfigList (params) {
const res = await post('admin/systemConfig/systemConfigList', params)
return res
}
// 系统参数值-修改
export async function systemConfigEdit (params) {
const res = await post('admin/systemConfig/systemConfigEdit', params)
return res
}

View File

@@ -0,0 +1,43 @@
import { get, post, _delete } from '@/libs/request'
// 新增/编辑税费设置提交接口
export async function TaxationSetUpAave (params) {
const res = await post('admin/TaxationSetUp/save', params)
return res
}
// 点击修改调用接口
export async function TaxationDetails (params) {
const res = await post('admin/TaxationSetUp/TaxationDetails', params)
return res
}
// 点击新增时调用接口
export async function TaxationAdd (params) {
const res = await post('admin/TaxationSetUp/TaxationAdd', params)
return res
}
// 状态修改接口
export async function TaxationModify (params) {
const res = await post('admin/TaxationSetUp/TaxationModify', params)
return res
}
// 税费设置列表
export async function TaxationList (params) {
const res = await post('admin/TaxationSetUp/TaxationList', params)
return res
}
// 城市下拉接口
export async function getCity (params) {
const res = await post('admin/Bank/getCity', params)
return res
}
// 根据银行获取产品下拉列表接口
export async function productList (params) {
const res = await post('admin/TaxationSetUp/productLiat', params)
return res
}

25
pgweb/src/api/branch.js Normal file
View File

@@ -0,0 +1,25 @@
import { get, post, _delete } from '@/libs/request'
// 报告列表
export async function getReportList (params) {
const res = await post('admin/branchReport/list', params)
return res
}
// 添加报告
export async function addReport (params) {
const res = await post('admin/branchReport/add', params)
return res
}
// 审核报告
export async function reviewReport (params) {
const res = await post('admin/branchReport/review', params)
return res
}
// 删除报告
export async function deleteReport (params) {
const res = await post('admin/branchReport/delete', params)
return res
}

View File

@@ -0,0 +1,212 @@
import { get, post } from '@/libs/request'
// 询价-列表
export async function reqQuotList (params) {
const res = await post('admin/Bussiness/index', params)
return res
}
// 询价-正常调价
export async function reqNormalAdjustApprisePrice (params) {
const res = await post('admin/Bussiness/reqNormalAdjustApprisePrice', params)
return res
}
// 询价-上传房产证信息
export async function reqPropertCertInfo (params) {
const res = await post('admin/Bussiness/reqPropertCertInfo', params)
return res
}
// 询价-撤单
export async function cancel (params) {
const res = await post('admin/Bussiness/cancel', params)
return res
}
// 询价-发起查勘
// export async function askSurvey (params) {
// const res = await post('admin/inquiry-detail/ask-survey', params)
// return res
// }
// 询价-发起查勘
export async function askSurvey (params) {
const res = await post('admin/Property_cert_info/reqApplySurvey', params)
return res
}
// 询价-详情
export async function property_cert_info (params) {
const res = await post('admin/Bussiness/property_cert_info', params)
return res
}
// 询价-房产信息-详情
export async function reqPropertyInfo (params) {
const res = await post('admin/Bussiness/reqPropertyInfo', params)
return res
}
// 我的查勘-列表
export async function surveyList (params) {
const res = await get('admin/survey/index', params)
return res
}
// 我的查勘-详情
export async function reqSurveyInfo (params) {
const res = await post('admin/Survey/reqSurveyInfo', params)
return res
}
// 我的查勘-生成报告
export async function addReport (params) {
const res = await post('admin/survey/addReport', params)
return res
}
// 我的查勘-获取报告信息
export async function reqReportPropertyInfo (params) {
const res = await post('admin/survey/reqReportPropertyInfo', params)
return res
}
// 我的查勘-获取楼盘
export async function getBuildingInfo (params) {
const res = await post('admin/survey/getBuildingInfo', params)
return res
}
// 我的报告-列表
export async function reqReportList (params) {
const res = await get('admin/report/index', params)
return res
}
// 我的报告-详情
export async function reportDetail (params) {
const res = await post('admin/report/reportDetail', params)
return res
}
// 正常调价-列表
export async function reqNormalAdjustApprisePriceList (params) {
const res = await post('admin/Bussiness/reqNormalAdjustApprisePriceList', params)
return res
}
// 正常调价-详情
export async function normalModifyDetail (params) {
const res = await post('admin/Bussiness/normalModifyDetail', params)
return res
}
// 价格查询-列表
export async function priceQueryList (params) {
const res = await get('admin/priceQuery/index', params)
return res
}
// 小片区
export async function getSmallArea (params) {
const res = await post('admin/Regions/getSmallArea', params)
return res
}
// 申请生成报告
export async function createReport (params) {
const res = await post('admin/Bussiness/createReport', params)
return res
}
// 询价-线上取号
export async function getReportQRCode (params) {
const res = await post('admin/Bussiness/getReportQRCode', params)
return res
}
// 查档历史
export async function checkRecord (params) {
const res = await post('admin/CheckFile/checkRecord', params)
return res
}
// 再次查档
export async function checkAgain (params) {
const res = await post('admin/CheckFile/checkAgain', params)
return res
}
// 报告预览
export async function reqPreviewReport (params) {
const res = await post('admin/ReportManage/reqPreviewReport', params)
return res
}
// 简易询价列表
export async function simpleInquiryIndex (params) {
const res = await post('admin/simpleInquiry/index', params)
return res
}
// 提交简易询价
export async function simpleInquirySave (params) {
const res = await post('admin/simpleInquiry/save', params)
return res
}
// 简易询价-订单状态
export async function getOrderStatus (params) {
const res = await post('admin/SimpleInquiry/getOrderStatus', params)
return res
}
// 询价列表-生成报告-详情
export async function getReportDetail (params) {
const res = await post('admin/Bussiness/getReportDetail', params)
return res
}
// 申请合同号
export async function generateContractNo (params) {
const res = await post('admin/Report/generateContractNo', params)
return res
}
// 在inquiry.js中添加以下方法
/**
* 根据名称搜索物业
* @param {String} keyword - 搜索关键词
*/
export async function searchPropertyByName(params) {
const res = await post('admin/PropertyCertInfo/searchNames', params )
return res
}
/**
* 根据ID获取物业详情
* @param {Number} id - 物业ID
*/
export async function getPropertyById(params) {
const res = await post('admin/PropertyCertInfo/propertyDetail', params )
return res
}
/**
* 询价的导出
*/
export async function exportInquiryExcel(params) {
const res = await post('admin/Pending/exportInquiryExcel', params )
return res
}
/**
* 历史询价-列表
*/
export async function getOldList(params) {
const res = await post('admin/Bussiness/old_index', params )
return res
}

View File

@@ -0,0 +1,142 @@
import { post } from '@/libs/request'
// 专属录入询价页面的银行获取下拉框,只有登录用户有建行业务员角色才包含建行选项
export async function getBankForInquiry (params) {
const res = await post('admin/Bank/getBankForInquiry', params)
return res
}
// 银行获取
export async function reqBankList (params) {
const res = await post('admin/Bank/reqBankList', params)
return res
}
// 分行、支行获取
export async function getBranch (params) {
const res = await post('admin/Bank/getBranch', params)
return res
}
// 客户经理下拉列表
export async function getAccountManager (params) {
const res = await post('admin/AccountManager/getAccountManager', params)
return res
}
/**
* 根据名称搜索物业
* @param {String} keyword - 搜索关键词
*/
// 获取城区
export async function reqDistrict (params) {
const res = await post('admin/Regions/reqDistrict', params)
return res
}
// 获取城市下拉列表
export async function getBuildingCity (params) {
const res = await post('admin/Regions/getBuildingCity', params)
return res
}
// 提交询价
export async function save (params) {
const res = await post('admin/Bussiness/save', params)
return res
}
// 批量提交询价
export async function batchSave (params) {
const res = await post('admin/Bussiness/batchSave', params)
return res
}
/**
* 获取服务器枚举的客户类型方法
* @param {*} params params['enumName'] 枚举管理调用方法
* @returns
*/
export async function getEnumCustomTypeList (param) {
const res = await post('admin/EnumManager/getCustomTypeList', param)
return res
}
// 获取评估目的
export async function getProduct (params) {
const res = await post('admin/Bussiness/getProduct', params)
return res
}
// 查档
export async function consultFiles (params) {
const res = await post('admin/CheckFile/consultFiles', params)
return res
}
// 查勘信息
export async function reqReportSurveyDetail (params) {
const res = await post('admin/ReportManage/reqReportSurveyDetail', params)
return res
}
// 验证近三个月是否出过报告
export async function checkExistReport (params) {
const res = await post('admin/Bussiness/checkExistReport', params)
return res
}
// 判断物业是否在指定时间内重复询价
export async function reqIsQuotDuplicated (params) {
const res = await post('admin/Bussiness/reqIsQuotDuplicated', params)
return res
}
// 重复询价单提交
export async function reqQuotSubmitAgain (params) {
const res = await post('admin/Bussiness/reqQuotSubmitAgain', params)
return res
}
export async function getEstateListByName (params) {
const res = await post('lpDict/LpDictBase/getEstateListByName', params)
return res
}
export async function getBuildingListByLpid (params) {
const res = await post('lpDict/LpDictBase/getBuildingListByLpid', params)
return res
}
// 模糊搜索栋号名
export async function getBuildingListByBName (params) {
const res = await post('lpDict/LpDictBase/getBuildingListByBName', params)
return res
}
export async function getPropertyListByBid (params) {
const res = await post('lpDict/LpDictBase/getPropertyListByBid', params)
return res
}
export async function getEstateListByFirestLetter (params) {
const res = await post('lpDict/LpDictBase/getEstateListByFirestLetter', params)
return res
}
// 获取3个月内同一个物业的询价记录接口
export async function getThreeMonthSameEstateInquiryRecord (params) {
const res = await post('admin/Pending/getThreeMonthSameEstateInquiryRecord', params)
return res
}
// 检测业务编号是否有效
export async function checkBusinessNoIsValid (params) {
const res = await post('admin/Bussiness/checkBusinessNoIsValid', params)
return res
}

View File

@@ -0,0 +1,29 @@
import { get, post, _delete } from '@/libs/request'
// 收费管理列表接口
export async function getFeeList (params) {
const res = await post('admin/fee/feeList', params)
return res
}
// 收费管理详情基本信息
export async function getFeeBaseInfo (params) {
const res = await post('admin/fee/feeBaseList', params)
return res
}
// 收费管理详情
export async function getFeeDetail (params) {
const res = await post('admin/fee/fee_detail', params)
return res
}
// 收费提交
export async function feeEdit (params) {
const res = await post('admin/fee/feeEdit', params)
return res
}
// 批量收费提交
export async function mutilFee (params) {
const res = await post('admin/fee/mutilFee', params)
return res
}

43
pgweb/src/api/classify.js Normal file
View File

@@ -0,0 +1,43 @@
import { get, post, _delete } from '@/libs/request'
// 查询项分类列表
export async function getClassifys (params) {
const res = await get('web/classify/list', params)
return res
}
// 查询项分类删除
export async function deleteClassify (params) {
const res = await _delete('web/classify', params)
return res
}
// 查询项分类保存
export async function addClassify (params) {
const res = await post('web/classify', params)
return res
}
// 查询项列表
export async function getInterfaces (params) {
const res = await get('web/interface', params)
return res
}
// 关联查询项保存
export async function addItem (params) {
const res = await post('web/item', params)
return res
}
// 关联查询项删除
export async function deleteItem (params) {
const res = await _delete('web/item', params)
return res
}
// 关联查询项列表
export async function getItemList (params) {
const res = await get('web/item/list', params)
return res
}

378
pgweb/src/api/costManage.js Normal file
View File

@@ -0,0 +1,378 @@
import { get, post } from '@/libs/request'
// 查询待确认列表
export async function getTobeConfirm (params) {
const res = await post('admin/Charge/getTobeConfirmedList', params)
return res
}
// 待确认列表-收费详情
export async function getWaitDetail (params) {
const res = await post('admin/Charge/getWaitDetail', params)
return res
}
// 待确认列表-查看凭证
export async function getTransferVoucher (params) {
const res = await post('admin/Charge/getTransferVoucherByChargeId', params)
return res
}
// 待确认列表-确认收款
export async function updConfirmAmount (params) {
const res = await post('admin/Charge/updConfirmAmount', params)
return res
}
// 收费详情页面-查看转账凭证
export async function getTransferVoucherById (params) {
const res = await get('admin/Charge/getTransferVoucherById', params)
return res
}
// 实结单列表-退回预结单
export async function returnPreStatementStatus (params) {
const res = await post('admin/StatementManage/returnPreStatementStatus', params)
return res
}
// 实结单列表
export async function realStatementList (params) {
const res = await post('admin/StatementManage/realStatementList', params)
return res
}
// 待结单列表
export async function waitStatementList (params) {
const res = await post('admin/StatementManage/waitStatementList', params)
return res
}
// 待结单列表-发起预结单
export async function doPreStatementStatus (params) {
const res = await post('admin/StatementManage/doPreStatementStatus', params)
return res
}
// 结单列表共用收费详情接口
export async function getStatementDetail (params) {
const res = await post('admin/StatementManage/getStatementDetail', params)
return res
}
// 预结单列表-确认实结单
export async function doRealStatementStatus (params) {
const res = await post('admin/StatementManage/doRealStatementStatus', params)
return res
}
// 预结单列表-退回待结单
export async function returnWaitStatementStatus (params) {
const res = await post('admin/StatementManage/returnWaitStatementStatus', params)
return res
}
// 预结单列表
export async function preStatementList (params) {
const res = await post('admin/StatementManage/preStatementList', params)
return res
}
// 批量收费
export async function mutilFee (params) {
const res = await post('admin/fee/mutilFee', params)
return res
}
// 收费列表
export async function feeList (params) {
const res = await post('admin/fee/feeList', params)
return res
}
// 收费提交接口
export async function feeEdit (params) {
const res = await post('admin/fee/feeEdit', params)
return res
}
// 收费管理-详情页
export async function feeBaseList (params) {
const res = await post('admin/fee/feeBaseList', params)
return res
}
// 收费详情
export async function fee_detail (params) {
const res = await post('admin/fee/fee_detail', params)
return res
}
// 票据列表
export async function billList (params) {
const res = await post('admin/Bill/billList', params)
return res
}
// 票据详情
export async function billDetail (params) {
const res = await post('admin/Bill/billDetail', params)
return res
}
// 通过
export async function agree (params) {
const res = await post('admin/Bill/agree', params)
return res
}
// 驳回
export async function back (params) {
const res = await post('admin/Bill/back', params)
return res
}
// 获取报告编号
export async function getReporeNo (params) {
const res = await post('admin/Bill/getReporeNo', params)
return res
}
// 开具发票
export async function invoicing (params) {
const res = await post('admin/Bill/invoicing', params)
return res
}
// 订单列表
export async function orderList (params) {
const res = await post('admin/Bill/orderList', params)
return res
}
// 收费更新列表
export async function getList (params) {
const res = await post('admin/ChargeManage/getList', params)
return res
}
// 收费更新列表
export async function ChargeManageImport (params) {
const res = await post('admin/ChargeManage/import', params)
return res
}
// 业务员收费列表
export async function getSalesmanList (params) {
const res = await post('admin/ChargeManage/getSalesmanList', params)
return res
}
// 上传文件
export async function mangeImport (params) {
const res = await post('admin/ChargeManage/import', params)
return res
}
// 收费汇总列表
export async function getSummaryList (params) {
const res = await post('admin/Charge/getSummaryList', params)
return res
}
// 申请详情
export async function getRefundDetail (params) {
const res = await post('admin/Charge/getRefundDetail', params)
return res
}
// 查看详细
export async function getSummaryDetail (params) {
const res = await post('admin/Charge/getSummaryDetail', params)
return res
}
// 退费列表
export async function getRefundList (params) {
const res = await post('admin/Charge/getRefundList', params)
return res
}
// 退费审批
export async function refundApproval (params) {
const res = await post('admin/Charge/refundApproval', params)
return res
}
// 申请退费-获取信息
export async function getRefund (params) {
const res = await post('admin/Charge/getRefund', params)
return res
}
// 确认应收款获取银行下拉数据
export async function getBankAccount (params) {
const res = await post('admin/ChargeManage/getBankAccount', params)
return res
}
// 业务员收费列表-确认应收款
export async function salesmanConfirm (params) {
const res = await post('admin/ChargeManage/salesmanConfirm', params)
return res
}
// 校验报告编号
export async function checkReportNo (params) {
const res = await post('admin/Charge/checkReportNo', params)
return res
}
// 申请退报告费,校验报告编号
export async function billcheckReportNo (params) {
const res = await post('admin/Bill/checkReportNo', params)
return res
}
// 申请退费
export async function applyRefund (params) {
const res = await post('admin/Charge/applyRefund', params)
return res
}
// 获取支行
export async function getBranchBybank (params) {
const res = await post('admin/Bank/getBranchBybank', params)
return res
}
// 申请票据 - 获取详情
export async function getBill (params) {
const res = await post('admin/Bill/getBill', params)
return res
}
// 申请票据 - 获取详情
export async function addBill (params) {
const res = await post('admin/Bill/addBill', params)
return res
}
// 领取票据
export async function billDraw (params) {
const res = await post('admin/Bill/draw', params)
return res
}
// 获取城区
/*export async function reqDistrict (params) {
const res = await post('admin/Regions/reqDistrict', params)
return res
}*/
// 获取城市
export async function getBuildingCity (params) {
const res = await post('admin/Regions/getBuildingCity', params)
return res
}
// 费用申请管理
export async function getBusinessRefundList (params) {
const res = await post('admin/charge/getBusinessRefundList', params)
return res
}
export async function businessBillList (params) {
const res = await post('admin/Bill/businessBillList', params)
return res
}
// 财务管理-退费列表
export async function getFinanceRefundList (params) {
const res = await post('admin/Charge/getFinanceRefundList', params)
return res
}
// 收费更新列表-录入应收
export async function updReceivable (params) {
const res = await post('admin/ChargeManage/updReceivable', params)
return res
}
// 业务员收费-未收费
export async function getSalesmanListNotCollected (params) {
const res = await post('admin/ChargeManage/getSalesmanListNotCollected', params)
return res
}
// 业务员收费-未收费-导出
export async function salesExportNotCollected (params) {
const res = await post('admin/ChargeManage/salesExportNotCollected', params)
return res
}
// 业务员收费-已收费
export async function getSalesmanListCollected (params) {
const res = await post('admin/ChargeManage/getSalesmanListCollected', params)
return res
}
// 业务员收费-已收费-导出
export async function salesExportCollected (params) {
const res = await post('admin/ChargeManage/salesExportCollected', params)
return res
}
// 月结收费-未收费
export async function getMonthListNotCollected (params) {
const res = await post('admin/ChargeManage/getMonthListNotCollected', params)
return res
}
// 月结收费-已收费
export async function getMonthListCollected (params) {
const res = await post('admin/ChargeManage/getMonthListCollected', params)
return res
}
// 收费汇总列表-搜索条件-获取部门
export async function getBusinessDeparts (params) {
const res = await post('admin/charge/getBusinessDeparts', params)
return res
}
// 月结收费-未收费-导入
export async function monthUpdImport (params) {
const res = await post('admin/ChargeManage/monthUpdImport', params)
return res
}
// 简易收费-已收费
export async function getSimpleReportCollected (params) {
const res = await post('admin/ChargeManage/getSimpleReportCollected', params)
return res
}
// 简易收费-未收费
export async function getSimpleReportUncollected (params) {
const res = await post('admin/chargeManage/getSimpleReportUncollected', params)
return res
}
// 简易收费-已收费-修改
export async function getSimpleReportCollectedEdit (params) {
const res = await post('admin/chargeManage/getSimpleReportCollectedEdit', params)
return res
}
// 简易收费-已收费-金额确认
export async function getSimpleReportCollectedConfirm (params) {
const res = await post('admin/chargeManage/getSimpleReportCollectedConfirm', params)
return res
}
// 常规数据-订单列表-转结款方式
export async function editPayType (params) {
const res = await post('admin/Bill/editPayType', params)
return res
}

19
pgweb/src/api/credit.js Normal file
View File

@@ -0,0 +1,19 @@
import { get, post } from '@/libs/request'
// 根据征信类型获取个人征信或者企业征信列表
export async function getCredits (params) {
const res = await get('credit/queryCreditReportList', params)
return res
}
// 获取征信报告详情
export async function getcreditDetail (reportNo) {
const res = await get(`credit/creditDetail/${reportNo}`)
return res
}
// 导出征信报告详情
export async function exportCreditList (params) {
const res = await post('credit/queryCreditReportList', params)
return res
}

View File

@@ -0,0 +1,7 @@
import { get, post } from '@/libs/request'
// 获取指定数据字典
export async function getDictionary (params) {
const res = await post('web/dictionary', params)
return res
}

5
pgweb/src/api/index.js Normal file
View File

@@ -0,0 +1,5 @@
import * as basicData from './basicData'
export default {
basicData
}

25
pgweb/src/api/message.js Normal file
View File

@@ -0,0 +1,25 @@
import { get, post } from '@/libs/request'
// 消息通知列表
export async function getMessageList (params) {
const res = await post('admin/MessageRemind/MessageRemindList', params)
return res
}
// 公告/传阅
export async function getNotice (params) {
const res = await post('admin/MessageRemind/Notice', params)
return res
}
// 消息列表 最新10条 推送模块
export async function messageList (params) {
const res = await post('admin/MessageRemind/MessageRemindAll', params)
return res
}
// 消息已阅调用接口-共用
export async function messageRead (params) {
const res = await post('admin/MessageRemind/MessageRead', params)
return res
}

37
pgweb/src/api/mineWork.js Normal file
View File

@@ -0,0 +1,37 @@
import { get, post } from '@/libs/request'
// 获取用户列表
export async function getUsersList (params) {
const res = await post('admin/notice/getUsersList', params)
return res
}
// 获取个人办公相关列表
export async function noticeGetList (params) {
const res = await post('admin/notice/getList', params)
return res
}
// 发布 / 撤回
export async function getChangeStatus (params) {
const res = await post('admin/notice/change_status', params)
return res
}
// 新增/编辑
export async function noticeEdit (params) {
const res = await post('admin/notice/notice_edit', params)
return res
}
// 详情
export async function noticeDetail (params) {
const res = await post('admin/notice/detail', params)
return res
}
// 回复
export async function noticeReply (params) {
const res = await post('admin/notice/reply', params)
return res
}

View File

@@ -0,0 +1,244 @@
import { get, post } from '@/libs/request'
// 住宅/商业项目列表接口
export async function reqAppraisingPriceList (params) {
const res = await post('admin/Pending/reqAppraisingPriceList', params)
return res
}
// 回价提交
export async function save (params) {
const res = await post('admin/Pending/save', params)
return res
}
// 回价详情--未完成
export async function reqAppraisingInfo (params) {
const res = await post('admin/Pending/reqAppraisingInfo', params)
return res
}
// 询价历史
export async function reqQuotHistoryList (params) {
const res = await post('admin/Pending/reqQuotHistoryList', params)
return res
}
// 项目列表
export async function reqAppraisedCompletedPriceList (params) {
const res = await post('admin/Pending/reqAppraisedCompletedPriceList', params)
return res
}
// 回价详情--已完成
export async function reqAppraisedPriceInfo (params) {
const res = await post('admin/Pending/reqAppraisedPriceInfo', params)
return res
}
// 调价-列表
export async function ModifyPriceList (params) {
const res = await post('admin/Pending/ModifyPriceList', params)
return res
}
// 计算税费
export async function AutomaticCalculation (params) {
const res = await post('admin/Pending/AutomaticCalculation', params)
return res
}
// 签章管理-详情
export async function SignatureManagement (params) {
const res = await post('admin/Pending/SignatureManagement', params)
return res
}
// 签章管理-提交接口
export async function SignatureSave (params) {
const res = await post('admin/Pending/SignatureSave', params)
return res
}
// 取消签章
export async function CancelSignature (params) {
const res = await post('admin/Pending/CancelSignature', params)
return res
}
// 预估审核接口
export async function RequestEstimateAudit (params) {
const res = await post('admin/Pending/RequestEstimateAudit', params)
return res
}
// 取消预估审核接口
export async function CancelEstimateAudit (params) {
const res = await post('admin/Pending/CancelEstimateAudit', params)
return res
}
// 计算贷款
export async function CalculateLoan (params) {
const res = await post('admin/Pending/CalculateLoan', params)
return res
}
// 回价详情-调价
export async function ModifyPriceDetails (params) {
const res = await post('admin/Pending/ModifyPriceDetails', params)
return res
}
// 预估单
export async function EstimateSheetTemplate (params) {
const res = await get('admin/Pending/EstimateSheetTemplate', params)
return res
}
// 简易项目列表
export async function SimplePendingIndex (params) {
const res = await post('admin/SimplePending/index', params)
return res
}
// 回价
export async function SimplePendingSave (params) {
const res = await post('admin/SimplePending/save', params)
return res
}
// 简易项目列表
export async function simpleSummary (params) {
const res = await post('admin/SimplePending/simpleSummary', params)
return res
}
// 简易项目详情
export async function getSimpleDetail (params) {
const res = await post('admin/SimplePending/getSimpleDetail', params)
return res
}
// 提交简易报告
export async function subReport (params) {
const res = await post('admin/SimplePending/subReport', params)
return res
}
// 简易报告-订单状态
export async function getOrderStatus (params) {
const res = await post('admin/SimplePending/getOrderStatus', params)
return res
}
// 简易报告-预览
export async function reqPreviewReport (params) {
const res = await post('admin/SimplePending/reqPreviewReport', params)
return res
}
// 自动估价项目-列表
export async function automaticList (params) {
const res = await post('admin/pending/AutomaticList', params)
return res
}
// 回价记录
export async function getReturnPriceRecord (params) {
const res = await post('admin/Pending/getReturnPriceRecord', params)
return res
}
// 住宅/商业-预估单列表接口
export async function estimateList (params) {
const res = await post('admin/Pending/estimateList', params)
return res
}
// 线上报告制作取号
export async function GetOnlineReport(params) {
const res = await post('admin/Pending/GetOnlineReport', params)
return res
}
// 申请预估制作
export async function ApplyEstimateMake(params) {
const res = await post('admin/Pending/applyEstimateMake', params)
return res
}
// 回价到中行消金
export async function ReturnPriceToBoccf(params) {
const res = await post('admin/Boccf/returnPriceToBoccf', params)
return res
}
// 上传预估单报告到系统中
export async function UpdateInquiryEstimateUrl(params) {
const res = await post('admin/Pending/updateInquiryEstimateUrl', params)
return res
}
// 发送预估单报告到中行消金
// export async function SendEstimateReport(params) {
// const res = await post('admin/Boccf/sendEstimateReport', params)
// return res
// }
// 发送预估单报告到中行消金和普惠
export async function SendPreResult(params) {
const res = await post('admin/BocCommon/sendPreResult', params)
return res
}
// 预估的导出
export async function exportEstimateExcel(params) {
const res = await post('admin/Estimate/exportEstimateExcel', params)
return res
}
// 作废防伪码
export async function cancelAntiCounterfeitingCode(params) {
const res = await post('admin/Pending/cancelAntiCounterfeitingCode', params)
return res
}
// 预估待制作、二审待制作、三审待制作列表接口
export async function estimateMakeList (params) {
const res = await post('admin/Estimate/estimateList', params)
return res
}
//预约取号接口
export async function getEstimateNo (params) {
const res = await post('admin/Estimate/getEstimateNo', params)
return res
}
//提交预估接口
export async function submitVerify (params) {
const res = await post('admin/Estimate/submitVerify', params)
return res
}
// 退回接口
export async function returnEstimate (params) {
const res = await post('admin/Estimate/returnEstimate', params)
return res
}
// 取消签章接口
export async function cancelSign (params) {
const res = await post('admin/Pending/CancelSignature', params)
return res
}
// 提交预估接口
export async function submitEstimate (params) {
const res = await post('admin/Estimate/submit', params)
return res
}

38
pgweb/src/api/public.js Normal file
View File

@@ -0,0 +1,38 @@
import { get, post } from '@/libs/request'
// 数据字典获取
export async function reqDataDict (params) {
const res = await post('admin/Dictionary/reqDataDict', params)
return res
}
// 详情是否锁定
export async function isAllowOpen (params) {
const res = await post('admin/Pending/isAllowOpen', params)
return res
}
// 延迟关闭
export async function delayOpenDetail (params) {
const res = await post('admin/Pending/delayOpenDetail', params)
return res
}
// 详情关闭
export async function close (params) {
const res = await post('admin/Pending/close', params)
return res
}
// ocr识别房屋证书
export async function ocrRecogniseHouseCert (params) {
const res = await post('admin/bussiness/ocrRecogniseHouseCert', params)
return res
}
// 复制物业信息
export async function copyPropertyCertInfo (params) {
const res = await post('admin/bussiness/copyPropertyCertInfo', params)
return res
}

View File

@@ -0,0 +1,237 @@
import request from '@/libs/request'
// 支票列表——状态码可读转换
export function checkStatus (value) {
switch (value) {
case -1:
return '删除'
break
case 1:
return '库存中'
break
case 2:
return '领取待使用'
break
case 3:
return '转让待确认'
break
case 4:
return '使用待核销'
break
case 5:
return '作废待核销'
break
case 6:
return '使用已核销'
break
case 7:
return '作废已核销'
break
default:''
}
}
// 金额转换
// export function number_format(number, decimals, dec_point, thousands_sep) {
export function number_format (number, decimals, dec_point, thousands_sep, roundtag) {
/*
* 参数说明:
* number要格式化的数字
* decimals保留几位小数
* dec_point小数点符号
* thousands_sep千分位符号
* */
// debugger
if (number === null || number === undefined || number === '') {
return ''
}
if (/^\D*$/.test(number)) {
return number
}
number = (number + '').replace(/[^0-9+-Ee.]/g, '')
roundtag = roundtag || 'ceil' // "ceil","floor","round"
var n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
s = '',
toFixedFix = function (n, prec) {
var k = Math.pow(10, prec)
return '' + parseFloat(Math[roundtag](parseFloat((n * k).toFixed(prec * 2))).toFixed(prec * 2)) / k
}
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.')
var re = /(-?\d+)(\d{3})/
while (re.test(s[0])) {
s[0] = s[0].replace(re, '$1' + sep + '$2')
}
if ((s[1] || '').length < prec && decimals !== 0) {
s[1] = s[1] || ''
s[1] += new Array(prec - s[1].length + 1).join('0')
}
return s.join(dec)
}
export function mul_number_format (number, decimals, dec_point, thousands_sep, roundtag) {
let arr = number.split('/')
let str = ''
arr.forEach((item, index) => {
if (index === 0) {
str = number_format(item, decimals, dec_point, thousands_sep, roundtag)
} else {
str += '/' + number_format(item, decimals, dec_point, thousands_sep, roundtag)
}
})
return str
}
// 调用 var num=number_format(1234567.089, 2, ".", ",");//1,234,567.09
/** ************************************时间格式化处理************************************/
export function getLocalTime (nS) {
return new Date(parseInt(nS) * 1000).toLocaleString().substr(0, 17)
}
/**
* 格式化金额
* @param {type} number 要格式化的数字
* @param {type} decimals 保留几位小数
* @param {type} dec_point 小数点符号
* @param {type} thousands_sep 千分位符号
* @param {type} roundtag :舍入参数,默认 "ceil" 向上取,"floor"向下取,"round" 四舍五入
* @returns {unresolved}
*
*/
// 求数组交集
export function arrayIntersection (a, b) {
var ai = 0, bi = 0
var result = new Array()
while (ai < a.length && bi < b.length) {
if (a[ai] < b[bi]) { ai++ } else if (a[ai] > b[bi]) { bi++ } else /* they're equal */ {
result.push(a[ai])
ai++
bi++
}
}
return result
}
// 解码服务器结果
export function decode_SrvRes (res) {
if (res.isSerialized && res.isSerialized == true) {
// 解码Base64数据
const decodedData = safeAtob(res.data);
// 解析解码后的数据为JSON对象
const decryptedJsonData = JSON.parse(decodedData);
// 现在 decryptedJsonData 包含了解码并解析后的JSON数据
return decryptedJsonData
}
return res;
}
export function safeAtob(base64Str) {
// 检查输入字符串是否是有效的Base64编码
const base64Regex = /^[A-Za-z0-9+/]+={0,2}$/;
if (!base64Regex.test(base64Str)) {
throw new Error('The string to be decoded is not correctly encoded.');
}
// 如果输入字符串长度不是4的倍数添加等号'='
while (base64Str.length % 4 !== 0) {
base64Str += '=';
}
return atob(base64Str);
}
export function timeDifc (date1, date2) {
var date1Str = date1.split('-')// 将日期字符串分隔为数组,数组元素分别为年.月.日
// 根据年 . 月 . 日的值创建Date对象
var date1Obj = new Date(date1Str[0], (date1Str[1] - 1), date1Str[2])
var date2Str = date2.split('-')
var date2Obj = new Date(date2Str[0], (date2Str[1] - 1), date2Str[2])
var t1 = date1Obj.getTime()
var t2 = date2Obj.getTime()
var dateTime = 1000 * 60 * 60 * 24 // 每一天的毫秒数
var minusDays = Math.floor(((t2 - t1) / dateTime))// 计算出两个日期的天数差
// var days = Math.abs(minusDays);//取绝对值
var days = minusDays// 取绝对值
return days
}
/*
* orderSn:订单号
* orderType订单类型
* showedite编辑 view查看详情
* stage控制相关按钮的状态
* isCheckAllOrder:是否是综合查询
*/
export function toOrderDetials (orderSn, orderType, stage, isCheckAllOrder, show) {
let argArr = Array.prototype.slice.call(arguments)
let orderCode = ''
if (arguments.length > 1) {
orderCode = orderSn
} else {
orderCode = this.$route.query.order_sn
}
let type = ''
if (arguments.length > 1) {
type = orderType
} else {
type = this.$route.query.type
}
let name = ''
let businessType = ''
switch (type) {
case 'JYDB':
name = 'quota_orderDetails'
businessType = '交易担保'
break
case 'JYXJ':
name = 'cashDetails'
businessType = '交易现金'
break
case 'TMXJ':
name = 'noncashDetails'
businessType = '房融易(TMXJ)'
break
case 'DQJK':
name = 'shortLoansInfo'
businessType = '短期借款'
break
case 'SQDZ':
name = 'advanceDetail'
break
case 'PDXJ':
name = 'mortgageLoansDetails'
businessType = '凭抵押回执放款'
break
case 'GMDZ':
name = 'renameRedeemDetails'
businessType = '更名赎楼垫资'
break
case 'QTJD':
name = 'otherDebitDetail'
businessType = '其他借贷'
break
case 'PMDB':
name = 'pmdbAuctionDetails'
businessType = '拍卖担保'
break
case 'PMXJ':
name = 'pmxjAuctionDetails'
businessType = '拍卖现金'
break
}
linkTo({
name: name,
query: {
'order_sn': orderCode,
'type': type,
'businessType': businessType,
stage: stage,
show: show,
isCheckAllOrder: isCheckAllOrder
}
})
}

352
pgweb/src/api/report.js Normal file
View File

@@ -0,0 +1,352 @@
import { get, post } from '@/libs/request'
// 报告待制作-列表
export async function getMakeReportList (params) {
const res = await post('admin/ReportManage/reqProducingReportList', params)
return res
}
// 报告-待审核列表
export async function getCheckReportList (params) {
const res = await post('admin/ReportManage/reqReportReviewingList', params)
return res
}
// 报告-待审核列表(三审)
export async function getCheckReportListThird (params) {
const res = await post('admin/ReportManage/CheckReportListThird', params)
return res
}
/**
* 获取报告分类列表
*
* @param param 请求参数,可为空
* @returns 返回请求结果
*/
export async function getReportClassList (param=null) {
const res = await post('admin/EnumManager/getReportClassList', param)
return res
}
/**
* 获取报表对象类型列表
*
* @param param 请求参数(可选)默认为空
* @returns 报表对象类型列表
*/
export async function getReportObjTypeList (param=null) {
const res = await post('admin/EnumManager/getReportObjTypeList', param)
return res
}
// 报告管理-列表
export async function getReportList (params) {
const res = await post('admin/ReportManage/reqReportList', params)
return res
}
// 报告管理-基本信息
export async function reportInfo (params) {
const res = await post('admin/reportManage/reportInfo', params)
return res
}
// 报告管理-提交
export async function reqSubmitReportModify (params) {
const res = await post('admin/reportManage/reqSubmitReportModify', params)
return res
}
// 报告管理-详情-头部信息
export async function baseInfo (params) {
const res = await post('admin/reportManage/baseInfo', params)
return res
}
// 报告详情-查勘信息
export async function reqReportSurveyDetail (params) {
const res = await post('admin/reportManage/reqReportSurveyDetail', params)
return res
}
// 打印装订列表
export async function reqPrintDocList (params) {
const res = await post('admin/ReportManage/reqPrintDocList', params)
return res
}
// 完成打印装订
export async function reqReportPrintSubmit (params) {
const res = await post('admin/ReportManage/reqReportPrintSubmit', params)
return res
}
// 完成盖章
export async function reqReportSealSubmit (params) {
const res = await post('admin/ReportManage/reqReportSealSubmit', params)
return res
}
// 领取报告
export async function reqPickupReport (params) {
const res = await post('admin/ReportManage/reqPickupReport', params)
return res
}
// 评估师
export async function getAppraiser (params) {
const res = await post('admin/ReportManage/getAppraiser', params)
return res
}
// 报告详情页-头部信息
export async function topBaseInfo (params) {
const res = await post('admin/ReportManage/topBaseInfo', params)
return res
}
// 报告详情页-基本信息
export async function getBaseInfo (params) {
const res = await post('admin/ReportManage/baseInfo', params)
return res
}
// 获取片区
export async function getSmallArea (params) {
const res = await post('admin/Regions/getSmallArea', params)
return res
}
// 报告摘要
export async function reqReportAbstractInfo (params) {
const res = await post('admin/ReportManage/reqReportAbstractInfo', params)
return res
}
// 测试方法-比较法简单信息
export async function methodSimpleInfo (params) {
const res = await post('admin/ReportManage/methodSimpleInfo', params)
return res
}
// 测试方法-收益法信息
export async function methodProfitInfo (params) {
const res = await post('admin/ReportManage/methodProfitInfo', params)
return res
}
// 测试方法-收益法信息
export async function methodGYProfitInfo (params) {
const res = await post('admin/ReportManage/methodGYProfitInfo', params)
return res
}
// 测试方法-比较法正式信息
export async function methodFormalInfo (params) {
const res = await post('admin/ReportManage/methodFormalInfo', params)
return res
}
// 测试方法-GZ比较法正式信息
export async function methodGzFormalInfo (params) {
const res = await post('admin/ReportManage/methodGzFormalInfo', params)
return res
}
// 报告制作-提交报告
export async function subReport (params) {
const res = await post('admin/ReportManage/subReport', params)
return res
}
// 保存报告基础信息
export async function saveReportBaseInfo (params) {
const res = await post('admin/ReportManage/saveReportBaseInfo', params)
return res
}
// 报告制作-保存报告
export async function conserveReport (params) {
const res = await post('admin/ReportManage/conserveReport', params)
return res
}
// 报告管理-报告预览
export async function reqPreviewReport (params) {
const res = await post('admin/ReportManage/reqPreviewReport', params)
return res
}
// 报告管理-所在大区
export async function getBigArea (params) {
const res = await post('admin/ReportManage/getBigArea', params)
return res
}
// 报告管理-所在小片区
export async function getSmallAreaList (params) {
const res = await post('admin/ReportManage/getSmallArea', params)
return res
}
// 报告待审核-退回
export async function subApprovalReturn (params) {
const res = await post('admin/ReportManage/subApprovalReturn', params)
return res
}
// 报告待审核-退回
export async function subFinishReturn (params) {
const res = await post('admin/ReportManage/subFinishReturn', params)
return res
}
// 报告待审核-完成报告
export async function subFinish (params) {
const res = await post('admin/ReportManage/subFinish', params)
return res
}
// 报告管理-迁移报告列表
export async function moveReportList (params) {
const res = await post('admin/ReportManage/moveReportList', params)
return res
}
// 报告管理-建行报告盖章列表
export async function reportSealList (params) {
const res = await post('admin/ReportManage/reportSealList', params)
return res
}
// 报告管理-建行报告完成盖章
export async function subReportSeal (params) {
const res = await post('admin/ReportManage/subReportSeal', params)
return res
}
// 报告管理-简易打印装订列表
export async function easyPrintList (params) {
const res = await post('admin/ReportManage/easyPrintList', params)
return res
}
// 报告管理-提交简易报告操作
export async function subEasyPrint (params) {
const res = await post('admin/ReportManage/subEasyPrint', params)
return res
}
// 报告管理-评估目的
export async function getEvaluatePurpose (params) {
const res = await post('admin/ReportManage/getEvaluatePurpose', params)
return res
}
// 报告制作-获取报告模板
export async function getReportTemplate (params) {
const res = await post('admin/ReportManage/getReportTemplate', params)
return res
}
// 报告制作-获取区域情况分析
export async function getAreaInfo (params) {
const res = await post('admin/ReportManage/getAreaInfo', params)
return res
}
// 报告制作-保存区域情况分析
export async function conserveArea (params) {
const res = await post('admin/ReportManage/conserveArea', params)
return res
}
// 报告制作-个人制作列表
export async function personalReportList (params) {
const res = await post('admin/ReportManage/personalReportList', params)
return res
}
// 报告制作-获取审核意见信息
export async function getApprovalInfo (params) {
const res = await post('admin/ReportManage/getApprovalInfo', params)
return res
}
// 报告- 查勘员接口
export async function getRole (params) {
const res = await post('admin/User/getRole', params)
return res
}
// 报告- 复制报告
export async function reportCopy (params) {
const res = await post('admin/ReportManage/reportCopy', params)
return res
}
// 报告- 修改报告编号
export async function changeReportNo (params) {
const res = await post('admin/ReportManage/changeReportNo', params)
return res
}
// 备注
export async function addRemark (params) {
const res = await post('admin/ReportManage/addRemark', params)
return res
}
// 获取案例成交价
export async function guideInfo (params) {
const res = await post('admin/ReportManage/guideInfo', params)
return res
}
// 删除案例成交价
export async function guideInfoDel (params) {
const res = await post('admin/ReportManage/guideInfoDel', params)
return res
}
// 一键删除查勘图片
export async function delAllSurveyImgs (params) {
const res = await post('admin/ReportManage/delAllSurveyImgs', params)
return res
}
// 发送报告到中行消金
export async function sendReportToBoccf (params) {
const res = await post('admin/Boccf/sendReport', params)
return res
}
// 发送报告到中行消金和普惠
export async function SendApplyOfficial (params) {
const res = await post('admin/BocCommon/sendApplyOfficial', params)
return res
}
// 财务导出
export async function exportFinanceExcel (params) {
const res = await post('admin/Finance/exportFinanceExcel', params)
return res
}
// 作废防伪码
export async function reportCancelAntiCounterfeitCode (params) {
const res = await post('admin/ReportManage/cancelAntiCounterfeitCode', params)
return res
}
// 查询客户经理信息
export async function getBocAccountManager (params) {
const res = await post('admin/Boccf/getAccountManagerInfo', params)
return res
}
export async function UpdateInquiryReportUrl (params) {
const res = await post('admin/ReportManage/updateInquiryReportUrl', params)
return res
}

View File

@@ -0,0 +1,93 @@
import { get, post } from '@/libs/request'
// 查勘指派列表
export async function reqAssignSurveyOrder (params) {
const res = await post('admin/survey/reqAssignSurveyOrder', params)
return res
}
// 查勘待跟进列表
export async function reqFollowSurveyList (params) {
const res = await post('admin/survey/reqFollowSurveyList', params)
return res
}
// 查勘已完成列表
export async function reqCompletedSurveyList (params) {
const res = await post('admin/survey/reqCompletedSurveyList', params)
return res
}
// 查勘已退回列表
export async function reqSurveyReturnList (params) {
const res = await post('admin/survey/reqSurveyReturnList', params)
return res
}
// 查勘退回
export async function reqSubmitSurveyReturn (params) {
const res = await post('admin/survey/reqSubmitSurveyReturn', params)
return res
}
// 查勘细项
export async function surveyOptions (params) {
const res = await post('admin/survey/surveyOptions', params)
return res
}
// 查勘提交
export async function reqSubmitSurvey (params) {
const res = await post('admin/survey/reqSubmitSurvey', params)
return res
}
// 查勘提交
export async function reqAppointedToSurveyor (params) {
const res = await post('admin/survey/reqAppointedToSurveyor', params)
return res
}
// 查勘人员列表
export async function surveyPersonnel (params) {
const res = await post('admin/survey/surveyPersonnel', params)
return res
}
// 获取角色用户
export async function getRole (params) {
const res = await post('admin/User/getRole', params)
return res
}
// 查勘编辑提交
export async function reqEditSurvey (params) {
const res = await post('admin/Survey/reqEditSurvey', params)
return res
}
// 改派查勘员
export async function transferSurveyUser (params) {
const res = await post('admin/Survey/transferSurveyUser', params)
return res
}
// 删除
export async function reqDelSurveyReturnOrder (params) {
const res = await post('admin/survey/reqDelSurveyReturnOrder', params)
return res
}
// 复制
export async function copySurveyData (params) {
const res = await post('admin/survey/copySurveyData', params)
return res
}
// 查勘已完成退回到待跟进
export async function surveyReturn (params) {
const res = await post('admin/survey/surveyReturn', params)
return res
}

View File

@@ -0,0 +1,42 @@
import { get, post } from '@/libs/request'
// 住宅/商业项目列表接口
export async function reqAppraisingPriceList (params) {
const res = await post('admin/Pending/reqAppraisingPriceList', params)
return res
}
// 回价提交
export async function save (params) {
const res = await post('admin/Pending/save', params)
return res
}
// 回价详情
export async function reqAppraisingInfo (params) {
const res = await post('admin/Pending/reqAppraisingInfo', params)
return res
}
// 询价历史
export async function reqQuotHistoryList (params) {
const res = await post('admin/Pending/reqQuotHistoryList', params)
return res
}
// 项目列表
export async function reqAppraisedCompletedPriceList (params) {
const res = await post('admin/Pending/reqAppraisedCompletedPriceList', params)
return res
}
// 回价详情--已完成
export async function reqAppraisedPriceInfo (params) {
const res = await post('admin/Pending/reqAppraisedPriceInfo', params)
return res
}

13
pgweb/src/api/upload.js Normal file
View File

@@ -0,0 +1,13 @@
import { get, post } from '@/libs/request'
// 获取指定数据字典
export async function getCosConfig (params) {
const res = await get('credit/getCosConfig', params)
return res
}
// 上传
export async function fileUpload (params) {
const res = await post('admin/Index/fileUpload', params)
return res
}

80
pgweb/src/api/user.js Normal file
View File

@@ -0,0 +1,80 @@
import request from '@/libs/request'
// 登录
export function login (params) {
return request({
url: 'admin/User/SignIn',
method: 'post',
data: params
})
};
// 获取用户列表
export function getUserList (params) {
return request({
url: 'admin/User/getUserList',
method: 'get',
data: params
})
};
// 退出登录
export function logout (params) {
return request({
url: 'admin/User/Logout',
method: 'post',
data: params
})
};
// 刷新token
export function checkLogin (params) {
return request({
url: 'admin/User/Refresh',
method: 'post',
data: params
})
};
// 获取扫码信息
export function createRrcode (params) {
return request({
url: 'admin/User/qrcode',
method: 'post',
data: params
})
};
// 二维码登录
export function qrCodeLogin (params) {
return request({
url: 'admin/User/qrCodeLogin',
method: 'post',
data: params
})
};
// 销毁二维码
export function qrCodeDestory (params) {
return request({
url: 'admin/User/destroyQrcode',
method: 'post',
data: params
})
};
// 根据用户名获取用户列表
export function getUserListByRole (params) {
return request({
url: 'admin/User/getRole',
method: 'post',
data: params
})
};
export function updatePwd(params) {
return request({
url: 'admin/User/updatePwd',
method: 'post',
data: params
})
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 31 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,14 @@
{
"folders": [
{
"path": "../../../../../pgevaServerNew"
},
{
"path": "../../../.."
},
{
"path": "../../../../../PGEvaSysAppNew"
}
],
"settings": {}
}

View File

@@ -0,0 +1,2 @@
import loginForm from './login-form.vue'
export default loginForm

View File

@@ -0,0 +1,113 @@
<template>
<el-form class="login_reset" ref="loginForm" :model="form" :rules="validationRules">
<el-form-item prop="userName">
<div class="login_reset_number">
<el-input type="text" v-model="form.userName" size="large" placeholder="用户名" @blur="checkUsername"></el-input>
</div>
<!-- <p class="no_tips" v-if="isUsernameMissing">请填写账号</p> -->
</el-form-item>
<el-form-item prop="password" style="margin-top: 34px;">
<div class="login_reset_password">
<el-input type="password" v-model="form.password" size="large" @blur="checkPassword" placeholder="密码" @keyup.enter="submitForm"></el-input>
</div>
<!-- <p class="no_tips" v-if="isPasswordMissing">请填写密码</p> -->
</el-form-item>
<el-form-item style="margin-top: 30px;">
<el-button @click="submitForm" type="primary" class="submit_button" size="large" :loading="loading">{{loading?'安全登陆中...':'登 录'}}</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
name: 'LoginForm',
props: {
userNameValidationRules: {
type: Array,
default: () => {
return [
{ required: true, message: '请填写账号', trigger: 'blur' }
]
}
},
passwordValidationRules: {
type: Array,
default: () => {
return [
{ required: true, message: '请填写密码', trigger: 'blur' }
]
}
},
loading: {
type: Boolean,
default: false
}
},
data() {
return {
form: {
userName: '',
password: ''
},
isUsernameMissing: false,
isPasswordMissing: false
}
},
computed: {
validationRules() {
return {
userName: this.userNameValidationRules,
password: this.passwordValidationRules
}
}
},
methods: {
checkUsername() {
if (!this.form.userName) {
this.isUsernameMissing = true
} else {
this.isUsernameMissing = false
}
},
checkPassword() {
if (!this.form.password) {
this.isPasswordMissing = true
} else {
this.isPasswordMissing = false
}
},
submitForm() {
this.$refs.loginForm.validate((r) => {
if (r) {
console.log('submit!',r,this.form )
this.$emit('onSuccessRsp', {
username: this.form.userName,
password: this.form.password
})
}
})
}
}
}
</script>
<style>
.login_reset {
width: 70%;
margin: 0 auto;
text-align: center;
height: 300px;
}
.submit_button {
margin-left: 100px;
width: 200px;
margin: 0 auto;
background-color:#355CA6;
border: none; /* 移除外边框 */
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); /* 添加边框阴影 */
border-radius: 10px; /* 设置圆角 */
}
.submit_button:hover {
background-color:#5a77ac; /* 鼠标悬停时的颜色 */
}
</style>

View File

@@ -0,0 +1,2 @@
import loginScan from './login-scan.vue'
export default loginScan

View File

@@ -0,0 +1,260 @@
<style lang="less" scoped="scoped">
.login_scan {
height: 258px;
text-align: center;
position: relative;
.login_scan_msg {
width: 252px !important;
height: 252px !important;
position: relative;
z-index: 1000;
}
.login_scan_show_help {
width: 170px !important;
height: 170px !important;
}
.login_scan_help_img {
width: 218px;
height: 218px;
position: absolute;
top: 17px;
left: 107px;
}
.login_scan_lose-efficacy {
background: rgba(0, 0, 0, 0.65);
position: absolute;
left: 50%;
top: 50%;
z-index: 9999;
width: 220px;
height: 220px;
margin-top: -112px;
margin-left: -110px;
padding-top: 70px;
.login_scan_tips_span {
display: block;
color: #fff;
font-size: 16px;
margin-top: 10px;
margin-bottom: 20px;
}
button {
background:@g_Main_Dark_BUTTON_COLOR;// #5389ff;
color: #fff;
border: none;
width: 100px;
height: 30px;
border-radius: 2px;
}
}
.login_scan_use_tips {
color: #999999;
font-family: "microsoft yahei";
font-size: 16px;
position: absolute;
width: 100%;
text-align: center;
bottom: -16px;
}
}
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0;
}
</style>
<template>
<Form class="login_scan">
<transition name="fade">
<canvas id="msg" v-show="!showHelp" @mouseenter="enter" @mouseleave="leave" class="login_scan_msg"></canvas>
</transition>
<transition name="fade">
<img v-show="showHelp" @mouseenter="enter" @mouseleave="leave" src="../../assets/images/login/help.png" class="login_scan_help_img" />
</transition>
<div class="login_scan_lose-efficacy" v-if="noEfficacy">
<img src="../../assets/images/login/success.png" v-if="isScan" />
<span class="login_scan_tips_span">{{stateDesc}}</span>
<Button @click="freshQrcode" v-if="!isScan" :loading="loading" style="font-size: 14px;">刷新二维码</Button>
</div>
<div class="login_scan_use_tips" v-if="!noEfficacy">请使用APP扫码登录</div>
<div class="login_scan_use_tips" v-if="qrCodeStatus==1" style="cursor: pointer;" @click="freshQrcode">
<span style="color: #999;">二维码</span>
<span style="color: #5389FF;">刷新</span>
</div>
</Form>
</template>
<script>
import QRCode from 'qrcode'
import { createRrcode, qrCodeLogin, qrCodeDestory } from '@/api/user'
import { setToken, setCookie } from '@/libs/util'
import store from 'store'
import config from '@/config'
export default {
name: 'loginScan',
props: ['isScanLogin'],
data () {
return {
noEfficacy: false,
isScan: true,
nonce: '',
sign: '',
timestamp: '',
showHelp: false,
stop: '', // 结束轮询
timeout: '',
stateDesc: '',
loading: false,
qrCodeStatus: ''
}
},
computed: {
},
created () {
this.createRrcode()
},
methods: {
beforeunload (e) {
this.qrCodeDestory()
e = e || window.event
// 兼容IE8和Firefox 4之前的版本
if (e) {
e.returnValue = '关闭提示'
}
return '关闭提示'
},
onunload () {
this.qrCodeDestory()
},
enter (e) {
if (!this.noEfficacy) {
this.showHelp = true
}
},
leave (e) {
if (!this.noEfficacy) {
this.showHelp = false
}
},
// 刷新二维码
freshQrcode () {
this.qrCodeDestory()
this.loading = true
this.createRrcode()
this.$emit('getQrCodeStatus', true)
},
// 生成二维码
createRrcode () {
this.loading = false
createRrcode({}).then(res => {
if (res.code === 1) {
res.data.version = config.version
let recodeInfo = JSON.stringify(res.data)
let msg = document.getElementById('msg')
this.nonce = res.data.nonce
this.sign = res.data.sign
this.timestamp = res.data.timestamp
QRCode.toCanvas(msg, recodeInfo, function (error) { })
this.noEfficacy = false
this.isScan = true
this.qrCodeLogin()
this.stop = setInterval(() => {
this.qrCodeLogin()
}, 3000)
} else {
this.$Notice.error({
title: res.msg
})
}
})
},
// 判断是否有网络
hasNetwork () {
this.loading = false
if (!navigator.onLine) {
// 执行离线状态时的任务
this.noEfficacy = true
this.isScan = false
this.stateDesc = '当前网络不可用,请检查网络设置'
clearInterval(this.stop)
}
},
// 销毁二维码
qrCodeDestory () {
let obj = {
nonce: this.nonce,
sign: this.sign,
timestamp: this.timestamp
}
qrCodeDestory(obj).then(res => {
if (res.code === 1) {
}
})
},
// 扫码登录
qrCodeLogin () {
this.hasNetwork()
let obj = {
nonce: this.nonce,
sign: this.sign,
timestamp: this.timestamp,
version: config.version
}
qrCodeLogin(obj).then(res => {
if (res.code === 1) {
// console.log(res);
this.stateDesc = res.data.desc
this.qrCodeStatus = res.data.qrCodeStatus
this.loading = false
switch (res.data.qrCodeStatus) {
case 1:// 扫描成功
this.showHelp = false
this.noEfficacy = true
this.isScan = true
break
case 2:// 扫描成功 点击确定
clearInterval(this.stop)
this.$Message.success(res.msg)
store.clearAll()
setToken(res.data.apiAuth)
// store.set('indexMenuList', JSON.stringify(res.data.menu['index']))
store.set('busMenuList', JSON.stringify(res.data.menu))
store.set('userinfo', res.data.userinfo)
store.set('access', res.data.access)
store.set('apiAuth', res.data.apiAuth)
store.set('userId', res.data.userinfo.user_id)
store.set('sub', 0)
setCookie('loginTime', res.data.loginTime)
setCookie('refresh_token', res.data.refresh_token)
this.$router.replace({
path: '/'
})
break
case 3:// 二维码已过期
this.showHelp = false
this.noEfficacy = true
this.isScan = false
clearInterval(this.stop)
this.$emit('getQrCodeStatus', false)
break
case 4:// 二维码已失效
this.showHelp = false
this.noEfficacy = true
this.isScan = false
clearInterval(this.stop)
this.$emit('getQrCodeStatus', false)
break
}
} else {
clearInterval(this.stop)
}
})
}
},
destroyed () {
clearInterval(this.stop)
}
}
</script>

View File

@@ -0,0 +1,154 @@
<template>
<div style="height: 100%;">
<el-menu
:default-active="'0'"
@select="handleSelect"
@open="handleOpen"
:collapse="collapse"
style="background-color: #fff !important;height: 100%;"
>
<template v-for="(menuItem, i_index) in menuData">
<el-menu-item :index="String(i_index)" :key="i_index">
<template >
<!-- <i style="margin-top: -18px;color: #444444;" :class=" replacePhrases( menuItem.title, iconsRule) "></i>
<div style="margin-top:-48px;" class="menu-custom">{{ replacePhrases( menuItem.title, replaceRule1)}}</div> -->
<div style="display: flex; align-items: center;" class="menu-custom">
<i :class="replacePhrases(menuItem.title, iconsRule)"></i>
<div style="margin-left: 8px;">{{ replacePhrases(menuItem.title, replaceRule1) }}</div>
</div>
</template>
</el-menu-item>
</template>
</el-menu>
</div>
</template>
<script>
import "@/styles/globalSetting.less";
export default {
name: 'NxIconMenu',
props: {
menuData: {
type: Array,
required: true,
},
collapse: {
type: Boolean,
default: true
}
},
data() {
return {
activeMenu: '1-4-1',
replaceRule1:[
['询价项目','询价'],
['回价项目','回价'],
['预估单','预估'],
['查勘项目','查勘'],
['报告项目','报告'],
['分部管理','分部'],
['财务项目','财务'],
['基础设置','设置'],
['OA办公','OA'],// 隐藏
['银行对接','银行'],
],
iconsRule:[
['询价项目','el-icon-suitcase'],
['回价项目','el-icon-chat-line-round'],
['预估单','el-icon-news'],
['查勘项目','el-icon-office-building'],
['分部管理','el-icon-document'],
['报告项目','el-icon-tickets'],
['财务项目','el-icon-money'],
['基础设置','el-icon-setting'],
['OA办公' , 'el-icon-bell'], // 隐藏
['银行对接','el-icon-bank-card'],
]
};
},
methods: {
handleSelect(key, item , externalInfo ) {
console.log('menu-select', key, item,externalInfo);
this.$emit('menu-select', key, item.routerName, externalInfo);
console.log('externalInfo menu-select', externalInfo ,key,item );
},
handleOpen(key, keyPath) {
console.log('menu-open', key, keyPath, externalInfo );
this.$emit('menu-open', key, keyPath, externalInfo);
console.log('externalInfo menu-open', externalInfo ,key,item );
},
handleClose(key, keyPath, externalInfo ) {
console.log('menu-close', key, keyPath, externalInfo);
this.$emit('menu-close', key, keyPath, externalInfo);
},
toggleCollapse() {
// 触发事件通知父组件改变collapse状态
this.$emit('toggle-collapse', !this.collapse);
},
replacePhrases(text, replacementRules) {
// 遍历替换规则数组
for (let i=0; i< replacementRules.length; i++) {
// 使用正则表达式查找匹配的短语
if (text == replacementRules[i][0]) {
return replacementRules[i][1];
}
}
return text;
},
},
};
</script>
<style scoped>
.collapse-btn {
height: 40px;
line-height: 40px;
text-align: center;
cursor: pointer;
background-color: rgb(250, 248, 243);
border-bottom: 1px solid #e6e6e6;
}
.collapse-btn:hover {
background-color: #f5f5f5;
}
.collapse-btn i {
font-size: 20px;
color: #666;
}
.icon-text i {
display: inline-block;
margin-top: 5px;
}
.iocn-text {
position: absolute;
bottom: 0;
left: 0;
right: 0;
top: -20rpx;
background-color: white;
padding: 5px 10px;
box-sizing: border-box;
}
</style>
<style lang="less" scoped>
.el-menu--collapse{
width: 100px;
}
.menu-custom {
color: var(--menu-font-color);
}
:deep .el-menu-item.is-active {
background-color: var(--bg-color);
}
:deep .el-menu-item.is-active .menu-custom {
color: var(--main-color);
}
</style>

View File

@@ -0,0 +1,40 @@
<!-- 可递归菜单 -->
<template>
<div style="height: 100%;">
<!-- 如果有子菜单则渲染子菜单 -->
<el-submenu style="height: 100%;" v-if="item.children && item.children.length > 0" :index="item.routerName" >
<template slot="title">
{{ item.title }}
</template>
<!-- 递归调用MenuItem组件 -->
<menu-item v-for="(child, index) in item.children" :key="index" :item="child" class="menu-custom"></menu-item>
</el-submenu>
<!-- 如果没有子菜单则渲染菜单项 -->
<el-menu-item v-else :index="item.routerName" class="menu-custom">
<!-- <i class="el-icon-document"></i> -->
{{ item.title }}
</el-menu-item>
</div>
</template>
<script>
import "@/styles/globalSetting.less";
export default {
name: 'MenuItem',
props: {
item: Object
}
}
</script>
<style lang="less" scoped>
.menu-custom {
color: var(--menu-font-color);
}
:deep .el-menu-item.is-active {
background-color: var(--bg-color);
}
:deep .el-menu-item.is-active.menu-custom {
color: var(--main-color);
}
</style>

View File

@@ -0,0 +1,340 @@
<template>
<div>
<div class="im-msg-wrapper" :style="{bottom:!show?'-404px':'0px',width:!show?'200px':'300px'}">
<div class="im-msg-head" :style="{'background-color':!show?'#fff':'#F2F8FD'}">
<template v-if="!show">
<div @click="showContent" class="text-left">
<img :src="msgIcon">
<span class="im-title">系统消息</span>
<span class="im-head-num">
<Badge :count="messageUnReadNum"></Badge>
</span>
</div>
</template>
<template v-else>
<Row>
<Col span="8" class="text-left"><img :src="msgIcon" style="margin-right:10px;">系统消息</Col>
<Col span="12" class="text-right">
<a class="im-head-closebtn" @click="readAllMessage">全设为已读</a>
</Col>
<Col span="4" class="text-right">
<a class="im-head-closebtn" @click="showContent">收起</a>
</Col>
</Row>
</template>
</div>
<div class="im-msg-body">
<Tabs @on-click="handleClickTab">
<TabPane :label="messageUnReadNum>0?label.info:'待办事项'" name="info">
<!-- <TabPane :label="'待办事项'" name="info"> -->
<ul class="im-msg-content" v-if="messageList.length>0">
<Scroll :on-reach-bottom="handleReachBottom" :height="height">
<template v-for="(item,index) in messageList">
<li class="msg-item" :class="{'is-read':item.issee==1}" :key="index" @click="readTurnTo(item,'info')">
<h4>
<span class="msg-date">{{item.create_time}}</span>
<a href="javascript:;">详情</a>
</h4>
<p class="msg-content">{{item.message_content}}</p>
</li>
</template>
<li class="msg-item text-center" style="border-bottom:none" v-if="noMore.info">没有更多了</li>
</Scroll>
</ul>
<div class="text-center no-data" v-else>暂无待办事项</div>
</TabPane>
</Tabs>
</div>
</div>
</div>
</template>
<script>
import socket from '@/libs/socket'
import { mapGetters, mapMutations } from 'vuex'
import { messageRead, messageList } from '@/api/message'
import store from 'store'
const msgIcon = require('@/assets/images/msg.png')
export default {
name: 'message',
data () {
return {
msgIcon,
tabName: 'info',
show: false,
height: 400,
typeMap: { 2: 'info', 1: 'notice', 3: 'warning' },
typeMaps: { 'notice': 1, 'info': 2, 'warning': 3 },
descMap: { info: '待办事项', notice: '进度提醒', warning: '预警消息' },
noticeMap: { info: '你收到一条新的待办事项', notice: '你收到一条新的进度提醒', warning: '你收到一条新的预警信息' },
noMore: {
info: false,
notice: false,
warning: false
},
label: {
info: (h) => {
return h('div', [
h('span', '待办事项'),
h('Badge', {
props: {
dot: true
}
})
])
},
notice: (h) => {
return h('div', [
h('span', '进度提醒'),
h('Badge', {
props: {
dot: true
}
})
])
},
warning: (h) => {
return h('div', [
h('span', '预警消息'),
h('Badge', {
props: {
dot: true
}
})
])
}
},
}
},
created () {
// 其它页面未调用再调用改接口
if (this.messageList.length === 0) {
this.getMessageList()
}
// 未连接
if (!socket.connected) {
socket.open()
}
socket.emit('login', store.get('userinfo').user_id)
},
computed: {
...mapGetters(['messageList', 'messageUnReadNum'])
// ...mapGetters(['messageList', 'messageUnReadNum', 'infoUnReadNum', 'noticeUnReadNum', 'warningUnReadNum'])
},
methods: {
...mapMutations(['addNewMsg', 'setUnRead', 'addAllMessage', 'setAllRead', 'addMoreMsg']),
showContent () {
this.show = !this.show
},
// 跳转
turnTo (row, type) {
if (row.message_type != 5 || row.message_type != 8 || row.message_type != 11 || row.message_type != 14 || row.message_type != 29 || row.message_type != 31) {
this.$router.push({ name: row.name, query: JSON.parse(row.query) })
} else {
this.$Message.success('订单提示')
}
// let routeData = this.$router.resolve({
// name: item.name, query: JSON.parse(item.query)
// })
// window.open(routeData.href, '_blank')
},
readTurnTo (item, type) {
if (item.issee == 1) {
this.turnTo(item, type)
return
}
messageRead({ ids: item.id }).then(res => {
if (res.code === 1) {
this.setUnRead(item)
this.turnTo(item, type)
}
})
},
_reachBottomMsg () {
const message = this.messageList
if (message.length === 0) {
return
}
// min_id最小数据
messageList({ min_id: message[message.length - 1].id }).then(res => {
if (res.code === 1 && res.data.list.length > 0) {
this.addMoreMsg(res.data.list)
} else {
this.noMore[this.tabName] = true
}
})
},
// 滚动加载
handleReachBottom () {
return new Promise(resolve => {
this._reachBottomMsg()
resolve()
})
},
// 获取所有未读信息
getMessageList () {
messageList({ min_id: '' }).then(res => {
if (res.code === 1) {
this.addAllMessage(res.data)
}
})
},
// 全部已读
readAllMessage () {
messageRead({ ids: '' }).then(res => {
if (res.code === 1) {
this.setAllRead()
}
})
},
// tab切换
handleClickTab (name) {
this.tabName = name
}
},
mounted () {
// 收到一条推送
socket.on('newMsg', (res) => {
this.$Notice.warning({
title: res
})
this.getMessageList()
})
socket.on('update_online_count', (msg) => {
})
socket.on('reconnect_attempt', () => {
// 重连使用polling优先
socket.io.opts.transports = ['polling', 'websocket']
})
socket.on('reconnecting', () => {
socket.emit('login', store.get('userinfo').user_id)
})
socket.on('reconnect_error', () => {
console.log('reconnect_error')
})
},
beforeDestroy () {
socket.close()
}
}
</script>
<style lang="less" scoped>
.im-msg-wrapper {
position: fixed;
z-index: 1000;
right: 10px;
bottom: -400px;
height: 440px;
width: 200px;
background-color: #fff;
box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.45);
transition: all 0.2s linear 0s;
.im-msg-head {
color: #333;
font-weight:400;
height: 36px;
line-height: 36px;
padding: 0 10px;
border-bottom: 1px solid #eee;
cursor: pointer;
background-color: #F2F8FD;
.im-title {
padding: 0 10px;
}
a{
color: #333;
}
}
.im-msg-body {
/deep/.ivu-tabs > .ivu-tabs-bar .ivu-tabs-tab {
margin-right: 0;
border-radius: 0;
background: #fff;
color: #999;
width: 33.3%;
font-size: 14px;
padding: 6px 18px;
}
/deep/ .ivu-scroll-loader{
height: 0;
}
.im-msg-content {
list-style: none;
height: 400px;
padding-bottom: 50px;
}
.msg-item {
padding: 5px 6px;
border-bottom: 1px solid #E6E6E6;
&:last-child {
margin-bottom: 40px;
}
.msg-date {
margin-right: 10px;
font-size: 14px;
font-family:'MicrosoftYaHei-Bold';
font-weight:bold;
}
p {
font-size: 14px;
}
a{
color: #333;
}
h4{
margin: 5px 0;
}
}
/deep/ .ivu-badge-dot {
top: -11px;
right: -14px;
}
/deep/ .ivu-scroll-container {
overflow-y: auto;
}
.no-data {
padding-top: 170px;
}
.is-read {
color: #ccc !important;
a {
color: #ccc !important;
}
}
.msg-content {
cursor: pointer;
}
}
}
</style>
<style>
.im-msg-wrapper .ivu-tabs-bar{
border-bottom: 2px solid #E6E6E6;
}
.im-msg-wrapper .ivu-tabs-ink-bar {
display: none !important;
}
.im-msg-wrapper .ivu-tabs-nav{
width: 100%;
}
.im-msg-wrapper .ivu-tabs-nav::after{
content: "";
transition: all 0.2s linear 0s;
}
.im-msg-wrapper .ivu-tabs-nav .ivu-tabs-tab-active::after,.line::after {
content: "";
width: 30px;
height: 3px;
background: #5389FF;
right: 50%;
bottom: 0;
margin-right: -15px;
position: absolute;
}
.im-msg-wrapper .ivu-tabs-tab-active{
color: #4F81FF !important;
}
.im-msg-wrapper .ivu-tabs-nav .ivu-tabs-tab:hover{
background-color: #fff !important;
}
</style>

View File

@@ -0,0 +1,49 @@
### 用法
分页组件
```
<template>
<pagination
:total="total"
:page.sync="searchParam.page"
:limit.sync="searchParam.limit"
@pagination="getList" />
</template>
<script>
import Pagination from '@/components/Pagination'
export default {
components: { Pagination },
data() {
return {
total: 0,
searchParam: {
page: 1,
limit: 20
}
}
},
methods: {
getList() {
// 获取数据
}
}
}
</script>
```
### API 说明
props
| 属性 | 说明 | 类型 | 默认值 |
| :--- | :--- | :--- | :--- |
| total | 数据总数 | Number | 0 |
| page | 当前页码,支持 .sync 修饰符 | Number | 1 |
| limit | 每页条数 | Number | 10 |
| pageSizes | 每页条数切换的配置 | Array | [10, 20, 30, 40] |
events
| 事件名 | 说明 | 返回值 |
| :--- | :--- | :--- |
| pagination | 当 limit 或者 page 发生改变时会触发 | 查询参数 |

View File

@@ -0,0 +1,89 @@
<template>
<div :class="{'hidden':hidden}" class="pagination-container zc-pagination">
<Page
:current.sync="currentPage"
:page-size.sync="pageSize"
:total="total"
:page-size-opts="pageSizes"
:transfer='true'
show-total
show-elevator
show-sizer
@on-change="handleCurrentChange"
@on-page-size-change="handleSizeChange"
/>
</div>
</template>
<script>
export default {
name: 'Pagination',
props: {
total: {
required: true,
type: Number
},
page: {
type: Number,
default: 1
},
limit: {
type: Number,
default: 10
},
pageSizes: {
type: Array,
default () {
return [10, 20, 30, 40]
}
},
hidden: {
type: Boolean,
default: false
}
},
computed: {
currentPage: {
get () {
return this.page
},
set (val) {
this.$emit('update:page', val)
}
},
pageSize: {
get () {
return this.limit
},
set (val) {
this.$emit('update:limit', val)
}
}
},
methods: {
handleSizeChange (val) {
this.$emit('update:limit', val)
this.$emit('pagination')
},
handleCurrentChange (val) {
this.$emit('pagination')
}
}
}
</script>
<style scoped lang="less">
.pagination-container {
background: #fff;
padding: 30px 0;
text-align: right;
/deep/.ivu-page-item-active a,
.ivu-page-item-active:hover a {
color: #fff;
}
}
.pagination-container.hidden {
display: none;
}
</style>

View File

@@ -0,0 +1,2 @@
import parentView from './parent-view.vue'
export default parentView

View File

@@ -0,0 +1,8 @@
<template>
<router-view/>
</template>
<script>
export default {
name: 'parentView'
}
</script>

View File

@@ -0,0 +1,97 @@
#### 用法
```
<template>
<div class="app-container>
<search-form :list="formList" :option-list="optionList" @search="handleSearch" />
<div class="zc-table-list">
<Table stripe disabled-hover border :columns="columnsList" :data="tableData" :loading="loading"></Table>
<pagination v-show="total>0" :total="total" :page.sync="searchParam.page" :limit.sync="searchParam.limit" @pagination="getlist" />
</div>
</template>
<script>
import search from '@/mixins/search'
export default {
name: 'baseDataBankManageList',
mixins: [search],
data () {
formList: [
{
name: 'search_text',
type: 'Input',
value: '',
label: '',
width: '340px',
placeholder: '请输入银行名查询'
}
],
optionList: {
stage: [
{
value: '1',
label: '交易'
}
],
}
},
created () {
this.searchParam = this.getSearchForm(this.formList)
this.getList()
},
methods: {
getList(item){
this.loading = true
this.searchParam = Object.assign({}, this.searchParam, item)
getAllOrder(this.searchParam).then(res => {
this.loading = false
if (res.code === 1) {
this.total = res.data.count
this.tableData = res.data.list
} else {
this.$Message.error(res.msg)
}
})
},
handleSearch(item){
this.searchParam.page = 1
this.getList(item)
}
}
}
</script>
```
### API 说明
props
| 属性 | 说明 | 类型 | 默认值 |
| :--- | :--- | :--- | :--- |
| list | 搜索栏配置描述 | Array | [] |
| option-list | 下拉框选项数据 | Array | [] |
| export-text | 导出名 | String | '导出' |
| export-url | 文件导出地址 | String | '' |
| search-text | 查询名 | String | '查询' |
| reset-text | 重置名 | String | '重置' |
| export-text | 导出名 | String | '导出' |
events
| 事件名 | 说明 | 返回值 |
| :--- | :--- | :--- |
| search | 点击查询时触发 | 查询参数 |
| on{item.name}Press | 下拉选择时触发,item.name 为该字段名 |
slot
| 名 | 说明 |
| :--- | :--- |
| extra | 附加内容 |
list 中的一项
| 属性 | 说明 | 类型 | 默认值 |
| :--- | :--- | :--- | :--- |
| name | 字段名 | String | - |
| type | 表单类型 | String | - |
| value | 默认值 | String-Number| - |
| label | 字段名 | String| - |
| width | 表单宽度 | String| - |
| placeholder | placeholder 内容 | String| - |

View File

@@ -0,0 +1,344 @@
<template>
<div @keyup.enter="handleSubmit">
<Form ref="searchForm" :model="valueList" inline class="mb-10">
<FormItem v-for="(item,index) in list" :key="index" :prop="item.name">
<span v-if="item.label" class='mr-10'>{{item.label}}</span>
<Input v-if="item.type==='Input'" v-model="valueList[item.name]" clearable :maxlength='item.maxlength || ""' :placeholder="item.placeholder" :style="{width:item.width ||''}" />
<Checkbox v-if="item.type==='Checkbox'" :trueValue="1" :falseValue="0" v-model="valueList[item.name]">{{item.label}}</Checkbox>
<DatePicker
v-if="item.type==='DatePicker'"
:type="item.dateType ? item.dateType : 'date'"
:value="valueList[item.name]"
@on-change="changeDate(item.name,$event)"
:placeholder="item.placeholder"
:style="{width:item.width ||'115px'}"
clearable
></DatePicker>
<DatePicker
v-if="item.type==='DatePickerMonth'"
type="month"
:value="valueList[item.name]"
@on-change="changeDate(item.name,$event)"
:placeholder="item.placeholder"
:style="{width:item.width ||'115px'}"
clearable
></DatePicker>
<Select
v-if="item.type==='Select' && !isManager(item.name)"
@on-change="item.onPress ? onChangePress($event, item) : ''"
size="default"
clearable
:placeholder="item.placeholder"
:filterable='item.filterable || false'
v-model="valueList[item.name]"
:style="{width:item.width ||'200px'}"
>
<Option v-for="(child,i) in selectList[item.name]" :value="child.value" :key="i">{{ child.label }}</Option>
</Select>
<Select
v-if="item.name==='taker_id'"
:placeholder="item.placeholder"
v-model="valueList[item.name]"
:remote-method="remoteMethod"
@on-clear="clearTakerList"
style="width:100px"
:loading="loading"
size="default"
filterable
clearable
remote
>
<Option v-for="(child,i) in branchManagerList" :label="child.name" :value="child.id" :key="`dept-${i}`">
<span>{{child.name}}</span>
<span style="float:right;color:#999">{{child.dept_name}}</span>
</Option>
</Select>
<!-- 可以下拉搜索 业务助理 -->
<Select
v-if="item.name=='business_uid'&&item.name!='merchandiser_uid'"
:placeholder="item.placeholder"
v-model="valueList[item.name]"
:remote-method="businessUidSearch"
@on-clear="clearList"
style="width:100px"
:loading="loading"
size="default"
filterable
clearable
remote
>
<Option v-for="(child,i) in searchList" :label="child.name" :value="child.id" :key="`dept-${i}`">{{child.name}}</Option>
</Select>
<!-- 可以下拉搜索 跟单助理 -->
<Select
v-if="item.name!='business_uid'&&item.name=='merchandiser_uid'"
:placeholder="item.placeholder"
v-model="valueList[item.name]"
:remote-method="getMerchandiserList"
@on-clear="clearList"
style="width:100px"
:loading="loading"
size="default"
filterable
clearable
remote
>
<Option v-for="(child,i) in merchandiserList" :label="child.name" :value="child.id" :key="`dept-${i}`">{{child.name}}</Option>
</Select>
<!-- 选择客户经理 -->
<template
v-if="item.name!=='taker_id'&&item.name!=='business_uid'&&item.name!=='merchandiser_uid'&&item.type==='Select' && isManager(item.name)"
>
<div class="manageSelect">
<Select
:placeholder="item.name === 'owner' ? '人员' : '客户经理'"
v-model="valueList[item.name]"
:remote-method="remoteMethod"
@on-change="changeManage"
@on-clear="clearManage"
style="width:100px"
:loading="loading"
size="default"
filterable
clearable
remote
>
<Option v-for="(child,i) in branchManagerList" :label="child.name" :value="child.id" :key="`dept-${i}`">
<span>{{child.name}}</span>
<span style="float:right;color:#999">{{child.dept_name}}</span>
</Option>
</Select>
<span style="margin:0 5px;">-</span>
<!-- <div class="department">{{department}}</div> -->
<Input v-model="department" placeholder="所属部门" disabled style="width:100px" />
</div>
</template>
</FormItem>
<FormItem>
<Button type="primary" class="mr-10" @click="handleSubmit()">{{searchText?searchText:'查询'}}</Button>
<Button type="default" class="mr-10" @click="handleReset()">{{resetText?resetText:'重置'}}</Button>
<template v-if="authButtonUrl!==''"> <!--按钮auth权限-->
<Button
type="default"
class="mr-10"
@click="onExportPress()"
v-if="exportUrl"
:loading="exportLoading"
v-auth="authButtonUrl"
>{{exportText?exportText:'导出'}}</Button>
</template>
<template v-else>
<Button
type="default"
class="mr-10"
@click="onExportPress()"
v-if="exportUrl"
:loading="exportLoading"
>{{exportText?exportText:'导出'}}</Button>
</template>
<slot name="extra"></slot>
<!-- v-auth="exportUrl" -->
</FormItem>
</Form>
</div>
</template>
<script>
// import { userSearch } from '@/api/check'
// import { businessList } from '@/api/publicAPI'
// import { merchandiserList } from '@/api/checkAllOrder'
import { post } from '@/libs/request'
import { oneOf } from '@/libs/tools'
import { downloadFile } from '@/libs/util'
export default {
name: 'searchForm',
props: {
list: {
type: Array,
default: () => []
}, // 数据列表
optionList: {
type: Object,
default: () => { }
}, // 下拉选项
searchText: {
type: String
}, // 自定义搜索名
resetText: {
type: String
}, // 自定义重置名
exportUrls: {
type: Array
},
exportUrl: {
type: String
}, // 导出接口地址
exportProcess: {
type: Boolean
}, // 点击导出 是否执行其他方法
exportText: {
type: String
}, // 自定义导出名
authButtonUrl: {
type: String,
default: ''
}
},
data () {
return {
loading: false, // 查询客户经理
exportLoading: false, // 导出
branchManagerList: [], // 部门经理
initValueList: [],
valueList: {}, // 查询参数
selectList: this.optionList, // 下拉选项
department: '', // 所属部门
searchList: [], // 下拉搜索列表
merchandiserList: [],
curExportProcess: this.exportProcess,
selectNameList: ['create_uid', 'managerId', 'owner', 'taker_id', 'manager_id', 'business_uid', 'merchandiser_uid'] // 选择部门经理的字段
}
},
created () {
this.setInitValue() // 生成提交数据结构
this.getAssistantList()
},
watch: {
list () {
this.initValueList()
},
optionList (item) {
this.selectList = item
},
curExportProcess (flag) {
this.curExportProcess = flag
}
},
methods: {
getAssistantList () {
this.list.forEach(item => {
if (item.name !== 'business_uid' && item.name === 'merchandiser_uid') {
this.businessUidSearch()
this.getMerchandiserList()
}
})
},
isManager (item) {
return oneOf(item, this.selectNameList)
},
setInitValue () {
this.initValueList = this.list.map(item => item.value)
let valueList = {}
this.list.map(item => {
valueList[item.name] = item.value
})
this.valueList = valueList
},
onChangePress (e, item) {
this.$emit(`on${item.name}Press`, e)
},
// 查询
handleSubmit () {
this.$emit('search', this.valueList)
},
// 重置
handleReset () {
this.department = ''
this.$refs['searchForm'].resetFields()
this.$emit('search', this.valueList)
},
// 选择客户经理
changeManage (value) {
this.branchManagerList.map(item => {
if (item.id === value) {
this.department = item.dept_name
}
})
},
// 清除选择客户经理
clearManage () {
this.department = ''
},
clearTakerList () {
this.branchManagerList = []
},
changeDate (item, value) {
this.valueList[item] = value
},
remoteMethod (query) {
if (query !== '') {
this.loading = true
// eslint-disable-next-line no-undef
userSearch({ name: query }).then(res => {
this.loading = false
if (res.code === 1) {
this.branchManagerList = res.data
} else {
this.branchManagerList = []
}
})
} else {
this.branchManagerList = []
}
},
businessUidSearch (query = '') {
this.loading = true
// eslint-disable-next-line no-undef
businessList({ name: query }).then(res => {
this.loading = false
if (res.code === 1) {
this.searchList = res.data
} else {
this.searchList = []
}
})
},
clearList () {
this.businessUidSearch()
this.getMerchandiserList()
},
getMerchandiserList (query = '') {
this.loading = true
// eslint-disable-next-line no-undef
merchandiserList({ name: query }).then(res => {
this.loading = false
if (res.code === 1) {
this.merchandiserList = res.data
this.merchandiserList.unshift({ name: '空', id: -1 })
} else {
this.merchandiserList = []
}
})
},
onExportPress () {
// 点击导出按钮 是否执行其他方法
if (this.curExportProcess) {
this.$emit('exportMethod')
return
}
this.exportExcel()
},
exportExcel (param) {
this.exportLoading = true
post(this.exportUrl, param || this.valueList, {}, 'blob').then(({ data, fileName }) => {
this.exportLoading = false
return downloadFile(data, fileName)
})
}
}
}
</script>
<style lang="less" scoped>
/deep/ .ivu-select-dropdown {
min-width: 210px !important;
}
/deep/.manageSelect .ivu-input {
background: #f5f5f5;
color: #333;
text-align: center;
}
/deep/.ivu-form-item {
margin-bottom: 10px !important;
}
</style>

Some files were not shown because too many files have changed in this diff Show More