Browse Source

2023-11-16

master
guoxing 2 years ago
parent
commit
d43e088ede
  1. 4
      supervise-customer-ui/.env.development
  2. 2
      supervise-customer-ui/.env.production
  3. 4
      supervise-customer-ui/src/api/portal/Upload.js
  4. 6
      supervise-customer-ui/src/api/system/Role/role.js
  5. 8
      supervise-customer-ui/src/main.js
  6. 2
      supervise-report-ui/.env.development
  7. 30
      supervise-report-ui/src/api/portal/Upload.js
  8. 34
      supervise-report-ui/src/api/portal/areaPicker.js
  9. 157
      supervise-report-ui/src/api/project/project.js
  10. 4
      supervise-report-ui/src/main.js
  11. 24
      supervise-report-ui/src/router/modules/codemenu.js
  12. 49
      supervise-report-ui/src/views/project/projectDaily.vue
  13. 314
      supervise-report-ui/src/views/projectList/index.vue
  14. 938
      supervise-report-ui/src/views/projectList/projectAdd.vue
  15. 1488
      supervise-report-ui/src/views/projectList/projectAdd2.vue
  16. 373
      supervise-report-ui/src/views/projectList/projectInfo.vue
  17. 407
      supervise-report-ui/src/views/projectList/projectInfo2.vue
  18. 2
      supervise-report-ui/src/views/reportCenter/thresholdAnalysis.vue
  19. 10
      supervise-uniapp/common/request.api.js
  20. 14
      supervise-uniapp/pages.json
  21. 90
      supervise-uniapp/pages/home/WorkFragment.vue
  22. 11
      supervise-uniapp/pages/index/AlreadyProcessed.vue
  23. 7
      supervise-uniapp/pages/index/DataAssembleList2.vue
  24. 11
      supervise-uniapp/pages/index/RegulatoryReporting.vue
  25. 814
      supervise-uniapp/pages/index/RiskAlert.vue
  26. 11
      supervise-uniapp/pages/index/WaitingProcessed.vue
  27. 131
      supervise-uniapp/pages/index/warehouseSecurity.vue
  28. 2
      yxt-portal-ui/.env.development
  29. 2
      yxt-portal-ui/.env.production
  30. 10
      yxt-portal-ui/src/api/User/login.js
  31. 16
      yxt-portal-ui/src/api/flow/todo.js
  32. 6
      yxt-portal-ui/src/api/flow/todoForBusiness.js
  33. 2
      yxt-portal-ui/src/api/system/Role/role.js
  34. 0
      yxt-portal-ui/src/api/system/advertising.js
  35. 2
      yxt-portal-ui/src/api/system/datamapping/datamapping.js
  36. 22
      yxt-portal-ui/src/api/system/departments/departments.js
  37. 8
      yxt-portal-ui/src/api/system/dictType/dictCommon.js
  38. 12
      yxt-portal-ui/src/api/system/dictType/index.js
  39. 14
      yxt-portal-ui/src/api/system/functional/functional.js
  40. 2
      yxt-portal-ui/src/api/system/home/home.js
  41. 10
      yxt-portal-ui/src/api/system/liuchengchaosong/liuchengchaosong.js
  42. 2
      yxt-portal-ui/src/api/system/log/index.js
  43. 10
      yxt-portal-ui/src/api/system/menu/index.js
  44. 12
      yxt-portal-ui/src/api/system/mobileterminal/mobileterminal.js
  45. 4
      yxt-portal-ui/src/api/system/personalization/personalization.js
  46. 14
      yxt-portal-ui/src/api/system/postManage/index.js
  47. 14
      yxt-portal-ui/src/api/system/region/region.js
  48. 30
      yxt-portal-ui/src/api/system/roleAdminister/index.js
  49. 10
      yxt-portal-ui/src/api/system/sources/index.js
  50. 4
      yxt-portal-ui/src/api/system/user/login.js
  51. 28
      yxt-portal-ui/src/api/system/userManage/index.js
  52. 4
      yxt-portal-ui/src/api/user.js
  53. 4
      yxt-portal-ui/src/api/workflow/finished.js
  54. 14
      yxt-portal-ui/src/api/workflow/flow.js
  55. 13
      yxt-portal-ui/src/router/index.js
  56. 281
      yxt-portal-ui/src/views/Advertising/AdvertisingIndex.vue
  57. 310
      yxt-portal-ui/src/views/Advertising/AdvertisingIndexAdd.vue
  58. 282
      yxt-portal-ui/src/views/Advertising/AdvertisingIndexDetail.vue

4
supervise-customer-ui/.env.development

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

2
supervise-customer-ui/.env.production

@ -2,7 +2,7 @@
ENV = 'production'
# base api
VUE_APP_BASE_API = '/api/service'
VUE_APP_BASE_API = '/api/customer'
## 配置 正式接口地址
VUE_APP_URL = "http://120.46.131.15:8111"

4
supervise-customer-ui/src/api/portal/Upload.js

@ -1,10 +1,10 @@
import request from '@/utils/request'
import qs from 'qs'
// 统一请求路径前缀
const base = process.env.VUE_APP_URL
const base = process.env.VUE_APP_BASE_API
// 文件上传接口
export const uploadFile = '/api/customer/file/upload'
export const uploadFile = base+'/file/upload'
// export const uploadFile = process.env.VUE_APP_BASE_API + '/customer/file/upload'

6
supervise-customer-ui/src/api/system/Role/role.js

