Browse Source

Merge remote-tracking branch 'origin/master'

master
djz236@163.com 2 years ago
parent
commit
c81b6e6629
  1. 4
      docs/databases/table_create_customer-cashed.sql
  2. 2
      docs/databases/table_create_report-inventory.sql
  3. BIN
      docs/kaifa/cryptoDemo.zip
  4. 28
      supervise-customer-ui/src/api/customer/csmcash.js
  5. 298
      supervise-customer-ui/src/layout/components/AppMain.vue
  6. 754
      supervise-customer-ui/src/views/daydataupload/cash/cashedit.vue
  7. 4
      supervise-customer-ui/src/views/daydataupload/cash/index.vue
  8. 4
      supervise-report-ui/.env.development
  9. 22
      supervise-report-ui/src/views/reportCenter/inventorySummary.vue
  10. 4
      supervise-risk-ui/src/views/risk/RiskManage/RiskAdd.vue
  11. 5
      supervise-uniapp/pages.json
  12. 6
      supervise-uniapp/pages/login/login.vue
  13. 12
      supervise-wx-mp/App.vue
  14. 2
      supervise-wx-mp/common/request.api.js
  15. 10
      supervise-wx-mp/pages.json
  16. 129
      supervise-wx-mp/pages/index/auditReport.vue
  17. 37
      supervise-wx-mp/pages/index/enterpriseRisk.vue
  18. 88
      supervise-wx-mp/pages/index/inventoryReport.vue
  19. 1
      warehousing-system/project_web/package.json
  20. 1
      warehousing-system/project_web/public/index.html
  21. BIN
      warehousing-system/project_web/src/assets/images/notAvailable.jpg
  22. 25
      warehousing-system/project_web/src/components/Home.vue
  23. 174
      warehousing-system/project_web/src/components/initial_value/storehouse.vue
  24. 207
      warehousing-system/project_web/src/components/pictureList/pictureList.vue
  25. 38
      warehousing-system/project_web/src/components/pictureList/pictureParticulars.vue
  26. 7
      warehousing-system/project_web/src/components/stockManagement/stockList.vue
  27. 21
      warehousing-system/project_web/src/components/uploadFile/uploadTwo.vue
  28. 8
      warehousing-system/project_web/src/main.js
  29. 4
      warehousing-system/project_web/src/router/index.js
  30. 14
      warehousing-system/project_web_ui/.editorconfig
  31. 9
      warehousing-system/project_web_ui/.env.development
  32. 9
      warehousing-system/project_web_ui/.env.production
  33. 8
      warehousing-system/project_web_ui/.env.staging
  34. 4
      warehousing-system/project_web_ui/.eslintignore
  35. 199
      warehousing-system/project_web_ui/.eslintrc.js
  36. 18
      warehousing-system/project_web_ui/.gitignore
  37. 5
      warehousing-system/project_web_ui/.travis.yml
  38. 21
      warehousing-system/project_web_ui/LICENSE
  39. 0
      warehousing-system/project_web_ui/README-zh.md
  40. 90
      warehousing-system/project_web_ui/README.md
  41. 15
      warehousing-system/project_web_ui/babel.config.js
  42. 24
      warehousing-system/project_web_ui/jest.config.js
  43. 9
      warehousing-system/project_web_ui/jsconfig.json
  44. 57
      warehousing-system/project_web_ui/mock/index.js
  45. 81
      warehousing-system/project_web_ui/mock/mock-server.js
  46. 29
      warehousing-system/project_web_ui/mock/table.js
  47. 84
      warehousing-system/project_web_ui/mock/user.js
  48. 25
      warehousing-system/project_web_ui/mock/utils.js
  49. 76
      warehousing-system/project_web_ui/package.json
  50. 14470
      warehousing-system/project_web_ui/pnpm-lock.yaml
  51. 8
      warehousing-system/project_web_ui/postcss.config.js
  52. BIN
      warehousing-system/project_web_ui/public/favicon.ico
  53. BIN
      warehousing-system/project_web_ui/public/faviconhr.ico
  54. BIN
      warehousing-system/project_web_ui/public/image/liuchengtu.jpg
  55. 17
      warehousing-system/project_web_ui/public/index.html
  56. 14
      warehousing-system/project_web_ui/src/App.vue
  57. 13
      warehousing-system/project_web_ui/src/api/Common/Upload.js
  58. 25
      warehousing-system/project_web_ui/src/api/Common/areaPicker.js
  59. 13
      warehousing-system/project_web_ui/src/api/Common/permission.js
  60. 132
      warehousing-system/project_web_ui/src/api/Risk/index.js
  61. 68
      warehousing-system/project_web_ui/src/api/Risk/riskIndex.js
  62. 35
      warehousing-system/project_web_ui/src/api/User/login.js
  63. 66
      warehousing-system/project_web_ui/src/api/flow/cunfangdidianbiangeng.js
  64. 33
      warehousing-system/project_web_ui/src/api/flow/flowable.js
  65. 80
      warehousing-system/project_web_ui/src/api/flow/tiaochekaipiaoshenqing.js
  66. 80
      warehousing-system/project_web_ui/src/api/flow/tiaozhangshenqing.js
  67. 50
      warehousing-system/project_web_ui/src/api/flow/todo.js
  68. 70
      warehousing-system/project_web_ui/src/api/flow/vehicleReturn.js
  69. 47
      warehousing-system/project_web_ui/src/api/system/Role/role.js
  70. 69
      warehousing-system/project_web_ui/src/api/system/Role/roleManage.js
  71. 138
      warehousing-system/project_web_ui/src/api/system/basefkManage/index.js
  72. 32
      warehousing-system/project_web_ui/src/api/system/dataDict/dataDict.js
  73. 120
      warehousing-system/project_web_ui/src/api/system/departments/departments.js
  74. 52
      warehousing-system/project_web_ui/src/api/system/dictType/dictCommon.js
  75. 72
      warehousing-system/project_web_ui/src/api/system/dictType/index.js
  76. 84
      warehousing-system/project_web_ui/src/api/system/functional/functional.js
  77. 16
      warehousing-system/project_web_ui/src/api/system/log/index.js
  78. 115
      warehousing-system/project_web_ui/src/api/system/menu/index.js
  79. 36
      warehousing-system/project_web_ui/src/api/system/organization/organization.js
  80. 61
      warehousing-system/project_web_ui/src/api/system/postManage/index.js
  81. 139
      warehousing-system/project_web_ui/src/api/system/roleAdminister/index.js
  82. 31
      warehousing-system/project_web_ui/src/api/system/roleAdminister/rolemenus.js
  83. 21
      warehousing-system/project_web_ui/src/api/system/roleMenus/index.js
  84. 111
      warehousing-system/project_web_ui/src/api/system/sources/index.js
  85. 84
      warehousing-system/project_web_ui/src/api/system/user/Auser.js
  86. 38
      warehousing-system/project_web_ui/src/api/system/user/login.js
  87. 43
      warehousing-system/project_web_ui/src/api/system/user/user.js
  88. 32
      warehousing-system/project_web_ui/src/api/system/userAdminister/client.js
  89. 69
      warehousing-system/project_web_ui/src/api/system/userAdminister/index.js
  90. 60
      warehousing-system/project_web_ui/src/api/system/userManage/index.js
  91. 56
      warehousing-system/project_web_ui/src/api/user.js
  92. BIN
      warehousing-system/project_web_ui/src/assets/404_images/404.png
  93. BIN
      warehousing-system/project_web_ui/src/assets/404_images/404_cloud.png
  94. BIN
      warehousing-system/project_web_ui/src/assets/home/anrui.png
  95. BIN
      warehousing-system/project_web_ui/src/assets/home/bIcon1.png
  96. BIN
      warehousing-system/project_web_ui/src/assets/home/bIcon2.png
  97. BIN
      warehousing-system/project_web_ui/src/assets/home/bIcon3.png
  98. BIN
      warehousing-system/project_web_ui/src/assets/home/bIcon4.png
  99. BIN
      warehousing-system/project_web_ui/src/assets/home/bIcon5.png
  100. BIN
      warehousing-system/project_web_ui/src/assets/home/bIcon6.png

4
docs/databases/table_create_customer-cashed.sql

@ -147,7 +147,9 @@ CREATE TABLE `csm_cash_report` (
`tillTime` varchar(100) DEFAULT NULL COMMENT '截止时间',
`accountBalance` double(12,2) DEFAULT 0 COMMENT '账户余额',
`auditResult` varchar(1024) DEFAULT NULL COMMENT '审核结果',
`reportDate` varchar(100) DEFAULT NULL COMMENT '日期(yyyy年MM月dd日)',
`reportDate` varchar(100) DEFAULT NULL COMMENT '日期(yyyy年MM月dd日)',
`fileFullPath` varchar(255) DEFAULT NULL COMMENT '文件完整路径',
`fileUrl` varchar(1024) DEFAULT NULL COMMENT '文件下载地址',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='每日回款审核报告' ;

2
docs/databases/table_create_report-inventory.sql

@ -36,6 +36,7 @@ CREATE TABLE `report_inventory_day_store` (
`storeCode` VARCHAR(100) DEFAULT NULL COMMENT '门店编号',
`storeCodeName` VARCHAR(100) DEFAULT NULL COMMENT '[门店编号]门店名称',
`productCountNumber` int(11) DEFAULT 0 COMMENT '商品数量',
`typeNumber` int(0) NULL DEFAULT NULL COMMENT '商品品种数量',
`productAmount` DOUBLE(12,2) DEFAULT 0 COMMENT '货值',
`countAmount` double(12,2) DEFAULT NULL COMMENT '合计货值',
`countProductNumber` bigint(11) DEFAULT 0 COMMENT '合计品种数量',
@ -58,6 +59,7 @@ CREATE TABLE `report_inventory_day_tobacco_store` (
`storeCode` VARCHAR(100) DEFAULT NULL COMMENT '门店编号',
`storeCodeName` VARCHAR(100) DEFAULT NULL COMMENT '[门店编号]门店名称',
`productCountNumber` int(11) DEFAULT 0 COMMENT '品种数量',
`typeNumber` int(0) NULL DEFAULT NULL COMMENT '商品品种数量',
`productAmount` DOUBLE(12,2) DEFAULT 0 COMMENT '货值',
`countAmount` double(12,2) DEFAULT NULL COMMENT '合计货值',
`countProductNumber` bigint(11) DEFAULT 0 COMMENT '合计品种数量',

BIN
docs/kaifa/cryptoDemo.zip

Binary file not shown.

28
supervise-customer-ui/src/api/customer/csmcash.js

@ -11,10 +11,32 @@ export default {
data: params
})
},
// 通过sid查询一条记录
fetchBySid: function(sid) {
// 根据SID获取一条日志记录
fetchLogBySid: function(sid) {
return request({
url: '/supervise/v1/gdinstoragelog/fetchDetailsBySid/' + sid
baseURL: '/api',
url: '/customer/csmcash/fetchLogBySid/' + sid
})
},
// 根据日志SID获取销售列表
listSalesByLogsid: function(sid) {
return request({
baseURL: '/api',
url: '/customer/csmcash/listSalesByLogsid/' + sid
})
},
// 根据日志SID获取回款列表
listIncomeByLogsid: function(sid) {
return request({
baseURL: '/api',
url: '/customer/csmcash/listIncomeByLogsid/' + sid
})
},
// 根据日志SID获取比对列表
listDifferentByLogsid: function(sid) {
return request({
baseURL: '/api',
url: '/customer/csmcash/listDifferentByLogsid/' + sid
})
},
// 通过sid清除临时数据

298
supervise-customer-ui/src/layout/components/AppMain.vue

@ -1,268 +1,69 @@
<template>
<div>
<section class="app-main" style="height: calc(100vh - 140px);">
<section class="app-main" style="height: calc(100vh - 140px);">
<transition name="fade-transform" mode="out-in">
<keep-alive :include="cachedViews">
<router-view :key="key" />
</keep-alive>
</transition>
</section>
<!-- <div v-show="path == '/index'">
<div class="index" style="height: calc(100vh - 200px);overflow-x: hidden;overflow-y: auto;">
<div class="index_top">
<div style="flex: 1;">
<span class="index_top_text" @click="show">数据总览</span>
<el-date-picker v-model="params.date" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</div>
<div class="index_top_right">{{info.notice}}</div>
</div>
<div class="index_content">
<div class="index_content_top">
<div class="item_border" style="display: flex;flex-direction: row; padding: 30px 20px; flex: 1;">
<img src="../../assets/images/cgsp.png" style="width: 54px;height: 54px;" />
<div style="display: flex;flex-direction: column; margin-left: 10px;">
<span style="font-size: 20px;">27608927.45</span>
<div style="margin-top: 10px;">
<span style="font-size: 14px;color: #999;">常规商品销售额</span>
<span style="font-size: 14px; margin-left: 10px; color: #13BDA0 ;"> 25.6%</span>
</div>
</div>
</div>
<div style="flex: 0.3;"></div>
<div class="item_border" style="display: flex;flex-direction: row; padding: 30px 20px; flex: 1;">
<img src="../../assets/images/cgsp.png" style="width: 54px;height: 54px;" />
<div style="display: flex;flex-direction: column; margin-left: 10px;">
<span style="font-size: 20px;">1244255.22</span>
<div style="margin-top: 10px;">
<span style="font-size: 14px;color: #999;">烟草商品销售额</span>
<span style="font-size: 14px; margin-left: 10px; color: #13BDA0 ;"> 9.8%</span>
</div>
</div>
</div>
<div style="flex: 0.3;"></div>
<div class="item_border" style="display: flex;flex-direction: row; padding: 30px 20px; flex: 1;">
<img src="../../assets/images/cgsp.png" style="width: 54px;height: 54px;" />
<div style="display: flex;flex-direction: column; margin-left: 10px;">
<span style="font-size: 20px;">636449.84</span>
<div style="margin-top: 10px;">
<span style="font-size: 14px;color: #999;">库存总价值</span>
<span style="font-size: 14px; margin-left: 10px; color: #FF4747 ;"> 15.6%</span>
</div>
</div>
</div>
<div style="flex: 0.3;"></div>
<div class="item_border" style="display: flex;flex-direction: row; padding: 30px 20px; flex: 1;">
<img src="../../assets/images/cgsp.png" style="width: 54px;height: 54px;" />
<div style="display: flex;flex-direction: column; margin-left: 10px;">
<span style="font-size: 20px;">3822945.45</span>
<div style="margin-top: 10px;">
<span style="font-size: 14px;color: #999;">在途货物总价值</span>
<span style="font-size: 14px; margin-left: 10px; color: #FF4747 ;"> 15.6%</span>
</div>
</div>
</div>
</div>
<div class="index_content_bottom">
<div class="item_border" style="display: flex;flex-direction: column; padding: 20px 20px; flex: 1;">
<span style="font-weight: 600;">阀值分析</span>
<div id="main1" ref="main1" class="middle">
</div>
</div>
<div style="flex: 0.1;"></div>
<div class="item_border" style="display: flex;flex-direction: column; padding: 20px 20px; flex: 1;">
<span style="font-weight: 600;">在途货物分析</span>
<div id="main2" ref="main2" class="middle">
</div>
</div>
</div>
</div>
<div class="index_bottom">
<div class="item_border" style="display: flex;flex-direction: column; padding: 20px 20px; flex: 0.4;">
<div style="display: flex;flex-direction: row; justify-content: space-between; align-items: center;">
<span style="font-weight: 600;">快捷操作</span>
<span style="color: #4386FF; font-size: 13px; text-decoration: underline;">查看更多</span>
</div>
<div style="display: flex;align-items: center; margin-top: 10px;">
<img src="../../assets/images/cgsp.png" style="width: 54px;height: 54px;" />
<span style="font-weight: 500;margin-left: 10px;">采购申请</span>
</div>
<div style="display: flex;align-items: center; margin-top: 10px;">
<img src="../../assets/images/cgsp.png" style="width: 54px;height: 54px;" />
<span style="font-weight: 500;margin-left: 10px;">用款申请</span>
</div>
<div style="display: flex;align-items: center; margin-top: 10px;">
<img src="../../assets/images/cgsp.png" style="width: 54px;height: 54px;" />
<span style="font-weight: 500;margin-left: 10px;">供应商管理</span>
</div>
<div style="display: flex;align-items: center; margin-top: 10px;">
<img src="../../assets/images/cgsp.png" style="width: 54px;height: 54px;" />
<span style="font-weight: 500;margin-left: 10px;">数据上报</span>
</div>
</div>
<div style="flex: 0.1;"></div>
<div class="item_border" style="display: flex;flex-direction: column; padding: 20px 20px; flex: 1;">
<div style="display: flex;flex-direction: row; justify-content: space-between; align-items: center;">
<span style="font-weight: 600;">最新消息</span>
<span style="color: #4386FF; font-size: 13px; text-decoration: underline;">查看更多</span>
</div>
<div style="margin-top: 20px;" v-for="(item, index) in newMessageList" :key="index">
<div
style="display: flex;flex-direction: row; justify-content: space-between; align-items: center; padding-top: 20px;"
@click="companyInfo(item.sid)">
<span style="font-size: 16px;color: #444;overflow: hidden;margin-right:20px;flex: 1;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1 ;
-webkit-box-orient: vertical;">{{ item.name }}</span>
<span style="font-size: 13px;color: #999;">{{ item.date }}</span>
</div>
</div>
</div>
<div style="flex: 0.1;"></div>
<div class="item_border" style="display: flex;flex-direction: column; padding: 20px 20px; flex: 1;">
<div style="display: flex;flex-direction: row; justify-content: space-between; align-items: center;">
<span style="font-weight: 600;">警报中心</span>
<span style="color: #4386FF; font-size: 13px; text-decoration: underline;">查看更多</span>
</div>
<div style="margin-top: 20px;" v-for="(item, index) in larmCenterList" :key="index">
<div
style="display: flex;flex-direction: row; justify-content: space-between; align-items: center; padding-top: 20px;"
@click="companyInfo(item.sid)">
<span style="font-size: 16px;color: #444;overflow: hidden;margin-right:20px;flex: 1;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1 ;
-webkit-box-orient: vertical;">{{ item.name }}</span>
<span style="font-size: 13px;color: #999;">{{ item.date }}</span>
</div>
</div>
</div>
</div>
</div>
</div>
-->
</div>
</template>
<script>
import * as echarts from 'echarts';
import * as echarts from 'echarts'
export default {
name: 'AppMain',
data() {
return {
path: "",
path: '',
params: {
date: null
},
info: {
date: "",
notice: "通知:请于2023年3月3日16点向***3189帐户回款1231234元。[点击回款]"
date: '',
notice: '通知:请于2023年3月3日16点向***3189帐户回款1231234元。[点击回款]'
},
newMessageList: [{
sid: "1",
name: "[消息]您的订单已经审核完毕等待放款。",
date: "2023-01-01"
sid: '1',
name: '[消息]您的订单已经审核完毕等待放款。',
date: '2023-01-01'
}, {
sid: "2",
name: "[通知]通知仓库商品产生1级风险,请及时做出回复。",
date: "2023-01-01"
sid: '2',
name: '[通知]通知仓库商品产生1级风险,请及时做出回复。',
date: '2023-01-01'
}, {
sid: "3",
name: "[消息]您的订单由于商品不存在被退回。",
date: "2023-01-01"
sid: '3',
name: '[消息]您的订单由于商品不存在被退回。',
date: '2023-01-01'
}, {
sid: "4",
name: "[消息]请于2023年3月3日16点向***3189帐户回款231234元。",
date: "2023-01-01"
sid: '4',
name: '[消息]请于2023年3月3日16点向***3189帐户回款231234元。',
date: '2023-01-01'
}],
larmCenterList: [{
sid: "1",
name: "仓库于2023年3月3日产生1级风险。",
date: "2023-01-01"
sid: '1',
name: '仓库于2023年3月3日产生1级风险。',
date: '2023-01-01'
}, {
sid: "2",
name: "[通知]通知仓库商品产生1级出回复。",
date: "2023-01-01"
sid: '2',
name: '[通知]通知仓库商品产生1级出回复。',
date: '2023-01-01'
}, {
sid: "3",
name: "[消息]您的订单由于商品不存在被退回。",
date: "2023-01-01"
sid: '3',
name: '[消息]您的订单由于商品不存在被退回。',
date: '2023-01-01'
}, {
sid: "4",
name: "[消息]请于2**3189帐户回款231234元。",
date: "2023-01-01"
sid: '4',
name: '[消息]请于2**3189帐户回款231234元。',
date: '2023-01-01'
}
@ -281,19 +82,18 @@ display: -webkit-box;
},
mounted() {
this.drawLine1();
this.drawLine2();
this.drawLine1()
this.drawLine2()
},
methods: {
show() {
this.drawLine1();
this.drawLine2();
this.drawLine1()
this.drawLine2()
},
drawLine1() {
// let mychart = echarts.init(this.$refs.main1)
var myChart = echarts.init(document.getElementById('main1'));
var myChart = echarts.init(document.getElementById('main1'))
//
myChart.setOption({
tooltip: {
@ -367,7 +167,7 @@ display: -webkit-box;
type: 'bar',
tooltip: {
valueFormatter: function(value) {
return value + ' 万元';
return value + ' 万元'
}
},
data: [
@ -379,7 +179,7 @@ display: -webkit-box;
type: 'bar',
tooltip: {
valueFormatter: function(value) {
return value + ' 万元';
return value + ' 万元'
}
},
data: [
@ -392,20 +192,20 @@ display: -webkit-box;
yAxisIndex: 1,
tooltip: {
valueFormatter: function(value) {
return value + ' %';
return value + ' %'
}
},
data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
}
]
});
})
},
//
drawLine2() {
// domecharts
// let mychart = echarts.init(this.$refs.main2)
var myChart = echarts.init(document.getElementById('main2'));
var myChart = echarts.init(document.getElementById('main2'))
//
// console.log('option', obj)
myChart.setOption({
@ -435,7 +235,7 @@ display: -webkit-box;
},
tooltip: {
show: true,
trigger: "item"
trigger: 'item'
},
series: [{
name: '在途货物分析',
@ -447,25 +247,25 @@ display: -webkit-box;
borderRadius: 8
},
data: [{
"value": 2313123,
"name": "订单总额"
'value': 2313123,
'name': '订单总额'
},
{
"value": 4359354,
"name": "实际到货价值"
'value': 4359354,
'name': '实际到货价值'
},
{
"value": 2313123,
"name": "在途货价值"
'value': 2313123,
'name': '在途货价值'
},
{
"value": 2313123,
"name": "超出价值"
'value': 2313123,
'name': '超出价值'
}
]
}]
})
},
}
}
}
</script>