@ -13,8 +13,7 @@ export function rolemenus(data) {
// 获取左侧菜单
export function getrolemenus(data) {
return request({
baseURL: '/api',
url: '/portal/v1/sysmenu/sourcemenutree',
url: '/v1/sysmenu/sourcemenutree',
method: 'POST',
async: false,
// data: {userSid: data.userSid, sourceSid: '000011'},
@ -36,8 +35,7 @@ export function sourcesofrole(data) {
// 根据token值获取登录后的用户信息
export function loginDetails(data) {
return request({
baseURL: '/api',
url: '/portal/v1/sysuser/loginDetails',
url: '/v1/sysuser/loginDetailsNew',
method: 'post',
data: data,
headers: {

8
supervise-customer-ui/src/main.js

@ -43,8 +43,9 @@ VueAMap.initAMapApiLoader({
Vue.config.productionTip = false
let token = null
token = GetQueryString('token')
// let token = null
let token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI4NWUwYWY0Yi1lMGJhLTQyM2UtOTIxMS1kYjI2MDg2NTgwM2YiLCJpc3MiOiJXQksiLCJleHAiOjE2OTk0MDQxNTl9.9Qd_4J137TADwjJragatzBVBXl79HgjmGP_GZeXCLQQ"
// token = GetQueryString('token')
if (token) {
setStorage(token)
const href = window.location.href
@ -66,8 +67,7 @@ if (parseInt(one) > 18) {
// 获取登录用户信息
function getUserInfo() {
return request({
baseURL: '/api',
url: '/portal/v1/sysuser/loginDetails',
url: '/v1/sysuser/loginDetailsNew',
method: 'post',
headers: {
'Content-Type': 'application/json'

2
supervise-report-ui/.env.development

@ -6,4 +6,4 @@ VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址
##VUE_APP_URL = "http://8.130.39.13:8112"
VUE_APP_URL = "http://192.168.1.107:7009"
VUE_APP_URL = "http://192.168.0.104:7009"

30
supervise-report-ui/src/api/portal/Upload.js

@ -0,0 +1,30 @@
import request from '@/utils/request'
import qs from 'qs'
// 统一请求路径前缀
const base = process.env.VUE_APP_BASE_API
// 文件上传接口
export const uploadFile =base+ '/file/upload'
// export const uploadFile = process.env.VUE_APP_BASE_API + '/customer/file/upload'
// 上传图片
// export function imageUpload(data) {
// return request({
// url: '/portal/file/upload',
// method: 'post',
// data,
// headers: { 'Content-Type': 'multipart/form-data' }
// })
// }
// 移除图片
export function deleteFilesOss(data) {
return request({
url: '/base/v1/baseVehicleAppendixs/deleteFilesOss',
method: 'post',
data: qs.stringify(data),
// headers: { 'Content-Type': 'multipart/form-data' }
})
}

34
supervise-report-ui/src/api/portal/areaPicker.js

@ -0,0 +1,34 @@
import request from '@/utils/request'
// 获取省/portal/v1/regions/getProvince
export function getProvince(data) {
return request({
url: 'v1/region/getProvince',data,
method: 'get',
params:data,
})
}
// 根据省sid获取该省的所有市
export function getCity(data) {
return request({
url: '/portal/v1/regions/getCity',
params:data,
method: 'get',
})
}
// 根据市sid获取该市的所有县区
export function getCounty(data) {
return request({
url: '/portal/v1/regions/getCounty',
method: 'get',
params:data,
})
}
// // 区域列表(省市县均可用)
// export function selectsList(data) {
// return request({
// url: '/portal/v1/regions/selectsList', data,
// method: 'post',
// headers: { 'Content-Type': 'application/json' }
// })
// }

157
supervise-report-ui/src/api/project/project.js

@ -0,0 +1,157 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/v1/projectinformation/listPage',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 获取贷款行
getLoanbankinformation: function(data) {
return request({
url: '/v1/loanbankinformation/list',
data,
method: 'post',
params: data,
})
},
// 获取贷款行
getUserListByOrg: function() {
return request({
url: '/v1/sysorganization/getUserListByOrg/100',
method: 'get',
})
},
// 获取项目单位
getEnterpriseinformation: function(data) {
return request({
url: '/v1/enterpriseinformation/list',
data,
method: 'post',
params: data,
})
},
// 获取行业字典信息
getIndustrydictionary: function(data) {
return request({
url: '/v1/industrydictionary/list',
data,
method: 'post',
params: data,
})
},
// 获取类型字典信息
getProjtypedictionary: function(data) {
return request({
url: '/v1/projtypedictionary/list',
data,
method: 'post',
params: data,
})
},
// 获取 状态字典信息
getProjtypedstated: function(data) {
return request({
url: '/projectstatedictionary/listAll',
data,
method: 'get',
params: data,
})
},
saveInfo: function(data) {
return request({
url: '/v1/projectinformation/save',
method: 'post',
data: data
});
},
addInfo: function(data) {
return request({
url: '/v1/projectinformation/save',
method: 'post',
data: data
});
},
fetchBySid: function(sid) {
return request({
url: '/v1/projectinformation/getEnterpriseBySid/' + sid
})
},
getInfoBySid: function(sid) {
return request({
url: '/v1/projectinformation/getProjectBySid/' + sid
})
},
updateData: function(data) {
return request({
url: '/v1/projectinformation/update',
method: 'post',
data: data
});
},
// 选择可用的仓库信息
selectStoreHouse: function() {
return request({
url: '/v1/projectinformation/selectStoreHouse',
method: 'get',
});
},
delBySids: function(sid) {
return request({
url: '/v1/projectinformation/delete/' + sid,
method: 'delete'
})
},
getStorehouseBySid: function(sid) {
return request({
url: '/v1/projectinformation/getStorehouseBySid/' + sid,
method: 'get'
})
},
selectStoreHouseSid: function(sid) {
return request({
url: '/v1/storehouseproject/selectStoreBySid/' + sid,
method: 'post'
})
},
// 获取所有贷款行名称
getBankName: function() {
return request({
url: '/v1/projectinformation/getBankName',
method: 'get',
});
},
// 获取所有项目类型名称
getProjectType: function() {
return request({
url: '/v1/projectinformation/getProjectType',
method: 'get',
});
},
}

4
supervise-report-ui/src/main.js

@ -50,7 +50,7 @@ VueAMap.initAMapApiLoader({
Vue.config.productionTip = false
let token = null
// let token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI4NWUwYWY0Yi1lMGJhLTQyM2UtOTIxMS1kYjI2MDg2NTgwM2YiLCJpc3MiOiJXQksiLCJleHAiOjE2OTgzODc5MTN9.iu23s5M4XCJgIvjaK3y1CAWMUTMvIFmjCIDP5bOAb0A'
// let token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI4NWUwYWY0Yi1lMGJhLTQyM2UtOTIxMS1kYjI2MDg2NTgwM2YiLCJpc3MiOiJXQksiLCJleHAiOjE3MDAyMDA0MzJ9.S-GQgEwnJIW7miKc6KF5w_le5YpsWyCdqkHAzBqwpmE'
token = GetQueryString('token')
if (token) {
setStorage(token)
@ -138,4 +138,4 @@ function GetQueryString(name) {
// var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
// var r = window.location.search.substr(1).match(reg)
// if (r != null) return unescape(r[2]); return null
}
}

24
supervise-report-ui/src/router/modules/codemenu.js

@ -69,14 +69,14 @@ const codemenu = [{
component: Layout,
redirect: '/thresholdAnalysis/index',
meta: {
title: '阀值分析'
title: '质押率分析表'
},
children: [{
path: '/thresholdAnalysis/index',
component: () => import('@/views/reportCenter/thresholdAnalysis.vue'),
name: 'thresholdAnalysis',
meta: {
title: '阀值分析',
title: '质押率分析表',
noCache: true,
}
}]
@ -101,16 +101,30 @@ const codemenu = [{
component: Layout,
redirect: '/projectDaily/index',
meta: {
title: '项目监管报表'
title: '监管报表'
},
children: [{
path: '/projectDaily/index',
component: () => import('@/views/project/projectDaily.vue'),
name: 'projectDailyIndex',
meta: {
title: '项目监管报表',
title: '监管报表',
noCache: true,
}
}]
}]
},
{
path: '/projectList',
component: Layout,
redirect: '/projectList/index',
children: [{
path: '/projectList/index',
component: () => import('@/views/projectList/index.vue'),
name: 'index',
meta: {
title: '项目列表',
noCache: true
}
}]
},]
export default codemenu

49
supervise-report-ui/src/views/project/projectDaily.vue

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="项目监管报表" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<button-bar ref="btnbar" view-title="监管报表" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
@ -49,8 +49,10 @@
<div>{{ scope.row.pledgeRatePercent }}%</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="130">
<el-table-column label="操作" align="center" width="250">
<template slot-scope="scope">
<el-button type="primary" icon="el-icon-view" size="small"
@click="showView(scope.row)">查看</el-button>
<el-button type="primary" icon="el-icon-chat-dot-round" size="small"
@click="sendMess(scope.row)">发送通知</el-button>
</template>
@ -301,7 +303,7 @@
}
],
dialogVisible: false,
updateAction: process.env.VUE_APP_BASE_API+'/projectdaily/uploadfile',
updateAction: process.env.VUE_APP_BASE_API + '/projectdaily/uploadfile',
showSelectButton: false,
currentLogSid: '',
ychzFilePath: '',
@ -387,7 +389,7 @@
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
console.log("process.env.VUE_APP_URL",process.env.VUE_APP_BASE_API)
console.log("process.env.VUE_APP_URL", process.env.VUE_APP_BASE_API)
this.initData()
this.loadList()
},
@ -409,8 +411,18 @@
}
},
showBalance() {
this.getProjectAccountBySid(this.projectDaily.projectSid)
this.banInfo = true
if (this.projectDaily.projectSid) {
this.getProjectAccountBySid(this.projectDaily.projectSid)
this.banInfo = true
} else {
this.$message({
showClose: true,
type: 'error',
message: '请选择项目'
})
}
},
bankInfoClose() {
this.banInfo = false
@ -432,7 +444,7 @@
// =()(++++)
// = (-)/ (+++)
// totalLoan: 0, // ',
// useLimit: 0, // ',
// accountsBalance: 0, // ',
@ -444,7 +456,7 @@
const a = Number(this.projectDaily.useLimit)
const b = Number(this.projectDaily.accountsReceivable) + Number(this.projectDaily.stockAmount) + Number(this
.projectDaily.transitAmount) + Number(this.projectDaily
.advancePayment)+ Number(this.projectDaily.accountsBalance)
.advancePayment) + Number(this.projectDaily.accountsBalance)
if (b === 0) {
this.zhiyalv = '0'
} else {
@ -455,17 +467,17 @@
req.projectdailyistAll().then(res => {
// if (res.data.length > 0) {
this.projectList = res.data
this.projectList = res.data
// this.projectDaily.projectSid = this.projectList[0].sid
// this.projectDaily.projectName = this.projectList[0].entryName
// this.projectDaily.totalLoan = Number(this.projectList[0].creditLimit)
// this.projectDaily.useLimit = Number(this.projectList[0].useLimit)
// this.projectDaily.accountsBalance = this.projectList[0].balance
// this.projectDaily.projectSid = this.projectList[0].sid
// this.projectDaily.projectName = this.projectList[0].entryName
// this.projectDaily.totalLoan = Number(this.projectList[0].creditLimit)
// this.projectDaily.useLimit = Number(this.projectList[0].useLimit)
// this.projectDaily.accountsBalance = this.projectList[0].balance
// console.log('projectList:', res)
// console.log('projectList:', this.projectList[0])
// console.log('projectDaily:', this.projectDaily)
// console.log('projectList:', res)
// console.log('projectList:', this.projectList[0])
// console.log('projectDaily:', this.projectDaily)
// }
@ -608,6 +620,9 @@
}
})
},
showView(row){
window.open('https://supervise.yxtsoft.com/map365/#/mortgage');
},
sendMess(row) {
req.sendMess(row.projectSid, row.orderDate).then(res => {
this.$message({

314
supervise-report-ui/src/views/projectList/index.vue

@ -0,0 +1,314 @@
<template>
<div class="app-container">
<div v-show="viewState ==1">
<button-bar view-title="项目列表" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="80px" class="tab-header">
<el-form-item label="项目名称">
<el-input v-model="listQuery.params.entryName" maxlength="20" placeholder="请输入项目名称" class="addinputw"
clearable />
</el-form-item>
<el-form-item label="项目类型">
<el-select v-model="listQuery.params.projectType" placeholder="请选择" >
<el-option
v-for="(item,i) in ProjectTypeList"
:key="i"
:label="item.projectType"
:value="item.projectType">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="贷款行">
<el-select v-model="listQuery.params.bankSid" placeholder="请选择" >
<el-option
v-for="(item,i) in storehouseList"
:key="i"
:label="item.name"
:value="item.sid">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="项目状态">
<el-select v-model="listQuery.params.stateName" placeholder="请选择" @change="getState">
<el-option
v-for="(item,i) in stateList"
:key="i"
:label="item.name"
:value="item.sid">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleReset">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleFilter">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">项目列表</div>
<!-- 翻页分页 -->
<!-- <pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/> -->
</div>
<div class="">
<el-table v-loading="listLoading" :data="list" border style="width: 100%;" :row-style="{height: '40px'}">
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<!-- <el-table-column label="操作" wid align="center" width="180">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toDetail(scope.row)">查看</el-button>
<el-button type="primary" size="mini" @click="toEdit(scope.row)">编辑</el-button>
</template>
</el-table-column> -->
<el-table-column label="项目名称" prop="entryName" width="250" align="center" />
<el-table-column label="所属行业" prop="industryName" width="120" align="center" />
<el-table-column label="项目类型" prop="typeName" width="120" align="center" />
<el-table-column label="项目状态" prop="stateName" width="120" align="center" />
<el-table-column label="授信额度" prop="creditLimit" width="120" align="center" />
<el-table-column label="签约日期" prop="signingDate" width="120" align="center" />
<el-table-column label="到期日期" prop="endDate" width="120" align="center" />
<el-table-column label="用信总额" prop="useLimit" width="120" align="center" />
<el-table-column label="贷款行" prop="bankName"align="center" />
<el-table-column label="客户经理" prop="bmanagerName" width="120" align="center" />
<!-- <el-table-column label="企业名称" prop="enterpriseName" width="250" align="center" /> -->
<!-- <el-table-column label="联系人" prop="econtacts" width="100" align="center" /> -->
<el-table-column label="监管负责人" prop="regulatoryLeader" width="120" align="center" />
</el-table>
</div>
<div class="pages">
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current"
:limit.sync="listQuery.size" class="pagination" @pagination="getList" />
</div>
</div>
</div>
<!-- <projectAdd v-show="viewState ==2 || viewState ==3" ref="divAdd" @doback="resetState" @reloadlist="getList" /> -->
<!-- <projectInfo v-show="viewState ==4" ref="divInfo" @doback="resetState" @reloadlist="getList"/> -->
</div>
</template>
<script>
import req from '@/api/project/project'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
// import projectAdd from './projectAdd2.vue'
// import projectInfo from './projectInfo2.vue'
export default {
name: 'CustomerManagement',
components: {
Pagination,
pageye,
ButtonBar,
// projectAdd,
// projectInfo,
},
data() {
return {
listLoading: false,
btndisabled: false,
btnList: [
// {
// type: 'primary',
// size: 'small',
// icon: 'plus',
// btnKey: 'toAdd',
// btnLabel: ''
// },
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
list: [],
listQuery: {
current: 1,
size: 10,
params: {
entryName: '',
projectType: '',
bankSid: '',
stateSid: 'b2a9f856-016e-4880-ba1c-261ac4edc8ec',
stateName: '正式监管',
},
total: 0
},
viewState: 1,
storehouseList:[],
ProjectTypeList:[],
stateList: [],
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
this.init()
//
},
methods: {
getState(value){
console.log(">>>>>>>>>getState", value)
const choose = this.stateList.filter((item) => item.sid === value)
console.log(">>>>>>>>>getState", choose)
this.listQuery.params.stateSid = choose[0].sid
},
btnHandle(btnKey) {
switch (btnKey) {
// case 'toAdd':
// this.toAdd()
// break
case 'doClose':
this.doClose()
break
default:
break
}
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
//
init() {
this.getList()
this.getBankName()
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
getBankName(){
req.getUserListByOrg().then((res)=>{
console.log(">>>>>>>>>getBankName", res.data)
this.storehouseList=res.data
})
req.getProjectType().then((res)=>{
console.log(">>>>>>>>>getProjectType", res.data)
this.ProjectTypeList=res.data
})
req.getProjtypedstated().then((res)=>{
console.log(">>>>>>>>>getProjtypedstated", res.data)
this.stateList=res.data
this.stateList.unshift({
name:'全部',
sid:'',
})
})
},
//
getList() {
this.listLoading = true
req.listPage(this.listQuery).then((response) => {
this.listLoading = false
console.log(">>>>>>>>>listPage", response.data)
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleReset() {
this.listQuery.current = 1
this.getList()
},
//
handleFilter() {
this.listQuery = {
current: 1,
size: 10,
total: 0,
params: {
entryName: '',
projectType: '',
bankSid: '',
stateSid: 'b2a9f856-016e-4880-ba1c-261ac4edc8ec',
stateName: '正式监管',
}
}
this.getList()
},
//
toAdd() {
this.viewState = 2
this.$refs['divAdd'].showAdd()
},
//
toEdit(row) {
this.viewState = 3
this.$refs['divAdd'].showEdit(row)
},
// ID
doDel(row) {
const tip = '请确认是否删除所选记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
req.delBySids(row.sid).then((response) => {
if (response.success) {
this.$message({
showClose: true,
type: 'success',
message: '删除成功'
})
this.getList()
} else {
this.$message({
showClose: true,
type: 'error',
message: '删除失败'
})
}
})
})
},
toDetail(row) {
this.viewState = 4
this.$refs['divInfo'].showAdd(row.sid)
},
resetState() {
this.viewState = 1
},
jump(sid) {
console.log("jump",sid)
this.viewState = 2
this.$refs['divAdd'].showAdd(sid)
},
close(sid){
this.viewState = 4
this.$refs['divInfo'].showAdd(sid)
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

938
supervise-report-ui/src/views/projectList/projectAdd.vue

@ -0,0 +1,938 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>{{title}}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd" style="padding-bottom: 50px;">
<el-form ref="dataForm" :model="formobj" label-position="top" label-width="190px" class="formadd">
<div class="titwu">项目信息表</div>
<div class="title" style="display: flex;align-items: center;justify-content: space-between;height:40px">
<div>主体信息</div>
</div>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目名称</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-input v-model="formobj.entryName" placeholder="请输入项目名称" style="width:100%" class="addinputw"
clearable />
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">所属行业</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-select v-model="formobj.industryName" class="addinputw" placeholder="请选择所属行业" style="width:100%"
@change="getHangYe">
<el-option v-for="item in industryList" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目类型</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-select v-model="formobj.typeName" class="addinputw" placeholder="请选择项目类型" style="width:100%"
@change="getType">
<el-option v-for="item in typeList" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">质押率(%)</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-input v-model="formobj.bankPledgeRate" placeholder="请输入标准质押率" style="width:100%" class="addinputw"
clearable />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">贷款行</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-select v-model="formobj.bankName" class="addinputw" placeholder="请选择贷款行" style="width:100%"
@change="getBank">
<el-option v-for="item in bankList" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="trightbs">
<el-form-item class="trightb_item">
<span slot="label">客户经理</span>
</el-form-item>
</el-col>
<el-col :span="8" class="trightb_items">
<el-form-item class="trightb_item">
<el-select v-model="formobj.bmanagerName" class="addinputw" placeholder="请选择客户经理" style="width:100%"
@change="getBManager">
<el-option v-for="item in bManagerList" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目单位</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-select v-model="formobj.enterpriseName" class="addinputw" placeholder="请选择项目单位" style="width:100%"
@change="getEnterpriseName">
<el-option v-for="item in enterpriseList" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目联系人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-input v-model="formobj.econtacts" placeholder="请输入项目联系人" :readonly="true" style="width:100%"
class="addinputw" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">授信额度</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-input v-model="formobj.creditLimit" placeholder="请输入授信额度" style="width:100%" class="addinputw"
clearable />
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">授信日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-date-picker v-model="formobj.engaDate" type="date" style="width:100%" value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用信总额</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-input v-model="formobj.useLimit" placeholder="请输入用信额度" style="width:100%" class="addinputw"
clearable />
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用信日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-date-picker v-model="formobj.useDate" type="date" style="width:100%" value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">签约日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-date-picker v-model="formobj.signingDate" type="date" style="width:100%" value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">放款日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-date-picker v-model="formobj.loanDate" type="date" style="width:100%" value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目说明</span>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item class="trightb_item">
<el-input v-model="formobj.remarks" placeholder="请输入项目说明" style="width:100%;margin-bottom: 5px;"
type="textarea" :rows="7" class="addinputw" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">监管负责人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-input v-model="formobj.regulatoryLeader" placeholder="请输入监管负责人" style="width:100%" class="addinputw"
clearable />
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">事业部经理</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-input v-model="formobj.generalManager" placeholder="请输入事业部经理" style="width:100%" class="addinputw"
clearable />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">结束日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-date-picker v-model="formobj.endDate" type="date" style="width:100%" value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">填表日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-date-picker v-model="formobj.fillInDate" type="date" style="width:100%" value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目状态</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-select v-model="formobj.enterpriseName" class="addinputw" placeholder="请选择项目状态" style="width:100%"
@change="getEnterpriseName">
<el-option v-for="item in enterpriseList" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目状态说明</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<el-input v-model="formobj.econtacts" placeholder="请输入项目联系人" :readonly="true" style="width:100%"
class="addinputw" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">关联仓库</span>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item class="trightb_item">
<div class="Image" v-for="(item,i) in ImgSid" :key="i" v-show="item.name">
<div class="ImageX">
<i class="el-icon-close" @click="delSid(item)"></i>
<img v-if="item.picUrl" :src="item.picUrl" alt="">
<img v-else src="../../assets/images/notAvailable.jpg" alt="" />
<p><u class="Atext">{{ item.name }}</u></p>
</div>
</div>
<div class="Images" @click="addCangku">
<img src="../../assets//images//addImg.png" alt="">
<p> </p>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">关联企业</span>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item class="trightb_item">
<el-select v-model="enterSids.enterpriseSid" multiple class="addinputw" placeholder="请选择企业单位" style="width:100%"
@change="getEnterName">
<el-option v-for="(item,i) in enterpriseLists" :key="i" :label="item.enterpriseName"
:value="item.enterpriseSid" />
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
<el-drawer
title="关联仓库"
:visible.sync="drawer"
size="800px"
>
<el-button style="margin-left: 700px;" type="primary" @click="guanlianSid">关联</el-button>
<div class="main-content">
<el-table
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
prop="name"
label="仓库名称"
align="center"
>
</el-table-column>
<el-table-column
prop="picUrl"
label="仓库图片"
align="center"
>
<template slot-scope="scope">
<div class="xxx">
<img v-if="scope.row.picUrl" :src="scope.row.picUrl" alt="">
<img v-else src="../../assets/images/notAvailable.jpg" alt="" />
</div>
</template>
</el-table-column>
</el-table>
</div>
</el-drawer>
</div>
</template>
<script>
import req from '@/api/project/project'
export default {
data() {
return {
title: "【新增】项目信息",
submitdisabled: false,
drawer: false,
formobj: {
sid: "",
entryName: "", //
industryName: "", //
industrySid: "",
typeName: "", //
typeSid: "",
bankPledgeRate:"", //
creditLimit: "", //
bankName: "", //
bankSid: "",
bmanagerName: '', //
managerSid: "",
engaDate: "", //
useLimit: "", //
loanDate: "", //
useDate: "", //
signingDate: "", //
enterpriseName: "", //
enterpriseSid: "",
econtacts: "", //
remarks: "", //
regulatoryLeader: "", //
generalManager: "", //
endDate: "", //
fillInDate: "", //
storeHouseProjectDto :{
shSids:[]
},
enterpriseProjectDto:{
enterpriseSids:[]
}
},
industryAllList: [],
industryList: [],
typeAllList: [],
typeList: [],
bankAllList: [],
bankList: [],
bManagerAllList: [],
bManagerList: [],
enterpriseAllList: [],
enterpriseList: [],
enterpriseLists: [],
temps: [],
tableData: [],
ValSid:[],
ARRSid:[],
ImgSid:[],
getImgsid:[],
Sidlists:[],
enterSids:{
enterpriseName:'',
enterpriseSid:''
},
}
},
created() {
this.loanbankinformation() //
this.enterpriseinformation() //
this.industrydictionary() //
this.projtypedictionary() //
},
methods: {
addImg(){
console.log(6);
},
loanbankinformation() {
req.getLoanbankinformation().then((res) => {
if (res.success) {
console.log(">>>>>>>>>11111111", res.data)
this.bankAllList = res.data
this.bankList = []
for (var i = 0; i < this.bankAllList.length; i++) {
let bank = {
dictValue: this.bankAllList[i].bankName,
dictKey: this.bankAllList[i].sid,
}
this.bankList.push(bank)
}
}
})
},
enterpriseinformation() {
req.getEnterpriseinformation().then((res) => {
if (res.success) {
console.log(">>>>>>>>>2222222", res.data)
this.enterpriseAllList = res.data
this.enterpriseLists = []
this.enterpriseList = []
for (var i = 0; i < this.enterpriseAllList.length; i++) {
let enterprise = {
dictValue: this.enterpriseAllList[i].enterpriseName,
dictKey: this.enterpriseAllList[i].sid,
}
let enterprises = {
enterpriseName: this.enterpriseAllList[i].enterpriseName,
enterpriseSid: this.enterpriseAllList[i].sid,
}
this.enterpriseList.push(enterprise)
this.enterpriseLists.push(enterprises)
}
}
})
},
industrydictionary() {
req.getIndustrydictionary().then((res) => {
if (res.success) {
console.log(">>>>>>>>>3333333", res.data)
this.industryAllList = res.data
this.industryList = []
for (var i = 0; i < this.industryAllList.length; i++) {
let industry = {
dictValue: this.industryAllList[i].industryName,
dictKey: this.industryAllList[i].sid,
}
this.industryList.push(industry)
}
}
})
},
projtypedictionary() {
req.getProjtypedictionary().then((res) => {
if (res.success) {
console.log(">>>>>>>>>444444", res.data)
this.typeAllList = res.data
this.typeList = []
for (var i = 0; i < this.typeAllList.length; i++) {
let type = {
dictValue: this.typeAllList[i].typeName,
dictKey: this.typeAllList[i].sid,
}
this.typeList.push(type)
}
}
})
},
getHangYe(value) {
console.log(">>>>>>>>>getHangYe", value)
const choose = this.industryList.filter((item) => item.dictKey === value)
this.formobj.industryName = choose[0].dictValue
this.formobj.industrySid = choose[0].dictKey
},
getType(value) {
console.log(">>>>>>>>>getType", value)
const choose = this.typeList.filter((item) => item.dictKey === value)
this.formobj.typeName = choose[0].dictValue
this.formobj.typeSid = choose[0].dictKey
},
getBank(value) {
console.log(">>>>>>>>>getBank", value)
const choose = this.bankList.filter((item) => item.dictKey === value)
this.formobj.bankName = choose[0].dictValue
this.formobj.bankSid = choose[0].dictKey
let items = this.bankAllList.filter(
// function(item) {
// return item.id == val.id;
item => {
console.log('item: ' + JSON.parse(JSON.stringify(item)).sid)
console.log('val: ' + value)
if (JSON.parse(JSON.stringify(item)).sid == value) {
return true
}
})
console.log(">>>>>>>>>getBank", items)
this.bManagerAllList = items[0].managerList
this.bManagerList = []
for (var i = 0; i < this.bManagerAllList.length; i++) {
let bManager = {
dictValue: this.bManagerAllList[i].name,
dictKey: this.bManagerAllList[i].sid,
}
this.bManagerList.push(bManager)
}
},
getBManager(value) {
console.log(">>>>>>>>>getBManager", value)
const choose = this.bManagerList.filter((item) => item.dictKey === value)
this.formobj.bManagerName = choose[0].dictValue
this.formobj.managerSid = choose[0].dictKey
},
getEnterName(value) {
var EnterSidss=[]
for(let i=0;i<value.length;i++){
EnterSidss.push(value[i])
}
this.formobj.enterpriseProjectDto.enterpriseSids=EnterSidss
},
getEnterpriseName(value) {
console.log(">>>>>>>>>getBManager", value)
const choose = this.enterpriseList.filter((item) => item.dictKey === value)
this.formobj.enterpriseName = choose[0].dictValue
this.formobj.enterpriseSid = choose[0].dictKey
let items = this.enterpriseAllList.filter(
// function(item) {
// return item.id == val.id;
item => {
console.log('item: ' + JSON.parse(JSON.stringify(item)).sid)
console.log('val: ' + value)
if (JSON.parse(JSON.stringify(item)).sid == value) {
return true
}
})
console.log(">>>>>>>>>getBManager", items)
this.formobj.econtacts = items[0].contacts
},
saveOrUpdate() {
console.log(">>>>>>>>>saveOrUpdate", this.formobj)
if (this.formobj.sid) {
if(this.formobj.enterpriseProjectDto.enterpriseSids.length==0){
let EnterSidss=[]
for(let i=0;i<this.Sidlists.length;i++){
EnterSidss.push(this.Sidlists[i].enterpriseSid)
}
this.formobj.enterpriseProjectDto.enterpriseSids=EnterSidss
}
req.updateData(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn("true")
this.$refs.multipleTable.clearSelection();
} else {
// resp.code
}
})
.catch(() => {})
} else {
req.addInfo(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn("true")
this.$refs.multipleTable.clearSelection();
} else {
// resp.code
}
})
.catch(() => {})
}
},
selectStoreHouses(){
req.selectStoreHouse().then((res) => {
if (res.success) {
this.tableData=res.data
}
})
},
delSid(delSid){
let newVarImg=[]
let newImgss=[]
this.ImgSid.forEach(function check(value) {
if(value.shSid != delSid.shSid ) {
newVarImg.push(value);
}
if(value.sid != delSid.sid){
newImgss.push(value);
}
})
let newImg=newVarImg.concat(newImgss);
this.ImgSid=[...new Set(newImg)];
var ARRSid=[]
var aRRsid=[]
if(this.ImgSid.length>0){
for(var i=0;i<this.ImgSid.length;i++){
if(this.ImgSid[i].simpleName){
aRRsid.push(this.ImgSid[i].sid)
}else{
ARRSid.push(this.ImgSid[i].shSid)
}
let newSid=ARRSid.concat(aRRsid);
this.formobj.storeHouseProjectDto.shSids=[...new Set(newSid)];
}
}else{
this.formobj.storeHouseProjectDto.shSids=[]
}
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
sid: "",
entryName: "", //
industryName: "", //
industrySid: "",
typeName: "", //
typeSid: "",
creditLimit: "", //
bankName: "", //
bankSid: "",
bmanagerName: '', //
managerSid: "",
engaDate: "",
useLimit: "",
loanDate: "",
useDate: "",
signingDate: "", //
enterpriseName: "", //
enterpriseSid: "",
econtacts: "", //
remarks: "", //
regulatoryLeader: "", //
generalManager: "", //
endDate: "", //
fillInDate: "", //
storeHouseProjectDto :{
shSids:[]
},
enterpriseProjectDto:{
enterpriseSids:[]
}
}
this.ImgSid=[]
this.ValSid=[]
this.ARRSid=[]
this.getImgsid=[]
this.enterSids=[]
this.Sidlists=[]
this.enterSids={
enterpriseName:'',
enterpriseSid:''
},
this.title= "【新增】项目信息",
this.$emit('doback')
},
showAdd(){
this.title= "【新增】项目信息"
this.selectStoreHouses() //
},
showEdit(row) {
this.title= "【修改】项目信息",
req.fetchBySid(row.sid)
.then(resp => {
if (resp.success) {
this.formobj.entryName=resp.data.entryName
this.formobj.sid=resp.data.sid
this.formobj.industryName=resp.data.industryName
this.formobj.industrySid=resp.data.industrySid
this.formobj.bankPledgeRate=resp.data.bankPledgeRate
this.formobj.typeName=resp.data.typeName
this.formobj.typeSid=resp.data.typeSid
this.formobj.creditLimit=resp.data.creditLimit
this.formobj.bankName=resp.data.bankName
this.formobj.bankSid=resp.data.bankSid
this.formobj.bmanagerName=resp.data.bmanagerName
this.formobj.managerSid=resp.data.managerSid
this.formobj.engaDate=resp.data.engaDate
this.formobj.useLimit=resp.data.useLimit
this.formobj.loanDate=resp.data.loanDate
this.formobj.useDate=resp.data.useDate
this.formobj.signingDate=resp.data.signingDate
this.formobj.enterpriseName=resp.data.enterpriseName
this.formobj.enterpriseSid=resp.data.enterpriseSid
this.formobj.econtacts=resp.data.econtacts
this.formobj.remarks=resp.data.remarks
this.formobj.regulatoryLeader=resp.data.regulatoryLeader
this.formobj.generalManager=resp.data.generalManager
this.formobj.endDate=resp.data.endDate
this.formobj.fillInDate=resp.data.fillInDate
this.Sidlists=resp.data.enterpriseProjectVoList
this.enterSids.enterpriseSid = []
for (let i = 0; i < this.Sidlists.length; i++) {
this.enterSids.enterpriseSid.push(this.Sidlists[i].enterpriseSid)
}
}
})
.catch(e => {
this.formobj = row
})
this.selectStoreHouses() //
req.selectStoreHouseSid(row.sid).then((res) => {
if (res.success) {
this.ImgSid=res.data
for(let i=0;i<this.ImgSid.length;i++){
this.getImgsid.push(this.ImgSid[i].shSid)
}
}
})
},
addCangku(){
this.drawer = true
},
handleSelectionChange(val) {
this.ValSid=val
},
guanlianSid(){
let val=this.ValSid
for(let i=0;i<val.length;i++){
this.ARRSid.push(val[i].sid)
}
var oldArr = [...new Set(this.ARRSid)];
if(this.ImgSid.length>0){
let newArr =this.getImgsid.concat(oldArr);
let newImg=this.ImgSid.concat(this.ValSid);
this.ImgSid=[...new Set(newImg)];
this.formobj.storeHouseProjectDto.shSids=newArr
}else{
this.ImgSid=[...new Set(this.ValSid )]
this.formobj.storeHouseProjectDto.shSids=oldArr
}
this.drawer=false
this.$refs.multipleTable.clearSelection();
},
}
}
</script>
<style scoped>
.trightb {
display: flex;
align-items: center;
text-align: ;
justify-content: center;
}
.trightb_item {
padding-top: 5px;
}
.trightbs {
display: flex;
align-items: center;
text-align: ;
justify-content: center;
}
.span {
margin-left: 50px;
font-size: 15px;
font-weight: 400;
}
/deep/ .el-collapse-item__header {
height: 40px;
padding: 10px;
font-weight: bold;
font-size: 20px;
text-align: left;
color: #ffffff;
background-color: #0294d7;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0;
}
/deep/ .formadd .el-row .trightbs{
border-top: 1px solid #e0e3eb;
}
/deep/ .formadd .el-row .trightb_items{
border-top: 1px solid #e0e3eb;
}
.Images{
width: 150px;
height: 100px;
margin: 10px 10px 30px 10px;
float: left;
}
.Images img{
width: 100px;
height: 100px;
margin-left: 24px;
}
.Images p{
color: #B8B8B8;
font-weight: 600;
font-size: 14px;
text-align: center;
margin-top: -30px;
}
.Images:hover p{
color: #b8b8b8b0;
}
.ImageX{
width: 150px;
height: 100px;
float: left;
margin: 10px 20px 40px 10px;
}
.ImageX img{
width: 100%;
height: 100%;
}
.ImageX p{
color: #000;
text-align: center;
margin-top: -15px;
}
.ImageX p .Atext{
text-decoration: none;
}
.ImageX{
position: relative;
}
.ImageX i{
font-size: 30px;
color: #fff;
position: absolute;
top: 0;
left: 120px;
}
.xxx{
width: 150px;
height: 100px;
}
.xxx img{
width: 100%;
height: 100%;
}
</style>

1488
supervise-report-ui/src/views/projectList/projectAdd2.vue

File diff suppressed because it is too large

373
supervise-report-ui/src/views/projectList/projectInfo.vue

@ -0,0 +1,373 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>查看项目信息</div>
<div>
<el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd" style="padding-bottom: 50px;">
<el-form ref="dataForm" :model="temp" label-position="top" label-width="190px" class="formadd">
<div class="titwu">项目信息表</div>
<div class="title" style="display: flex;align-items: center;justify-content: space-between;height:40px">
<div>主体信息</div>
</div>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目名称</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.entryName}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">所属行业</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.industryName}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目类型</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.typeName}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">质押率(%)</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.bankPledgeRate}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">贷款行</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.bankName}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">客户经理</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.bmanagerName}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目单位</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.enterpriseName}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目联系人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.econtacts}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">授信额度</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.creditLimit}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">授信日期</span>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-form-item class="trightb_item">
<span>{{temp.engaDate}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用信总额</span>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-form-item class="trightb_item">
<span>{{temp.useLimit}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用信日期</span>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-form-item class="trightb_item">
<span>{{temp.useDate}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">签约日期</span>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-form-item class="trightb_item">
<span>{{temp.signingDate}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">放款日期</span>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-form-item class="trightb_item">
<span>{{temp.loanDate}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目说明</span>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item class="trightb_item">
<span>{{temp.remarks}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">监管负责人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.regulatoryLeader}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">事业部经理</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.generalManager}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">结束日期</span>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-form-item class="trightb_item">
<span>{{temp.endDate}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">填表日期</span>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-form-item class="trightb_item">
<span>{{temp.fillInDate}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目状态</span>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-form-item class="trightb_item">
<span>{{temp.endDate}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目状态说明</span>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-form-item class="trightb_item">
<span>{{temp.fillInDate}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">关联仓库</span>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item class="trightb_item">
<div class="Images" v-for="(item,i) in temps" :key="i" v-show="item.name">
<a :href="'http://jianguan.yyundong.com/warehouse/#/pictureList/pictureList?id='+item.shSid" target="_blank">
<img v-if="item.picUrl" :src="item.picUrl" alt="">
<img v-else src="../../assets/images/notAvailable.jpg" alt="" />
<p><u class="Atext">{{ item.name }}</u></p>
</a>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/project/project'
export default {
name: 'CustomerManagementInfo',
data() {
return {
temp: {}, //
temps:{},
}
},
created() {
},
methods: {
showAdd(sid) {
req.fetchBySid(sid)
.then(resp => {
if (resp.success) {
this.temp = resp.data
}
})
.catch(e => {
this.$emit('doback')
})
req.selectStoreHouseSid(sid).then((res) => {
if (res.success) {
this.temps=res.data
}
})
},
//
handleReturn() {
this.$emit('doback')
},
}
}
</script>
<style scoped>
.trightb {
display: flex;
align-items: center;
text-align: ;
justify-content: center;
}
.trightb_item {
padding-top: 5px;
}
.span {
margin-left: 50px;
font-size: 15px;
font-weight: 400;
}
/deep/ .el-collapse-item__header {
height: 40px;
padding: 10px;
font-weight: bold;
font-size: 20px;
text-align: left;
color: #ffffff;
background-color: #0294d7;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0;
}
.Images{
width: 150px;
height: 100px;
float: left;
margin: 10px 20px 40px 10px;
}
.Images img{
width: 100%;
height: 100%;
}
.Images:hover p{
color: #018ad2;
text-decoration: underline;
}
.Images p{
color: #000;
text-align: center;
margin-top: -15px;
}
.Images p .Atext{
text-decoration: none;
}
</style>

407
supervise-report-ui/src/views/projectList/projectInfo2.vue

@ -0,0 +1,407 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>查看项目信息</div>
<div>
<el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd" style="padding-bottom: 50px;">
<div class="titwu">项目信息表</div>
<el-collapse v-model="activeNames" style="margin-left: 50px; margin-right: 50px;">
<el-collapse-item name="1" title="基础信息">
<el-form ref="dataForm" :model="temp.baseInfo" label-position="top" label-width="190px" class="formadd"
style="margin-top: -10px;margin-left: -40px;margin-right: -40px;">
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目名称</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.entryName}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">所属行业</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.industryName}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目类型</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.typeName}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">质押率(%)</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.bankPledgeRate}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">贷款行</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.bankName}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">客户经理</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.bmanagerName}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">授信额度</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.creditLimit}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">授信日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.engaDate}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用信总额</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.useLimit}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<!-- <span slot="label">用信日期</span> -->
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<!-- <el-date-picker v-model="formobj.useDate" type="date" style="width:100%" value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker> -->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">签约日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.signingDate}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">放款日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.loanDate}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目说明</span>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.remarks}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">监管负责人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.regulatoryLeader}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">监管主管</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.regulatorySupervisor}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">结束日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.endDate}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">填表日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.fillInDate}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目状态</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.stateName}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目状态说明</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.baseInfo.stateRemarks}}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-collapse-item>
</el-collapse>
<el-collapse v-model="activeNames" style="margin-left: 50px; margin-right: 50px;margin-top: 10px;">
<el-collapse-item name="2" title="关联仓库">
<el-table :data="temp.warehouse" border :row-style="{height:'50px'}">
<el-table-column label="仓库名称" prop="name" align="center" />
<el-table-column label="仓库地址" prop="address" align="center" />
<el-table-column label="联系人" prop="linkerName" align="center" />
<el-table-column label="联系电话" prop="linkerPhone" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
<el-collapse v-model="activeNames" style="margin-left: 50px; margin-right: 50px;margin-top: 10px;">
<el-collapse-item name="3" title="关联企业">
<el-table :data="temp.enterpriseList" border :row-style="{height:'50px'}">
<el-table-column label="关联类型" prop="type" align="center" />
<el-table-column label="企业名称" prop="enterpriseName" align="center" />
<el-table-column label="联系人" prop="contacts" align="center" />
<el-table-column label="联系电话" prop="telephone" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
<el-collapse v-model="activeNames" style="margin-left: 50px; margin-right: 50px;margin-top: 10px;">
<el-collapse-item name="4" title="关联账户">
<el-table :data="temp.bankList" border :row-style="{height:'50px'}">
<el-table-column label="账户类型" prop="accountType" align="center" />
<el-table-column label="所属企业" prop="enterpriseName" align="center" />
<el-table-column label="银行账号" prop="accountNumber" align="center" />
<el-table-column label="开户银行" prop="bank" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
<el-collapse v-model="activeNames" style="margin-left: 50px; margin-right: 50px;margin-top: 10px;">
<el-collapse-item name="5" title="关联章证">
<el-table :data="temp.idCardList" border :row-style="{height:'50px'}">
<el-table-column label="所属企业" prop="enterpriseName" align="center" />
<el-table-column label="章证类型" prop="idCardType" align="center" />
<el-table-column label="章证名称" prop="idCardName" align="center" />
<el-table-column label="章证图片" align="center">
<template slot-scope="scope">
<span v-for="(item,index) in scope.row.urls" :key="index">
<el-popover placement="left" trigger="click" width="300">
<img :src="item.url" width="100%" />
<img slot="reference" :src="item.url" :alt="item.url"
style="max-height: 70px;max-width: 70px; padding: 5px" />
</el-popover>
</span>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
</div>
</div>
</template>
<script>
import req from '@/api/project/project'
export default {
name: 'CustomerManagementInfo',
data() {
return {
activeNames: ['1', "2", "3", "4", "5"],
temp: {
baseInfo: {}
},
}
},
created() {
},
methods: {
showAdd(sid) {
req.getInfoBySid(sid)
.then(resp => {
if (resp.success) {
console.log(">>>>>>>>>2222222", resp.data)
this.temp = resp.data
}
})
.catch(e => {
this.$emit('doback')
})
// req.selectStoreHouseSid(sid).then((res) => {
// if (res.success) {
// this.temps = res.data
// }
// })
},
//
handleReturn() {
this.$emit('doback')
},
}
}
</script>
<style scoped>
.trightb {
display: flex;
align-items: center;
text-align: ;
justify-content: center;
}
.trightb_item {
padding-top: 5px;
}
.span {
margin-left: 50px;
font-size: 15px;
font-weight: 400;
}
/deep/ .el-collapse-item__header {
height: 40px;
padding: 10px;
font-weight: bold;
font-size: 20px;
text-align: left;
color: #ffffff;
background-color: #0294d7;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0;
}
.Images {
width: 150px;
height: 100px;
float: left;
margin: 10px 20px 40px 10px;
}
.Images img {
width: 100%;
height: 100%;
}
.Images:hover p {
color: #018ad2;
text-decoration: underline;
}
.Images p {
color: #000;
text-align: center;
margin-top: -15px;
}
.Images p .Atext {
text-decoration: none;
}
</style>

2
supervise-report-ui/src/views/reportCenter/thresholdAnalysis.vue

@ -2,7 +2,7 @@
<div class="app-container">
<div style="margin-left:16px;">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="阀值分析表" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<button-bar ref="btnbar" view-title="质押率分析表" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">

10
supervise-uniapp/common/request.api.js

@ -62,10 +62,10 @@ export default {
getProjectDaily: (params = {}) => request.post(
"/projectdaily/getProjectDaily", params),
// "/report/projectdaily/getProjectDaily", params),
// 账户余额数据
getAccountByProjectSid: (params = {}) => request.get(
"/app/projectaccount/getAccountByProjectSidApp/"+params, params),
"/app/projectaccount/getAccountByProjectSidApp/" + params, params),
// "/crm/projectAccount/getAccountByProjectSid/"+params, params),
// 项目监管报表
@ -133,8 +133,8 @@ export default {
storeHouseListPage: (params = {}) => request.post("/v1/app/shstorehouse/storeHouseListPage", params),
// 获取云仓详情
storeHouseDetail: (params = {}) => request.get("/v1/app/shstorehouse/fetchDetailsBySid/" + params, params),
// 获取我的项目
getProjectByUserSid: (params = {}) => request.get("/v1/app/project/getProjectByUserSidApp/" + params,
@ -158,6 +158,8 @@ export default {
projectListPageNew: (params = {}) => request.post("/projectdaily/selectList", params),
// 获取风险报警列表
RiskAlertPage: (params = {}) => request.post("/RiskMessagesLog/listAllRisk", params),
// 修改密码

14
supervise-uniapp/pages.json

@ -271,6 +271,12 @@
"style": {
"navigationBarTitleText": "云仓管理"
}
},
{
"path": "pages/index/warehouseSecurity",
"style": {
"navigationBarTitleText": "仓库安防"
}
},
{
"path": "pages/index/WarehouseList",
@ -388,6 +394,14 @@
"enablePullDownRefresh": false
}
},
{
"path" : "pages/index/RiskAlert",
"style" :
{
"navigationBarTitleText" : "风险警报",
"enablePullDownRefresh" : true
}
}
],
"lazyCodeLoading": "requiredComponents",

90
supervise-uniapp/pages/home/WorkFragment.vue

@ -55,31 +55,29 @@
<text class="top_item_text">已阅工作</text>
</view>
</view>
<view class="whiteBg-bom">
<image class="whiteBg-bom-lift" @click="warehouseClick('5')" src="https://supervise.yxtsoft.com/img/newApp/allData.png"/>
<view class="whiteBg-bom-right">
<image class="whiteBg-bom-right-top" @click="warehouseClick('1')" src="https://supervise.yxtsoft.com/img/newApp/warehouseList.png"/>
<image class="whiteBg-bom-right-bom" @click="warehouseClick('6')"src="https://supervise.yxtsoft.com/img/newApp/warehouseSecurity.png"/>
</view>
</view>
</view>
<!-- <view style="display: flex;flex-direction: row; align-items: center; margin-top: 7px;margin-bottom: 7px;" v-show="textArr.length>0">
<image style="width: 22px;height: 22px;margin-left: 10px;"
src="https://supervise.yxtsoft.com/img/newApp/notices.png" mode="aspectFit"></image>
<div class="textBox"> -->
<!-- <transition name="slide">
<text class="text" :key="text.id" @click="textClick(text)">{{text.val}} </text>
</transition>
-->
<!-- <div class="marquee-wrap">
<div class="marquee-list" :class="{'animate-up': animateUp}">
<li v-for="(item, index) in textArr" @click="textClick(item)">{{item}}</li>
</div>
</div>
</div>
</view> -->
<view class="whiteBg" style="display: flex;flex-direction: column;padding-top: 20px;margin-top: 20px;">
<!-- <view class="whiteBg" style="display: flex;flex-direction: column;padding-top: 20px;margin-top: 20px;">
<view style="display: flex;flex-direction: row;margin-left: 20px;align-items: center;">
@ -90,7 +88,7 @@
</view>
<view style=" height: 1px;background: #eee;margin-left: 25px;margin-right: 25px;margin-top: 15px;">
</view>
</view> -->
<!-- <view style="margin-top: 20px;display: flex;flex-direction: row;width: 100%;margin-bottom: 20px;">
@ -122,14 +120,14 @@
</view> -->
<view style="margin-top: 20px;display: flex;flex-direction: row;width: 100%;margin-bottom: 20px;">
<!-- <view style="margin-top: 20px;display: flex;flex-direction: row;width: 100%;margin-bottom: 20px;">
<view class="centre" @click="warehouseClick('1')">
<image class="centre_img" src="https://supervise.yxtsoft.com/img/newApp/ycgl.png"
mode="aspectFit">
</image>
<text class="centre_text">云仓管理</text>
</view>
</view> -->
<!-- <view class="centre" @click="warehouseClick('2')">
<image class="centre_img" src="https://supervise.yxtsoft.com/img/newApp/kcfx.png"
mode="aspectFit">
@ -149,7 +147,7 @@
<text class="centre_text">机器人巡库</text>
</view> -->
<view class="centre" @click="warehouseClick('5')">
<!-- <view class="centre" @click="warehouseClick('5')">
<image class="centre_img" src="https://supervise.yxtsoft.com/img/newApp/jqrxk.png"
mode="aspectFit">
</image>
@ -157,7 +155,7 @@
</view>
</view>
</view>
</view> -->
</view>
@ -486,6 +484,12 @@
});
break;
case "6":
uni.navigateTo({
url: '../index/warehouseSecurity'
});
break;
default:
break;
}
@ -501,14 +505,14 @@
display: flex;
flex-direction: column;
height: 100%;
margin-left: 12px;
margin-right: 12px;
padding-bottom: 50px;
.whiteBg {
display: flex;
background-color: white;
border-radius: 20px;
padding-left: 12px;
padding-right: 12px;
height: 100%;
.swiper {
width: 100%;
@ -593,6 +597,36 @@
}
}
.whiteBg-bom{
margin-top: 10px;
display: flex;
flex-direction: row;
justify-content: center;
.whiteBg-bom-lift{
margin-right: 8px;
flex: 0.7;
width: 100%;
height:175px;
}
.whiteBg-bom-right{
flex: 1;
margin-left: 8px;
display: flex;
flex-direction: column;
.whiteBg-bom-right-top{
width: 100%;
height: 82px;
}
.whiteBg-bom-right-bom{
margin-top: 10px;
width: 100%;
height: 82px;
}
}
}
}

11
supervise-uniapp/pages/index/AlreadyProcessed.vue

@ -228,7 +228,8 @@
/* 滚动到底部 */
scrollBottem() {
console.log("滚动高度")
this.status = "nomore"
this.listQuery.current = this.listQuery.current + 1
this.loadData();
},
onRefresh() {
setTimeout(() => {
@ -362,12 +363,12 @@
async loadData(type = 'add', loading) {
//
if (type === 'add') {
if (this.loadingType === 'nomore') {
if (this.status === 'nomore') {
return;
}
this.loadingType = 'loading';
this.status = 'loading';
} else {
this.loadingType = 'more';
this.status = 'more';
}
var list = []
@ -388,7 +389,7 @@
this.dataList = this.dataList.concat(list);
console.log("消息列表>>>>>", this.dataList.length)
//more nomore(20)
this.loadingType = this.dataList.length > list.total ? 'nomore' : 'more';
this.status = this.dataList.length > resp.total ? 'nomore' : 'more';
if (type === 'refresh') {
if (loading == 1) {
uni.hideLoading();

7
supervise-uniapp/pages/index/DataAssembleList2.vue

@ -115,9 +115,12 @@
},
confirmClick(date) {
console.log('confirmClick', date)
console.log('confirmClick', formatTimeTwo(parseInt(date.value), "Y-M-D"))
console.log('date.value',date.value)
console.log('getTime',(new Date(date.value)).getTime())
console.log('formatTimeTwo', formatTimeTwo((new Date(date.value)).getTime(), "Y-M-D"))
this.params.orderDate = formatTimeTwo(parseInt(date.value), "Y-M-D")
this.params.orderDate = formatTimeTwo((new Date(date.value)).getTime(), "Y-M-D")
this.datetimeShow = false
this.loadData()

11
supervise-uniapp/pages/index/RegulatoryReporting.vue

@ -154,7 +154,6 @@
formatTimeTwo,
beforeDay
} from "@/utils/index";
export default {
data() {
@ -278,10 +277,14 @@
},
confirmClick(date) {
console.log('confirmClick', date)
console.log('confirmClick', formatTimeTwo(parseInt(date.value), "Y-M-D"))
console.log('date.value',date.value)
console.log('getTime',(new Date(date.value)).getTime())
console.log('formatTimeTwo', formatTimeTwo((new Date(date.value)).getTime(), "Y-M-D"))
this.params.orderDate = formatTimeTwo(parseInt(date.value), "Y-M-D")
this.info.orderDate = formatTimeTwo(parseInt(date.value), "Y-M-D")
this.params.orderDate = formatTimeTwo((new Date(date.value)).getTime(), "Y-M-D")
this.info.orderDate = formatTimeTwo((new Date(date.value)).getTime(), "Y-M-D")
this.datetimeShow = false
this.getServerData()

814
supervise-uniapp/pages/index/RiskAlert.vue

@ -0,0 +1,814 @@
<template>
<view class="page" @touchome.stop.prevent="preventHandler">
<view class="search">
<view class="search-input">
<image class="search-input-img" src="../../static/baseIcon/search.png" mode="aspectFill"></image>
<input class="search-input-text" placeholder="请输入仓库名称" @input="searchInput" :disabled="false" />
</view>
<text class="search-text" @click="drawerClick">筛选</text>
</view>
<scroll-view class="scrollviewCss" scroll-y="false" refresher-enabled="true" :refresher-triggered="triggered"
:refresher-threshold="45" refresher-background="#f8f8f8" @refresherrefresh="onRefresh"
@refresherrestore="onRestore" @refresherabort="onAbort" @scrolltolower="scrollBottem">
<view>
<view v-for="(item,index) in dataList" class="newslist" @click="itemClick(item)">
<view class="top-item">
<view class="top-item-drop"></view>
<view class="top-item-text">
<text class="top-item-text1">告警时间</text>
<text class="top-item-text2">{{item.messageTime}}</text>
</view>
</view>
<view class="top-item" style="margin-top: 12px;">
<view class="top-item-drop"></view>
<view class="top-item-text">
<text class="top-item-text1">仓库名称</text>
<view class="top-item-text2" v-html="highLight(item.templateMessageVo.shName)">
{{item.templateMessageVo.shName}}
</view>
<!-- <text class="top-item-text2">{{item.message[0]}}</text> -->
</view>
</view>
<view class="bomLay">
<!-- <view class="bomLay-item">
<image class="bomLay-item-img" src="https://supervise.yxtsoft.com/img/newApp/alarm-blue.png" />
<text class="bomLay-item-text">item.type</text>
</view> -->
<view class="bomLay-item" v-if="item.isImg=='2'">
<image class="bomLay-item-img" src="https://supervise.yxtsoft.com/img/newApp/goods.png" />
<text class="bomLay-item-text">{{item.type}}</text>
</view>
<view class="bomLay-item" v-else="item.isImg=='1'">
<image class="bomLay-item-img"
src="https://supervise.yxtsoft.com/img/newApp/cloud_disabled.png" />
<text class="bomLay-item-text">{{item.type}}</text>
</view>
<view class="bomLay-item">
<image class="bomLay-item-img" src="https://supervise.yxtsoft.com/img/newApp/risk.png" />
<text class="bomLay-item-text">{{item.riskLevel}}</text>
</view>
</view>
<view class="bombtn">
<view style="flex: 1;"></view>
<text class="bombtn-item" @click="textClick(item,'1')">联系库房</text>
<text class="bombtn-item" @click="textClick(item,'2')">工作派单</text>
</view>
</view>
<!-- <uni-load-more :status="loadingType"></uni-load-more> -->
</view>
<!-- 加载....没有更多 -->
<view style="line-height: 60rpx;margin-bottom: 50rpx;">
<u-loadmore :status="status" :icon-type="iconType" :load-text="loadText" />
</view>
</scroll-view>
<uni-drawer ref="drawer" width="320" mode="right">
<view class="drawerView">
<text style="color: #101010;font-size: 16px;font-weight: 600;font-family: sans-serif;">告警日期</text>
<view class="drawerView-date">
<input class="drawerView-date-text" v-model="listQuery.params.startDate" placeholder="开始日期"
:disabled="true" @click="openDate(1)">
<text style="margin-left: 10px;margin-right: 10px;color: #777;"></text>
<input class="drawerView-date-text" v-model="listQuery.params.endDate" placeholder="结束日期"
:disabled="true" @click="openDate(2)">
</view>
<!-- <text
style="color: #101010;font-size: 16px;font-weight: 600;font-family: sans-serif; margin-top: 20px;">发起人</text> -->
<!-- <uni-data-checkbox @change="checkboxChange" selectedColor="#007AFF" mode="list" :localdata="personnelList" :multiple="false" >
</uni-data-checkbox> -->
<!-- <scroll-view scroll-y :show-scrollbar="true"
style="display: flex;flex-direction: column; margin-top: 20px;width: 100%; height:50%; overflow:auto;">
<view class="to_do_content_list" :class="{'to_do_finish':item.checked}"
v-for="(item,index) in personnelList" :key="index" @click="select(item.id)">
<view class="to_do_content_list_checkbox">
<view class="checkbox"></view>
</view>
<view class="to_do_content_list_cont">{{item.name}}</view>
</view>
</scroll-view> -->
<view class="drawerView-bom">
<text class="drawerView-bom-text1" @click="resetClik">重置</text>
<text class="drawerView-bom-text2" @click="assignClick">确定</text>
</view>
<u-datetime-picker ref="datetimePicker" :closeOnClickOverlay='true' @close="cancelClick"
@cancel="cancelClick" @confirm="confirmClick" :show="datetimeShow" v-model="selectDate" mode="date"
:formatter="formatter">
</u-datetime-picker>
</view>
</uni-drawer>
</view>
</template>
<script>
import {
formatTimeTwo,
beforeDay
} from "@/utils/index";
export default {
data() {
return {
selectDate: beforeDay(null, 0),
datetimeShow: false,
datetimeIndex: "1",
personnelList: [
],
triggered: true,
status: 'loadmore',
iconType: 'flower',
loadText: {
loadmore: '轻轻上拉',
loading: '努力加载中',
nomore: '拉也没用,没有了'
},
listQuery: {
current: 1,
size: 10,
params: {
shName: "",
startDate: "",
endDate: "",
userSid: "",
woekName: "",
}
},
loadingType: 'more', //
dataList: [
],
info: {
warehouseSid: "",
warehouseName: "",
exceptionTime: "",
linkers: [],
dataList: []
}
};
},
created() {
this.$bus.$on('wholeSpin', msg => {
//httpjswholeSpin
console.log(">>>>>", this.isShow)
var userSid = getApp().globalData.sid
console.log(">>>>>", userSid)
this.listQuery.params.userSid = userSid
this.loadData();
});
},
onLoad() {
},
onShow() {
console.log('onShow', getApp().globalData.isLogin)
let token = uni.getStorageSync("Global-Auth-Token")
if (token != null && token.length != 0) {
getApp().globalData.token = token
}
let isLogin = uni.getStorageSync("isLogin")
if (isLogin != null && isLogin == 1) {
getApp().globalData.isLogin = isLogin
}
let sid = uni.getStorageSync("sid")
if (sid != null && sid.length != 0) {
getApp().globalData.sid = sid
}
console.log('用户Sid', getApp().globalData.sid)
console.log('token', getApp().globalData.token)
console.log('是否登陆', getApp().globalData.isLogin)
// setTimeout(() => {
if (getApp().globalData.isLogin) {
var userSid = getApp().globalData.sid
console.log(">>>>>", userSid)
this.listQuery.params.userSid = userSid
this.dataList = []
this.loadData();
// uni.setTabBarBadge({ //
// index: 0, //tabbar
// text: '100' //
// })
} else {
/* #ifdef MP-WEIXIN */
this.WxSilentLogin()
/* #endif */
/* #ifdef APP-PLUS */
uni.redirectTo({
url: '../login/login'
})
/* #endif */
}
},
onReady() {
/* #ifdef MP-WEIXIN */
//
this.$refs.datetimePicker.setFormatter(this.formatter)
/* #endif */
},
methods: {
//
preventHandler() {
return
},
/* 滚动到底部 */
scrollBottem() {
console.log("滚动高度")
this.listQuery.current = this.listQuery.current + 1
this.loadData();
},
onRefresh() {
setTimeout(() => {
this.triggered = false;
}, 2000)
console.log("进入");
},
/* 下拉被复位 */
onRestore() {
this.triggered = true; //
console.log(this.triggered);
console.log("停止");
},
/* 下拉被中止,没下拉完就松手就会触发 */
onAbort() {
console.log("onAbort");
},
searchInput(e) {
this.listQuery.params.shName = e.detail.value
this.dataList = []
this.listQuery.current = 1,
this.listQuery.size = 10,
this.loadData()
},
highLight(value) {
console.log("highLight》》》", value);
if (value == '' || value == undefined || value == null)
return
if (value.includes(this.listQuery.params.shName)) {
value = value.replace(
this.listQuery.params.shName,
"<font style='color:red!important'>" + this.listQuery.params.shName + "</font>"
)
return value
} else {
return value
}
},
drawerClick() {
this.$refs['drawer'].open()
},
openDate(type) {
switch (type) {
case 1:
this.datetimeIndex = "1"
this.datetimeShow = true
break;
case 2:
this.datetimeIndex = "2"
this.datetimeShow = true
break;
default:
break;
}
},
formatter(type, value) {
if (type === 'year') {
return `${value}`
}
if (type === 'month') {
return `${value}`
}
if (type === 'day') {
return `${value}`
}
return value
},
cancelClick() {
this.datetimeShow = false
},
confirmClick(date) {
console.log('confirmClick', date)
console.log('confirmClick', formatTimeTwo((new Date(date.value)).getTime(), "Y-M-D"))
switch (this.datetimeIndex) {
case "1":
this.listQuery.params.startDate = formatTimeTwo((new Date(date.value)).getTime(), "Y-M-D")
break;
case "2":
this.listQuery.params.endDate = formatTimeTwo((new Date(date.value)).getTime(), "Y-M-D")
break;
default:
break;
}
this.datetimeShow = false
},
// item
select(id) {
for (var i = 0; i < this.personnelList.length; i++) {
let item = this.personnelList[i]
if (item.id == id) {
item.checked = !item.checked
} else {
item.checked = false
}
}
let index = this.personnelList.findIndex((item) => item.id == id)
console.log("我被点击了", this.personnelList[index].name);
this.search.promoter = this.personnelList[index].checked ? this.personnelList[index].name : ""
console.log("promoter", this.search.promoter);
// this.personnelList[index].checked = !this.personnelList[index].checked
},
resetClik() {
this.listQuery.params.startDate = ""
this.listQuery.params.endDate = ""
},
assignClick() {
console.log('confirm', this.listQuery.params)
this.datetimeShow = false
this.$refs['drawer'].close()
this.dataList = []
this.listQuery.current = 1,
this.listQuery.size = 10,
this.loadData()
// uni.showToast({
// icon: "none",
// title: JSON.stringify(this.listQuery.params),
// duration: 5000,
// });
},
//
async loadData(type = 'add', loading) {
//
if (type === 'add') {
if (this.status === 'nomore') {
return;
}
this.status = 'loading';
} else {
this.status = 'more';
}
var list = []
console.log('listQuery', this.listQuery)
this.$api.RiskAlertPage(this.listQuery).then((resp) => {
// if (resp.success) {
console.log('1111', resp)
// this.listQuery = {
// current: resp.current,
// size: 10,
// params: {
// }
// }
list = resp.records
console.log("消息列表", list)
if (type === 'refresh') {
this.dataList = [];
}
this.dataList = this.dataList.concat(list);
console.log("消息列表>>>>>", this.dataList.length)
console.log("list.total>>>>>", resp.total)
//more nomore(20)
this.status = this.dataList.length > resp.total ? 'nomore' : 'more';
if (type === 'refresh') {
if (loading == 1) {
uni.hideLoading();
} else {
uni.stopPullDownRefresh();
}
}
}).catch(e => {
console.log('eeeee', e)
})
},
itemClick(item) {
console.log('item', item)
console.log('item', item.type)
if ('图片对比异常' == item.type) {
// 线
uni.navigateTo({
url: "/pages/index/GoodsException?sid=" + item.riskSid
})
} else if ('设备离线' == item.type) {
// 线
uni.navigateTo({
url: "/pages/index/DeviceException?sid=" + item.riskSid
})
} else if ('设备离线解除' == item.type) {
// 线
uni.navigateTo({
url: "/pages/index/DeviceException?sid=" + item.riskSid
})
} else if ('系统异常' == item.type) {
//
uni.navigateTo({
url: "/pages/index/SystemFailure?date=" + item.messageTime
})
} else {
uni.showToast({
icon: "none",
title: '暂不支持',
duration: 2000,
});
return
}
},
textClick(resp,index) {
console.log('resp', resp)
console.log('index', index)
this.info.warehouseSid = resp.shSid
this.info.warehouseName = resp.templateMessageVo.shName
this.info.exceptionTime = resp.messageTime
this.info.linkers = resp.linkers
switch (index) {
case "1":
//
// uni.showToast({
// icon: "none",
// title: '',
// duration: 2000,
// });
uni.navigateTo({
url: '../index/ContactWarehouse?info=' + JSON.stringify(this.info),
});
break;
case "2":
//
uni.showToast({
icon: "none",
title: '工作派单',
duration: 2000,
});
// uni.navigateTo({
// url: '../index/ReadWork'
// });
break;
default:
break;
}
},
}
}
</script>
<style lang="scss">
.popup-show {
overflow: hidden;
position: fixed;
height: 100%;
width: 100%;
}
.page {
width: 100%;
height: 100%;
.drawerView {
height: 100%;
display: flex;
flex-direction: column;
padding: 15px 20px;
background: #fff;
.drawerView-date {
margin-top: 20px;
display: flex;
flex-direction: row;
align-items: center;
.drawerView-date-text {
text-align: center;
background-color: #F4F5F9;
border-radius: 20px;
padding: 10px 20px;
font-size: 14px;
}
}
.to_do_content_list {
position: relative;
padding: 15px;
margin: 15px;
border-radius: 5px;
background: #eee;
color: #666;
overflow: hidden;
display: flex;
align-items: center;
}
// .to_do_content_list::after {
// position: absolute;
// content: "";
// top: 0;
// bottom: 0;
// left: 0;
// width: 10px;
// background: #2C405A;
// }
.to_do_content_list_checkbox {
padding-right: 20px;
padding-left: 10px;
}
.checkbox {
width: 20px;
height: 20px;
border-radius: 50%;
background: #FFFFFF;
}
.to_do_finish .checkbox {
position: relative;
background: #FFFFFF;
}
.to_do_finish .checkbox:after {
position: absolute;
content: "";
height: 10px;
width: 10px;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
border-radius: 50%;
background: #007AFF;
}
.to_do_finish .to_do_content_list_cont {
color: #007AFF;
}
// .to_do_finish.to_do_content_list:before {
// position: absolute;
// content: "";
// left: 40px;
// right: 10px;
// top: 0;
// bottom: 0;
// height: 2px;
// margin: auto 0;
// background: #007AFF;
// }
.to_do_finish.to_do_content_list::after {
background: #C35CDF;
}
.drawerView-bom {
width: 85%;
position: fixed;
display: flex;
flex-direction: row;
align-items: center;
bottom: 0;
min-height: 40px;
margin-bottom: 50px;
background: #EA4726;
border-radius: 20px;
padding: 1px;
.drawerView-bom-text1 {
flex: 1;
text-align: center;
min-height: 38px;
line-height: 38px;
color: #EA4726;
background: #fff;
font-size: 14px;
border-radius: 20px 0px 20px 20px;
// border-top-left-radius: 20px;
// border-bottom-left-radius: 20px;
// border-bottom-right-radius:20px;
}
.drawerView-bom-text2 {
flex: 1;
line-height: 38px;
color: #fff;
font-size: 14px;
text-align: center;
}
}
}
.search {
display: flex;
flex-direction: row;
align-items: center;
background: #007AFF;
width: 100%;
padding: 10px;
.search-input {
flex: 1;
margin-left: 15px;
background: #fff;
border-radius: 30px;
padding: 5px;
display: flex;
flex-direction: row;
align-items: center;
margin-right: 20px;
.search-input-img {
margin-left: 10px;
width: 20px;
height: 20px;
}
.search-input-text {
margin-left: 10px;
font-size: 14px;
color: #000;
}
}
.search-text {
margin-right: 30px;
font-size: 15px;
color: #fff;
}
}
.scrollviewCss {
overflow-y: hidden;
height: 90vh;
.newslist {
display: flex;
flex-direction: column;
background: #fff;
margin-left: 12px;
margin-right: 12px;
margin-top: 12px;
padding: 15px 20px;
.top-item {
display: flex;
flex-direction: row;
align-items: center;
.top-item-drop {
background: #1684FC;
border-radius: 50%;
width: 8px;
height: 8px;
}
.top-item-text {
margin-left: 10px;
display: flex;
flex-direction: row;
align-items: center;
.top-item-text1 {
font-size: 14px;
color: #434343;
}
.top-item-text2 {
font-size: 14px;
color: #434343;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
}
}
.bomLay {
margin-top: 15px;
display: flex;
flex-direction: row;
.bomLay-item {
flex: 1;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
.bomLay-item-img {
width: 15px;
height: 15px;
}
.bomLay-item-text {
color: #777;
margin-left: 3px;
font-size: 12px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
}
}
.bombtn {
margin-top: 15px;
display: flex;
flex-direction: row;
.bombtn-item {
margin-left: 20px;
padding: 5px 20px;
color: #fff;
font-size: 14px;
background: #2F96E1;
border-radius: 5px;
}
}
}
}
}
</style>

11
supervise-uniapp/pages/index/WaitingProcessed.vue

@ -235,7 +235,8 @@
/* 滚动到底部 */
scrollBottem() {
console.log("滚动高度")
this.status = "nomore"
this.listQuery.current = this.listQuery.current + 1
this.loadData();
},
onRefresh() {
setTimeout(() => {
@ -375,12 +376,12 @@
async loadData(type = 'add', loading) {
//
if (type === 'add') {
if (this.loadingType === 'nomore') {
if (this.status === 'nomore') {
return;
}
this.loadingType = 'loading';
this.status = 'loading';
} else {
this.loadingType = 'more';
this.status = 'more';
}
var list = []
@ -408,7 +409,7 @@
this.dataList = this.dataList.concat(list);
console.log("消息列表>>>>>", this.dataList.length)
//more nomore(20)
this.loadingType = this.dataList.length > list.total ? 'nomore' : 'more';
this.status = this.dataList.length > resp.total ? 'nomore' : 'more';
if (type === 'refresh') {
if (loading == 1) {
uni.hideLoading();

131
supervise-uniapp/pages/index/warehouseSecurity.vue

@ -0,0 +1,131 @@
<template>
<view class="page">
<view class="layout">
<view class="item" style="margin-right: 10px;" @click="onClick('1')">
<image class="item_img" src="https://supervise.yxtsoft.com/img/newApp/alarm.png" mode="aspectFit"></image>
<text class="item_text">风险警报</text>
</view>
<view style="margin-left: 10px; flex: 1;" >
<!-- <image class="item_img" src="https://supervise.yxtsoft.com/img/newApp/jczl.png" mode="aspectFit"></image> -->
<!-- <text class="item_text">库存信息</text> -->
</view>
</view>
<!-- <view class="layout">
<view class="item" style="margin-right: 10px;" @click="onClick('3')">
<image class="item_img" src="https://supervise.yxtsoft.com/img/newApp/rkgl.png" mode="aspectFit"></image>
<text class="item_text">入库管理</text>
</view>
<view class="item" style="margin-left: 10px;" @click="onClick('4')">
<image class="item_img" src="https://supervise.yxtsoft.com/img/newApp/ckgl.png" mode="aspectFit"></image>
<text class="item_text">出库管理</text>
</view>
</view>
<view class="layout">
<view class="item" style="margin-right: 10px;" @click="onClick('5')">
<image class="item_img" src="https://supervise.yxtsoft.com/img/newApp/ckdj.png" mode="aspectFit"></image>
<text class="item_text">仓库登记</text>
</view>
<view style="margin-left: 10px;flex: 1;
padding: 30px 20px;"> -->
<!-- <image class="item_img" src="../../static/newApp/gzdd.png"></image> -->
<!-- <text class="item_text">云仓列表</text> -->
<!-- </view>
</view> -->
</view>
</template>
<script>
export default {
data() {
return {
// resinfo: ''
}
},
methods: {
// sayhello() {
// this.$api.sayhello({name:'mynameislll'}).then(res => {
// this.resinfo = res
// })
// },
// logout() {
// this.$store.dispatch('logout').then(() => {
// console.log('NNNN:退 ')
// })
// },
// gologin() {
// uni.reLaunch({ url: '/pages/login/index' })
// }
onClick(index) {
switch (index) {
case "1":
uni.navigateTo({
url: '../index/RiskAlert'
});
break;
default:
break;
}
},
}
}
</script>
<style lang="scss">
.page {
background: #fff;
width: 100%;
height: 100%;
padding-top: 25px;
.layout {
display: flex;
flex-direction: row;
margin-left: 20px;
margin-right: 20px;
.item {
margin-top: 25px;
flex: 1;
display: flex;
align-items: center;
border-radius: 12px;
background: #F1F3F5 100%;
padding: 20px 10px;
.item_img {
width: 35px;
height: 35px;
}
.item_text {
margin-left: 10px;
font-size: 15px;
color: #757575;
}
}
}
}
</style>

2
yxt-portal-ui/.env.development

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

2
yxt-portal-ui/.env.production

@ -2,7 +2,7 @@
ENV = 'production'
# base api
VUE_APP_BASE_API = '/api'
VUE_APP_BASE_API = '/api/portal'
## 配置 正式接口地址
VUE_APP_URL = "http://jianguan.yyundong.com/"

10
yxt-portal-ui/src/api/User/login.js

@ -12,7 +12,7 @@ class user {
logout(data) { // 退出
return request({
url: '/portal/v1/sysuser/signOut',
url: '/v1/sysuser/signOut',
method: 'post',
data: qs.stringify(data)
})
@ -20,7 +20,7 @@ class user {
updatePassword(data) { // 退出修改密码
return request({
url: '/portal/v1/sysuser/updatePassword',
url: '/v1/sysuser/updatePassword',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
@ -29,7 +29,7 @@ class user {
reGetPwd(data) {
return request({
url: '/portal/v1/sysuser/reGetPwd',
url: '/v1/sysuser/reGetPwd',
method: 'post',
params: data,
headers: {
@ -39,13 +39,13 @@ class user {
}
selectPasswordByUserSid(data) {
return request({
url: '/portal/v1/sysuser/selectPasswordByUserSid/' + data,
url: '/v1/sysuser/selectPasswordByUserSid/' + data,
method: 'get'
})
}
getOrgListByUserSid(data) {
return request({
url: '/portal/v1/sysuser/getOrgListByUserSid',
url: '/v1/sysuser/getOrgListByUserSid',
method: 'get',
params: data
})

16
yxt-portal-ui/src/api/flow/todo.js

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 读取xml文件
export function readXml(deployId, token) {
return request({
url: '/portal/v1/flow/readXml/' + deployId,
url: '/v1/flow/readXml/' + deployId,
method: 'get',
params: token
})
@ -11,7 +11,7 @@ export function readXml(deployId, token) {
// 读取image文件
export function getFlowViewer(procInsId, token) {
return request({
url: '/portal/v1/flow/flowViewer/' + procInsId,
url: '/v1/flow/flowViewer/' + procInsId,
method: 'get',
params: token
})
@ -19,7 +19,7 @@ export function getFlowViewer(procInsId, token) {
// 查看总代办列表
export function pagerList(params) {
return request({
url: '/portal/v1/flow/todoAllTaskList/' + params.params.userSid,
url: '/v1/flow/todoAllTaskList/' + params.params.userSid,
method: 'post',
data: params,
headers: {
@ -31,7 +31,7 @@ export function pagerList(params) {
// 查看总已办列表
export function getList(params) {
return request({
url: '/portal/v1/flow/doneAllTaskList/' + params.params.userSid,
url: '/v1/flow/doneAllTaskList/' + params.params.userSid,
method: 'post',
data: params,
headers: {
@ -43,7 +43,7 @@ export function getList(params) {
// 代办任务同意办理
export function businessAgree(params) {
return request({
url: '/portal/v1/flow/complete',
url: '/v1/flow/complete',
method: 'post',
data: params,
headers: {
@ -55,7 +55,7 @@ export function businessAgree(params) {
// 代办任务驳回任务
export function rejectTask(params) {
return request({
url: '/portal/v1/flow/reject/' + params.businessSid,
url: '/v1/flow/reject/' + params.businessSid,
method: 'post',
data: params,
headers: {
@ -67,7 +67,7 @@ export function rejectTask(params) {
// 代办任务终止任务
export function breakTask(params) {
return request({
url: '/portal/v1/flow/breakProcess/' + params.businessSid,
url: '/v1/flow/breakProcess/' + params.businessSid,
method: 'post',
data: params,
headers: {
@ -79,7 +79,7 @@ export function breakTask(params) {
// 代办任务撤回任务
export function revokeTask(params) {
return request({
url: '/portal/v1/flow/revokeProcess/' + params.userSid + '/' + params.businessSid,
url: '/v1/flow/revokeProcess/' + params.userSid + '/' + params.businessSid,
method: 'post',
data: params,
headers: {

6
yxt-portal-ui/src/api/flow/todoForBusiness.js

@ -3,21 +3,21 @@ import qs from 'qs'
// 读取xml文件
export function readXml (deployId) {
return request({
url: '/portal/v1/flow/readXml/' + deployId,
url: '/v1/flow/readXml/' + deployId,
method: 'get'
})
}
// 读取image文件
export function getFlowViewer (procInsId) {
return request({
url: '/portal/v1/flow/flowViewer/' + procInsId,
url: '/v1/flow/flowViewer/' + procInsId,
method: 'get'
})
}
// 任务流转记录
export function flowRecord(query) {
return request({
url: '/portal/v1/flow/task/flowRecord/' + query.procInsId + "/" + query.deployId,
url: '/v1/flow/task/flowRecord/' + query.procInsId + "/" + query.deployId,
method: 'get',
params: query
})

2
yxt-portal-ui/src/api/system/Role/role.js

@ -13,7 +13,7 @@ export function rolemenus(data) {
// 获取左侧菜单
export function getrolemenus(data) {
return request({
url: '/portal/v1/sysmenu/sourcemenutree',
url: '/v1/sysmenu/sourcemenutree',
method: 'POST',
async: false,
data: data,

0
yxt-portal-ui/src/api/system/advertising.js

2
yxt-portal-ui/src/api/system/datamapping/datamapping.js

@ -2,7 +2,7 @@ import request from '@/utils/request'
export function listPage(data) {
return request({
url: '/portal/v1/sysmapping/listPage',
url: '/v1/sysmapping/listPage',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }

22
yxt-portal-ui/src/api/system/departments/departments.js

@ -6,7 +6,7 @@ let tokens = window.sessionStorage.getItem('token')
// 获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/sysorganization/listPage',
url: '/v1/sysorganization/listPage',
method: 'POST',
data: data,
headers: {
@ -18,7 +18,7 @@ export function pageList(data) {
// 查询左侧部门列表
export function orgList(data) {
return request({
url: '/portal/v1/sysorganization/list',
url: '/v1/sysorganization/list',
method: 'get',
data: data,
headers: {
@ -30,7 +30,7 @@ export function orgList(data) {
// 编辑部门信息
export function postOrgtree(data) {
return request({
url: '/portal/v1/sysorganization/update/' + data.sid,
url: '/v1/sysorganization/update/' + data.sid,
method: 'POST',
data: data,
headers: {
@ -42,7 +42,7 @@ export function postOrgtree(data) {
// 获取 机构分页列表(编辑部门信息)
export function putOrgtree(data) {
return request({
url: '/portal/v1/sysorganization/update/' + data.sid,
url: '/v1/sysorganization/update/' + data.sid,
method: 'POST',
data: data,
headers: {
@ -55,7 +55,7 @@ export function putOrgtree(data) {
// 新增部门信息
export function addOrgTree(data) {
return request({
url: '/portal/v1/sysorganization/save',
url: '/v1/sysorganization/save',
method: 'POST',
data: data,
headers: {
@ -67,7 +67,7 @@ export function addOrgTree(data) {
// 回显
export function selectBySid(data) {
return request({
url: 'portal/v1/sysorganization/fetchBySid/' + data,
url: '/v1/sysorganization/fetchBySid/' + data,
method: 'get',
data: data,
headers: {
@ -79,7 +79,7 @@ export function selectBySid(data) {
// 树 节点名称 删除
export function delOrgtree(data) {
return request({
url: `/portal/v1/sysorganization/delBySid/` + data.sid,
url: `/v1/sysorganization/delBySid/` + data.sid,
method: 'get',
data: qs.stringify(data),
headers: {
@ -88,10 +88,10 @@ export function delOrgtree(data) {
}
})
}
// 查询主管人员 旧的:/portal/v1/sysstafforg/staffinfoList
// 查询主管人员 旧的:/v1/sysstafforg/staffinfoList
export function getStaff(data) {
return request({
url: 'portal/v1/sysstaffinfo/getStaffNameByDeptSid',
url: '/v1/sysstaffinfo/getStaffNameByDeptSid',
method: 'get',
params: data,
headers: {
@ -103,7 +103,7 @@ export function getStaff(data) {
// 查询分管人员
export function getStaffName(params) {
return request({
url: '/portal/v1/sysstaffinfo/getStaffName',
url: '/v1/sysstaffinfo/getStaffName',
method: 'get',
params: params,
headers: {
@ -115,7 +115,7 @@ export function getStaffName(params) {
// 查看二维码
export function getQrCode(data) {
return request({
url: '/portal/v1/sysorganization/getQrCode/' + data.sid,
url: '/v1/sysorganization/getQrCode/' + data.sid,
method: 'post',
data: data,
headers: {

8
yxt-portal-ui/src/api/system/dictType/dictCommon.js

@ -5,7 +5,7 @@ let tokens = window.sessionStorage.getItem('token');
//获取字典子集 分页列表
export function dictCommonList(data) {
return request({
url: '/portal/v1/dictcommon/pageList',
url: '/v1/dictcommon/pageList',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
@ -15,7 +15,7 @@ export function dictCommonList(data) {
//保存 字典子级
export function savedictCommon(data) {
return request({
url: '/portal/v1/dictcommon/save',
url: '/v1/dictcommon/save',
method: 'POST',
data: data ,
headers: {'Content-Type': 'application/json',
@ -36,7 +36,7 @@ export function getRoleInfo(data) {
//根据sid 修改 数据字典
export function putdictCommon(data) {
return request({
url: '/portal/v1/dictcommon/update/' + data.sid,
url: '/v1/dictcommon/update/' + data.sid,
method: 'POST',
data: data ,
headers: {'Content-Type': 'application/json',
@ -48,7 +48,7 @@ export function putdictCommon(data) {
//根据sid 删除菜单 信息
export function deldictCommon(data) {
return request({
url: '/portal/v1/dictcommon/delete/' + data.sid,
url: '/v1/dictcommon/delete/' + data.sid,
method: 'DELETE',
data: data,
headers: {'Content-Type': 'application/json',

12
yxt-portal-ui/src/api/system/dictType/index.js

@ -5,7 +5,7 @@ let tokens = window.sessionStorage.getItem('token')
// 获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/dicttype/pageList',
url: '/v1/dicttype/pageList',
method: 'POST',
data: data,
headers: {
@ -18,7 +18,7 @@ export function pageList(data) {
// 根据sid 修改
export function putDictType(data) {
return request({
url: '/portal/v1/dicttypes/update/' + data.sid,
url: '/v1/dicttypes/update/' + data.sid,
method: 'POST',
data: qs.stringify(data)
})
@ -27,7 +27,7 @@ export function putDictType(data) {
// 保存 角色信息
export function saveDictType(data) {
return request({
url: '/portal/v1/dicttypes/save',
url: '/v1/dicttypes/save',
method: 'POST',
data: data,
headers: { 'Content-Type': 'application/json', 'token': tokens }
@ -46,7 +46,7 @@ export function getRoleInfo(data) {
// 数据字段--映射管理保存
export function saveMappingList(data) {
return request({
url: '/portal/v1/sysmapping/saveMappingList',
url: '/v1/sysmapping/saveMappingList',
method: 'POST',
data: data,
headers: { 'Content-Type': 'application/json', 'token': tokens }
@ -56,7 +56,7 @@ export function saveMappingList(data) {
// 数据字段--映射管理保存
export function selectMappingListInfo(data) {
return request({
url: '/portal/v1/sysmapping/selectMappingListInfo',
url: '/v1/sysmapping/selectMappingListInfo',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json', 'token': tokens }
@ -66,7 +66,7 @@ export function selectMappingListInfo(data) {
// 根据sid 删除菜单 信息
export function delDictType(data) {
return request({
url: '/portal/v1/dicttypes/delete/' + data.sid,
url: '/v1/dicttypes/delete/' + data.sid,
method: 'DELETE',
data: data,
headers: { 'Content-Type': 'application/json', 'token': tokens }

14
yxt-portal-ui/src/api/system/functional/functional.js

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

2
yxt-portal-ui/src/api/system/home/home.js

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 获取当前用户的待办数量
export function getTodoNum(data) {
return request({
url: '/portal/v1/flow/getTodoNum/' + data,
url: '/v1/flow/getTodoNum/' + data,
method: 'get'
})
}

10
yxt-portal-ui/src/api/system/liuchengchaosong/liuchengchaosong.js

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/sysflowcc/listPage',
url: '/v1/sysflowcc/listPage',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
@ -13,7 +13,7 @@ export function pageList(data) {
// 新增
export function save(data) {
return request({
url: '/portal/v1/sysflowcc/save',
url: '/v1/sysflowcc/save',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
@ -23,7 +23,7 @@ export function save(data) {
// 初始化应用
export function fetchSid(data) {
return request({
url: '/portal/v1/sysflowcc/fetchDetailsBySid/' + data,
url: '/v1/sysflowcc/fetchDetailsBySid/' + data,
method: 'get'
})
}
@ -31,7 +31,7 @@ export function fetchSid(data) {
// 删除
export function delBySids(data) {
return request({
url: '/portal/v1/sysflowcc/delBySids',
url: '/v1/sysflowcc/delBySids',
method: 'DELETE',
data: data,
headers: { 'Content-Type': 'application/json' }
@ -41,7 +41,7 @@ export function delBySids(data) {
// 查询角色列表
export function roleList(data){
return request({
url: '/portal/v1/sysrole/listAll',
url: '/v1/sysrole/listAll',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }

2
yxt-portal-ui/src/api/system/log/index.js

@ -5,7 +5,7 @@ let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function logPageList(data) {
return request({
url: '/portal/v1/systemlog/listPage',
url: '/v1/systemlog/listPage',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',

10
yxt-portal-ui/src/api/system/menu/index.js

@ -7,7 +7,7 @@ let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/sysmenu/listAllVoForSource',
url: '/v1/sysmenu/listAllVoForSource',
method: 'POST',
data: data,
headers: {
@ -20,7 +20,7 @@ export function pageList(data) {
// 新增保存 菜单信息
export function saveMenusInfo(data) {
return request({
url: '/portal/v1/sysmenu/save',
url: '/v1/sysmenu/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
@ -30,7 +30,7 @@ export function saveMenusInfo(data) {
// 修改保存 菜单信息
export function putMenusInfo(data) {
return request({
url: '/portal/v1/sysmenu/update/' + data.sid,
url: '/v1/sysmenu/update/' + data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
@ -40,7 +40,7 @@ export function putMenusInfo(data) {
//根据sid 删除单个 资源信息
export function delMenus(data) {
return request({
url: '/portal/v1/sysmenu/delBySids/' + data.sid,
url: '/v1/sysmenu/delBySids/' + data.sid,
method: 'get',
data: qs.stringify(data),
headers: {
@ -53,7 +53,7 @@ export function delMenus(data) {
// 修改状态
export function IsEnable(data) {
return request({
url: '/portal/v1/sysmenu/updateIsEnable/' + data.sid + '/' + data.isEnable,
url: '/v1/sysmenu/updateIsEnable/' + data.sid + '/' + data.isEnable,
method: 'POST',
/* data: qs.stringify(data),*/
headers: {

12
yxt-portal-ui/src/api/system/mobileterminal/mobileterminal.js

@ -4,7 +4,7 @@ import qs from 'qs'
// 获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/sysmobilemenu/list',
url: '/v1/sysmobilemenu/list',
method: 'get',
data
})
@ -13,7 +13,7 @@ export function pageList(data) {
// 新增插件
export function save(data) {
return request({
url: '/portal/v1/appsubsetversion/save',
url: '/v1/appsubsetversion/save',
method: 'get',
data: data
})
@ -22,7 +22,7 @@ export function save(data) {
// 更新插件
export function putMenusInfo(data) {
return request({
url: '/portal/v1/sysmenu/update/' + data.sid,
url: '/v1/sysmenu/update/' + data.sid,
method: 'POST',
data: data,
headers: { 'Content-Type': 'application/json' }
@ -32,7 +32,7 @@ export function putMenusInfo(data) {
// 新增/编辑应用
export function saveOrUpdate(data) {
return request({
url: '/portal/v1/sysmobilemenu/saveOrUpdate',
url: '/v1/sysmobilemenu/saveOrUpdate',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
@ -42,7 +42,7 @@ export function saveOrUpdate(data) {
// 初始化应用
export function details(data) {
return request({
url: '/portal/v1/sysmobilemenu/details',
url: '/v1/sysmobilemenu/details',
method: 'get',
params: data
})
@ -51,7 +51,7 @@ export function details(data) {
// 根据sid应用
export function deleteMenu(data) {
return request({
url: '/portal/v1/sysmobilemenu/deleteMenu',
url: '/v1/sysmobilemenu/deleteMenu',
method: 'DELETE',
params: data
})

4
yxt-portal-ui/src/api/system/personalization/personalization.js

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 获取菜单 分页列表
export function getList(data) {
return request({
url: '/portal/v1/sysuserdefaultorg/getList',
url: '/v1/sysuserdefaultorg/getList',
method: 'get',
params: data
})
@ -12,7 +12,7 @@ export function getList(data) {
// 新增插件
export function saveOrUpdate(data) {
return request({
url: '/portal/v1/sysuserdefaultorg/saveOrUpdate',
url: '/v1/sysuserdefaultorg/saveOrUpdate',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }

14
yxt-portal-ui/src/api/system/postManage/index.js

@ -5,7 +5,7 @@ let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/syspost/listPage',
url: '/v1/syspost/listPage',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -17,7 +17,7 @@ export function pageList(data) {
// 查询部门列表
export function orgList(data){
return request({
url: '/portal/v1/sysorganization/list',
url: '/v1/sysorganization/list',
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
@ -28,7 +28,7 @@ export function orgList(data){
// 新增
export function savePost(data){
return request({
url: '/portal/v1/syspost/save',
url: '/v1/syspost/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -39,7 +39,7 @@ export function savePost(data){
// 修改
export function putOrgroles(data){
return request({
url: '/portal/v1/syspost/update/' +data.sid,
url: '/v1/syspost/update/' +data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -51,7 +51,7 @@ export function putOrgroles(data){
// 删除
export function delOrgroles(data){
return request({
url: '/portal/v1/syspost/delBySids/' + data.sids,
url: '/v1/syspost/delBySids/' + data.sids,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
@ -62,7 +62,7 @@ export function delOrgroles(data){
export function pullDown(data){
return request({
url: '/portal/v1/dictcommon/typeValues',
url: '/v1/dictcommon/typeValues',
method: 'get',
params: data
})
@ -71,7 +71,7 @@ export function pullDown(data){
// 查询岗位列表
export function selectList(data){
return request({
url: '/portal/v1/syspost/selectList',
url: '/v1/syspost/selectList',
method: 'get',
params: data
})

14
yxt-portal-ui/src/api/system/region/region.js

@ -5,7 +5,7 @@ export default {
// 分页列表
pagerList: function (params) {
return request({
url: '/portal/v1/regions/pagerList',
url: '/v1/regions/pagerList',
method: 'post',
data: params,
headers: {
@ -17,7 +17,7 @@ export default {
// 新增保存
save: function (regionDto) {
return request({
url: '/portal/v1/regions/save',
url: '/v1/regions/save',
method: 'post',
data: regionDto,
headers: {
@ -29,7 +29,7 @@ export default {
// // 根据省sid获取该省的所有市
// getCity: function (sid) {
// return request({
// url: '/portal/v1/regions/getCity',
// url: '/v1/regions/getCity',
// method: 'get',
// params: {
// sid
@ -40,7 +40,7 @@ export default {
// // 根据市sid获取该省的所有县区
// getCounty: function (sid) {
// return request({
// url: '/portal/v1/regions/getCounty',
// url: '/v1/regions/getCounty',
// method: 'get',
// params: {
// sid
@ -51,7 +51,7 @@ export default {
// 删除
delete: function (sid) {
return request({
url: '/portal/v1/regions/delete/' + sid,
url: '/v1/regions/delete/' + sid,
method: 'delete',
data: sid
})
@ -60,7 +60,7 @@ export default {
//点击修改回显数据
updateEcho: function (sid) {
return request({
url: '/portal/v1/regions/getOne/' + sid,
url: '/v1/regions/getOne/' + sid,
method: 'post',
params: {
sid
@ -72,7 +72,7 @@ export default {
// system/region/update/{sid}
update: function (params,sid) {
return request({
url: '/portal/v1/regions/update/' + sid,
url: '/v1/regions/update/' + sid,
method: 'post',
data: params,
headers: {

30
yxt-portal-ui/src/api/system/roleAdminister/index.js

@ -5,7 +5,7 @@ let tokens = window.sessionStorage.getItem('token');
// 业务角色 列表
export function roleOrgList(data){
return request({
url: '/portal/v1/sysrole/listPage',
url: '/v1/sysrole/listPage',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
@ -16,7 +16,7 @@ export function roleOrgList(data){
export function postList(data){
return request({
url: '/portal/v1/syspost/list',
url: '/v1/syspost/list',
method: 'get',
data: data,
headers: {'Content-Type': 'application/json'}
@ -26,7 +26,7 @@ export function postList(data){
// 获取数据字典下拉列表
export function typeValues(data) {
return request({
url: '/portal/v1/dictcommon/typeValues',
url: '/v1/dictcommon/typeValues',
method: 'get',
params: data
})
@ -35,7 +35,7 @@ export function typeValues(data) {
// 设置是否可用:isEnable:1可用,0不可用
export function setRoleEnable(data) {
return request({
url: '/portal/v1/sysrole/setIsEnable/' + data.sid + '/' + data.isEnable,
url: '/v1/sysrole/setIsEnable/' + data.sid + '/' + data.isEnable,
method: 'POST',
data: data,
headers: {
@ -52,7 +52,7 @@ export function setRoleEnable(data) {
* */
export function saveOrgroles(data) {
return request({
url: '/portal/v1/sysrole/save',
url: '/v1/sysrole/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -69,7 +69,7 @@ export function saveOrgroles(data) {
* */
export function putOrgroles(data) {
return request({
url: `/portal/v1/sysrole/update/${data.sid}`,
url: `/v1/sysrole/update/${data.sid}`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -84,7 +84,7 @@ export function putOrgroles(data) {
* */
export function delOrgroles(data) {
return request({
url: `/portal/v1/sysrole/delBySids/${data.sid}`,
url: `/v1/sysrole/delBySids/${data.sid}`,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
@ -95,7 +95,7 @@ export function delOrgroles(data) {
// 移动端授权
export function getRoleMenuList(data) {
return request({
url: '/portal/v1/sysmobilemenurole/getRoleMenuList',
url: '/v1/sysmobilemenurole/getRoleMenuList',
method: 'post',
params: { roleSid: data }
})
@ -104,7 +104,7 @@ export function getRoleMenuList(data) {
// 菜单授权保存
export function saveRoleMenuList(data) {
return request({
url: `/portal/v1/sysmobilemenurole/saveRoleMenuList`,
url: `/v1/sysmobilemenurole/saveRoleMenuList`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -116,7 +116,7 @@ export function saveRoleMenuList(data) {
// 菜单授权
export function roleMenuTree(data) {
return request({
url: `/portal/v1/sysmenu/listAllByRoleSid`,
url: `/v1/sysmenu/listAllByRoleSid`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -128,7 +128,7 @@ export function roleMenuTree(data) {
// 菜单授权保存
export function saveorgrolemenus(data) {
return request({
url: `/portal/v1/sysmenurole/updateRoleAndMenu`,
url: `/v1/sysmenurole/updateRoleAndMenu`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -139,7 +139,7 @@ export function saveorgrolemenus(data) {
// 资源授权
export function sourceMenuTree(data) {
return request({
url: `/portal/v1/syssource/listAllByRoleSid`,
url: `/v1/syssource/listAllByRoleSid`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -150,7 +150,7 @@ export function sourceMenuTree(data) {
// 资源授权保存
export function saveSource(data) {
return request({
url: `/portal/v1/syssourcerole/updateRoleAndSource`,
url: `/v1/syssourcerole/updateRoleAndSource`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -161,7 +161,7 @@ export function saveSource(data) {
// 功能授权
export function funMenuTree(data) {
return request({
url: `/portal/v1/sysfunction/listAllByRoleSid`,
url: `/v1/sysfunction/listAllByRoleSid`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -172,7 +172,7 @@ export function funMenuTree(data) {
// 功能授权保存
export function savefunMenu(data) {
return request({
url: `/portal/v1/sysrolefunction/updateRoleAndFunction`,
url: `/v1/sysrolefunction/updateRoleAndFunction`,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',

10
yxt-portal-ui/src/api/system/sources/index.js

@ -5,7 +5,7 @@ let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function pageList(data) {
return request({
url: '/portal/v1/syssource/listPage',
url: '/v1/syssource/listPage',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -16,7 +16,7 @@ export function pageList(data) {
//保存 资源信息
export function saveSourcesInfo(data) {
return request({
url: '/portal/v1/syssource/save',
url: '/v1/syssource/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -27,7 +27,7 @@ export function saveSourcesInfo(data) {
// 修改 保存 资源信息
export function putSourcesInfo(data) {
return request({
url: '/portal/v1/syssource/update/' + data.sid,
url: '/v1/syssource/update/' + data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -38,7 +38,7 @@ export function putSourcesInfo(data) {
//根据sid 删除单个 资源信息
export function delSources(data) {
return request({
url: '/portal/v1/syssource/delBySids/' + data.sid,
url: '/v1/syssource/delBySids/' + data.sid,
method: 'get',
data: qs.stringify(data),
headers: {'Content-Type': 'application/json',
@ -49,7 +49,7 @@ export function delSources(data) {
// 获取获取资源类别
export function getZzylb(data) {
return request({
url: '/portal/v1/syssource/listAll',
url: '/v1/syssource/listAll',
method: 'post',
headers: {'Content-Type': 'application/json'}
})

4
yxt-portal-ui/src/api/system/user/login.js

@ -5,7 +5,7 @@ import qs from 'qs'
//获取菜单 分页列表
export function login1(data) {
return request({
url: '/portal/v1/sysuser/login',
url: '/v1/sysuser/login',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
@ -21,7 +21,7 @@ export function login1(data) {
class user {
login(data) { // 登录
return request({
url: '/portal/v1/sysuser/login',
url: '/v1/sysuser/login',
method: 'post',
data
})

28
yxt-portal-ui/src/api/system/userManage/index.js

@ -7,7 +7,7 @@ let tokens = window.sessionStorage.getItem('token');
// 修改用户 微信公众号OpenId
export function saveOpenId(data) {
return request({
url: '/portal/v1/sysuser/saveOpenId',
url: '/v1/sysuser/saveOpenId',
method: 'post',
data: data,
headers: {
@ -19,7 +19,7 @@ export function saveOpenId(data) {
export function userList(data) {
return request({
url: '/portal/v1/sysuser/listPage',
url: '/v1/sysuser/listPage',
method: 'post',
data: data,
headers: {
@ -31,7 +31,7 @@ export function userList(data) {
// 新增
export function userAdd(data) {
return request({
url: '/portal/v1/sysuser/save',
url: '/v1/sysuser/save',
method: 'post',
data: data,
headers: {
@ -43,7 +43,7 @@ export function userAdd(data) {
// 更新
export function userUpdata(data) {
return request({
url: '/portal/v1/sysuser/update/' + data.sid,
url: '/v1/sysuser/update/' + data.sid,
method: 'post',
data: data,
headers: {
@ -56,7 +56,7 @@ export function userUpdata(data) {
// 删除
export function delUser(data) {
return request({
url: '/portal/v1/sysuser/delBySid/' + data.sid,
url: '/v1/sysuser/delBySid/' + data.sid,
method: 'get',
data: data,
headers: {
@ -68,7 +68,7 @@ export function delUser(data) {
// 初始化密码
export function initPwd(data) {
return request({
url: '/portal/v1/sysuser/initPwd/' + data.sid,
url: '/v1/sysuser/initPwd/' + data.sid,
method: 'post',
data: data,
headers: {
@ -80,7 +80,7 @@ export function initPwd(data) {
// 根据sid查询一条信息
export function userSingle(data) {
return request({
url: '/portal/v1/sysuser/fetchBySid/' + data.sid,
url: '/v1/sysuser/fetchBySid/' + data.sid,
method: 'get',
data: data,
headers: {
@ -92,7 +92,7 @@ export function userSingle(data) {
// 单条用户的角色列表
export function setRole(data) {
return request({
url: '/portal/v1/sysrole/listAllByUserSid/' + data.sid,
url: '/v1/sysrole/listAllByUserSid/' + data.sid,
method: 'post',
data: data,
headers: {
@ -104,7 +104,7 @@ export function setRole(data) {
// 角色列表
export function saveOrgRole(data) {
return request({
url: '/portal/v1/sysuserrole/update',
url: '/v1/sysuserrole/update',
method: 'post',
data: data,
headers: {
@ -116,7 +116,7 @@ export function saveOrgRole(data) {
// 查询角色列表
export function roleList(data) {
return request({
url: '/portal/v1/sysrole/listAll',
url: '/v1/sysrole/listAll',
method: 'post',
data: data,
headers: {
@ -128,7 +128,7 @@ export function roleList(data) {
// 查询部门列表
export function orgList(data) {
return request({
url: '/portal/v1/sysorganization/list',
url: '/v1/sysorganization/list',
method: 'get',
data: data,
headers: {
@ -140,7 +140,7 @@ export function orgList(data) {
// 查询岗位列表
export function postList(data) {
return request({
url: '/portal/v1/syspost/fetchByOrgSid/' + data.sid,
url: '/v1/syspost/fetchByOrgSid/' + data.sid,
method: 'get',
data: data,
headers: {
@ -153,7 +153,7 @@ export function postList(data) {
// 获取验证码
export function getCode(data) {
return request({
url: '/portal/v1/sysuser/sendMessageCode/' + data.phone,
url: '/v1/sysuser/sendMessageCode/' + data.phone,
method: 'get',
data: data,
headers: {
@ -166,7 +166,7 @@ export function getCode(data) {
// 设置是否可用:isEnable:1可用,0不可用
export function setRoleEnable(data) {
return request({
url: '/portal/v1/sysuser/setIsEnable/' + data.sid + '/' + data.isEnable,
url: '/v1/sysuser/setIsEnable/' + data.sid + '/' + data.isEnable,
method: 'post',
data: data,
headers: {

4
yxt-portal-ui/src/api/user.js

@ -1,7 +1,7 @@
import request from '@/utils/request'
export function login(data) {
return request({
url: '/portal/v1/sysuser/login',
url: '/v1/sysuser/login',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
@ -47,7 +47,7 @@ export function getInfo(token) {
// 根据token值获取登录后的用户信息
export function loginDetails(data) {
return request({
url: '/portal/v1/sysuser/loginDetails',
url: '/v1/sysuser/loginDetails',
method: 'post',
data: data,
headers: {

4
yxt-portal-ui/src/api/workflow/finished.js

@ -15,7 +15,7 @@ export function finishedList(query) {
// 任务流转记录
export function flowRecord(query) {
return request({
url: '/portal/v1/flow/task/flowRecord/' + query.procInsId + "/" + query.deployId,
url: '/v1/flow/task/flowRecord/' + query.procInsId + "/" + query.deployId,
method: 'get',
params: query
})
@ -25,7 +25,7 @@ export function flowRecord(query) {
export function revokeProcess(data) {
const userSid = data.userSid;
return request({
url: '/portal/v1/flow/task/revokeProcess/' + userSid,
url: '/v1/flow/task/revokeProcess/' + userSid,
method: 'post',
data: data,
headers: {

14
yxt-portal-ui/src/api/workflow/flow.js

@ -6,7 +6,7 @@ export default {
// 查询待办任务列表
getNextNodes: function (query) {
return request({
url: '/portal/v1/flow/getNextTasks/'+query.taskId,
url: '/v1/flow/getNextTasks/'+query.taskId,
method: 'post',
headers: {
'Content-Type': 'application/json',
@ -19,7 +19,7 @@ export default {
const userSid = params.userSid
const variables = params.variables
return request({
url: '/portal/v1/flow/businessStart/' + procDefId + '/' + userSid,
url: '/v1/flow/businessStart/' + procDefId + '/' + userSid,
method: 'POST',
data: variables,
headers: {
@ -32,7 +32,7 @@ export default {
const pageNum = params.current
const pageSize = params.size
return request({
url: '/portal/v1/flow/processPagerList',
url: '/v1/flow/processPagerList',
method: 'POST',
data: {
pageNum: pageNum,
@ -43,7 +43,7 @@ export default {
myProcessList: function(params) {
let userSid=params.params.userSid;
return request({
url: '/portal/v1/flow/myprocess/'+userSid,
url: '/v1/flow/myprocess/'+userSid,
method: 'POST',
data: params,
headers: {
@ -55,7 +55,7 @@ export default {
todoTaskList: function(params) {
let userSid=params.params.userSid;
return request({
url: '/portal/v1/flow/todoTaskList/'+userSid,
url: '/v1/flow/todoTaskList/'+userSid,
method: 'POST',
data: params,
headers: {
@ -67,7 +67,7 @@ export default {
doneTaskList: function(params) {
let userSid=params.params.userSid;
return request({
url: '/portal/v1/flow/doneTaskList/'+userSid,
url: '/v1/flow/doneTaskList/'+userSid,
method: 'POST',
data: params,
headers: {
@ -81,7 +81,7 @@ export default {
// 任务流转记录
export function complete(data) {
return request({
url: '/portal/v1/flow/complete',
url: '/v1/flow/complete',
method: 'post',
data: data,
headers: {

13
yxt-portal-ui/src/router/index.js

@ -228,6 +228,19 @@ export const constantRoutes = [
title: '组织管理'
}
}]
}, {
path: '/Advertising',
component: Layout,
redirect: '/Advertising',
children: [{
path: '/Advertising',
component: () =>
import('@/views/Advertising/AdvertisingIndex.vue'),
name: 'Advertising',
meta: {
title: '广告列表'
}
}]
},
// 工作流
{

281
yxt-portal-ui/src/views/Advertising/AdvertisingIndex.vue

@ -0,0 +1,281 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="广告列表" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">
{{ searchxianshitit }}
</el-button>
<div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header">
<el-form-item label="广告名称">
<el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item>
<!-- <el-form-item label="审核">
<el-select v-model="queryParams.params.completionStatusKey" filterable placeholder="请选择" clearable>
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey"></el-option>
</el-select>
</el-form-item> -->
<!-- <el-form-item label="法人 ">
<el-input v-model="queryParams.params.legalRepresentative" placeholder="" clearable/>
</el-form-item>
<el-form-item label="营业执照号码">
<el-input v-model="queryParams.params.businessLicenseNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="银行账号">
<el-input v-model="queryParams.params.bankAccountNumber" placeholder="" clearable/>
</el-form-item> -->
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
<el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</div>
</div>
</div>
<!-- Start 项目列表头部 -->
<div class="listtop">
<div class="tit">广告列表</div>
</div>
<!-- End 项目列表头部 -->
<!-- Start 项目列表 -->
<div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
@selection-change="handleSelectionChange">
<!-- <el-table-column fixed width="50" type="selection" align="center" /> -->
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column prop="category" label="名称" width="110" align="center" />
<el-table-column label="图片" align="center">
<template slot-scope="scope">
<span v-for="(item,index) in scope.row.urls" :key="index">
<el-popover placement="left" trigger="click" width="300">
<img :src="item.url" width="100%" />
<img slot="reference" :src="item.url" :alt="item.url"
style="max-height: 70px;max-width: 70px; padding: 5px" />
</el-popover>
</span>
</template>
</el-table-column>
<el-table-column prop="description" label="排序" width="110"align="center" />
<el-table-column prop="unit" label="备注" align="center" width="80" />
<el-table-column prop="manufacturer" label="位置" width="150"align="center" />
<el-table-column label="操作" align="center" width="180">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<!-- End 项目列表 -->
<div class="pages">
<div class="tit" />
<!-- 翻页 -->
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
:limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
</div>
</div>
</div>
<!-- End 查询和其列表部分 -->
<!-- 新增修改部分组件 -->
<divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" />
<!-- 详情部分组件 -->
<divDetail v-show="viewState == 4" ref="divinfo" @doback="resetState" />
</div>
</template>
<script>
import req from '@/api/system/advertising'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import divAdd from './AdvertisingIndexAdd.vue'
import divDetail from './AdvertisingIndexDetail.vue'
export default {
name: 'SupplierBankInfoIndex',
components: {
ButtonBar,
Pagination,
pageye,
divAdd,
divDetail
},
data() {
return {
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: '显示查询条件',
tableLoading: false,
dataList: [],
btnList: [{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
state_list: [{
dictKey: 1,
dictValue: '通过审核'
},
{
dictKey: 2,
dictValue: '等待审核'
},
{
dictKey: 3,
dictValue: '审核被拒'
}
],
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
},
sids: []
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
this.loadList()
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
loadList() {
this.tableLoading = true
req.commodityListPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
console.log("data>>>",resp.data)
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.queryParams.total = 0
this.dataList = []
}
}).catch(() => {
this.tableLoading = false
})
},
handleSelectionChange(row) {
const aa = []
row.forEach((element) => {
aa.push(element.sid)
})
this.sids = aa
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
}
this.loadList()
},
//
toAdd() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
//
toRelevancy(row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)
},
//
toRelevancyInfo(row) {
const tip = '请确认是否删除所选记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.CommoditydelBySids(row.sid).then((resp) => {
loading.close()
if (resp.success) {
this.$message({
type: 'success',
message: resp.msg,
showClose: true
})
this.loadList()
} else {
// resp.code
}
}).catch(e => {
loading.close()
})
}).catch(() => {})
},
//
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
resetState() {
this.viewState = 1
}
}
}
</script>
<style scoped>
</style>

310
yxt-portal-ui/src/views/Advertising/AdvertisingIndexAdd.vue

@ -0,0 +1,310 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>商品信息</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd" style="padding-left: 150px;padding-right: 150px;padding-bottom: 50px;">
<el-card class="box-card">
<div class="item">
<span class="item_text"><span class="icon">*</span>商品名称</span>
<el-input v-model="formobj.name" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text"><span class="icon">*</span>商品编码</span>
<el-input v-model="formobj.code" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text"><span class="icon">*</span>分类</span>
<el-select v-model="formobj.category" filterable placeholder="请选择" clearable class="item_input"
@change="categoryChange">
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey">
</el-option>
</el-select>
</div>
<div class="item">
<span class="item_text"><span class="icon">*</span>品牌</span>
<el-select v-model="formobj.brand" filterable placeholder="请选择" clearable class="item_input"
@change="brandChange">
<el-option v-for="item in state_list2" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey">
</el-option>
</el-select>
</div>
<div class="item">
<span class="item_text"><span class="icon">*</span>进货单价</span>
<el-input v-model="formobj.newestPurchasePrice" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">规格</span>
<el-input v-model="formobj.description" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">单位</span>
<el-input v-model="formobj.unit" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">生产厂家</span>
<el-input v-model="formobj.manufacturer" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">保质期</span>
<el-input v-model="formobj.qualityGuaranteePeriod" placeholder="" class="item_input" clearable />
</div>
<div class="item" style="margin-bottom: 20px;">
<span class="item_text"><span class="icon">*</span>第二代码</span>
<el-input v-model="formobj.secondCode" placeholder="" class="item_input" clearable />
</div>
</el-card>
</div>
</div>
</template>
<script>
import req from '@/api/system/advertising'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
export default {
name: 'SupplierBankInfoIndex',
components: {
ButtonBar,
Pagination,
pageye
},
data() {
return {
btndisabled: false,
submitdisabled: false,
state_list: [{
dictKey: 0,
dictValue: '藕粉'
}, {
dictKey: 1,
dictValue: '杏仁'
}],
state_list2: [{
dictKey: 0,
dictValue: '金河'
},
{
dictKey: 1,
dictValue: '优宝'
}
],
formobj: {
name: "",
code: "",
brand: "",
category: "",
newestPurchasePrice: "",
secondCode: ""
}
}
},
created() {
this.categoryList()
this.brandList()
},
methods: {
categoryList() {
req.categoryList().then((res) => {
if (res.success) {
console.log(">>>>>>>>>2222222", res.data)}
this.state_list = res.data
})
},
brandList() {
req.brandList().then((res) => {
if (res.success) {
console.log(">>>>>>>>>2222222", res.data)
this.state_list2 = res.data
}
})
},
showAdd() {
},
showEdit(row) {
req.CommodityFetchBySid(row.sid)
.then(resp => {
if (resp.success) {
console.log("data>>>", resp.data)
this.formobj = resp.data
}
})
.catch(e => {
this.formobj = row
})
},
categoryChange(val) {
const chose = this.state_list.filter((item) => item.dictKey === val)
this.formobj.category = chose[0].dictValue
},
brandChange(val) {
const chose = this.state_list2.filter((item) => item.dictKey === val)
this.formobj.brand = chose[0].dictValue
},
saveOrUpdate() {
console.log("data>>>", this.formobj)
if (this.formobj.name == "") {
this.$message({
showClose: true,
type: 'success',
message: "商品名称不能为空"
})
return
}
if (this.formobj.code == "") {
this.$message({
showClose: true,
type: 'success',
message: "商品编码不能为空"
})
return
}
if (this.formobj.category == "") {
this.$message({
showClose: true,
type: 'success',
message: "商品分类不能为空"
})
return
}
if (this.formobj.brand == "") {
this.$message({
showClose: true,
type: 'success',
message: "商品品牌不能为空"
})
return
}
if (this.formobj.newestPurchasePrice == "") {
this.$message({
showClose: true,
type: 'success',
message: "进货单价不能为空"
})
return
}
if (this.formobj.secondCode == "") {
this.$message({
showClose: true,
type: 'success',
message: "第二代码不能为空"
})
return
}
req.saveCommodity(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn("true")
} else {
// resp.code
}
})
.catch(() => {})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
name: "",
code: "",
brand: "",
category: "",
newestPurchasePrice: "",
secondCode: ""
}
this.$emit('doback')
},
}
}
</script>
<style lang="scss">
.box-card {
min-width: 70%;
margin-top: 20px;
.item {
display: flex;
flex-direction: row;
align-items: center;
margin-top: 20px;
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;
}
}
}
}
</style>

282
yxt-portal-ui/src/views/Advertising/AdvertisingIndexDetail.vue

@ -0,0 +1,282 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="商品管理" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">
{{ searchxianshitit }}
</el-button>
<div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header">
<el-form-item label="商品名称">
<el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item>
<el-form-item label="审核">
<el-select v-model="queryParams.params.completionStatusKey" filterable placeholder="请选择" clearable>
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="法人 ">
<el-input v-model="queryParams.params.legalRepresentative" placeholder="" clearable/>
</el-form-item>
<el-form-item label="营业执照号码">
<el-input v-model="queryParams.params.businessLicenseNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="银行账号">
<el-input v-model="queryParams.params.bankAccountNumber" placeholder="" clearable/>
</el-form-item> -->
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
<el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</div>
</div>
</div>
<!-- Start 项目列表头部 -->
<div class="listtop">
<div class="tit">商品列表</div>
</div>
<!-- End 项目列表头部 -->
<!-- Start 项目列表 -->
<div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
@selection-change="handleSelectionChange">
<!-- <el-table-column fixed width="50" type="selection" align="center" /> -->
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="商品名称" align="center" width="110">
<!-- <template slot-scope="scope">
<span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.codeUnified }}</span>
</template> -->
</el-table-column>
<el-table-column prop="name" label="分类" align="center" />
<el-table-column prop="contacts" label="品牌" align="center" width="100" />
<el-table-column prop="telephone" label="进货单价" align="center" width="110" />
<el-table-column prop="address" label="规格" align="center" />
<el-table-column prop="address" label="单位" align="center" />
<el-table-column prop="address" label="生成厂家" align="center" />
<el-table-column prop="address" label="第二代码" align="center" />
<el-table-column prop="address" label="审核" align="center" />
<el-table-column label="操作" align="center" width="180">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">编辑</el-button>
<el-button type="primary" size="mini" @click="toRelevancyInfo(scope.row)">删除</el-button>
</template>
</el-table-column>
<!-- <el-table-column prop="bankAccount" label="银行帐户" align="center"/>
<el-table-column prop="bankAccountNumber" label="帐号" align="center"/>
<el-table-column prop="bankName" label="开户行名称" align="center"/>
<el-table-column prop="legalRepresentative" label="法人" align="center" width="100"/>
<el-table-column prop="businessLicenseNo" label="营业执照号码" align="center" width="170"/> -->
</el-table>
</div>
<!-- End 项目列表 -->
<div class="pages">
<div class="tit" />
<!-- 翻页 -->
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
:limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
</div>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/system/advertising'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
export default {
name: 'SupplierBankInfoIndex',
components: {
ButtonBar,
Pagination,
pageye,
},
data() {
return {
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: '显示查询条件',
tableLoading: false,
dataList: [],
btnList: [{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
state_list: [{
dictKey: 1,
dictValue: '通过审核'
},
{
dictKey: 2,
dictValue: '等待审核'
},
{
dictKey: 3,
dictValue: '审核被拒'
}
],
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
codeUnified: '',
name: '',
contacts: '',
bankAccountNumber: '',
legalRepresentative: '',
businessLicenseNo: ''
}
},
sids: []
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
// this.loadList()
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
loadList() {
this.tableLoading = true
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.queryParams.total = 0
this.dataList = []
}
}).catch(() => {
this.tableLoading = false
})
},
handleSelectionChange(row) {
const aa = []
row.forEach((element) => {
aa.push(element.sid)
})
this.sids = aa
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
codeUnified: '',
name: '',
contacts: '',
bankAccountNumber: '',
legalRepresentative: '',
businessLicenseNo: ''
}
}
this.loadList()
},
toAdd() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
doDel() {
if (this.sids.length === 0) {
this.$message({
showClose: true,
type: 'error',
message: '请选择至少一条记录进行删除操作'
})
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.delBySids(this.sids).then((resp) => {
loading.close()
if (resp.success) {
this.$message({
type: 'success',
message: resp.msg,
showClose: true
})
this.loadList()
} else {
// resp.code
}
}).catch(e => {
loading.close()
})
}).catch(() => {})
},
resetState() {
this.viewState = 1
}
}
}
</script>
<style scoped>
</style>
Loading…
Cancel
Save