754
supervise-customer-ui/src/views/daydataupload/cash/cashedit.vue

@ -1,5 +1,5 @@
<template>
<div>
<div class="app-container">
<!-- 标题按钮部分开始 -->
<div class="tab-header webtop">
<!-- 标题 -->
@ -13,271 +13,384 @@
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>卡片名称</span>
<el-button style="float: right; padding: 3px 0" type="text">操作按钮</el-button>
</div>
<div v-for="o in 4" :key="o" class="text item">
{{ '列表内容 ' + o }}
</div>
</el-card>
<div class="stepsLay">
<!-- 步骤条 -->
<el-steps :active="active" simple class="stepsLay_top">
<el-step title="填写供应商信息" icon="el-icon-edit-outline" />
<el-step title="上传营业执照" icon="el-icon-upload" />
<el-step title="上传合同" icon="el-icon-picture" />
<el-step title="关联第二代码" icon="el-icon-circle-plus" />
</el-steps>
<!-- 填写供应商信息-->
<el-card v-show="active===0" class="box-card">
<div class="item">
<span class="item_text">供应商名称</span>
<el-input v-model="formobj.name" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">供应商编码</span>
<el-input v-model="formobj.codeUnified" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">联系人</span>
<el-input v-model="formobj.contacts" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">电话</span>
<el-input v-model="formobj.telephone" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">单位地址</span>
<el-input v-model="formobj.address" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">法人代表</span>
<el-input v-model="formobj.legalRepresentative" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">开户行</span>
<el-input v-model="formobj.bankName" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">银行账户</span>
<el-input v-model="formobj.bankAccount" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">银行账号</span>
<el-input v-model="formobj.bankAccountNumber" placeholder="" class="item_input" clearable />
</div>
<div class="item" style="margin-bottom: 20px;">
<span class="item_text">营业执照号</span>
<el-input v-model="formobj.businessLicenseNo" placeholder="" class="item_input" clearable />
</div>
</el-card>
<!-- 上传营业执照 -->
<el-card v-show="active===1" class="box-card">
<div style="display: flex;margin-top: 20px;margin-bottom: 20px;">
<span style="display: flex;font-size:18px;margin-left: 20px;">营业执照</span>
<div style="display: flex; flex-direction: row;">
<img
src="https://ts1.cn.mm.bing.net/th/id/R-C.ff9d35a24ab8939a9cf51706cc0a3386?rik=CdofqeWtaZ6lHw&riu=http%3a%2f%2fimg95.699pic.com%2fdesgin_photo%2f40064%2f1304_list.jpg&ehk=7Fgvp%2b0uNJ93xDAUhg0EbJc%2fNpU1jZbYy9EKwWFzSgg%3d&risl=&pid=ImgRaw&r=0"
style="margin-left: 30px; width: 148px;height: 148px;"
>
<upload
ref="uploadImg"
v-model="imgList"
style="margin-left: 80px;"
:limit="3"
bucket="map"
:upload-data="{ type: '0001' }"
@change="backData"
/>
</div>
</div>
</el-card>
<!-- 上传合同 -->
<el-card v-show="active===2" class="box-card">
<div class="item">
<span class="item_text">合同编号</span>
<el-input v-model="formobj.contractInfo.contractNo" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">合同有效期</span>
<el-date-picker
v-model="formobj.contractInfo.contractValidity"
class="item_input"
type="date"
clearable
value-format="yyyy-MM-dd"
placeholder="选择日期"
clearable
/>
</div>
<div class="item">
<span class="item_text">签署人</span>
<el-input v-model="formobj.contractInfo.signatory" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">合同金额</span>
<el-input
v-model="formobj.contractInfo.contractPrice"
placeholder=""
class="item_input"
clearable
@keydown.native="formatNum"
@keyup.native="formatNum"
/>
</div>
<div class="item">
<span class="item_text">经办人</span>
<el-input v-model="formobj.contractInfo.handledBy" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">签署组织</span>
<el-input v-model="formobj.contractInfo.signingOrganization" placeholder="" class="item_input" clearable />
</div>
<div class="item" style="margin-top: 80px; margin-bottom: 80px;">
<span class="item_text">合同附件</span>
<div class="item_input" style="display: flex; flex-direction: row;">
<img
src="https://ts1.cn.mm.bing.net/th/id/R-C.de25aa371b777f0a779a1d2be719510c?rik=XHbzQqTmVDdirg&riu=http%3a%2f%2fimgs.ppt118.com%2fword%2fotherdoc%2f2018%2f10%2f12%2f0b5445a1-3.png_w800&ehk=F78OU5oXSPtPsbT7OzG%2bgHFdOl%2flolfxSH0zLTFUJHQ%3d&risl=&pid=ImgRaw&r=0"
style="width: 148px;height: 148px;"
>
<upload
ref="uploadImg2"
v-model="imgList2"
style="margin-left: 50px;"
:limit="3"
bucket="map"
:upload-data="{ type: '0001' }"
@change="backData2"
/>
<div class="listconadd" style="padding-bottom: 100px;">
<el-collapse value="1">
<el-collapse-item title="1. 每日回款核对" name="1" class="formadd">
<div class="title">
<div>每日回款核对</div>
<div>
<span style="padding-right: 20px">合计数量:{{ saleslist.length }}</span>
<span>合计金额:{{ sumSalesAmount }}</span>
</div>
</div>
</el-card>
<!-- 关联第二代码 -->
<el-card v-show="active===3" class="box-card">
<!-- <div class="item4">
<div class="item4_left">
<span>关联第二代码</span>
<div style="display: flex; flex-direction: column;align-items: center;margin-top: 10px;">
<el-input v-model="inputText" placeholder="" class="item4_left_input" clearable />
<span class="item4_left_text">添加</span>
</div>
</div>
<el-table show-summary :data="saleslist" border style="width: 100%">
<el-table-column fixed label="序号" width="60px" align="center" prop="serialNumber" />
<el-table-column label="销售日期" align="center" width="120" prop="dataDate" />
<el-table-column label="支付渠道" align="center" width="140" prop="disbursementChannelName" />
<el-table-column label="金额(元)" align="center" width="120" prop="amount" />
<el-table-column label="对应公司主体" align="center" width="200" prop="CompanyName" />
<el-table-column label="到账周期" align="center" width="100" prop="accountCycleDays" />
<el-table-column label="预计回款日期" align="center" width="120" prop="antipateCashedDate" />
<el-table-column label="财务到账金额" align="center" width="120" prop="inaccountAmount" />
<el-table-column label="到账差额" align="center" width="120" prop="differentAmount" />
<el-table-column label="差额预计到账时间" align="center" width="150" prop="antipateDifferentDate" />
<el-table-column label="备注" show-overflow-tooltip prop="remarks" />
</el-table>
</el-collapse-item>
</el-collapse>
<el-collapse value="2">
<el-collapse-item title="2. 每日回款台账" name="2" class="formadd">
<div class="title">
<div>每日回款台账</div>
<div>
<div v-for="(item,index) in formobj.codeIndex" :key="index" class="item4_right" style="margin-top: 10px;">
<span class="item4_right_list_text">{{item}}</span>
<span class="item4_right_list_delect">删除</span>
</div>
<span style="padding-right: 20px">合计数量:{{ incomelist.length }}</span>
<span style="padding-right: 20px">合计金额:{{ sumIncomeAmount }}</span>
<span style="padding-right: 20px">
<el-button plain size="small" type="primary" icon="el-icon-plus" @click="showIncomeAdd">填写回款记录</el-button>
<el-button plain size="small" type="danger" icon="el-icon-circle-check" @click="incomeListSave">保存回款记录</el-button>
</span>
</div>
</div> -->
<div class="item">
<span class="item_text">供应商名称</span>
<span class="item_input">{{ formobj.name }}</span>
</div>
<div class="item">
<span class="item_text">供应商编码</span>
<span class="item_input">{{ formobj.codeUnified }}</span>
</div>
<div class="item" style="height: auto; align-items: start;">
<span class="item_text">第二代码</span>
<div style=" flex: 4.4; display: flex;flex-direction: column; margin-left: 10px;">
<div v-for="(item,index) in formobj.codeIndex" :key="index" class="item_right">
<span class="item_right_list_text">{{ item }}</span>
<span class="item_right_list_delect" @click="showDelectDialog(index)">删除</span>
</div>
<div style="display: flex; flex-direction: row;align-items: center;margin-top: 10px;">
<el-input v-model="inputText" placeholder="" type="number" class="item_left_input" clearable />
<span class="item_left_text" @click="add">添加</span>
</div>
<el-table :data="incomelist" border style="width: 100%">
<el-table-column fixed label="序号" width="60px" align="center" prop="serialNumber" />
<el-table-column label="回款日期" align="center" width="120" prop="dataDate" />
<el-table-column label="回款渠道" align="center" width="140" prop="collectionChannelName" />
<el-table-column label="回款金额(元)" align="center" width="140" prop="amount" />
<el-table-column label="销售日期" align="center" width="120" prop="saleDate" />
<el-table-column label="备注" show-overflow-tooltip prop="remarks" />
<el-table-column fixed="right" width="180" label="操作" align="center">
<template slot-scope="scope">
<el-button type="success" size="mini" icon="el-icon-edit" @click="toEdit(scope.row)">修改</el-button>
<el-button type="warning" size="mini" icon="el-icon-delete" @click="toDele(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
<el-collapse value="3">
<el-collapse-item title="3. 每日回款分析" name="3" class="formadd">
<div class="title">
<div>每日回款分析</div>
<div>
<span style="padding-right: 20px">合计数量:</span>
<span>合计金额:</span>
</div>
</div>
</el-card>
<!-- 底部按钮 -->
<div>
<el-button v-if="active==1||active==2||active==3" class="deployBtn" @click="prev">上一步</el-button>
<el-button v-if="active==0||active==1||active==2" class="deployBtn" @click="next">下一步</el-button>
<el-button v-if="active==3" class="deployBtn" @click="submit">提交</el-button>
</div>
<!-- 删除提示框 -->
<el-dialog title="提示" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
<span>是否确认要删除此管理代码</span>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="delect()"> </el-button>
</span>
</el-dialog>
</div>
<el-table :data="differentlist" border style="width: 100%">
<el-table-column fixed label="序号" width="60px" align="center" prop="serialNumber" />
<el-table-column label="销售日期" align="center" width="100" prop="saleDate" />
<el-table-column label="支付渠道" align="center" prop="disbursementChannelName" />
<el-table-column label="金额(元)" align="center" width="100" prop="amount" />
<el-table-column label="对应公司主体" align="center" width="100" prop="CompanyName" />
<el-table-column label="回款周期" align="center" width="100" prop="accountCycle" />
<el-table-column label="T+" align="center" width="100" prop="accountCycleDays" />
<el-table-column label="应回款日期" align="center" width="150" prop="antipateCashedDate" />
<el-table-column label="实际回款日期" align="center" width="100" prop="realCashedDate" />
<el-table-column label="回款金额" align="center" width="150" prop="cashedAmount" />
<el-table-column label="回款差额" align="center" width="150" prop="differentAmount" />
<el-table-column label="差额预计到账日期" align="center" width="150" prop="antipateDifferentDate" />
<el-table-column label="备注" show-overflow-tooltip align="center" width="150" prop="remarks" />
</el-table>
</el-collapse-item>
</el-collapse>
</div>
<el-dialog title="填写回款记录" :visible.sync="dialogVisible" width="40%" :before-close="incomeClose">
<el-form ref="form_income" :model="incomeObj" :rules="rules" label-position="right" class="formadd">
<div class="title">
<div>回款信息</div>
</div>
<el-row>
<el-col :span="6" class="tleftb">
<span>回款日期</span>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item prop="dataDate"> <el-date-picker v-model="incomeObj.dataDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<span>回款渠道</span>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item prop="collectionChannelSid"> <el-select v-model="incomeObj.collectionChannelSid" placeholder="请选择">
<el-option v-for="item in collectionChannelList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<span>回款金额</span>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item prop="amount"><el-input
v-model="incomeObj.amount"
oninput="value=value.replace(/[^0-9.]/g,'')"
placeholder=""
class="addinputw"
clearable
/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<span>销售日期</span>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item prop="saleDate"> <el-date-picker v-model="incomeObj.saleDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6" class="tleftb">
<span>备注</span>
</el-col>
<el-col :span="18" class="trightb">
<el-form-item><el-input v-model="incomeObj.remarks" type="textarea" :rows="2" placeholder="" class="addinputw" clearable /></el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="incomeClose"> </el-button>
<el-button type="primary" @click="incomeListAdd()"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import req from '@/api/supervise/supplierbankinfo'
import upload from '@/components/uploadFile/upload_yanchejianchaTuBiao'
import req from '@/api/customer/csmcash'
import {
parseTime
} from '@/utils/index'
export default {
components: {
upload
},
components: {},
data() {
var checkIsNumberAge = (rule, value, callback) => {
if (!value) { // 使text
callback(new Error(rule.text ? rule.text : '请输入'))
} else {
// const reg = /^[0-9]*$/
const reg = /^[+-]?\d+(?:\.\d{1,4})?$/
if (reg.test(value) && value >= 0) {
callback()
} else {
if (!String(value).indexOf('.') + 1) {
callback(new Error('请输入数字!'))
} else {
callback(new Error('仅支持小数点后4位!'))
}
}
}
}
return {
collectionChannelList: [{
sid: '1',
name: '微信'
},
{
sid: '2',
name: '美团'
},
{
sid: '3',
name: '京东到家'
},
{
sid: '4',
name: '归集款里的批发款'
},
{
sid: '5',
name: '饿了么'
},
{
sid: '6',
name: '支付宝'
},
{
sid: '7',
name: '京东小时购'
}
],
dialogVisible: false,
itemIndex: 0,
active: 0,
inputText: '',
submitdisabled: false,
imgList: [],
imgList2: [],
formobj: {
name: '',
codeUnified: '',
contacts: '',
telephone: '',
address: '',
bankName: '',
bankAccount: '',
bankAccountNumber: '',
legalRepresentative: '',
businessLicenseNo: '',
businessLicenseFiles: [],
contractInfo: {
contractNo: '1',
contractValidity: '',
signatory: '',
contractPrice: '',
handledBy: '',
signingOrganization: '',
contractFiles: []
},
codeIndex: []
sid: '',
dataDate: ''
},
saleslist: [],
incomelist: [],
differentlist: [],
incomeObj: {
dataDate: parseTime(new Date(), '{y}-{m}-{d}'), //
collectionChannelSid: '1', //
collectionChannelName: '', //
amount: '', //
saleDate: parseTime(new Date(), '{y}-{m}-{d}'), //
remarks: '', //
logsid: '',
serialNumber: 0
},
incomeCurrent: null,
rules: {
dataDate: [{
required: true,
message: '请选择回款日期',
trigger: 'blur'
}],
collectionChannelSid: [{
required: true,
message: '请选择回款渠道',
trigger: 'blur'
}],
amount: [{
validator: checkIsNumberAge,
trigger: 'blur'
}],
saleDate: [{
required: true,
message: '请选择销售日期',
trigger: 'blur'
}]
}
}
},
computed: {
sumSalesAmount() {
let p = 0
this.saleslist.forEach(x => {
p += Number(x.amount)
})
return Number(p).toFixed(2)
},
sumIncomeAmount() {
let p = 0
this.incomelist.forEach(x => {
p += Number(x.amount)
})
return Number(p).toFixed(2)
}
},
created() {},
methods: {
showEdit(row) {
this.formobj.sid = row.sid
this.formobj.dataDate = row.dataDate
this.loadListSales()
this.loadListIncome()
this.loadListDifferent()
},
loadListSales() {
req.listSalesByLogsid(this.formobj.sid)
.then(resp => {
this.saleslist = resp.data
})
.catch(e => {
console.log('loadListSales -- error: ', e)
})
},
loadListIncome() {
req.listIncomeByLogsid(this.formobj.sid)
.then(resp => {
this.incomelist = resp.data
})
.catch(e => {
console.log('loadListIncome -- error: ', e)
})
},
loadListDifferent() {
req.listDifferentByLogsid(this.formobj.sid)
.then(resp => {
this.differentlist = resp.data
})
.catch(e => {
console.log('loadListDifferent -- error: ', e)
})
},
showIncomeAdd() {
this.dialogVisible = true
},
incomeListSave() {
req.incomeListSave(this.incomelist)
.then(resp => {
this.differentlist = resp.data
})
.catch(e => {
console.log('loadListDifferent -- error: ', e)
})
},
incomeClose() {
this.incomeObj.dataDate = parseTime(new Date(), '{y}-{m}-{d}') //
this.incomeObj.collectionChannelSid = '1' //
this.incomeObj.collectionChannelName = '' //
this.incomeObj.amount = '' //
this.incomeObj.saleDate = parseTime(new Date(), '{y}-{m}-{d}') //
this.incomeObj.remarks = '' //
this.incomeObj.logsid = ''
this.incomeObj.serialNumber = 0
this.$refs['form_income'].resetFields()
this.dialogVisible = false
},
incomeListAdd() {
this.$refs['form_income'].validate((valid) => {
if (valid) {
for (var v in this.collectionChannelList) {
if (this.collectionChannelList[v].sid === this.incomeObj.collectionChannelSid) {
this.incomeObj.collectionChannelName = this.collectionChannelList[v].name
break
}
}
if (this.incomeObj.serialNumber === 0) {
const income = {
dataDate: this.incomeObj.dataDate, //
collectionChannelSid: this.incomeObj.collectionChannelSid, //
collectionChannelName: this.incomeObj.collectionChannelName, //
amount: this.incomeObj.amount, //
saleDate: this.incomeObj.saleDate, //
remarks: this.incomeObj.remarks, //
serialNumber: this.incomelist.length + 1,
logsid: this.formobj.sid
}
this.incomelist.push(income)
} else {
const i = this.incomeObj.serialNumber - 1
this.incomelist[i].dataDate = this.incomeObj.dataDate //
this.incomelist[i].collectionChannelSid = this.incomeObj.collectionChannelSid //
this.incomelist[i].collectionChannelName = this.incomeObj.collectionChannelName //
this.incomelist[i].amount = this.incomeObj.amount //
this.incomelist[i].saleDate = this.incomeObj.saleDate //
this.incomelist[i].remarks = this.incomeObj.remarks //
}
console.log('incomelist: ', this.incomelist)
this.incomeClose()
} else {
console.log('error submit!!')
return false
}
})
},
toEdit(row) {
this.incomeObj.dataDate = row.dataDate
this.incomeObj.collectionChannelSid = row.collectionChannelSid
this.incomeObj.collectionChannelName = row.collectionChannelName
this.incomeObj.amount = row.amount
this.incomeObj.saleDate = row.saleDate
this.incomeObj.remarks = row.remarks
this.incomeObj.logsid = row.logsid
this.incomeObj.serialNumber = row.serialNumber
this.dialogVisible = true
},
toDele(row) {
this.incomelist = this.incomelist.filter(t => t.serialNumber !== row.serialNumber)
for (var v in this.incomelist) {
this.incomelist[v].serialNumber = Number(v) + 1
}
},
formatNum(e) {
e.target.value = e.target.value.replace(/[^\d.]/g, '') // ."-"
e.target.value = e.target.value.replace(/^00/, '0') // 0
@ -318,54 +431,20 @@
}
this.$emit('doback')
},
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
this.dialogVisible = false
})
.catch(_ => {})
},
showAdd(row) {
},
showEdit(row) {
req.fetchBySid(row.sid)
.then(resp => {
if (resp.success) {
console.log('data211111111111112222222222>>>', resp.data)
this.formobj = resp.data
console.log('codeIndex>>>', this.formobj.codeIndex)
if (this.formobj.businessLicenseFiles.length > 0) {
for (var i = 0; i < this.formobj.businessLicenseFiles.length; i++) {
this.imgList.push({
name: '',
url: this.formobj.businessLicenseFiles[i]
})
}
}
if (this.formobj.contractInfo.contractFiles.length > 0) {
for (var j = 0; j < this.formobj.contractInfo.contractFiles.length; j++) {
this.imgList2.push({
name: '',
url: this.formobj.contractInfo.contractFiles[j]
})
}
}
}
})
.catch(e => {
this.formobj = row
})
},
prev() {
--this.active
if (this.active < 0) { this.active = 0 }
if (this.active < 0) {
this.active = 0
}
},
next() {
// ++this.active;
if (this.active++ > 3) { this.active = 0 }
if (this.active++ > 3) {
this.active = 0
}
},
showDelectDialog(index) {
this.dialogVisible = true
@ -404,7 +483,7 @@
backData(value) {
console.log(value, 999)
const aa = []
if (value.length > 0 && value != null && value != undefined) {
if (value.length > 0 && value != null && value !== undefined) {
for (var i = 0; i < value.length; i++) {
aa.push(value[i].url)
}
@ -414,7 +493,7 @@
backData2(value) {
console.log(value, 999)
const aa = []
if (value.length > 0 && value != null && value != undefined) {
if (value.length > 0 && value != null && value !== undefined) {
for (var i = 0; i < value.length; i++) {
aa.push(value[i].url)
}
@ -425,116 +504,11 @@
}
</script>
<style lang="scss">
// .avatar-uploader .el-upload {
// width: 300px;
// height: 300px;
// margin-left: 220px;
// border: 2px dashed #409EFF;
// border-radius: 6px;
// justify-content: center;
// align-items: center;
// }
// .avatar-uploader .el-upload:hover {
// border-color: #409EFF;
// }
// .avatar-uploader-icon {
// font-size: 58px;
// color: #8c939d;
// width: 300px;
// height: 300px;
// line-height: 300px;
// text-align: center;
// }
// .avatar {
// width: 178px;
// height: 178px;
// display: block;
// }
body {
font-size: 14px;
}
.stepsLay {
margin-top: 50px;
<style scoped>
.title {
display: flex;
flex-direction: column;
flex-direction: row;
justify-content: space-between;
align-items: center;
justify-content: center;
margin-bottom: 50px;
.stepsLay_top {
width: 75%;
}
.box-card {
min-width: 75%;
margin-top: 20px;
.item {
display: flex;
flex-direction: row;
align-items: center;
margin-top: 15px;
height: 40px;
line-height: 40px;
.item_text {
flex: 0.8;
font-size: 18px;
text-align: right;
}
.item_input {
flex: 4;
font-size: 16px;
margin-left: 10px;
margin-right: 80px;
}
.item_left_input {
width: 20%;
}
.item_left_text {
height: 30px;
margin-left: 20px;
line-height: 30px;
color: #018AD2;
padding: 0px 15px;
border: 1.5px solid #018AD2;
border-radius: 5px;
}
.item_right {
flex: 1;
justify-items: center;
.item_right_list_text {
font-size: 16px;
}
.item_right_list_delect {
color: #5E94FF;
margin-left: 20px;
font-size: 16px;
text-decoration: underline;
}
}
}
}
.deployBtn {
background-color: #018AD2;
margin-top: 20px;
color: #fff;
padding-left: 20px;
padding-right: 20px;
font-size: 14px;
}
}
</style>

4
supervise-customer-ui/src/views/daydataupload/cash/index.vue

@ -67,7 +67,7 @@
</div>
</div>
<cashedit v-show="viewState == 3" ref="divinfo" @doback="resetState" />
<cashedit v-show="viewState == 3" ref="divcashedit" @doback="resetState" />
<el-dialog title="上传《汇融银行_按日汇总对账报表.xlsx》" :close-on-click-modal="false" :visible.sync="dialogVisible" width="60%" :before-close="dialogClose">
<el-card class="box-card">
@ -306,7 +306,7 @@
},
toEdit(row) {
this.viewState = 3
// this.$refs['divadd'].showEdit(row)
this.$refs['divcashedit'].showEdit(row)
},
resetState() {
this.viewState = 1

4
supervise-report-ui/.env.development

@ -5,5 +5,5 @@ ENV = 'development'
VUE_APP_BASE_API = '/api/service'
## 配置测试和本地开发时的 接口地址
##VUE_APP_URL = "http://8.130.39.13:8112"
VUE_APP_URL = "http://192.168.1.193:8112"
VUE_APP_URL = "http://8.130.39.13:8112"
##VUE_APP_URL = "http://192.168.1.193:8112"

22
supervise-report-ui/src/views/reportCenter/inventorySummary.vue

@ -7,9 +7,10 @@
{{ searchxianshitit }}
</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="queryParams" :model="orderDate" :inline="true" class="tab-header">
<el-form ref="queryParams" :model="page" :inline="true" class="tab-header">
<el-form-item label="日期">
<el-date-picker v-model="orderDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期" />
<el-date-picker v-model="page.orderDate" type="date" clearable value-format="yyyy-MM-dd"
placeholder="选择日期" />
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
@ -146,7 +147,10 @@
},
logList3: [],
// orderDate: "2023-06-26"
orderDate: parseTime(new Date(), '{y}-{m}-{d}')
page: {
orderDate: parseTime(new Date(), '{y}-{m}-{d}')
}
}
},
mounted() {
@ -178,7 +182,7 @@
},
resetQuery() {
this.orderDate = ""
this.page.orderDate = ""
},
//
@ -225,7 +229,7 @@
},
loadLogList1() {
getReportInventoryDayGather(this.orderDate).then(response => {
getReportInventoryDayGather(this.page.orderDate).then(response => {
if (response.code === '200' && response.data) {
this.logList = response.data.list
this.logInfo = {
@ -243,7 +247,7 @@
return index + 1
},
loadLogList2() {
getReportInventoryDayStore(this.orderDate).then(response => {
getReportInventoryDayStore(this.page.orderDate).then(response => {
if (response.code === '200' && response.data) {
this.logList2 = response.data.list
this.logInfo2 = {
@ -260,7 +264,7 @@
return index + 1
},
loadLogList3() {
getReportInventoryDayToStore(this.orderDate).then(response => {
getReportInventoryDayToStore(this.page.orderDate).then(response => {
if (response.code === '200' && response.data) {
this.logList3 = response.data.list
this.logInfo3 = {
@ -278,8 +282,8 @@
},
//
doBuild() {
exportExcel(this.orderDate).then((resp) => {
console.log(">>>>>11111111111111111", resp)
exportExcel(this.page.orderDate).then((resp) => {
console.log(">>>>>11111111111111111", resp)
// console.log(">>>>>222222222", process.env.VUE_APP_BASE_API + resp.data.fullUrl)
window.location.href = resp.data
}).catch(() => {

4
supervise-risk-ui/src/views/risk/RiskManage/RiskAdd.vue

@ -104,7 +104,7 @@ export default {
typeSid:'',
remarks:'',
reportTarget:'',
list:[]
// list:[]
},
rules: {
name: [{ required: true, message: '风险等级名称不能为空', trigger: 'blur' }],
@ -175,7 +175,7 @@ export default {
_this.formobj.typeCode = vdata.typeCode
_this.formobj.reportTarget = vdata.reportTarget
_this.formobj.remarks = vdata.remarks
_this.selectedOptions= vdata.list
// _this.selectedOptions= vdata.list
},
getParentsById(list, id) {
for (let i in list) {

5
supervise-uniapp/pages.json

@ -16,9 +16,6 @@
}
},
{
"path": "pages/home/AddFragment",
"style": {}
},{
"path": "pages/home/FindFragment",
"style": {}
}, {
@ -58,7 +55,7 @@
"pagePath": "pages/home/FindFragment",
"iconPath": "static/bottom-icon/find_normal.png",
"selectedIconPath": "static/bottom-icon/find_press.png",
"text": "业务"
"text": "工作台"
}, {
"pagePath": "pages/home/AddFragment",
"iconPath": "static/bottom-icon/add_normal.png",

6
supervise-uniapp/pages/login/login.vue

@ -33,8 +33,8 @@
vavatar: '/static/uview/common/logo.png',
//
formData: {
userName: '',
password: ''
userName: 'admin',
password: '111111'
},
rules: {
// name
@ -71,7 +71,7 @@
// url: '/pages/index/index',
// })
uni.switchTab({
url: '/pages/home/AddFragment'
url: '../home/AddFragment'
});
})

12
supervise-wx-mp/App.vue

@ -12,6 +12,18 @@
// url: 'pages/index/enterpriseRisk'
// });
// }, 1500);
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力')
} else {
wx.cloud.init({
// env :
// env (wx.cloud.xxx)
// ID ID
//使 ()
// env: 'my-env-id
traceUser: true,
})
}
},
onShow: function() {
console.log('App Show')

2
supervise-wx-mp/common/request.api.js

@ -22,7 +22,7 @@ export default {
params),
// 库存汇总表
getReportInventoryDayGather: (params = {}) => request.get("/reportwxmpapi/reportinventory//getReportInventoryDayGather/" +
getReportInventoryDayGather: (params = {}) => request.get("/reportwxmpapi/reportinventory/getReportInventoryDayGather/" +
params,
params),
// 仓库库存明细表

10
supervise-wx-mp/pages.json

@ -1,6 +1,11 @@
{
"pages": [ //pageshttps://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/auditReport",
"style": {
"navigationBarTitleText": "回款报告"
}
},{
"path": "pages/index/inventoryReport",
"style": {
"navigationBarTitleText": "库存日报表"
@ -10,11 +15,6 @@
"style": {
"navigationBarTitleText": "登录"
}
},{
"path": "pages/index/auditReport",
"style": {
"navigationBarTitleText": "回款报告"
}
},{
"path": "pages/index/enterpriseRisk",
"style": {

129
supervise-wx-mp/pages/index/auditReport.vue

@ -1,8 +1,20 @@
<template>
<view style="margin-left: 20px; margin-right: 20px;padding-bottom: 50px">
<view style="display: flex;width: 100%;">
<view style="flex: 1;"></view>
<text style="size: 25px;font-family: sans-serif;font-weight: 600;color: white;
margin-top: 10px;margin-right: 5px;border: none; padding: 5px 15px;
border-radius: 5px 5px;
background: #0498FD;" @click="download">
下载
</text>
</view>
<view
style="display: flex;width: 100%;justify-content: center;size: 25px;font-family: sans-serif;font-weight: 600;margin-top: 20px;">
style="display: flex;width: 100%;justify-content: center;size: 25px;font-family: sans-serif;font-weight: 600;margin-top: 10px;">
每日回款审核报告
</view>
@ -20,7 +32,7 @@
<text style="font-family: sans-serif;font-weight: 600;">{{info.difference}}</text>
<text> 未回款原因平台扣除手续费服务费等具体原因详见附件今日回款明细</text>
<view >
<view>
<text>截至</text>
<text style="font-family: sans-serif;font-weight: 600;">{{info.endTime}}</text>
<text>今日支付完毕款项后账户余额为</text>
@ -29,7 +41,7 @@
</view>
</view>
<view style="display: flex;flex-direction: column;margin-top: 15px; line-height: 30px;">
<text style="size: 25px;font-family: sans-serif;font-weight: 600;">审核结果</text>
<text style="text-indent:2em;">{{info.auditResult}}</text>
@ -39,21 +51,21 @@
<text style="font-family: sans-serif;font-weight: 600;">{{info.accountNumber}}</text>
<text></text>
</view> -->
</view>
<view style="display: flex;flex-direction: column;width: 100%;align-items: flex-end; margin-top: 30px;">
<text style="font-family: sans-serif;font-weight: 600;">{{info.reviewedBy}}</text>
<text style="margin-top:10px ; font-family: sans-serif;font-weight: 600;">{{info.date}}</text>
</view>
<view style="margin-top: 50px; display: flex; flex-direction: column;">
<text style="size: 25px;font-family: sans-serif;font-weight: 600;padding-bottom: 10px;">附件今日回款明细</text>
<uni-table ref="table1" border stripe emptyText="暂无更多数据">
<uni-table ref="table1" border stripe emptyText="暂无更多数据">
<uni-tr>
<uni-th align="center">销售日期</uni-th>
<uni-th align="center">支付渠道</uni-th>
@ -109,8 +121,8 @@
data() {
return {
queryParams: {
dataDate: "",
companyName: ""
dataDate: "2023-06-14",
companyName: "河北源蜂惠民科技集团有限公司"
},
loading1: false,
loading2: false,
@ -129,43 +141,94 @@
},
tableData1: [
// {
// "salesDate": "202367",
// "payChannels": "-",
// "money": "397.09",
// "mainBody": "-",
// "collection": "357.87",
// "different": "39.22",
// "notes": "6.7150.12"
// },
// {
// "salesDate": "202367",
// "payChannels": "-",
// "money": "397.09",
// "mainBody": "-",
// "collection": "357.87",
// "different": "39.22",
// "notes": "6.7150.12"
// },
],
tableData2: [
// {
// "payChannels": "",
// "money": "63094.88",
// "mainBody": "-",
// "cycle": "19"
// },
// {
// "payChannels": "",
// "money": "63094.88",
// "mainBody": "-",
// "cycle": "19"
// },
],
fileUrl: ""
};
},
onLoad(option) {
this.queryParams = {
dataDate: option.dataDate,
companyName: option.companyName
}
// this.queryParams = {
// dataDate: option.dataDate,
// companyName: option.companyName
// }
console.log('1111', this.queryParams)
this.getData()
},
onShow() {
wx.hideHomeButton()
},
methods: {
download() {
if (this.fileUrl == '') {
uni.showToast({
title: "下载地址错误,请重新进入页面。",
duration: 5000
})
return
}
uni.downloadFile({
url: this.fileUrl, //
success: (data) => {
if (data.statusCode === 200) {
uni.saveFile({
tempFilePath: data.tempFilePath, //
success: function(res) {
//
uni.showToast({
title: "文件已保存:" + res.savedFilePath,
duration: 5000
})
setTimeout(() => {
//
uni.openDocument({
filePath: res.savedFilePath,
showMenu: true, //
success: function(res) {
console.log('打开文档成功')
}
})
}, 3000);
}
});
}
},
fail: (err) => {
uni.showToast({
title: '失败请重新下载'
});
},
});
},
getData() {
console.log('getData', this.queryParams)
this.$api.getReportInfo(this.queryParams).then((resp) => {
console.log('1111>>>>>>', resp)
this.fileUrl = resp.downloadUrl
this.info = resp
}).catch(e => {
@ -183,7 +246,7 @@
this.$api.getCsmReportYesterdayByComSid(this.queryParams).then((resp) => {
console.log('3333>>>>>>', resp)
this.loading2 = true
this.loading2 = true
this.tableData2 = resp
}).catch(e => {

37
supervise-wx-mp/pages/index/enterpriseRisk.vue

@ -74,6 +74,7 @@
executionTime: ""
},
list: [],
fileUrl:"",
};
},
onLoad(option) {
@ -103,7 +104,43 @@
// })
},
onShow() {
wx.hideHomeButton()
},
methods: {
download() {
uni.downloadFile({
url: this.fileUrl,//
success: (data) => {
if (data.statusCode === 200) {
uni.saveFile({
tempFilePath: data.tempFilePath, //
success: function(res) {
//
uni.showToast({ title: "文件已保存:"+res.savedFilePath,duration:5000 })
setTimeout(()=>{
//
uni.openDocument({
filePath:res.savedFilePath,
showMenu: true,//
success:function(res){
console.log('打开文档成功')
}
})
}, 3000);
}
});
}
},
fail: (err) => {
uni.showToast({
title: '失败请重新下载'
});
},
});
},
getData() {
console.log('getData', this.queryParams)
this.$api.selectBusinessRiskInfo(this.queryParams).then((resp) => {

88
supervise-wx-mp/pages/index/inventoryReport.vue

@ -1,7 +1,22 @@
<template>
<view style="margin-left: 20px; margin-right: 20px;padding-bottom: 50px">
<view style="display: flex; width: 100%;justify-content: center; size: 25px;font-family: sans-serif;font-weight: 600;margin: 10px;">{{date}}</view>
<view style="display: flex;width: 100%;">
<view style="flex: 1;"></view>
<text style="size: 25px;font-family: sans-serif;font-weight: 600;color: white;
margin-top: 10px;margin-right: 5px;border: none; padding: 5px 15px;
border-radius: 5px 5px;
background: #0498FD;" @click="download">
下载
</text>
</view>
<view
style="display: flex; width: 100%;justify-content: center; size: 25px;font-family: sans-serif;font-weight: 600;margin: 10px;">
{{date}}
</view>
<view style="margin-top: 20px; display: flex; flex-direction: column;">
<text style="size: 25px;font-family: sans-serif;font-weight: 600;padding-bottom: 10px;">库存日报汇总表</text>
@ -13,9 +28,9 @@
<uni-tr>
<!-- <uni-th align="center">序号</uni-th> -->
<uni-th align="center" width="180">仓库类型</uni-th>
<uni-th align="center"width="80">仓库数量</uni-th>
<uni-th align="center"width="80">品种数量</uni-th>
<uni-th align="center"width="100">品种货值</uni-th>
<uni-th align="center" width="80">仓库数量</uni-th>
<uni-th align="center" width="80">品种数量</uni-th>
<uni-th align="center" width="100">品种货值</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData1" :key="index">
<!-- <uni-td align="center">{{ index+1}}</uni-td> -->
@ -58,9 +73,9 @@
<uni-table ref="table1" border stripe emptyText="暂无更多数据">
<uni-tr>
<!-- <uni-th align="center">序号</uni-th> -->
<uni-th align="center" width="180">仓库名称</uni-th>
<uni-th align="center" width="80">品种数量</uni-th>
<uni-th align="center" width="100">品种货值</uni-th>
<uni-th align="center" width="180">仓库名称</uni-th>
<uni-th align="center" width="80">品种数量</uni-th>
<uni-th align="center" width="100">品种货值</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData3" :key="index">
<!-- <uni-td align="center">{{ index+1 }}</uni-td> -->
@ -80,7 +95,7 @@
export default {
data() {
return {
date: "2023-06-25",
date: "",
logInfo: {
serialNumber: "",
reportTime: "",
@ -97,22 +112,75 @@
tableData1: [],
tableData2: [],
tableData3: [],
tempFilePath: "",
// fileUrl:"https://desk-fd.zol-img.com.cn/t_s960x600c5/g5/M00/01/0F/ChMkJlbKwtmINC3iAAx4ozyK5jAAALGuAMGw3cADHi7853.jpg"
fileUrl: ""
};
},
onLoad(option) {
// this.date = option.orderDate
this.date = option.orderDate
// console.log('1111', this.queryParams)
this.getData()
},
onShow() {
wx.hideHomeButton()
},
methods: {
download() {
if (this.fileUrl == '') {
uni.showToast({
title: "下载地址错误,请重新进入页面。",
duration: 5000
})
return
}
uni.downloadFile({
url: this.fileUrl, //
success: (data) => {
if (data.statusCode === 200) {
uni.saveFile({
tempFilePath: data.tempFilePath, //
success: function(res) {
//
uni.showToast({
title: "文件已保存:" + res.savedFilePath,
duration: 5000
})
setTimeout(() => {
//
uni.openDocument({
filePath: res.savedFilePath,
showMenu: true, //
success: function(res) {
console.log('打开文档成功')
}
})
}, 3000);
}
});
}
},
fail: (err) => {
uni.showToast({
title: '失败请重新下载'
});
},
});
},
getData() {
console.log('getData', this.date)
this.$api.getReportInventoryDayGather(this.date).then((resp) => {
console.log('1111>>>>>>', resp)
this.fileUrl = resp.downloadUrl
this.tableData1 = resp.list
this.logInfo = {
serialNumber: resp.serialNumber,

1
warehousing-system/project_web/package.json

@ -14,6 +14,7 @@
"element-ui": "^2.4.5",
"less-loader": "^5.0.0",
"vue": "^2.6.11",
"vue-amap": "^0.5.10",
"vue-quill-editor": "^3.0.6",
"vue-router": "^3.2.0"
},

1
warehousing-system/project_web/public/index.html

@ -5,6 +5,7 @@
<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">
<!-- <script type="text/javascript" src="https://webapi.amap.com/maps?key=你自己的key!!!&v=1.4.4&plugin=AMap.Geolocation,AMap.Autocomplete,AMap.PlaceSearch,AMap.Scale,AMap.OverView,AMap.ToolBar,AMap.MapType,AMap.PolyEditor,AMap.Geocoder,AMap.CircleEditor"></script> -->
<title>汇融云仓贷后监管平台</title>
</head>
<body>

BIN
warehousing-system/project_web/src/assets/images/notAvailable.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

25
warehousing-system/project_web/src/components/Home.vue

@ -126,7 +126,27 @@ export default {
},
//
defaultActive: '',
user: ''
user: '',
picture:{
children:[{
children: null,
created: "2021-06-08T11:42:36.000+0000",
id: 10,
level: 2,
name: "仓库列表",
parentId:12,
path: "/PictureList",
updated: "2021-06-08T11:56:38.000+0000"
}
],
created: "2021-06-08T11:48:25.000+0000",
id: 5,
level: 1,
name: "仓库列表",
parentId: 15,
path: '',
updated: "2021-06-08T11:48:27.000+0000"
}
}
},
methods: {
@ -139,6 +159,7 @@ export default {
const { data: result } = await this.$http.get('/rights/getRightsList')
if (result.status !== 200) return this.$message.error('获取权限列表失败')
this.menuList = result.data
this.menuList.unshift(this.picture)
},
//
collspseClick () {
@ -209,7 +230,7 @@ export default {
}
.el-main {
background-color: #eeeeee;
background-color: #fff;
display: block;
flex: 1;
flex-basis: auto;

174
warehousing-system/project_web/src/components/initial_value/storehouse.vue

@ -185,30 +185,19 @@
<el-row>
<el-col :span="4" class="trightbs">
<el-form-item class="trightbs_item"><span slot="label">仓库坐标精</span></el-form-item>
<el-form-item class="trightbs_item"><span slot="label">仓库经纬</span></el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="20">
<el-form-item class="trightbs_item"
><el-input
v-model="form.lon"
placeholder="精度"
id="lngAndLat"
@blur="isLngAndLat"
v-model="jingweidu"
placeholder="经纬度坐标"
class="addinputw"
clearable
/></el-form-item>
</el-col>
<el-col :span="4" class="trightbs">
<el-form-item class="trightbs_item"><span slot="label">仓库坐标维度</span></el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightbs_item"
><el-input
v-model="form.lat"
placeholder="维度"
class="addinputw"
clearable
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
@ -262,6 +251,7 @@
>
</el-option>
</el-select>
<el-button size="small" type="primary" @click="cancelList">重选</el-button>
</el-form-item>
</el-col>
</el-row>
@ -282,7 +272,7 @@
</el-row>
<el-row>
<el-col :span="4" class="trightbs">
<el-form-item class="trightbs_item"><span slot="label">库房面积</span></el-form-item>
<el-form-item class="trightbs_item"><span slot="label">库房面积(m<sup>2</sup>)</span></el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightbs_item"
@ -537,37 +527,28 @@
<el-row>
<el-col :span="4" class="trightbs">
<el-form-item class="trightbs_item">
<span slot="label">仓库坐标精</span>
<span slot="label">仓库经纬</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightbs_item">
<span>{{ temp.lon }}</span>
<span>{{ temp.lon }},{{ temp.lat }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightbs">
<el-form-item class="trightbs_item">
<span slot="label">仓库坐标维度</span>
<span slot="label">房源</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightbs_item">
<span>{{ temp.lat }}</span>
<span>{{ temp.housingResource }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightbs">
<el-form-item class="trightbs_item">
<span slot="label">房源</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightbs_item">
<span>{{ temp.housingResource }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightbs">
<el-form-item class="trightbs_item">
<span slot="label">库房面积</span>
@ -578,9 +559,6 @@
<span>{{ temp.acreage }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightbs">
<el-form-item class="trightbs_item">
<span slot="label">库房高度</span>
@ -591,6 +569,9 @@
<span>{{ temp.storeyHeight }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightbs">
<el-form-item class="trightbs_item">
<span slot="label">月租金</span>
@ -601,9 +582,6 @@
<span>{{ temp.monthlyPrice }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightbs">
<el-form-item class="trightbs_item">
<span slot="label">库房性质名称</span>
@ -701,7 +679,8 @@ export default {
fullscreenloading: null,
msg: [],
imagesg:[],
meetfunctions:[]
meetfunctions:[],
jingweidu:''
};
},
watch: {
@ -709,7 +688,6 @@ export default {
deep: true,
immediate: true,
handler(newVal, oldVal) {
console.log(newVal);
const aa=[]
for (var i = 0; i < newVal.length; i++) {
aa.push(newVal[i].sid)
@ -766,11 +744,12 @@ export default {
this.storehouseList = result.data.records;
},
addStorehouseDialog() {
this.clearList()
this.imgPrl=[]
this.imgList=[]
this.claerArrList()
this.title = "新增仓库";
this.storehouseDialogVisible = true;
this.jingweidu=''
this.changeCity=true
this.changeCounty=true
},
async getcustListList () {
const { data: result } = await this.$http.get('/v1/shstorehouse/fetchEntList')
@ -779,16 +758,13 @@ export default {
}
},
async updataStorehousedialog(storehouse) {
this.clearList()
this.imgList=[]
this.msg=[]
this.imgPrl=[]
this.imagesg=[]
this.claerArrList()
this.title = "修改仓库";
this.storehouseDialogVisible = true;
const { data: result } = await this.$http.get(
`/v1/shstorehouse/fetchDetailsBySid/${storehouse.sid}`
);
this.jingweidu=result.data.lon+','+result.data.lat
if (result.code == 200) {
this.form = result.data;
let value=result.data.pics
@ -800,6 +776,13 @@ export default {
this.msg.push(value[i])
}
}
},
claerArrList(){
this.clearList()
this.imgList=[]
this.msg=[]
this.imgPrl=[]
this.imagesg=[]
},
async addStorehouse() {
const { data: result } = await this.$http.post(
@ -809,11 +792,7 @@ export default {
if (result.code == 200) this.$message.success("成功添加仓库");
this.getStorehouseList();
this.storehouseDialogVisible = false;
this.clearList()
this.msg=[]
this.imgList=[]
this.imgPrl=[]
this.imagesg=[]
this.claerArrList()
},
async updataStorehouse() {
const { data: result } = await this.$http.post(
@ -823,6 +802,7 @@ export default {
if (result.code == 200) this.$message.success("更新成功");
this.getStorehouseList();
this.storehouseDialogVisible = false;
this.claerArrList()
},
operationStorehouse() {
if (this.title === "新增仓库") return this.addStorehouse();
@ -940,34 +920,12 @@ export default {
});
}
},
handleSuccess(resp, file, fileList) {
console.log("222", resp);
const rdata = resp.data;
const _this = this;
_this.form.picUrl = rdata;
if (this.fullscreenloading) this.fullscreenloading.close();
this.fullscreenloading = null;
_this.$message({
showClose: true,
type: "success",
message: "导入成功",
});
},
handleProgress(event, file, fileList) {
const _this = this;
this.fullscreenloading = this.$loading({
lock: true,
text: "文件正在上传",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
console.log("111", event.percent);
if (event.percent >= 100) {
_this.fullscreenloading.text = "上传完成,正在导入数据库";
}
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
cancelList(){
this.form.cityName = "";
this.form.countyName = "";
this.form.provinceName = "";
this.changeCity = true;
this.changeCounty= true;
},
async LookStorehousedialog(purchase) {
this.addPurchaseDialogVisible = true;
@ -979,11 +937,6 @@ export default {
_this.temp = result.data;
}
},
toDownload() {
if (this.temp.picUrl) {
window.open(this.temp.picUrl, "_blank");
}
},
backDatas(value) {
const aa = []
if (value.length > 0 && value != null && value != undefined) {
@ -996,11 +949,58 @@ export default {
},
backData(value) {
this.form.picUrl = value[0].response.data
},
},
meetfunction(val){
if(val.length==0){
this.form.picUrl=''
// this.imgPrl=[]
}
},
isLngAndLat() {
var index = document.getElementById("lngAndLat").value;
var array = index.split(",");
if (array[0] == undefined || array[1] == undefined){
this.$confirm(
"请输入经度和纬度,经纬度用','隔开!",
"提示",
{
showCancelButton:false,
confirmButtonText: "确定",
type: "warning",
}
).catch((error) => error);
return false;
}
var longreg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/;
if(!longreg.test(array[0])){
this.$confirm(
"经度整数部分为0-180,小数部分为0到6位!",
"提示",
{
showCancelButton:false,
confirmButtonText: "确定",
type: "warning",
}
).catch((error) => error);
return false;
}
//,0-9006
var latreg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/;
if(!latreg.test(array[1])) {
this.$confirm(
"纬度整数部分为0-90,小数部分为0到6位!",
"提示",
{
showCancelButton:false,
confirmButtonText: "确定",
type: "warning",
}
).catch((error) => error);
}
if(array!=undefined){
this.form.lon=array[0]
this.form.lat=array[1]
}
}
},
mounted() {

207
warehousing-system/project_web/src/components/pictureList/pictureList.vue

@ -0,0 +1,207 @@
<template>
<div class="warehouse">
<div v-show="viewState == 1">
<div class="warehouseSurface">
<p style="margin-left: 8px">仓库信息表</p>
</div>
<div class="main-content">
<div
class="pictureList"
v-for="(item, i) of storehouseList"
:key="i"
@click="LookStorehousedialog(item.sid)"
>
<div class="images">
<img v-if="item.picUrl" :src="item.picUrl" alt="" />
<img v-else src="../../assets/images/notAvailable.jpg" alt="" />
</div>
<div class="warehouseName">
<h2>{{ item.name }}</h2>
<p>
{{ item.simpleName }}<span>|</span> {{ item.provinceName
}}<span>-</span>{{ item.cityName }}{{ item.countyName }}
<span>|</span> {{ item.acreage }}m<sup>2</sup>
</p>
<div class="attributeNames">{{ item.attributeNames }}</div>
<div class="iconName">
<i class="el-icon-user"></i>{{ item.linkerName }}
</div>
</div>
<div class="housingResource">{{ item.housingResource }}</div>
<div class="monthlyPrice">{{ item.monthlyPrice }}<span v-if="item.monthlyPrice">/</span> </div>
</div>
<div class="pages">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="queryInfo.current"
:page-sizes="[10, 15]"
:page-size="queryInfo.size"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
</div>
</div>
<Particulars
v-show="viewState == 2"
ref="divShow"
@doback="resetState"
@reloadlist="getStorehouseList"
/>
</div>
</template>
<script>
import Particulars from "./pictureParticulars";
export default {
components: {
Particulars,
},
data() {
return {
viewState: 1,
queryInfo: {
total: 0,
size: 10,
current: 1,
params: {},
},
total: 0,
title: "新增仓库",
storehouseList: [],
};
},
mounted() {
this.getStorehouseList();
},
methods: {
//
indexMethod(index) {
var pagestart = (this.queryInfo.current - 1) * this.queryInfo.size;
var pageindex = index + 1 + pagestart;
return pageindex;
},
handleSizeChange(val) {
this.queryInfo.size = val;
this.getStorehouseList();
},
handleCurrentChange(val) {
this.queryInfo.current = val;
this.getStorehouseList();
},
async getStorehouseList() {
const { data: result } = await this.$http.post(
"/v1/shstorehouse/listPage",
{ params: this.queryInfo }
);
if (result.code == 200) this.total = result.data.total;
this.storehouseList = result.data.records;
},
async LookStorehousedialog(sid) {
const _this = this;
const { data: result } = await this.$http.get(
`/v1/shstorehouse/fetchDetailsBySid/${sid}`
);
if (result.code == 200) {
this.$refs['divShow'].showPicture(result.data)
}
this.viewState = 2;
},
resetState() {
this.viewState = 1;
},
},
};
</script>
<style scoped lang="less">
.warehouse {
margin-top: 30px;
background-color: #fff;
.warehouseSurface {
width: 100%;
height: 40px;
background-color: #edf1f7;
margin: 0 auto;
line-height: 40px;
}
.main-content {
margin-top: 10px;
.pictureList {
width: 95%;
height: 160px;
margin: 0 auto;
position: relative;
padding: 10px 0;
.images {
height: 140px;
width: 160px;
position: absolute;
top: 20px;
left: 0;
img {
height: 100%;
width: 100%;
}
}
.warehouseName {
position: absolute;
top: 20px;
left: 180px;
position: relative;
h2 {
position: absolute;
top: -30px;
}
p {
position: absolute;
top: 16px;
span {
margin: 0 5px;
}
}
.attributeNames {
position: absolute;
min-width: 80px;
height: 25px;
background-color: #eeeeee;
top: 75px;
text-align: center;
line-height: 25px;
border-radius: 90px;
border: 1px solid #d8dcde;
}
.iconName {
position: absolute;
top: 110px;
i {
color: #d8dcde;
margin-right: 5px;
}
}
}
.housingResource {
position: absolute;
top: 80px;
left: 75%;
font-size: 22px;
color: #7e9ebf;
}
.monthlyPrice {
position: absolute;
top: 80px;
left: 85%;
font-size: 22px;
color: #ed6c00;
}
}
.pictureList:hover {
background-color: #edf1f7;
}
}
}
</style>

38
warehousing-system/project_web/src/components/pictureList/pictureParticulars.vue

@ -0,0 +1,38 @@
<template>
<div>
<div>仓库列表详情</div>
<el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>
</div>
</template>
<script>
export default {
data() {
return {
formobj:{
sid:''
}
}
},
created() {
},
methods: {
showPicture(data) {
console.log(data);
this.formobj=data
},
handleReturn() {
this.$emit('reloadlist')
this.$emit('doback')
this.formobj = {}
},
},
}
</script>
<style scoped>
</style>

7
warehousing-system/project_web/src/components/stockManagement/stockList.vue

@ -10,9 +10,8 @@
</el-row>
<div class="main-content">
<el-table :data="stockList"
style="width: 100%" height="500"
stripe border fixed>
<el-table-column label="序号" type="index" width="60" :index="indexMethod" fixed align="center" />
style="width: 100%" border>
<el-table-column label="序号" type="index" width="60" :index="indexMethod" fixed align="center" />
<el-table-column
align="center"
prop="proName"
@ -80,7 +79,7 @@
width="120">
</el-table-column>
</el-table>
<div class="main-content">
<div class="pages">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"

21
warehousing-system/project_web/src/components/uploadFile/uploadTwo.vue

@ -71,15 +71,20 @@
},
watch: {
imgUrl: {
deep: true,
immediate: true,
deep: false,
immediate: false,
handler(newVal, oldVal) {
if(newVal.url!=undefined){
let copy = newVal.slice();
this.files = copy
}
let copy = newVal.slice();
let time=setTimeout(() => {
if(copy[0] !== undefined){
// console.log(copy[0].url);
if(copy[0].url!== ''){
this.files = copy
clearTimeout(time)
}
}
}, 200);
this.files=[]
}
}
},

8
warehousing-system/project_web/src/main.js

@ -1,6 +1,7 @@
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import VueAMap from 'vue-amap'
import './plugins/element.js'
import './assets/css/global.css'
import './assets/ali-icon/iconfont.css'
@ -27,6 +28,13 @@ Vue.prototype.$http = axios
/* 将富文本编辑器注册为全局可用的组件 */
Vue.use(VueQuillEditor)
Vue.use(VueAMap);
// VueAMap.initAMapApiLoader({
// key: '你自己的key!!!',
// plugin: ['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor','AMap.Geocoder','AMap.Geolocation','AMap.MarkerClusterer'],
// // 默认高德 sdk 版本为 1.4.4
// v: '1.4.4'
// });
Vue.config.productionTip = false
new Vue({

4
warehousing-system/project_web/src/router/index.js

@ -23,6 +23,7 @@ import OutOrder from '../components/outStorehouseManagement/outStorehouseOrder.v
import OutList from '../components/outStorehouseManagement/outList.vue'
import Picking from '../components/outStorehouseManagement/picking.vue'
import PickingManagement from '../components/outStorehouseManagement/pickingManagement.vue'
import PictureList from '../components/pictureList/pictureList.vue'
Vue.use(VueRouter)
@ -55,7 +56,8 @@ const routes = [
{ path: '/outOrder', component: OutOrder },
{ path: '/outList', component: OutList },
{ path: '/pick', component: Picking },
{ path: '/pickManagement', component: PickingManagement }
{ path: '/pickManagement', component: PickingManagement },
{ path: '/PictureList', component: PictureList }
]
}
]

14
warehousing-system/project_web_ui/.editorconfig

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

9
warehousing-system/project_web_ui/.env.development

@ -0,0 +1,9 @@
# just a flag
ENV = 'development'
# base api
VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址
VUE_APP_URL = "http://192.168.1.107:7007"
##VUE_APP_URL = "http://120.46.172.184:8111"

9
warehousing-system/project_web_ui/.env.production

@ -0,0 +1,9 @@
# just a flag
ENV = 'production'
# base api
VUE_APP_BASE_API = '/api/rms'
## 配置 正式接口地址
VUE_APP_URL = "http://120.46.131.15:8111"

8
warehousing-system/project_web_ui/.env.staging

@ -0,0 +1,8 @@
NODE_ENV = production
# just a flag
ENV = 'staging'
# base api
VUE_APP_BASE_API = '/stage-api'

4
warehousing-system/project_web_ui/.eslintignore

@ -0,0 +1,4 @@
build/*.js
src/assets
public
dist

199
warehousing-system/project_web_ui/.eslintrc.js

@ -0,0 +1,199 @@
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true,
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
rules: {
"vue/max-attributes-per-line": [2, {
"singleline": 10,
"multiline": {
"max": 1,
"allowFirstLine": false
}
}],
"vue/singleline-html-element-content-newline": "off",
"vue/multiline-html-element-content-newline":"off",
"vue/name-property-casing": ["error", "PascalCase"],
"vue/no-v-html": "off",
'accessor-pairs': 2,
'arrow-spacing': [2, {
'before': true,
'after': true
}],
'block-spacing': [2, 'always'],
'brace-style': [2, '1tbs', {
'allowSingleLine': true
}],
'camelcase': [0, {
'properties': 'always'
}],
'comma-dangle': [2, 'never'],
'comma-spacing': [2, {
'before': false,
'after': true
}],
'comma-style': [2, 'last'],
'constructor-super': 2,
'curly': [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
'eqeqeq': ["error", "always", {"null": "ignore"}],
'generator-star-spacing': [2, {
'before': true,
'after': true
}],
'handle-callback-err': [2, '^(err|error)$'],
// 'indent': [2, 2, {
// 'SwitchCase': 1
// }],
'indent': 'off',
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [2, {
'beforeColon': false,
'afterColon': true
}],
'keyword-spacing': [2, {
'before': true,
'after': true
}],
'new-cap': [2, {
'newIsCap': true,
'capIsNew': false
}],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [2, {
'allowLoop': false,
'allowSwitch': false
}],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [2, {
'max': 1
}],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [2, {
'defaultAssignment': false
}],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [2, {
'vars': 'all',
'args': 'none'
}],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [2, {
'initialized': 'never'
}],
'operator-linebreak': [2, 'after', {
'overrides': {
'?': 'before',
':': 'before'
}
}],
'padded-blocks': [2, 'never'],
'quotes': [2, 'single', {
'avoidEscape': true,
'allowTemplateLiterals': true
}],
'semi': [2, 'never'],
'semi-spacing': [2, {
'before': false,
'after': true
}],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [2, {
'words': true,
'nonwords': false
}],
'spaced-comment': [2, 'always', {
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
}],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
'yoda': [2, 'never'],
'prefer-const': 2,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'object-curly-spacing': [2, 'always', {
objectsInObjects: false
}],
'array-bracket-spacing': [2, 'never']
}
}

18
warehousing-system/project_web_ui/.gitignore

@ -0,0 +1,18 @@
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
tests/**/coverage/
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
risk-ui/

5
warehousing-system/project_web_ui/.travis.yml

@ -0,0 +1,5 @@
language: node_js
node_js: 10
script: npm run test
notifications:
email: false

21
warehousing-system/project_web_ui/LICENSE

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2017-present PanJiaChen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

0
warehousing-system/project_web_ui/README-zh.md

90
warehousing-system/project_web_ui/README.md

@ -0,0 +1,90 @@
# vue-admin-template
English | [简体中文](./README-zh.md)
> A minimal vue admin template with Element UI & axios & iconfont & permission control & lint
**Live demo:** http://panjiachen.github.io/vue-admin-template
**The current version is `v4.0+` build on `vue-cli`. If you want to use the old version , you can switch branch to [tag/3.11.0](https://github.com/PanJiaChen/vue-admin-template/tree/tag/3.11.0), it does not rely on `vue-cli`**
## Build Setup
```bash
# clone the project
git clone https://github.com/PanJiaChen/vue-admin-template.git
# enter the project directory
cd vue-admin-template
# install dependency
npm install
# develop
npm run dev
```
This will automatically open http://localhost:9528
## Build
```bash
# build for test environment
npm run build:stage
# build for production environment
npm run build:prod
```
## Advanced
```bash
# preview the release environment effect
npm run preview
# preview the release environment effect + static resource analysis
npm run preview -- --report
# code format check
npm run lint
# code format check and auto fix
npm run lint -- --fix
```
Refer to [Documentation](https://panjiachen.github.io/vue-element-admin-site/guide/essentials/deploy.html) for more information
## Demo
![demo](https://github.com/PanJiaChen/PanJiaChen.github.io/blob/master/images/demo.gif)
## Extra
If you want router permission && generate menu by user roles , you can use this branch [permission-control](https://github.com/PanJiaChen/vue-admin-template/tree/permission-control)
For `typescript` version, you can use [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Credits: [@Armour](https://github.com/Armour))
## Related Project
- [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
- [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
- [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template)
- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312)
## Browsers support
Modern browsers and Internet Explorer 10+.
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
| --------- | --------- | --------- | --------- |
| IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
## License
[MIT](https://github.com/PanJiaChen/vue-admin-template/blob/master/LICENSE) license.
Copyright (c) 2017-present PanJiaChen

15
warehousing-system/project_web_ui/babel.config.js

@ -0,0 +1,15 @@
module.exports = {
presets: [
// https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
// '@vue/cli-plugin-babel/preset',
['@vue/app', { useBuiltIns: 'entry' }]
],
'env': {
'development': {
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
// This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
// https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
'plugins': ['dynamic-import-node']
}
}
}

24
warehousing-system/project_web_ui/jest.config.js

@ -0,0 +1,24 @@
module.exports = {
moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
transform: {
'^.+\\.vue$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
'jest-transform-stub',
'^.+\\.jsx?$': 'babel-jest'
},
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1'
},
snapshotSerializers: ['jest-serializer-vue'],
testMatch: [
'**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
],
collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'],
coverageDirectory: '<rootDir>/tests/unit/coverage',
// 'collectCoverage': true,
'coverageReporters': [
'lcov',
'text-summary'
],
testURL: 'http://localhost/'
}

9
warehousing-system/project_web_ui/jsconfig.json

@ -0,0 +1,9 @@
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
},
"exclude": ["node_modules", "dist"]
}

57
warehousing-system/project_web_ui/mock/index.js

@ -0,0 +1,57 @@
const Mock = require('mockjs')
const { param2Obj } = require('./utils')
const user = require('./user')
const table = require('./table')
const mocks = [
...user,
...table
]
// for front mock
// please use it cautiously, it will redefine XMLHttpRequest,
// which will cause many of your third-party libraries to be invalidated(like progress event).
function mockXHR() {
// mock patch
// https://github.com/nuysoft/Mock/issues/300
Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send
Mock.XHR.prototype.send = function() {
if (this.custom.xhr) {
this.custom.xhr.withCredentials = this.withCredentials || false
if (this.responseType) {
this.custom.xhr.responseType = this.responseType
}
}
this.proxy_send(...arguments)
}
function XHR2ExpressReqWrap(respond) {
return function(options) {
let result = null
if (respond instanceof Function) {
const { body, type, url } = options
// https://expressjs.com/en/4x/api.html#req
result = respond({
method: type,
body: JSON.parse(body),
query: param2Obj(url)
})
} else {
result = respond
}
return Mock.mock(result)
}
}
for (const i of mocks) {
Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response))
}
}
module.exports = {
mocks,
mockXHR
}

81
warehousing-system/project_web_ui/mock/mock-server.js

@ -0,0 +1,81 @@
const chokidar = require('chokidar')
const bodyParser = require('body-parser')
const chalk = require('chalk')
const path = require('path')
const Mock = require('mockjs')
const mockDir = path.join(process.cwd(), 'mock')
function registerRoutes(app) {
let mockLastIndex
const { mocks } = require('./index.js')
const mocksForServer = mocks.map(route => {
return responseFake(route.url, route.type, route.response)
})
for (const mock of mocksForServer) {
app[mock.type](mock.url, mock.response)
mockLastIndex = app._router.stack.length
}
const mockRoutesLength = Object.keys(mocksForServer).length
return {
mockRoutesLength: mockRoutesLength,
mockStartIndex: mockLastIndex - mockRoutesLength
}
}
function unregisterRoutes() {
Object.keys(require.cache).forEach(i => {
if (i.includes(mockDir)) {
delete require.cache[require.resolve(i)]
}
})
}
// for mock server
const responseFake = (url, type, respond) => {
return {
url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`),
type: type || 'get',
response(req, res) {
console.log('request invoke:' + req.path)
res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond))
}
}
}
module.exports = app => {
// parse app.body
// https://expressjs.com/en/4x/api.html#req.body
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({
extended: true
}))
const mockRoutes = registerRoutes(app)
var mockRoutesLength = mockRoutes.mockRoutesLength
var mockStartIndex = mockRoutes.mockStartIndex
// watch files, hot reload mock server
chokidar.watch(mockDir, {
ignored: /mock-server/,
ignoreInitial: true
}).on('all', (event, path) => {
if (event === 'change' || event === 'add') {
try {
// remove mock routes stack
app._router.stack.splice(mockStartIndex, mockRoutesLength)
// clear routes cache
unregisterRoutes()
const mockRoutes = registerRoutes(app)
mockRoutesLength = mockRoutes.mockRoutesLength
mockStartIndex = mockRoutes.mockStartIndex
console.log(chalk.magentaBright(`\n > Mock Server hot reload success! changed ${path}`))
} catch (error) {
console.log(chalk.redBright(error))
}
}
})
}

29
warehousing-system/project_web_ui/mock/table.js

@ -0,0 +1,29 @@
const Mock = require('mockjs')
const data = Mock.mock({
'items|30': [{
id: '@id',
title: '@sentence(10, 20)',
'status|1': ['published', 'draft', 'deleted'],
author: 'name',
display_time: '@datetime',
pageviews: '@integer(300, 5000)'
}]
})
module.exports = [
{
url: '/vue-admin-template/table/list',
type: 'get',
response: config => {
const items = data.items
return {
code: 20000,
data: {
total: items.length,
items: items
}
}
}
}
]

84
warehousing-system/project_web_ui/mock/user.js

@ -0,0 +1,84 @@
const tokens = {
admin: {
token: 'admin-token'
},
editor: {
token: 'editor-token'
}
}
const users = {
'admin-token': {
roles: ['admin'],
introduction: 'I am a super administrator',
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
name: 'Super Admin'
},
'editor-token': {
roles: ['editor'],
introduction: 'I am an editor',
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
name: 'Normal Editor'
}
}
module.exports = [
// user login
{
url: '/vue-admin-template/user/login',
type: 'post',
response: config => {
const { username } = config.body
const token = tokens[username]
// mock error
if (!token) {
return {
code: 60204,
message: 'Account and password are incorrect.'
}
}
return {
code: 20000,
data: token
}
}
},
// get user info
{
url: '/vue-admin-template/user/info\.*',
type: 'get',
response: config => {
const { token } = config.query
const info = users[token]
// mock error
if (!info) {
return {
code: 50008,
message: 'Login failed, unable to get user details.'
}
}
return {
code: 20000,
data: info
}
}
},
// user logout
{
url: '/vue-admin-template/user/logout',
type: 'post',
response: _ => {
return {
code: 20000,
data: 'success'
}
}
}
]

25
warehousing-system/project_web_ui/mock/utils.js

@ -0,0 +1,25 @@
/**
* @param {string} url
* @returns {Object}
*/
function param2Obj(url) {
const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
if (!search) {
return {}
}
const obj = {}
const searchArr = search.split('&')
searchArr.forEach(v => {
const index = v.indexOf('=')
if (index !== -1) {
const name = v.substring(0, index)
const val = v.substring(index + 1, v.length)
obj[name] = val
}
})
return obj
}
module.exports = {
param2Obj
}

76
warehousing-system/project_web_ui/package.json

@ -0,0 +1,76 @@
{
"name": "admin-template",
"version": "4.4.0",
"description": "A vue admin template with Element UI & axios & iconfont & permission control & lint",
"author": "Pan <panfree23@gmail.com>",
"scripts": {
"dev": "vue-cli-service serve",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
"lint": "eslint --ext .js,.vue src",
"test:unit": "jest --clearCache && vue-cli-service test:unit",
"test:ci": "npm run lint && npm run test:unit"
},
"dependencies": {
"axios": "^0.24.0",
"bpmn-js": "^9.2.2",
"core-js": "^2.6.12",
"echarts": "^5.4.2",
"ejs": "^2.7.4",
"element-ui": "2.13.2",
"js-cookie": "2.2.0",
"less": "^3.9.0",
"less-loader": "^5.0.0",
"moment": "^2.29.1",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"portfinder": "^1.0.21",
"qs": "^6.9.4",
"sass-resources-loader": "^2.1.1",
"viewerjs": "^1.9.0",
"vue": "2.6.10",
"vue-amap": "^0.5.10",
"vue-router": "3.0.6",
"vuex": "3.1.0",
"vuex-persistedstate": "^4.0.0",
"xcrud": "^0.4.19"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.4.4",
"@vue/cli-plugin-eslint": "4.4.4",
"@vue/cli-plugin-unit-jest": "4.4.4",
"@vue/cli-service": "4.4.4",
"@vue/test-utils": "1.0.0-beta.29",
"autoprefixer": "9.5.1",
"babel-eslint": "10.1.0",
"babel-jest": "23.6.0",
"babel-plugin-dynamic-import-node": "2.3.3",
"babel-polyfill": "^6.26.0",
"chalk": "2.4.2",
"connect": "3.6.6",
"eslint": "6.7.2",
"eslint-plugin-vue": "6.2.2",
"html-webpack-plugin": "3.2.0",
"mockjs": "1.0.1-beta3",
"runjs": "4.3.2",
"sass": "1.26.8",
"sass-loader": "8.0.2",
"script-ext-html-webpack-plugin": "2.1.3",
"serve-static": "1.13.2",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.2",
"vue-template-compiler": "2.6.10"
},
"browserslist": [
"> 1%",
"last 2 versions"
],
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"license": "MIT"
}

14470
warehousing-system/project_web_ui/pnpm-lock.yaml

File diff suppressed because it is too large

8
warehousing-system/project_web_ui/postcss.config.js

@ -0,0 +1,8 @@
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
'plugins': {
// to edit target browsers: use "browserslist" field in package.json
'autoprefixer': {}
}
}

BIN
warehousing-system/project_web_ui/public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
warehousing-system/project_web_ui/public/faviconhr.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
warehousing-system/project_web_ui/public/image/liuchengtu.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

17
warehousing-system/project_web_ui/public/index.html

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= webpackConfig.name %> 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>

14
warehousing-system/project_web_ui/src/App.vue

@ -0,0 +1,14 @@
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
export default {
name: 'App',
mounted() {
},
}
</script>

13
warehousing-system/project_web_ui/src/api/Common/Upload.js

@ -0,0 +1,13 @@
import request from '@/utils/request'
// 上传图片
export function imageUpload(data){
return request({
url: '/jlcyry/file/upload',
method: 'post',
data,
headers:{'Content-Type':'multipart/form-data'}
})
}
export const uploadFile = '/api/base/v1/basemanufactorsubscription/pictureUpload'
export const uploadimg_tuiku = '/api/base/v1/basemanufacturerretwareveh/pictureUpload'

25
warehousing-system/project_web_ui/src/api/Common/areaPicker.js

@ -0,0 +1,25 @@
import request from '@/utils/request'
//区域获取省
export function getProvince(data) {
return request({
url: '/system/region/getProvince',
method: 'get'
})
}
//根据省sid获取该省的所有市
export function getCity(data) {
return request({
url: '/system/region/getCity',
method: 'get',
params: data
})
}
//根据市sid获取该市的所有县区
export function getCounty(data) {
return request({
url: '/system/region/getCounty',
method: 'get',
params: data
})
}

13
warehousing-system/project_web_ui/src/api/Common/permission.js

@ -0,0 +1,13 @@
import request from '@/utils/request'
// 请求按钮权限
export default {
// 查询分页列表,输入当前路径和userSid,返回
buttonPermission: function(params) {
return request({
url: '/demopackage/v1/demo/buttonPermission',
method: 'post',
data: params
})
}
}

132
warehousing-system/project_web_ui/src/api/Risk/index.js

@ -0,0 +1,132 @@
import request from '@/utils/request'
// 汇总工单数据
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/v1/riskLevel/listPage',
method: 'post',
data: params
})
},
// 保存新增记录
saveRiskLevel: function(params) {
return request({
url: '/v1/riskLevel/saveRiskLevel',
method: 'post',
data: params
})
},
// 通过sid删除一条或多条记录
delBySids: function(sid) {
return request({
url: '/v1/riskLevel/del/' + sid,
method: 'get',
})
},
// 添加风险类别
saveRiskType: function(params) {
return request({
url: '/v1/riskType/saveRiskType',
method: 'post',
data: params
})
},
// 查询二级层级内容
selectRiskTypeFirst: function() {
return request({
url: '/v1/riskType/selectRiskTypeFirst',
method: 'get',
})
},
// 添加风险类别
RiskListPage: function(params) {
return request({
url: '/v1/riskType/listPage',
method: 'post',
data: params
})
},
// 通过sid查询一级风险类别下的二级类别
selectRiskTypeSubordinate: function(sid) {
return request({
url: '/v1/riskType/selectRiskTypeSubordinate/' + sid,
method: 'get',
})
},
// 通过sid删除风险类别的数据
delriskType: function(sid) {
return request({
url: '/v1/riskType/del/' + sid,
method: 'get',
})
},
// 查询所有风险等级
selectRiskLevel: function() {
return request({
url: '/v1/riskLevel/selectRiskLevel',
method: 'get',
})
},
// 查询所有风险等级
selectType: function() {
return request({
url: '/v1/riskType/select',
method: 'get',
})
},
// 保存风险指标
saveRiskIndicator: function(params) {
return request({
url: '/v1/riskIndicators/saveRiskIndicator',
method: 'post',
data: params
})
},
// 查询风险指标分页列表
riskIndicatorsListPage: function(params) {
return request({
url: '/v1/riskIndicators/listPage',
method: 'post',
data: params
})
},
// 通过sid删除风险指标的数据
riskIndicatorsDel: function(sid) {
return request({
url: '/v1/riskIndicators/del/' + sid,
method: 'get',
})
},
// 查询报警分页列表
riskAlarmListPage: function(params) {
return request({
url: '/v1/riskAlarm/listPage',
method: 'post',
data: params
})
},
// 报警中心的处理接口
saveRiskAlarmTreatment: function(params) {
return request({
url: '/v1/riskAlarmTreatment/saveRiskAlarmTreatment',
method: 'post',
data: params
})
},
// 查询记录列表
riskAlarmTreatmentListPage: function(params) {
return request({
url: '/v1/riskAlarmTreatment/listPage',
method: 'post',
data: params
})
},
}

68
warehousing-system/project_web_ui/src/api/Risk/riskIndex.js

@ -0,0 +1,68 @@
import request from '@/utils/request'
// 汇总工单数据
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/v1/riskBlackList/listPage',
method: 'post',
data: params
})
},
// 保存新增记录
saveRiskBlackList: function(params) {
return request({
url: '/v1/riskBlackList/saveRiskBlackList ',
method: 'post',
data: params
})
},
// 查询记录列表
riskAlarmTreatmentListPage: function(params) {
return request({
url: '/v1/riskAlarmTreatment/listPage',
method: 'post',
data: params
})
},
// 通过sid删除一条或多条记录
delBySids: function(sid) {
return request({
url: '/v1/riskBlackList/del/' + sid,
method: 'get',
})
},
// 保存新增监控指标
saveRiskIndicator: function(params) {
return request({
url: '/v1/riskIndex/saveRiskIndex',
method: 'post',
data: params
})
},
// 查询监控指标列表
riskIndexListPage: function(params) {
return request({
url: '/v1/riskIndex/listPage',
method: 'post',
data: params
})
},
// 通过sid删除一条或多条记录
riskIndexDel: function(sid) {
return request({
url: '/v1/riskIndex/del/' + sid,
method: 'get',
})
},
// 添加定时时间
scheduledSave: function(params) {
return request({
url: '/v1/scheduled/save',
method: 'post',
data: params
})
},
}

35
warehousing-system/project_web_ui/src/api/User/login.js

@ -0,0 +1,35 @@
import request from '@/utils/request'
import qs from 'qs'
class User {
login(data) { // 登录
return request({
url: '/system/user/login',
method: 'post',
data
})
}
logout(data) { // 退出
return request({
url: '/portal/v1/sysuser/signOut',
method: 'post',
data: qs.stringify(data)
})
}
updatePassword(data) { // 退出修改密码
return request({
url: '/portal/v1/sysuser/updatePassword',
method: 'post',
data: qs.stringify(data)
})
}
reGetPwd(data) {
return request({
url: `/system/user/reGetPwd/${data.userName}/${data.userPhone}`,
method: 'post',
data: qs.stringify(data)
})
}
}
export default new User()

66
warehousing-system/project_web_ui/src/api/flow/cunfangdidianbiangeng.js

@ -0,0 +1,66 @@
import request from '@/utils/request'
export default {
// 流程审批(同意)
agreeTask: function(params) {
return request({
url: 'scm/v1/scmvehiclegression/complete',
method: 'post',
data: params
})
},
// 流程审批(驳回)
rejectTask: function(params) {
return request({
url: 'scm/v1/scmvehiclegression/reject',
method: 'post',
data: params
})
},
// 流程审批(终止)
breakTask: function(params) {
return request({
url: 'scm/v1/scmvehiclegression/breakProcess',
method: 'post',
data: params
})
},
// 流程审批(撤回)
revokeTask: function(params) {
return request({
url: 'scm/v1/scmvehiclegression/revokeProcess',
method: 'post',
data: params
})
},
// 审批流程(同意)获取下一环节
getNextNodesForSubmit: function(data) {
return request({
url: 'scm/v1/scmvehiclegression/getNextNodesForSubmit',
method: 'post',
data: data
})
},
// 审批流程(驳回、终止)获取下一环节
getPreviousNodesForReject: function(data) {
return request({
url: 'scm/v1/scmvehiclegression/getPreviousNodesForReject',
method: 'post',
data: data
})
},
// 读取xml文件
readXml: function(deployId) {
return request({
url: '/flowable/v1/flowable/task/readXml/' + deployId,
method: 'get'
})
},
// 读取image文件
getFlowViewer: function(procInsId) {
return request({
url: '/flowable/v1/flowable/task/flowViewer/' + procInsId,
method: 'get'
})
}
}

33
warehousing-system/project_web_ui/src/api/flow/flowable.js

@ -0,0 +1,33 @@
import request from '@/utils/request'
// 外采申请表
export default {
getNextNodes: function(taskid) {
return request({
url: '/base/baseoutsourcingapplication/getNextTasks/' + taskid,
method: 'post',
headers: {
'Content-Type': 'application/json'
}
})
},
getNextNodesForSubmit: function(data) {
return request({
url: '/base/baseoutsourcingapplication/getNextNodesForSubmit',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
getPreviousNodesForReject(formobj) {
return request({
url: '/base/baseoutsourcingapplication/getPreviousNodesForReject',
method: 'post',
data: formobj,
headers: {
'Content-Type': 'application/json'
}
})
}
}

80
warehousing-system/project_web_ui/src/api/flow/tiaochekaipiaoshenqing.js

@ -0,0 +1,80 @@
import request from '@/utils/request'
export default {
// 流程审批(同意)
agreeTask: function(params) {
return request({
url: '/base/v1/baseshuntinginvoicingapply/complete',
method: 'post',
data: params
})
},
agreeTaskCallInToCallOut: function(params) {
return request({
url: '/base/v1/baseshuntinginvoicingapply/callInOrgToCallOutOrg',
method: 'post',
data: params
})
},
callOutSaleManageExa: function(params) {
return request({
url: '/base/v1/baseshuntinginvoicingapply/callOutSaleManageExa',
method: 'post',
data: params
})
},
// 流程审批(驳回)
rejectTask: function(params) {
return request({
url: '/base/v1/baseshuntinginvoicingapply/reject',
method: 'post',
data: params
})
},
// 流程审批(终止)
breakTask: function(params) {
return request({
url: '/base/v1/baseshuntinginvoicingapply/breakProcess',
method: 'post',
data: params
})
},
// 流程审批(撤回)
revokeTask: function(params) {
return request({
url: '/base/v1/baseshuntinginvoicingapply/revokeProcess',
method: 'post',
data: params
})
},
// 审批流程(同意)获取下一环节
getNextNodesForSubmit: function(data) {
return request({
url: '/base/v1/baseshuntinginvoicingapply/getNextNodesForSubmit',
method: 'get',
params: data
})
},
// 审批流程(驳回、终止)获取上一环节
getPreviousNodesForReject: function(data) {
return request({
url: '/base/v1/baseshuntinginvoicingapply/getPreviousNodesForReject',
method: 'get',
params: data
})
},
// 读取xml文件
readXml: function(deployId) {
return request({
url: '/flowable/v1/flowable/task/readXml/' + deployId,
method: 'get'
})
},
// 读取image文件
getFlowViewer: function(procInsId) {
return request({
url: '/flowable/v1/flowable/task/flowViewer/' + procInsId,
method: 'get'
})
}
}

80
warehousing-system/project_web_ui/src/api/flow/tiaozhangshenqing.js

@ -0,0 +1,80 @@
import request from '@/utils/request'
export default {
// 流程审批(同意)
agreeTask: function(params) {
return request({
url: '/base/v1/baseaccadjapply/complete',
method: 'post',
data: params
})
},
agreeTaskCallInOrCallOut: function(params) {
return request({
url: '/base/v1/baseaccadjapply/InitiatorToAnswer',
method: 'post',
data: params
})
},
agreeTaskOrgChange: function(params) {
return request({
url: '/base/v1/baseaccadjapply/companyToFinancialCenter',
method: 'post',
data: params
})
},
// 流程审批(驳回)
rejectTask: function(params) {
return request({
url: '/base/v1/baseaccadjapply/reject',
method: 'post',
data: params
})
},
// 流程审批(终止)
breakTask: function(params) {
return request({
url: '/base/v1/baseaccadjapply/breakProcess',
method: 'post',
data: params
})
},
// 流程审批(撤回)
revokeTask: function(params) {
return request({
url: '/base/v1/baseaccadjapply/revokeProcess',
method: 'post',
data: params
})
},
// 审批流程(同意)获取下一环节
getNextNodesForSubmit: function(data) {
return request({
url: '/base/v1/baseaccadjapply/getNextNodesForSubmit',
method: 'post',
data: data
})
},
// 审批流程(驳回、终止)获取上一环节
getPreviousNodesForReject: function(data) {
return request({
url: '/base/v1/baseaccadjapply/getPreviousNodesForReject',
method: 'get',
params: data
})
},
// 读取xml文件
readXml: function(deployId) {
return request({
url: '/flowable/v1/flowable/task/readXml/' + deployId,
method: 'get'
})
},
// 读取image文件
getFlowViewer: function(procInsId) {
return request({
url: '/flowable/v1/flowable/task/flowViewer/' + procInsId,
method: 'get'
})
}
}

50
warehousing-system/project_web_ui/src/api/flow/todo.js

@ -0,0 +1,50 @@
import request from '@/utils/request'
// 代办任务同意办理
export function businessAgree(params) {
return request({
url: '/portal/v1/flow/complete',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}
// 代办任务驳回任务
export function rejectTask(params) {
return request({
url: '/portal/v1/flow/reject/' + params.businessSid,
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}
// 代办任务终止任务
export function breakTask(params) {
return request({
url: '/portal/v1/flow/breakProcess/' + params.businessSid,
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}
// 代办任务撤回任务
export function revokeTask(params) {
return request({
url: '/portal/v1/flow/revokeProcess/' + params.userSid + '/' + params.businessSid,
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}

70
warehousing-system/project_web_ui/src/api/flow/vehicleReturn.js

@ -0,0 +1,70 @@
import request from '@/utils/request'
///scm/v1/scmvehiclereturn/listPage'
export default {
getPreviousNodesForReject: function(formobj) {
return request({
url: '/scm/v1/scmvehiclereturn/getPreviousNodesForReject',
method: 'post',
data: formobj,
headers: {
'Content-Type': 'application/json'
}
})
},
getNextNodesForSubmit: function(data) {
return request({
url: '/scm/v1/scmvehiclereturn/getNextNodesForSubmit',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
},
// 同意任务
agreeTask: function(params) {
return request({
url: '/scm/v1/scmvehiclereturn/complete',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 驳回任务
rejectTask: function(params) {
return request({
url: '/scm/v1/scmvehiclereturn/reject',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 终止任务
breakTask: function(params) {
return request({
url: '/scm/v1/scmvehiclereturn/breakProcess',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 撤回任务
revokeTask: function(params) {
return request({
url: '/scm/v1/scmvehiclereturn/revokeProcess',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}
}

47
warehousing-system/project_web_ui/src/api/system/Role/role.js

@ -0,0 +1,47 @@
import request from '@/utils/request'
import qs from 'qs'
const tokens = window.sessionStorage.getItem('token')
//
export function rolemenus(data) {
return request({
url: '/system/v1/rolemenus/' + data.roleSid,
method: 'get',
params: data
})
}
// 获取左侧菜单
export function getrolemenus(data) {
return request({
baseURL: '/api',
url: '/portal/v1/sysmenu/sourcemenutree',
method: 'POST',
async: false,
// data: {userSid: data.userSid, sourceSid: '000011'},
data: data,
headers: { 'Content-Type': 'application/json',
'token': tokens }
})
}
// 获取角色的主页菜单
export function sourcesofrole(data) {
return request({
url: '/system/v1/rolemenus/sourcesofrole',
method: 'POST',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
// 根据token值获取登录后的用户信息
export function loginDetails(data) {
return request({
baseURL: '/api',
url: '/portal/v1/sysuser/loginDetails',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}

69
warehousing-system/project_web_ui/src/api/system/Role/roleManage.js

@ -0,0 +1,69 @@
import request from '@/utils/request'
import qs from 'qs'
// 获取角色 不分页列表
export function roleList(data) {
return request({
url: '/system/v1/roles/list/',
method: 'post',
data: qs.stringify(data)
})
}
//获取角色 分页列表
export function rolePageList(data) {
return request({
url: '/system/v1/roles/pagelist',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
//保存 角色信息
export function saveRoleInfo(data) {
return request({
url: '/system/v1/roles',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
//根据sid 获取单个角色 信息
export function getRoleInfo(data) {
return request({
url: '/system/v1/roles/' + data.sid,
method: 'GET',
data: qs.stringify(data)
})
}
//根据sid 修改单个角色 信息
export function putRoleInfo(data) {
return request({
url: '/system/v1/roles/' + data.sid,
method: 'PUT',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
//根据sid 删除单个角色 信息
export function delRole(data) {
return request({
url: '/system/v1/roles/' + data.sid,
method: 'DELETE',
data: qs.stringify(data)
})
}
//根据sid 设置单个角色 的状态
export function setRoleEnable(data) {
return request({
url: `/system/v1/roles/setIsEnable/${data.sid}/${data.isEnable}`,
method: 'POST',
data: qs.stringify(data)
})
}

138
warehousing-system/project_web_ui/src/api/system/basefkManage/index.js

@ -0,0 +1,138 @@
import request from '@/utils/request'
import qs from 'qs'
// 用户列表
let tokens = window.sessionStorage.getItem('token');
export function userList(data){
return request({
url: '/base/v1/basefinbank/listPage',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 根据sid查询一条信息
export function userSingle(data){
return request({
url: '/base/v1/basefinbank/fetchSid/' +data.sid,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 新增
export function userAdd(data){
return request({
url: '/portal/v1/sysuser/save',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 更新
export function userUpdata(data){
return request({
url: '/portal/v1/sysuser/update/' +data.sid,
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 删除
export function delUser(data){
return request({
url: '/portal/v1/sysuser/delBySid/' +data.sid,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 初始化密码
export function initPwd(data){
return request({
url: '/portal/v1/sysuser/initPwd/' +data.sid,
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 单条用户的角色列表
export function setRole(data){
return request({
url: '/portal/v1/sysrole/listAllByUserSid/' +data.sid,
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 角色列表
export function saveOrgRole(data){
return request({
url: '/portal/v1/sysuserrole/update',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 查询角色列表
export function roleList(data){
return request({
url: '/base/v1/basefinpolicy/listAll',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 查询部门列表
export function orgList(data){
return request({
url: '/portal/v1/sysorganization/list',
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 查询岗位列表
export function postList(data){
return request({
url: '/portal/v1/syspost/fetchByOrgSid/'+data.sid,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 获取验证码
export function getCode(data){
return request({
url: '/portal/v1/sysuser/sendMessageCode/'+data.phone,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}

32
warehousing-system/project_web_ui/src/api/system/dataDict/dataDict.js

@ -0,0 +1,32 @@
import request from '@/utils/request'
import qs from 'qs'
//获取单位级别
export function getDwJb(data) {
return request({
url: '/system/dictCommon/getDwJb',
method: 'GET',
})
}
// 获取机构单位类别
export function getDwType(data) {
return request({
url: '/system/dictCommon/getDwType',
method: 'get',
params: data
})
}
//获取机构人员类别
export function getRylb(data) {
return request({
url: '/system/dictCommon/getRylb',
method: 'get'
})
}
// 根据Type值获取数据对象
export function getDicts(typeCode) {
return request({
url: '/system/dictCommon/dicts/'+typeCode,
method: 'get'
})
}

120
warehousing-system/project_web_ui/src/api/system/departments/departments.js

@ -0,0 +1,120 @@
import request from '@/utils/request'
import qs from 'qs';
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY'
let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/sysorganization/listPage',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 查询左侧部门列表
export function orgList(data){
return request({
url: '/portal/v1/sysorganization/list',
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 编辑部门信息
export function postOrgtree(data){
return request({
url: '/portal/v1/sysorganization/update/' +data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 获取 机构分页列表
export function putOrgtree(data) {
return request({
url: '/portal/v1/sysorganization/update/' +data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens}
})
}
// 新增部门信息
export function addOrgTree(data){
return request({
url: '/portal/v1/sysorganization/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 树 节点名称 删除
export function delOrgtree(data) {
return request({
url: `/portal/v1/sysorganization/delBySid/`+data.sid,
method: 'get',
data: qs.stringify(data),
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 获取 机构树形
export function getOrgTree(data) {
return request({
url: `/system/v1/departments/departmentTreeList/`+ data.organizationSid,
method: 'GET',
params: data
})
}
//// 添加 机构树形节点
//export function addOrgTree(data) {
//return request({
// url: `/system/v1/departments`,
// method: 'post',
// data: data,
// headers: {'Content-Type': 'application/json'}
//})
//}
// 获取 机构分页列表
export function getPagelist(data) {
return request({
url: `/system/v1/departments/pagelist`,
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
// 查看二维码
export function getQrCode(data) {
return request({
url: `/system/v1/departments/getQrCode/`+data.sid,
method: 'POST',
data: qs.stringify(data)
})
}

52
warehousing-system/project_web_ui/src/api/system/dictType/dictCommon.js

@ -0,0 +1,52 @@
import request from '@/utils/request'
import qs from 'qs'
let tokens = window.sessionStorage.getItem('token');
//获取字典子集 分页列表
export function dictCommonList(data) {
return request({
url: '/portal/v1/dictcommons/pageList',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
//保存 字典子级
export function savedictCommon(data) {
return request({
url: '/portal/v1/dictcommons/save',
method: 'POST',
data: qs.stringify(data),
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
//根据sid 获取单个菜单 信息
export function getRoleInfo(data) {
return request({
url: '/system/v1/menus/' + data.sid,
method: 'GET',
data: qs.stringify(data)
})
}
//根据sid 修改 数据字典
export function putdictCommon(data) {
return request({
url: '/portal/v1/dictcommons/update/' + data.sid,
method: 'POST',
data: qs.stringify(data)
})
}
//根据sid 删除菜单 信息
export function deldictCommon(data) {
return request({
url: '/portal/v1/dictcommons/delete/' + data.sid,
method: 'DELETE',
data: qs.stringify(data)
})
}

72
warehousing-system/project_web_ui/src/api/system/dictType/index.js

@ -0,0 +1,72 @@
import request from '@/utils/request'
import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY'
let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/dicttypes/pageList',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
//根据sid 修改
export function putDictType(data) {
return request({
url: '/portal/v1/dicttypes/update/' + data.sid,
method: 'POST',
data: qs.stringify(data)
})
}
////获取菜单 分页列表
//export function dictTypeList(data) {
//return request({
// url: '/system/dicttype/pageList',
// method: 'post',
// data: data,
// headers: {'Content-Type': 'application/json'}
//})
//}
//保存 角色信息
export function saveDictType(data) {
return request({
url: '/system/dicttype/save',
method: 'POST',
data: qs.stringify(data)
})
}
//根据sid 获取单个菜单 信息
export function getRoleInfo(data) {
return request({
url: '/system/v1/menus/' + data.sid,
method: 'GET',
data: qs.stringify(data)
})
}
//根据sid 删除菜单 信息
export function delDictType(data) {
return request({
url: '/system/dicttype/delete/' + data.sid,
method: 'DELETE',
data: qs.stringify(data)
})
}

84
warehousing-system/project_web_ui/src/api/system/functional/functional.js

@ -0,0 +1,84 @@
import request from '@/utils/request'
import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY'
let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/sysfunction/listAllVoForSource',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
//新增
export function savePost(data) {
return request({
url: '/portal/v1/sysfunction/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
//模块名称
export function sourceList(data) {
return request({
url: '/portal/v1/syssource/listAll',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 删除
export function delOrgroles(data) {
return request({
url: '/portal/v1/sysfunction/delBySids/'+ data.sid,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 修改
export function getSingleData(data){
return request({
url: '/portal/v1/sysfunction/fetchBySid/'+data.id,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
export function putOrgroles(data){
return request({
url: '/portal/v1/sysfunction/update/' +data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 功能是否可用状态
export function IsEnable(data){
return request({
url: '/portal/v1/sysfunction/updateIsEnable/' +data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}

16
warehousing-system/project_web_ui/src/api/system/log/index.js

@ -0,0 +1,16 @@
import request from '@/utils/request'
import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY'
let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function logPageList(data) {
return request({
url: '/portal/v1/systemlog/listPage',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}

115
warehousing-system/project_web_ui/src/api/system/menu/index.js

@ -0,0 +1,115 @@
import request from '@/utils/request'
import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY'
let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/sysmenu/listAllVoForSource',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 新增保存 菜单信息
export function saveMenusInfo(data) {
return request({
url: '/portal/v1/sysmenu/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
// 修改保存 菜单信息
export function putMenusInfo(data) {
return request({
url: '/portal/v1/sysmenu/update/'+ data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
//根据sid 删除单个 资源信息
export function delMenus(data) {
return request({
url: '/portal/v1/sysmenu/delBySids/' + data.sid,
method: 'get',
data: qs.stringify(data),
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 修改状态
export function IsEnable(data) {
return request({
url: '/portal/v1/sysmenu/updateIsEnable/' + data.sid,
method: 'POST',
data: qs.stringify(data),
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 获取菜单 不分页列表
export function roleList(data) {
return request({
url: '/system/v1/menus/list',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
//获取菜单 分页列表
export function menusPageList(data) {
return request({
url: '/system/v1/menus/pagelist',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
//获取菜单 树形分页列表
export function menusTreelist(data) {
return request({
url: '/system/v1/menus/treelist',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
//根据sid 获取单个菜单 信息
export function getRoleInfo(data) {
return request({
url: '/system/v1/menus/' + data.sid,
method: 'GET',
data: qs.stringify(data)
})
}

36
warehousing-system/project_web_ui/src/api/system/organization/organization.js

@ -0,0 +1,36 @@
import request from '@/utils/request'
import qs from 'qs'
let tokens = window.sessionStorage.getItem('token');
class user{
verifyList(data){ // 获取列表
return request({
url: '/system/organization/verifyList',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
orgRegisterDetails(data){ // 单位注册信息详情
return request({
url: '/system/organization/organizationRegisterDetails/'+data.organizationSid,
method: 'get',
params: data
})
}
verify(data){ // 审核
return request({
url: '/system/organization/verify',
method: 'post',
data: qs.stringify(data)
})
}
// 删除机构信息
del(data) {
return request({
url: '/system/organization/delete/'+data.sid,
method: 'DELETE',
data
})
}
}
export default new user()

61
warehousing-system/project_web_ui/src/api/system/postManage/index.js

@ -0,0 +1,61 @@
import request from '@/utils/request'
import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMTE1MjUwfQ.gtn_mVsbwH6ztl835rWmIY4DxeNmRe_TOt-Q0TdldIE'
let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/syspost/listPage',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 查询部门列表
export function orgList(data){
return request({
url: '/portal/v1/sysorganization/list',
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 新增
export function savePost(data){
return request({
url: '/portal/v1/syspost/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 修改
export function putOrgroles(data){
return request({
url: '/portal/v1/syspost/update/' +data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 删除
export function delOrgroles(data){
return request({
url: '/portal/v1/syspost/delBySids/' + data.sids,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}

139
warehousing-system/project_web_ui/src/api/system/roleAdminister/index.js

@ -0,0 +1,139 @@
import request from '@/utils/request'
import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjI5OTQxNjI1fQ.aOFOz0h7c8YQs-ti2GLpqeWu4AE9mifx_043hLJQf8g'
let tokens = window.sessionStorage.getItem('token');
// 业务角色 列表
export function roleOrgList(data){
return request({
url: '/portal/v1/sysrole/listPage',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 设置是否可用:isEnable:1可用,0不可用
export function setRoleEnable(data) {
return request({
url: `/system/v1/orgroles/setIsEnable/${data.sid}/${data.isEnable}`,
method: 'POST',
data: qs.stringify(data)
})
}
/**
* <新增 保存角色>
* @orgSid 机构SID
* @remarks 备注
* @roleName 角色名称
* */
export function saveOrgroles(data) {
return request({
url: '/portal/v1/sysrole/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
/**
* <根据SID 修改角色>
* @sid 角色SID
* @orgSid 机构SID
* @remarks 备注
* @roleName 角色名称
* */
export function putOrgroles(data) {
return request({
url: `/portal/v1/sysrole/update/${data.sid}`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
/**
* <根据SID 删除角色>
* @sid 角色SID
* */
export function delOrgroles(data) {
return request({
url: `/portal/v1/sysrole/delBySids/${data.sid}`,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 菜单授权
export function roleMenuTree(data) {
return request({
url: `/portal/v1/sysmenu/listAllByRoleSid`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 菜单授权保存
export function saveorgrolemenus(data) {
return request({
url: `/portal/v1/sysmenurole/updateRoleAndMenu`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 资源授权
export function sourceMenuTree(data) {
return request({
url: `/portal/v1/syssource/listAllByRoleSid`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 资源授权保存
export function saveSource(data) {
return request({
url: `/portal/v1/syssourcerole/updateRoleAndSource`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 功能授权
export function funMenuTree(data) {
return request({
url: `/portal/v1/sysfunction/listAllByRoleSid`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 功能授权保存
export function savefunMenu(data) {
return request({
url: `/portal/v1/sysrolefunction/updateRoleAndFunction`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}

31
warehousing-system/project_web_ui/src/api/system/roleAdminister/rolemenus.js

@ -0,0 +1,31 @@
import request from '@/utils/request'
import qs from 'qs'
/**
* < 业务角色授权时菜单列表拥有的菜单选中>
* @orgTypeKeys 单位性质类别
* @roleSid 业务角色sid
* @userType 用户类型只能为1或2
* */
export function roleMenuTree(data){
return request({
url: '/system/v1/orgrolemenus/menutree',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
/**
* < 保存角色授权的菜单项 >
* @roleMenus[] 角色权限列表 {menuSid 菜单sid} {orgSid 单位sid} {roleSid 角色sid}
* @roleSid 业务角色sid
* */
export function saveorgrolemenus(data){
return request({
url: '/system/v1/orgrolemenus',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}

21
warehousing-system/project_web_ui/src/api/system/roleMenus/index.js

@ -0,0 +1,21 @@
import request from '@/utils/request'
import qs from 'qs'
//角色授权时菜单列表(拥有的菜单选中)
export function getrolemenus(data) {
return request({
url: `/system/v1/rolemenus/${data.roleSid}`,
method: 'GET',
params: data
})
}
//保存 角色授权时菜单列表
export function saverolemenus(data) {
return request({
url: `/system/v1/rolemenus`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}

111
warehousing-system/project_web_ui/src/api/system/sources/index.js

@ -0,0 +1,111 @@
import request from '@/utils/request'
import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY'
let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/syssource/listPage',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
//保存 资源信息
export function saveSourcesInfo(data) {
return request({
url: '/portal/v1/syssource/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 修改 保存 资源信息
export function putSourcesInfo(data) {
return request({
url: '/portal/v1/syssource/update/' + data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
//根据sid 删除单个 资源信息
export function delSources(data) {
return request({
url: '/portal/v1/syssource/delBySids/' + data.sid,
method: 'get',
data: qs.stringify(data),
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 获取获取资源类别
export function getZzylb(data) {
return request({
url: '/portal/v1/syssource/listAll',
method: 'post',
headers: {'Content-Type': 'application/json'}
})
}
// 获取资源 不分页列表
export function sourcesList(data) {
return request({
url: '/system/v1/sources/list',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
// 获取资源列表 不分页下拉
export function getsourceList(data) {
return request({
url: '/system/v1/sources/sourceList',
method: 'post'
})
}
////获取资源 分页列表
//export function sourcesPageList(data) {
//return request({
// url: '/system/v1/sources/pagelist',
// method: 'POST',
// data: data,
// headers: {'Content-Type': 'application/json'}
//})
//}
//根据sid 获取单个 资源信息
export function getSourcesInfo(data) {
return request({
url: '/system/v1/sources/' + data.sid,
method: 'GET',
data: qs.stringify(data)
})
}

84
warehousing-system/project_web_ui/src/api/system/user/Auser.js

@ -0,0 +1,84 @@
import request from '@/utils/request'
import qs from 'qs'
export function verifyList(data){ // 用户列表
return request({
url: '/system/user/verifyList',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
// admin用户列表
export function userListByAdmin(data){
return request({
url: '/system/user/userListByAdmin',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
// 设置角色
export function psotUserRole(data){
return request({
url: '/system/v1/userrole',
method: 'post',
data: qs.stringify(data)
})
}
// 用户初始化密码
export function initPwd(data){
return request({
url: 'system/user/initPwd/'+data.sid,
method: 'POST',
data: qs.stringify(data)
})
}
// 用户删除接口
export function delUser(data){
return request({
url: '/system/user/delete/'+data.sid,
method: 'DELETE',
params: data
})
}
// 初始化设置角色
export function initUserRole(data){
return request({
url: '/system/v1/userroles/initUserRole/'+ data.userSid,
method: 'get',
params: data
})
}
// 保存角色
export function saveUserRole(data){
return request({
url: '/system/v1/userroles',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
// 用户信息
export function getUserINfo(data){
return request({
url: '/system/user/userRegisterDetails',
method: 'get',
params: data
})
}
// 单位信息
export function getOrgINfo(data){
return request({
url: '/system/organization/organizationRegisterDetails/'+ data.organizationSid,
method: 'get',
params: data
})
}

38
warehousing-system/project_web_ui/src/api/system/user/login.js

@ -0,0 +1,38 @@
import request from '@/utils/request'
import qs from 'qs'
//获取菜单 分页列表
export function login1(data) {
return request({
url: '/portal/v1/sysuser/login',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
// 'token':tokens
}
})
}
class user {
login(data) { // 登录
return request({
url: '/portal/v1/sysuser/login',
method: 'post',
data
})
}
logout() { // 退出
return request({
url: '/vue-admin-template/user/logout',
method: 'post'
})
}
updatePassword(data) { // 退出修改密码
return request({
url: '/system/user/updatePassword',
method: 'post',
data: qs.stringify(data)
})
}
}

43
warehousing-system/project_web_ui/src/api/system/user/user.js

@ -0,0 +1,43 @@
import request from '@/utils/request'
import qs from 'qs'
class user{
verifyList(data){ // 请求审核列表
return request({
url: '/system/user/verifyList',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
userRegisterDetails(data){ // 获取审核内容
console.log(data)
return request({
url: '/system/user/userRegisterDetails',
method: 'get',
params: data
})
}
verify(data){ // 审核通过不通过
return request({
url: '/system/user/verify',
method: 'post',
data: qs.stringify(data)
})
}
userDelete(data){ // 删除
return request({
url: '/system/user/delete/{sid}',
method: 'delete',
data: qs.stringify(data)
})
}
userNameDelete(data){ // 删除个人注册审核
return request({
url: '/system/staffApply/deleteByUserName',
method: 'delete',
data: qs.stringify(data)
})
}
}
export default new user()

32
warehousing-system/project_web_ui/src/api/system/userAdminister/client.js

@ -0,0 +1,32 @@
import request from '@/utils/request'
import qs from 'qs'
// 委托人分页列表
export function clientList(data){
return request({
url: '/jlcyry/v1/clientalterrecords/pagerList',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
// 变更选择委托人列表
export function setclientList(data){
return request({
url: '/jlcyry/v1/clientalterrecords/staffClientList',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
// 变更为被委托人
export function doClientAlter(data){
return request({
url: '/jlcyry/v1/clientalterrecords/doClientAlter',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}

69
warehousing-system/project_web_ui/src/api/system/userAdminister/index.js

@ -0,0 +1,69 @@
import request from '@/utils/request'
import qs from 'qs'
let tokens = window.sessionStorage.getItem('token');
// 单位用户列表
export function orgUserList(data){
return request({
url: '/system/user/userListByOrg',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
// 设置角色
export function psotUserRole(data){
return request({
url: '/system/v1/userrole',
method: 'post',
data: qs.stringify(data)
})
}
/**
* 获取角色列表
* orgSid 用户SID
* roleName 角色名称
* */
export function orgrolesList(data){
return request({
url: '/system/v1/orgroles/list',
method: 'post',
headers: {'Content-Type': 'application/json'},
data
})
}
/**
* 保存 设置角色 /system/v1/orguserroles
* */
export function saveOrgRole(data){
return request({
url: '/system/v1/orguserroles',
method: 'post',
headers: {'Content-Type': 'application/json'},
data
})
}
/**
* 部门机构列表 /system/v1/departments/departmentOrgList/{organizationSid}
* */
export function getOrgList(organizationSid){
return request({
url: '/system/v1/departments/departmentOrgList/' + organizationSid,
method: 'get'
})
}
/**
* 保存 设置部门 /system/v1/orguserroles
* */
export function saveDepartment(data){
return request({
url: '/system/v1/departmentStaffs/setUpDepartment',
method: 'post',
headers: {'Content-Type': 'application/json'},
data
})
}

60
warehousing-system/project_web_ui/src/api/system/userManage/index.js

@ -0,0 +1,60 @@
import request from '@/utils/request'
import qs from 'qs'
// 用户列表
let tokens = window.sessionStorage.getItem('token');
export function userList(data){
return request({
url: '/base/v1/basefinbank/listPage',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 根据sid查询一条信息
export function userSingle(data){
return request({
url: '/base/v1/basefinpolicy/fetchSid/' +data.sid,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 新增
export function userListAdd(data){
return request({
url: '/base/v1/basefinbank/save/',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 更新
export function userUpdata(data){
return request({
url: '/base/v1/basefinbank/update/' +data.sid,
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 删除
export function delbank(data){
return request({
url: '/base/v1/basefinbank/deleteBySids/' +data.sid,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}

56
warehousing-system/project_web_ui/src/api/user.js

@ -0,0 +1,56 @@
import request from '@/utils/request'
// eslint-disable-next-line no-unused-vars
import qs from 'qs'
// 登录
export function login(data) {
return request({
url: '/portal/v1/sysuser/login',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
// 用户注册
export function registUser(data) {
return request({
url: '/system/user/save',
method: 'post',
data,
headers: { 'Content-Type': 'application/x-www-form-urlencoded;' }
})
}
// 获取手机验证码
export function getVerificationCode(data) {
return request({
url: '/system/user/getVerificationCode',
method: 'get',
params: data
})
}
// 获取登录验证码
export function imgCode() {
return request({
url: '/system/api/defaultBlendCode?temm=' + new Date().getTime(),
method: 'get'
})
}
// 获取用信息
export function getInfo(token) {
return request({
url: '/system/user/loginDetails',
method: 'post'
})
}
export function logout(data) { // 退出
return request({
url: '/portal/v1/sysuser/signOut',
method: 'post',
data: qs.stringify(data)
})
}

BIN
warehousing-system/project_web_ui/src/assets/404_images/404.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
warehousing-system/project_web_ui/src/assets/404_images/404_cloud.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
warehousing-system/project_web_ui/src/assets/home/anrui.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
warehousing-system/project_web_ui/src/assets/home/bIcon1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
warehousing-system/project_web_ui/src/assets/home/bIcon2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
warehousing-system/project_web_ui/src/assets/home/bIcon3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
warehousing-system/project_web_ui/src/assets/home/bIcon4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
warehousing-system/project_web_ui/src/assets/home/bIcon5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
warehousing-system/project_web_ui/src/assets/home/bIcon6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

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

Loading…
Cancel
Save